services: forgejo: image: codeberg.org/forgejo/forgejo:11 networks: - netgrimoire environment: USER_UID: "1001" USER_GID: "998" TZ: America/Chicago # Match your standard UID:GID execution model #user: "1001:998" volumes: - /DockerVol/forgejo:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - target: 3000 published: 3024 protocol: tcp mode: ingress - target: 22 published: 222 protocol: tcp mode: ingress deploy: restart_policy: condition: any delay: 5s max_attempts: 3 window: 120s placement: constraints: - node.platform.arch != arm - node.platform.arch != aarch64 - node.hostname == znas labels: gremlin.version: "2026-04-1" gremlin.uid.exempt: "true" gremlin.uid.reason: "Forgejo uses different env variables to set uid" gremlin.authentik.skip: "true" # Homepage homepage.group: "Development" homepage.name: "Forgejo" homepage.icon: "forgejo.png" homepage.href: "https://git.netgrimoire.com" homepage.description: "Git Repository" monitor.name: Forgejo monitor.url: https://"git.netgrimoire.com" # Kuma # Caddy caddy: "git.netgrimoire.com" # caddy.import: "authentik" caddy.reverse_proxy: "forgejo:3000" caddy.import_1: crowdsec # Diun (image update monitoring) diun.enable: "true" networks: netgrimoire: external: true