Git mirror
A Git mirror connects a folder to a Git repository: Orimora commits and pushes that folder’s published documents as Markdown to the repo on every publish. It is one of three outbound options — alongside pulling a folder into a static site (no repo in between) and sending a single document to a webhook/n8n endpoint — and is complementary to Webhooks (event notifications) and Export (manual one-off downloads).
Prerequisites
Section titled “Prerequisites”- Capability Share folder (
collection.share) and write on the collection — admin-only by default - Server env:
GIT_MIRROR_ENCRYPTION_KEY(the PAT is encrypted at rest — see Installation) - For hosts other than the defaults:
GIT_MIRROR_ALLOWED_HOSTS - A repository and a Personal Access Token (PAT) with push access to the target branch. SSH deploy keys are intentionally out of scope (HTTPS + PAT is supported by GitHub, GitLab, Bitbucket, Gitea and Codeberg)
Connect a repository
Section titled “Connect a repository”- In the sidebar, open the folder’s menu (kebab or right-click) and choose “Connect to a service…”.
- Pick the service Git mirror (push).
- Fill in:
- Repository URL — e.g.
https://github.com/acme/docs.git - Branch — defaults to
main - Path in repo — optional prefix, e.g.
content/docs - Access token (PAT) — stored encrypted, never shown again
- Repository URL — e.g.
- Connect repository. Orimora pushes the folder’s already-published documents immediately, then again on every later publish.
Orimora writes one Markdown file per published document (with frontmatter) under the path prefix. Drafts and unpublished documents are never pushed.
Manage mirrors
Section titled “Manage mirrors”The folder’s connection dialog lists its Git mirrors. For each you can:
- Resync — force a fresh push of the whole folder (e.g. after fixing repo permissions)
- Disconnect — Orimora stops pushing; the repository itself is left untouched
Did it work?
Section titled “Did it work?”Each push is recorded as a delivery: status, HTTP code, duration and any error. A paused mirror shows the failure that tripped it. The honest end-to-end check is the repository itself — confirm the commits landed on the target branch.
See also
Section titled “See also”- Static sites via Pull-API — let a site pull a folder directly, no repo
- Send to (webhook / n8n) — push a single document to an endpoint
- Webhooks — event-driven automation
- Export — manual download
- Configuration —
GIT_MIRROR_ENCRYPTION_KEY,GIT_MIRROR_ALLOWED_HOSTS,PUBLISHING_GIT_MIRROR_FAILURE_* - Permissions & groups — Share folder capability