infra/forgejo.compose.yml

52 lines
1.8 KiB
YAML

# Forgejo — git.manohargupta.com
# Self-hosted Git for scripts, Power Query files, compose files, n8n exports.
# Storage: SQLite (single-user, zero ops overhead vs Postgres).
# SSH clone port: 2222 (host) -> 22 (container). Never conflicts with system SSH.
# Fix v2: volume mounted to /data (Forgejo Docker standard), not /var/lib/gitea.
services:
forgejo:
image: codeberg.org/forgejo/forgejo:10
restart: unless-stopped
environment:
USER_UID: "1000"
USER_GID: "1000"
FORGEJO__server__DOMAIN: git.manohargupta.com
FORGEJO__server__ROOT_URL: https://git.manohargupta.com/
FORGEJO__server__SSH_DOMAIN: git.manohargupta.com
FORGEJO__server__SSH_PORT: "2222"
FORGEJO__server__SSH_LISTEN_PORT: "22"
FORGEJO__service__DISABLE_REGISTRATION: "true"
FORGEJO__service__REQUIRE_SIGNIN_VIEW: "false"
# /data is Forgejo Docker's standard root -- /var/lib/gitea was wrong
FORGEJO__database__DB_TYPE: sqlite3
FORGEJO__database__PATH: /data/gitea/forgejo.db
volumes:
- forgejo_data:/data # standard Forgejo Docker data root
- forgejo_config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "2222:22"
networks:
- dokploy-network
labels:
- "traefik.enable=true"
- "traefik.docker.network=dokploy-network"
- "traefik.http.routers.forgejo.rule=Host(`git.manohargupta.com`)"
- "traefik.http.routers.forgejo.entrypoints=websecure"
- "traefik.http.routers.forgejo.tls.certresolver=letsencrypt"
- "traefik.http.services.forgejo.loadbalancer.server.port=3000"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
volumes:
forgejo_data:
forgejo_config:
networks:
dokploy-network:
external: true