wwebjs-api/docker-compose.yml
2026-08-18 10:04:02 +02:00

55 lines
1.9 KiB
YAML

# The version property is now optional in modern Docker Compose
# version: '3.8'
name: wwebjs-api
services:
api:
image: git.eddydevink.nl/eddy/wwebjs-api:1.34.7-serialized-id-2dd7653
container_name: wwebjs-api
restart: always
ports:
- "${PORT:-3000}:${PORT:-3000}"
env_file: .env
volumes:
# Use a named Docker volume so WhatsApp sessions persist across
# container recreations / redeploys (e.g. on Dokploy). The data lives
# in Docker-managed storage, NOT inside the repository directory, so a
# fresh deploy no longer resets the session.
- wwebjs_sessions:/usr/src/app/sessions
# Optional: route Chromium (WhatsApp Web) traffic through an outbound proxy.
# Set PROXY_URL (and optionally PROXY_USERNAME / PROXY_PASSWORD for HTTP
# Basic auth) in .env, or uncomment the block below to point at the
# bundled tinyproxy service.
# environment:
# PROXY_URL: http://tinyproxy:8888
# # PROXY_USERNAME: api-key
# # PROXY_PASSWORD: your-api-key
# depends_on:
# - tinyproxy
# Optional healthcheck
# healthcheck:
# test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
# interval: 30s
# timeout: 10s
# retries: 3
# start_period: 40s
# Optional: local HTTP proxy for testing the PROXY_URL feature end-to-end.
# Uncomment along with the api `environment` / `depends_on` blocks above.
# tinyproxy:
# image: vimagick/tinyproxy
# container_name: wwebjs-tinyproxy
# ports:
# - "8888:8888"
# environment:
# ALLOWED_NETWORKS: 0.0.0.0/0
# # Uncomment to test the PROXY_USERNAME / PROXY_PASSWORD path.
# # BASIC_AUTH_USER: "api-key"
# # BASIC_AUTH_PASSWORD: "your-api-key"
# restart: unless-stopped
# Named volumes managed by Docker. Persists independently of the container
# and the repository working directory, so sessions survive redeploys.
volumes:
wwebjs_sessions: