Skip to content

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).

  • 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)
  1. In the sidebar, open the folder’s menu (kebab or right-click) and choose “Connect to a service…”.
  2. Pick the service Git mirror (push).
  3. 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
  4. 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.

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

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.