49 lines
2.0 KiB
YAML
49 lines
2.0 KiB
YAML
# Развёртывание в Coolify (build pack «Docker Compose») или вручную: docker compose up -d --build
|
|
# Переменные задаются в интерфейсе Coolify (или в .env): DB_PASSWORD, SECRET_KEY, ADMIN_PASSWORD, при желании APP_TZ, APP_PORT; FORWARDED_ALLOW_IPS — IP вашего NPM.
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: checklists
|
|
POSTGRES_USER: checklists
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U checklists -d checklists"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 20
|
|
|
|
app:
|
|
build: .
|
|
restart: unless-stopped
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
environment:
|
|
DATABASE_URL: postgresql+psycopg://checklists:${DB_PASSWORD}@db:5432/checklists
|
|
SECRET_KEY: ${SECRET_KEY}
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
|
|
APP_TZ: ${APP_TZ:-Europe/Moscow}
|
|
APP_ENV: production # слабый SECRET_KEY/ADMIN_PASSWORD -> отказ запуска
|
|
FORWARDED_ALLOW_IPS: ${FORWARDED_ALLOW_IPS:-127.0.0.1} # адрес NPM (доверенный прокси)
|
|
PHOTO_DIR: /data/photos # каталог фото можно сменить в админке (он должен лежать на томе)
|
|
volumes:
|
|
- photos:/data/photos # фотографии нарядов
|
|
- appdata:/srv/data # демо-режим и файл APK (appdata/apk/*.apk раздаётся по /app.apk)
|
|
ports:
|
|
- "${APP_PORT:-8080}:8000" # на этот порт хоста смотрит прокси (NPM)
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/v1/health', timeout=3)"]
|
|
interval: 15s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 25s
|
|
|
|
volumes:
|
|
pgdata:
|
|
photos:
|
|
appdata:
|