Skip to main content
Gitea Synchronisation runs in the web service (the gitea-sync module) of every Ayakaleaf Pro pod. It needs the Git integration. Create the OAuth application and read what each setting does in Gitea Synchronisation; this page puts it into Kubernetes.

Configuration

1

ConfigMap

30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" and the git-bridge StatefulSet from Git integration must be in place: without them the account settings and the editor hide Gitea Synchronisation.
2

Secret

GITEA_TOKEN_CIPHER_PASSWORD encrypts the users’ Gitea access and refresh tokens in MongoDB. Every replica must use the same value, and changing it later makes every user link Gitea again.
3

Private CA (optional)

If your Gitea has a certificate from your own CA, add the CA to the Secret overleaf-certs mounted at /var/lib/overleaf/certs (see Certificates and other files) and set NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem in the ConfigMap.
4

Apply, restart and check

Any HTTP status means Gitea is reachable from that pod; 000 means it is not.

Several replicas

Nothing extra beyond the shared GITEA_TOKEN_CIPHER_PASSWORD. A sync takes a lock in Redis, shared with the other Git synchronisations, so two replicas never sync the same project at once.

Tested on Kubernetes

Against a real Gitea 1.23 at GITEA_SYNC_URL, on Kubernetes 1.37 with one replica and the Git integration on, our end-to-end tests for Gitea Synchronisation pass (39 cases): linking and unlinking the account through Gitea’s OAuth2, refreshing the expiring access token and revoked grants, exporting into a new private or organization repository, importing a repository, pulling and pushing, merges, conflicts, deleted and force-pushed branches, binary files, renames and deletions, and what owners, editors and viewers may do.
Last modified on November 2, 2026