version: "3" services: gitea: image: gitea/gitea:1.21.7 container_name: gitea environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=gitea restart: always volumes: - ./gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro # ports: # - "3000:3000" # - "222:22" deploy: replicas: 1 labels: - "traefik.enable=true" - "traefik.http.routers.gitea.rule=Host(`gitea-ptl.akamai-lab.com`)" - "traefik.http.routers.gitea.entrypoints=websecure" - "traefik.http.services.gitea-service.loadbalancer.server.port=3000" - "traefik.http.routers.gitea.tls=true" - "traefik.http.routers.gitea.tls.certresolver=letsencrypt" - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" # HTTP to HTTPS redirect - "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true" - "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)" - "traefik.http.routers.redirs.entrypoints=web" - "traefik.http.routers.redirs.middlewares=redirect-to-https" depends_on: - db db: image: postgres:14 container_name: db restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea volumes: - ./postgres:/var/lib/postgresql/data traefik: image: traefik:latest container_name: traefik restart: always command: - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.letsencrypt.acme.email=learn@akamai.com" - "--certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme/acme.json" - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" - "--log.level=DEBUG" ports: - "80:80" - "443:443" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./acme:/etc/traefik/acme