Some notes:
- This can be self-hosted. My working compose.yml is below
- Free until August, and he has a discord for feedback, but I can’t find the invite. It was in the live-stream he did.
- He said in the stream that he’s open to open sourcing the project. Just not there yet.
- He admits the licensing is a little confusing. He stressed that self-hosting does not have a storage or block limit. Also, self-hosting is possible with all licenses (I think).
- Supports macOS, Linux, Windows, iOS, and Android (in beta I think)
My compose file:
services:
heaper-postgres:
image: ghcr.io/janlunge/heaper-postgres:latest
container_name: heaper-postgres
environment:
POSTGRES_USER: $POSTGRES_USER
POSTGRES_PASSWORD: $POSTGRES_PASSWORD
POSTGRES_DB: $POSTGRES_DB
ports:
- "5432:5432"
volumes:
- /path/to/heaper/postgres:/var/lib/postgresql/data
networks:
- heaper
healthcheck:
test: ["CMD-SHELL", "pg_isready -U heaper -d heaper || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 20s
heaper:
image: ghcr.io/janlunge/heaper:latest
container_name: heaper
platform: linux/amd64
environment:
HOSTNAME: heaper.caruthers.us
ENABLE_INTERNAL_POSTGRES: "false"
DB_HOST: heaper-postgres:5432
DB_USER: $POSTGRES_USER
DB_PASS: $POSTGRES_PASSWORD
DB_NAME: $POSTGRES_DB
ports:
- "3000:443"
- "4499:80"
volumes:
- /path/to/heaper/config:/usr/src/app/config
- /path/to/heaper/thumbnails:/mnt/thumbnails
- /path/to/heaper/storage:/mnt/storage
networks:
- heaper
depends_on:
heaper-postgres:
condition: service_healthy
healthcheck:
# Docs show example health probes; adjust host/port if your container differs.
test: ["CMD-SHELL", "curl -fsS http://localhost:8080/api >/dev/null || exit 1"]
interval: 15s
timeout: 5s
retries: 5
start_period: 30s
networks:
heaper:
name: heaper
I have the DB, config, and thumbnails on local NVME, and storage on NFS-mounted NAS. Working fine so far.