Files
wg/docker-compose.yml
T

55 lines
1.5 KiB
YAML

services:
db:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ${POSTGRES_DB:-wg}
POSTGRES_USER: ${POSTGRES_USER:-wg}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 5s
timeout: 5s
retries: 20
networks:
- wg
- dokploy-network
app:
build: .
restart: unless-stopped
depends_on:
db:
condition: service_healthy
# Dokploy/Traefik routes to this internal port — do NOT publish host ports.
expose:
- "4000"
environment:
APP_PORT: "4000"
APP_URL: ${APP_URL:-http://localhost:4000}
SITE_NAME: ${SITE_NAME:-Evilfox.cc}
DATABASE_URL: postgres://${POSTGRES_USER:-wg}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-wg}?sslmode=disable
SESSION_SECRET: ${SESSION_SECRET:?set SESSION_SECRET}
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@evilfox.cc}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:?set ADMIN_PASSWORD}
AUTO_IMPORT_MYSQL: ${AUTO_IMPORT_MYSQL:-true}
MYSQL_DUMP_PATH: /data/wg.sql
SECURE_COOKIES: ${SECURE_COOKIES:-true}
TZ: ${TZ:-UTC}
networks:
- wg
- dokploy-network
volumes:
pgdata:
networks:
wg:
driver: bridge
# Required so Traefik (Dokploy) can reach containers.
dokploy-network:
external: true