services: etherpad: image: etherpad/etherpad:3.3.8 restart: unless-stopped environment: NODE_ENV: production # The user admin signs in to /admin with this password. ADMIN_PASSWORD: ${ADMIN_PASSWORD} DB_TYPE: postgres DB_HOST: postgres DB_PORT: "5432" DB_NAME: etherpad DB_USER: etherpad DB_PASS: ${POSTGRES_PASSWORD} # Pethost's proxy terminates HTTPS, so the forwarded headers are trusted. TRUST_PROXY: "true" volumes: - plugins:/opt/etherpad-lite/src/plugin_packages - var:/opt/etherpad-lite/var depends_on: postgres: condition: service_healthy postgres: image: postgres:18-alpine restart: unless-stopped environment: POSTGRES_DB: etherpad POSTGRES_USER: etherpad POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - db:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U etherpad -d etherpad"] interval: 5s timeout: 5s retries: 10 start_period: 30s volumes: plugins: var: db: