# External Gitea Gitea is bootstrap infrastructure, not a Kubernetes workload. `lab.sh deploy-gitea` copies `docker-compose.yml` to the Raspberry Pi and runs Gitea as an always-on Docker Compose service. The current default stores data on the Pi SD card under `/opt/homelab-gitea/data`; move `LAB_GITEA_INSTALL_DIR` to an SSD mount when the SSD is added. Defaults: - host: `192.168.100.89` - user: `jv` - install dir: `/opt/homelab-gitea` - HTTP port: `3000` - SSH port: `32222` - public root URL: `https://lab2025.duckdns.org/git/` Kubernetes consumes Git from the Debian bare GitOps mirror at `/home/jv/git-server/my-homelab-configs.git`. Gitea is the human-facing Git service and remains available when the cluster is destroyed. `./lab.sh bootstrap-gitea-repo` creates or validates the public Gitea repository, adds the Debian host deploy key when needed, and points the Debian checkout's `gitea` remote at: ```text ssh://git@192.168.100.89:32222/jv/my-homelab-configs.git ``` Argo CD does not read from the Raspberry Pi Gitea SSH port. It reads from the Debian bare GitOps mirror through `gitops_repo_url`, normally: ```text ssh://jv@192.168.100.68/home/jv/git-server/my-homelab-configs.git ``` The platform bootstrap registers that repo secret and updates `argocd-ssh-known-hosts-cm`. If Argo CD reports `knownhosts: key is unknown`, refresh the Debian host key in that ConfigMap and restart `argocd-repo-server`. Backups are installed on the Debian host by `lab.sh deploy-gitea` and `lab.sh backup-gitea`. The timer runs `gitea dump` inside the Raspberry Pi container, copies the archive to Debian, and stores it under `/home/jv/backups/gitea`.