50 lines
1.4 KiB
YAML
50 lines
1.4 KiB
YAML
|
version: '3.7'
|
||
|
services:
|
||
|
haven:
|
||
|
image: ghcr.io/havenweb/haven:a0280ce
|
||
|
container_name: haven
|
||
|
depends_on:
|
||
|
- haven-db
|
||
|
ports:
|
||
|
- ${APP_PORT}:3000
|
||
|
volumes:
|
||
|
- ${APP_DATA_DIR}/data/storage:/storage
|
||
|
environment:
|
||
|
- RAILS_ENV=production
|
||
|
- HAVEN_DB_HOST=haven-db
|
||
|
- HAVEN_DB_NAME=haven
|
||
|
- HAVEN_DB_ROLE=haven
|
||
|
- HAVEN_DB_PASSWORD=${HAVEN_DB_PASSWORD}
|
||
|
- HAVEN_USER_EMAIL=${HAVEN_USER_EMAIL}
|
||
|
- HAVEN_USER_PASS=${HAVEN_USER_PASSWORD}
|
||
|
networks:
|
||
|
- tipi_main_network
|
||
|
labels:
|
||
|
traefik.enable: ${APP_EXPOSED}
|
||
|
traefik.http.routers.haven.rule: Host(`${APP_DOMAIN}`)
|
||
|
traefik.http.routers.haven.entrypoints: websecure
|
||
|
traefik.http.routers.haven.service: haven
|
||
|
traefik.http.routers.haven.tls.certresolver: myresolver
|
||
|
traefik.http.services.haven.loadbalancer.server.port: 3000
|
||
|
|
||
|
haven-db:
|
||
|
image: postgres:13.2-alpine
|
||
|
container_name: haven-db
|
||
|
command: [
|
||
|
"postgres",
|
||
|
"-c", "max_connections=1000",
|
||
|
"-c", "synchronous_commit=off",
|
||
|
"-c", "fsync=off",
|
||
|
"-c", "full_page_writes=off",
|
||
|
"-c", "max_wal_size=4GB",
|
||
|
"-c", "checkpoint_timeout=30min",
|
||
|
"-c", "wal_level=logical"
|
||
|
]
|
||
|
environment:
|
||
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||
|
POSTGRES_USER: haven
|
||
|
volumes:
|
||
|
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
|
||
|
networks:
|
||
|
- tipi_main_network
|