services: gitea: image: docker.gitea.com/gitea:latest container_name: gitea networks: - default - pangolin - traefik_proxy environment: - USER_UID=1000 - USER_GID=1000 - GITEA__server__DOMAIN=${DOMAIN} - GITEA__server__SSH_DOMAIN=${DOMAIN} - GITEA__server__ROOT_URL="https://${DOMAIN}/" - GITEA__server__SSH_PORT=222 # external port users connect to - GITEA__server__SSH_LISTEN_PORT=22 # internal container port - GITEA__server__START_SSH_SERVER=false - GITEA__server__DISABLE_SSH=false - GITEA__mailer__ENABLED=true - GITEA__mailer__PROTOCOL=smtps - GITEA__mailer__FROM=${GITEA__mailer__FROM} - GITEA__mailer__SMTP_ADDR=${GITEA__mailer__SMTP_ADDR} - GITEA__mailer__SMTP_PORT=${GITEA__mailer__SMTP_PORT} - GITEA__mailer__USER=${GITEA__mailer__USER} - GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD}""" volumes: - /mnt/user/appdata/gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "6734:3000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/api/healthz"] interval: 30s timeout: 10s retries: 3 start_period: 20s labels: net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/gitea.png" net.unraid.docker.webui: "https://${DOMAIN}" folder.view3: "Services" pangolin.public-resources.gitea-version-control.name: "${RESOURCE_NAME}" pangolin.public-resources.gitea-version-control.full-domain: "${DOMAIN}" pangolin.public-resources.gitea-version-control.protocol: "http" pangolin.public-resources.gitea-version-control.auth.sso-enabled: false pangolin.public-resources.gitea-version-control.targets[0].method: "http" pangolin.public-resources.gitea-version-control.targets[0].port: 3000 pangolin.public-resources.gitea-version-control.targets[0].healthcheck.enabled: true pangolin.public-resources.gitea-version-control.targets[0].healthcheck.hostname: "gitea" pangolin.public-resources.gitea-version-control.targets[0].healthcheck.port: 3000 pangolin.public-resources.gitea-version-control.targets[0].healthcheck.path: "/api/healthz" pangolin.public-resources.gitea-version-control.targets[0].healthcheck.method: "GET" pangolin.public-resources.gitea-version-control.targets[0].healthcheck.status: 200 pangolin.public-resources.gitea-version-control.targets[0].healthcheck.interval: 30 pangolin.public-resources.gitea-version-control.targets[0].healthcheck.timeout: 5 pangolin.public-resources.gitea-version-control-ssh.name: "${RESOURCE_NAME} SSH" pangolin.public-resources.gitea-version-control-ssh.protocol: "tcp" pangolin.public-resources.gitea-version-control-ssh.proxy-port: 222 pangolin.public-resources.gitea-version-control-ssh.targets[0].hostname: "gitea" pangolin.public-resources.gitea-version-control-ssh.targets[0].port: 22 # local proxy traefik.enable: true traefik.http.services.gitea.loadbalancer.server.port: 3000 traefik.http.routers.gitea.rule: "Host(`${DOMAIN}`)" traefik.http.routers.gitea.entrypoints: websecure traefik.http.routers.gitea.tls: true traefik.http.routers.gitea.tls.certresolver: cloudflare traefik.http.routers.gitea.tls.domains[0].main: "*.homecube.org" # local SSH traefik.tcp.routers.gitea-ssh.entrypoints: gitea-ssh traefik.tcp.routers.gitea-ssh.rule: "HostSNI(`*`)" traefik.tcp.routers.gitea-ssh.service: gitea-ssh traefik.tcp.services.gitea-ssh.loadbalancer.server.port: 22 runner: image: docker.io/gitea/act_runner:latest container_name: gitea-runner ports: - "8012:8012" depends_on: gitea: condition: service_healthy environment: CONFIG_FILE: /config.yaml GITEA_INSTANCE_URL: "http://10.0.0.1:6734/" GITEA_RUNNER_REGISTRATION_TOKEN: "${REGISTRATION_TOKEN}" GITEA_RUNNER_NAME: "${RUNNER_NAME}" volumes: - /mnt/user/appdata/gitea-runner/config.yaml:/config.yaml - /mnt/user/appdata/gitea-runner/data:/data - /var/run/docker.sock:/var/run/docker.sock labels: net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/gitea.png" folder.view3: "Runners" networks: pangolin: name: pangolin_net external: true traefik_proxy: external: true