46e9941488
- .env: aggiunte vars PORT=8080, HOST=127.0.0.1, REGISTRY, TAG
- docker-compose.yml: usa ${PORT:-8080} sia per container env che per
traefik loadbalancer.server.port (coerenza)
- .env.example: template versionato con valori default sicuri
(.env resta in .gitignore, non committato)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
47 lines
1.7 KiB
YAML
47 lines
1.7 KiB
YAML
# docker-compose per deploy VPS con Traefik.
|
|
# Assume che Traefik sia già attivo sulla VPS con:
|
|
# - network esterna "traefik" (adatta nome se diverso)
|
|
# - entrypoint "websecure" su :443
|
|
# - certresolver "letsencrypt" configurato
|
|
#
|
|
# Adattare eventualmente: nome network, entrypoint, certresolver.
|
|
|
|
services:
|
|
pm2d:
|
|
image: ${REGISTRY:-localhost:5000}/pm2d:${TAG:-latest}
|
|
container_name: pm2d
|
|
restart: unless-stopped
|
|
environment:
|
|
IMAGES_DIR: /data/images
|
|
HOST: 0.0.0.0
|
|
PORT: ${PORT:-8080}
|
|
volumes:
|
|
# Persistenza immagini tra restart (upload/selezione)
|
|
- ./images:/data/images
|
|
networks:
|
|
- traefik
|
|
labels:
|
|
- "traefik.enable=true"
|
|
|
|
# Router HTTPS principale
|
|
- "traefik.http.routers.pm2d.rule=Host(`pm.tielogic.xyz`)"
|
|
- "traefik.http.routers.pm2d.entrypoints=websecure"
|
|
- "traefik.http.routers.pm2d.tls=true"
|
|
- "traefik.http.routers.pm2d.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.pm2d.loadbalancer.server.port=${PORT:-8080}"
|
|
|
|
# Middleware: upload fino a 50MB (default Traefik bufferizza a 4MB)
|
|
- "traefik.http.middlewares.pm2d-bodysize.buffering.maxRequestBodyBytes=52428800"
|
|
- "traefik.http.routers.pm2d.middlewares=pm2d-bodysize"
|
|
|
|
# Redirect HTTP → HTTPS
|
|
- "traefik.http.routers.pm2d-http.rule=Host(`pm.tielogic.xyz`)"
|
|
- "traefik.http.routers.pm2d-http.entrypoints=web"
|
|
- "traefik.http.routers.pm2d-http.middlewares=pm2d-redirect-https"
|
|
- "traefik.http.middlewares.pm2d-redirect-https.redirectscheme.scheme=https"
|
|
- "traefik.http.middlewares.pm2d-redirect-https.redirectscheme.permanent=true"
|
|
|
|
networks:
|
|
traefik:
|
|
external: true
|