version: "3" networks: gitea: traefik-public: external: true volumes: gitea: driver: local postgres: driver: local services: postgres: image: postgres:15-alpine container_name: gitea_postgres ports: - "127.0.0.1:5432:5432" restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea_db_password_change_me - POSTGRES_DB=gitea networks: - gitea volumes: - postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U gitea"] interval: 10s timeout: 5s retries: 5 gitea: image: gitea/gitea:latest container_name: gitea dns: - 8.8.8.8 - 8.8.4.4 environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=postgres:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=gitea_db_password_change_me - GITEA__server__ROOT_URL=https://git.photon.obnh.io - GITEA__server__HTTP_PORT=3000 - GITEA__server__DOMAIN=git.photon.obnh.io - GITEA__server__ALLOWED_HOST_LIST=git.photon.obnh.io,photon.obnh.io,localhost,127.0.0.1 - GITEA__security__SECRET_KEY=your_secret_key_here - GITEA__security__INTERNAL_TOKEN=your_internal_token_here - GITEA__security__TRUST_PROXY_HEADERS=true - GITEA__server__LFS_START_SERVER=true - GITEA__server__LFS_JWT_SECRET=your_lfs_secret_here - GITEA__repository__MAX_FILE_SIZE=5000 - GITEA__repository.upload__FILE_MAX_SIZE=5000 - GITEA__web__MAX_DISPLAY_FILE_SIZE=52428800 restart: always networks: - gitea - traefik-public extra_hosts: - "host.docker.internal:172.20.0.1" volumes: - gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "3000" - "22" ports: - "222:22" depends_on: postgres: condition: service_healthy labels: - "traefik.enable=true" - "traefik.docker.network=traefik-public" - "traefik.http.routers.gitea.rule=Host(`git.photon.obnh.io`)" - "traefik.http.routers.gitea.entrypoints=websecure" - "traefik.http.routers.gitea.tls=true" - "traefik.http.routers.gitea.tls.certresolver=exoscale" - "traefik.http.routers.gitea.tls.domains[0].main=git.photon.obnh.io" - "traefik.http.routers.gitea.service=gitea" - "traefik.http.routers.gitea.priority=100" - "traefik.http.services.gitea.loadbalancer.server.port=3000"