mirror of
https://github.com/R0m1k3/PleinR.git
synced 2026-10-13 18:29:03 +02:00
Corrige ECONNREFUSED vers postgres:5432 apparu après l'ajout du réseau proxy. Postgres et l'app sont désormais tous deux sur un réseau "internal" dédié (résolution fiable de l'hôte "postgres"), l'app étant en plus sur le réseau externe "proxy" pour le reverse proxy. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XwfhYHzC9hQWPDnQ2p53GL
72 lines
2.5 KiB
YAML
72 lines
2.5 KiB
YAML
# Plein R — single application container + external Postgres container.
|
|
#
|
|
# The app (Next.js) runs in ONE container. Postgres runs as a SEPARATE
|
|
# (external) container. For a managed/already-existing Postgres, delete the
|
|
# `postgres` service below and point DATABASE_URL at your instance.
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: pleinr-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER:-pleinr}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pleinr}
|
|
POSTGRES_DB: ${POSTGRES_DB:-pleinr}
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
ports:
|
|
# Host port rarely used (container stays on 5432). Change the left side if needed.
|
|
- "54329:5432"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-pleinr} -d ${POSTGRES_DB:-pleinr}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 12
|
|
networks:
|
|
- internal
|
|
|
|
app:
|
|
build: .
|
|
container_name: pleinr-app
|
|
restart: unless-stopped
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
environment:
|
|
DATABASE_URL: postgres://${POSTGRES_USER:-pleinr}:${POSTGRES_PASSWORD:-pleinr}@postgres:5432/${POSTGRES_DB:-pleinr}
|
|
# Optional: if left empty, the container generates and persists one
|
|
# automatically (see docker-entrypoint.sh + the app-data volume).
|
|
AUTH_SECRET: ${AUTH_SECRET:-}
|
|
AUTH_URL: ${AUTH_URL:-http://localhost:8413}
|
|
SEED_ON_START: ${SEED_ON_START:-true}
|
|
SEED_ADMIN_EMAIL: ${SEED_ADMIN_EMAIL:-admin@plein-r.fr}
|
|
SEED_ADMIN_PASSWORD: ${SEED_ADMIN_PASSWORD:-changeme123}
|
|
SEED_ADMIN_NAME: ${SEED_ADMIN_NAME:-Administrateur Plein R}
|
|
ports:
|
|
# Host port rarely used (container stays on 3000). App reachable at http://HOST:8413
|
|
- "8413:3000"
|
|
volumes:
|
|
# Persists the auto-generated AUTH_SECRET across restarts.
|
|
- appdata:/app/data
|
|
networks:
|
|
# "internal" is shared with Postgres; "proxy" is the external network
|
|
# shared with the reverse proxy (e.g. Nginx Proxy Manager) so it can reach
|
|
# the app by name: forward to pleinr-app:3000
|
|
- internal
|
|
- proxy
|
|
|
|
volumes:
|
|
pgdata:
|
|
appdata:
|
|
|
|
networks:
|
|
# Private network for app <-> Postgres communication.
|
|
internal:
|
|
driver: bridge
|
|
proxy:
|
|
# The reverse proxy's existing network. Must already exist (created by the
|
|
# NPM/nginx stack). Override the name with PROXY_NETWORK if it differs.
|
|
external: true
|
|
name: ${PROXY_NETWORK:-nginx_default}
|