services: server: image: docker.gitea.com/gitea:1.26 container_name: gitea restart: always environment: - USER_UID=1000 - USER_GID=1000 # Database - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__USER=gitea - GITEA__database__PASSWD=gitea - GITEA__database__NAME=gitea #Server - GITEA__server__ROOT_URL=https://gitea.forust.xyz - GITEA__server__SSH_DOMAIN=gitssh.forust.xyz - GITEA__server__SSH_PORT=2221 # Mailer - GITEA__mailer__ENABLED=true - GITEA__mailer__FROM=${SERVICE_EMAIL} - GITEA__mailer__SMTP_ADDR=${MAILER_ADDR}:465 - GITEA__mailer__USER=${SERVICE_EMAIL} - GITEA__mailer__PASSWD=${GITEA_SMTP_PASS} - GITEA__mailer__PROTOCOL=SMTP - GITEA__service__REGISTER_EMAIL_CONFIRM=true - GITEA__service__ENABLE_NOTIFY_MAIL=true volumes: - ./gitea-data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro labels: - "traefik.enable=true" - "traefik.http.services.gitea.loadbalancer.server.port=3000" # Prod Router - "traefik.http.routers.gitea.rule=Host(`gitea.forust.xyz`)" - "traefik.http.routers.gitea.entrypoints=websecure" - "traefik.http.routers.gitea.tls.certresolver" # Local Router - "traefik.http.routers.gitea-local.rule=Host(`gitea.workstation.internal`)" - "traefik.http.routers.gitea-local.entrypoints=websecure" - "traefik.http.routers.gitea-local.tls=true" # Dev Router - "traefik.http.routers.gitea-dev.rule=Host(`gitea.gigaforust.internal`)" - "traefik.http.routers.gitea-dev.entrypoints=websecure" - "traefik.http.routers.gitea-dev.tls=true" # SSH Router - "traefik.tcp.services.gitea.loadbalancer.server.port=22" - "traefik.tcp.routers.gitea.entrypoints=ssh" - "traefik.tcp.routers.gitea.rule=HostSNI(`*`)" # Gitea container registry Router - "traefik.http.routers.gitea-registry.rule=Host(`gcr.forust.xyz`) && PathPrefix(`/v2`)" - "traefik.http.routers.gitea-registry.entrypoints=websecure" - "traefik.http.routers.gitea-registry.tls.certresolver=letsencrypt" ports: - "2221:22" networks: - gitea-db - proxy depends_on: - db db: image: docker.io/library/postgres:14 restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea volumes: - ./gitea-db/:/var/lib/postgresql/data networks: - gitea-db networks: gitea-db: external: false proxy: external: true