72 lines
1.8 KiB
YAML
72 lines
1.8 KiB
YAML
services:
|
|
forest:
|
|
image: docker.io/kasperhermansen/forest-server:${FOREST_IMAGE_VERSION:-main}
|
|
restart: always
|
|
env_file: ".env"
|
|
command: |
|
|
/app/forest-server serve
|
|
ports:
|
|
- "4040:4040"
|
|
environment:
|
|
RUST_LOG: "forest=debug,info"
|
|
LOG_LEVEL: short
|
|
FOREST_HOST: 0.0.0.0:4040
|
|
networks:
|
|
- public
|
|
- internal
|
|
healthcheck:
|
|
test: ["CMD", "/app/forest-server", "--external-host", "http://127.0.0.1:4040", "admin", "status"]
|
|
interval: 10s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
restart: true
|
|
|
|
postgres:
|
|
image: postgres:18
|
|
restart: always
|
|
shm_size: 128mb
|
|
env_file: ".env"
|
|
networks:
|
|
- internal
|
|
volumes:
|
|
- ./data/postgres/18:/var/lib/postgresql/18/docker
|
|
environment:
|
|
POSTGRES_USER: forest
|
|
POSTGRES_DB: forest
|
|
healthcheck:
|
|
test: ["CMD", "pg_isready", "-U", "forest", "-d", "forest"]
|
|
interval: 10s
|
|
retries: 5
|
|
start_period: 30s
|
|
timeout: 10s
|
|
|
|
backup:
|
|
image: prodrigestivill/postgres-backup-local
|
|
restart: always
|
|
volumes:
|
|
- ./data/backups:/backups
|
|
env_file: .env
|
|
links:
|
|
- "postgres"
|
|
networks:
|
|
- internal
|
|
environment:
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_DB=forest
|
|
- POSTGRES_USER=forest
|
|
- POSTGRES_EXTRA_OPTS=-Z1 --schema=public --blobs
|
|
- BACKUP_ON_START=TRUE
|
|
- SCHEDULE=@daily # or cron: "0 2 * * *"
|
|
- BACKUP_KEEP_DAYS=7 # keep daily backups for 7 days
|
|
- BACKUP_KEEP_WEEKS=4 # keep weekly backups for 4 weeks
|
|
- BACKUP_KEEP_MONTHS=6 # keep monthly backups for 6 months
|
|
- HEALTHCHECK_PORT=8080
|
|
|
|
networks:
|
|
public:
|
|
internal:
|