name: n8n-stack services: n8n: image: n8nio/n8n ports: - 5678:5678 environment: - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME} - N8N_PORT=5678 - N8N_PROTOCOL=https - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true - N8N_RUNNERS_ENABLED=true - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=db - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${DB_NAME:-n8n} - DB_POSTGRESDB_USER=${DB_USER:-n8n} - DB_POSTGRESDB_PASSWORD=${DB_PASSWORD:-n8n} - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/ - NODE_ENV=production depends_on: db: condition: service_healthy volumes: - ${DATA_PATH:-./Data}/:/home/node/.n8n restart: unless-stopped logging: driver: loki options: loki-url: "${LOKI_URL:-http://localhost:3100/loki/api/v1/push}" db: image: postgres:16-alpine volumes: - ${DATABASE_PATH:-./Database}:/var/lib/postgresql/data environment: - POSTGRES_USER=${DB_USER:-n8n} - POSTGRES_PASSWORD=${DB_PASSWORD:-n8n} - POSTGRES_DB=${DB_NAME:-n8n} restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-n8n} -d ${DB_NAME:-n8n}"] interval: 10s timeout: 5s retries: 5 logging: driver: loki options: loki-url: "${LOKI_URL:-http://localhost:3100/loki/api/v1/push}"