services: gitea-db: container_name: Gitea-db restart: unless-stopped image: postgres:16 environment: POSTGRES_USER: gitea POSTGRES_PASSWORD: POSTGRES_DB: gitea healthcheck: test: ["CMD-SHELL", "pg_isready -U gitea"] interval: 10s timeout: 5s retries: 5 networks: - frontend volumes: - /gitea/postgres:/var/lib/postgresql/data gitea: container_name: Gitea restart: unless-stopped image: gitea/gitea:latest depends_on: gitea-db: condition: service_healthy environment: USER_UID: 1000 USER_GID: 1000 GITEA__database__DB_TYPE: postgres GITEA__database__HOST: gitea-db:5432 GITEA__database__NAME: gitea GITEA__database__USER: gitea GITEA__database__PASSWD: GITEA__server__DOMAIN: git.keithsolomon.net GITEA__server__ROOT_URL: https://git.keithsolomon.net/ GITEA__server__SSH_PORT: 222 GITEA__log__MODE: console volumes: - /gitea/gitea:/data networks: - frontend ports: - "3000:3000" # HTTP web UI - "222:22" # SSH for git over SSH labels: - "traefik.enable=true" - "traefik.docker.network=frontend" - "traefik.http.routers.gitea.rule=Host(`git.keithsolomon.net`)" - "traefik.http.services.gitea.loadbalancer.server.port=3000" # Gitea's default web port networks: frontend: external: true name: frontend