# 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