Files
MikrotikManager/deploy/docker-compose.postgres.yml
T
DenozordecandCursor ec43591a99
Docker images / prepare-release (push) Successful in 12s
Docker images / backend-test (push) Successful in 4m9s
Docker images / frontend-image (push) Successful in 4m28s
Docker images / updater-image (push) Successful in 58s
Docker images / backend-image (push) Successful in 2m49s
Docker images / notify-webhook (push) Skipped
Docker images / publish-release (push) Successful in 11s
feat(db): перевести хранилище с SQLite на PostgreSQL
При старте backend накатывает схему PostgreSQL 18 и, если база пустая, один раз импортирует mikrotik.db с тома. Повторный старт не копирует данные. Бэкап в UI идёт через pg_dump.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 01:36:48 +07:00

51 lines
1.3 KiB
YAML

# Local PostgreSQL 18 for MikrotikManager (dev / ETL dry-run).
# copy env.postgres.example → deploy/.env.postgres
# docker compose -f deploy/docker-compose.postgres.yml --env-file deploy/.env.postgres up -d
services:
postgres:
image: ${POSTGRES_IMAGE_TAG:-postgres:18-alpine}
container_name: mmapp-postgres
restart: unless-stopped
shm_size: "256mb"
environment:
POSTGRES_USER: mmapp
POSTGRES_DB: mmapp
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env}
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C.UTF-8 --data-checksums"
TZ: UTC
PGTZ: UTC
command:
- postgres
- -c
- timezone=UTC
- -c
- listen_addresses=*
- -c
- max_connections=100
- -c
- shared_buffers=256MB
- -c
- work_mem=16MB
- -c
- maintenance_work_mem=128MB
- -c
- wal_compression=on
volumes:
- mmapp-pgdata:/var/lib/postgresql/data
ports:
- "127.0.0.1:${POSTGRES_PORT:-5432}:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mmapp -d mmapp"]
interval: 5s
timeout: 5s
retries: 10
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
volumes:
mmapp-pgdata: