Files
wapp/docker-compose.yml
2025-12-12 13:08:50 +01:00

78 lines
2.0 KiB
YAML

services:
wapp:
build:
context: ${WAPP_APP_ROOT}
dockerfile: Dockerfile
ports:
- "3001:3001"
container_name: wapp
restart: unless-stopped
networks:
- traefik_net
- default
environment:
# Server configuration
- PORT=3001
- NODE_ENV=production
# API Security
- WAPP_API_KEY=${WAPP_API_KEY:-your-secure-api-key-here}
# Paths (pointing to volume mounts)
- DB_PATH=/app/data/whatsapp.db
- MEDIA_PATH=/app/media
# WhatsApp configuration
# Set HEADLESS=false to see the browser window (useful for debugging)
- HEADLESS=true
- REJECT_CALLS=false
# WebSocket URL for QR page (set this to your public URL when using Traefik - )
# Example: - WS_URL=https://wapp.appmodel.nl
- WS_URL=https://wapp.appmodel.nl
# CORS configuration
- CORS_ORIGIN=*
volumes:
# Persistent data volumes
- whatsapp-data:/app/data:rw
- whatsapp-media:/app/media:rw
- whatsapp-cache:/app/.wwebjs_cache:rw
- whatsapp-auth:/app/.wwebjs_auth:rw
# Uncomment labels below when ready to use Traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.wapp.rule=Host(`wapp.appmodel.nl`)"
- "traefik.http.routers.wapp.entrypoints=websecure"
- "traefik.http.routers.wapp.tls=true"
- "traefik.http.routers.wapp.tls.certresolver=letsencrypt"
- "traefik.http.services.wapp.loadbalancer.server.port=3001"
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3001/health', (r) => { process.exit(r.statusCode === 200 ? 0 : 1); }).on('error', () => process.exit(1));"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
traefik_net:
external: true
name: traefik_net
default:
driver: bridge
volumes:
whatsapp-data:
driver: local
whatsapp-media:
driver: local
whatsapp-cache:
driver: local
whatsapp-auth:
driver: local