services: gitea: image: docker.gitea.com/gitea:{{ gitea.version }} 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.db_password }} - SSH_INCLUDE_FILE=/etc/ssh/sshd_config.d/*.conf restart: always networks: - internal - proxy volumes: - {{ gitea.data_path }}:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro # https://github.com/go-gitea/gitea/issues/34179 - ./config/gitea/ssh:/etc/ssh/sshd_config.d depends_on: - db labels: traefik.enable: true traefik.http.routers.gitea.rule: "Host(`{{ gitea.url }}`)" traefik.http.routers.gitea.tls: true traefik.http.routers.gitea.tls.certResolver: hetzner traefik.http.services.gitea-https.loadbalancer.server.port: 3000 {% if gitea.enable_ssh %} traefik.tcp.routers.gitea.rule: "HostSNI(`*`)" traefik.tcp.routers.gitea.entrypoints: public_ssh traefik.tcp.services.gitea-ssh.loadbalancer.server.port: 22 {% endif %} db: image: docker.io/library/postgres:14 restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD={{ gitea.db_password }} - POSTGRES_DB=gitea networks: - internal volumes: - ./data/db:/var/lib/postgresql/data networks: internal: driver: bridge internal: true proxy: name: traefik_exposed external: true