docker compose added

This commit is contained in:
jhpin2 2025-04-10 15:33:43 +06:00
parent b289f09b77
commit ef58757c35
2 changed files with 56 additions and 0 deletions

56
docker-compose.yml Normal file
View file

@ -0,0 +1,56 @@
version: "3.8"
services:
traefik:
image: traefik:latest
command:
- "--api.dashboard=true"
- "--providers.docker=true"
- "--entrypoints.http.address=:80"
- "--entrypoints.https.address=:443"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=http"
- "--certificatesresolvers.letsencrypt.acme.email=you@example.com"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./letsencrypt:/letsencrypt"
labels:
- "traefik.enable=true"
webapp:
image: your-image-name:latest
expose:
- "3000"
labels:
- "traefik.enable=true"
# HTTP Router
- "traefik.http.routers.http-webapp.rule=Host(`planpostai.com`) || Host(`www.planpostai.com`)"
- "traefik.http.routers.http-webapp.entrypoints=http"
- "traefik.http.routers.http-webapp.middlewares=redirect-to-https"
# HTTPS Router
- "traefik.http.routers.https-webapp.rule=Host(`planpostai.com`) || Host(`www.planpostai.com`)"
- "traefik.http.routers.https-webapp.entrypoints=https"
- "traefik.http.routers.https-webapp.tls=true"
- "traefik.http.routers.https-webapp.tls.certresolver=letsencrypt"
- "traefik.http.routers.https-webapp.middlewares=redirect-to-www,gzip"
- "traefik.http.routers.https-webapp.service=webapp-service"
# Redirect HTTP → HTTPS
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
# Redirect non-www to www
- "traefik.http.middlewares.redirect-to-www.redirectregex.regex=^https?://(?:www\\.)?(.+)"
- "traefik.http.middlewares.redirect-to-www.redirectregex.replacement=https://www.$${1}"
- "traefik.http.middlewares.redirect-to-www.redirectregex.permanent=true"
# Enable GZIP
- "traefik.http.middlewares.gzip.compress=true"
# Service Definition
- "traefik.http.services.webapp-service.loadbalancer.server.port=3000"

0
letsencrypt/acme.json Normal file
View file