type: service
status: active
timestamp: 2026-06-24
tags: [service, git-host, mirror, backup, gitflic, russia, free-tier]

GitFlic.ru — push-mirror + built-in pull-mirror for oriz repos

Russian-hosted git mirror #4 — daily pull-mirror built-in, geopolitical risk

GitFlic.ru — push-mirror + built-in pull-mirror

Role

GitFlic.ru is mirror host #4 in the 6-host DR strategy. It provides geopolitical diversity (Russian-hosted, independent of US/EU cloud infrastructure). It also has a native pull-mirror feature (daily sync from GitHub) — the only free-tier host in our stack with this capability.

⚠️ Geopolitical Risk

GitFlic.ru is hosted in Russia. Access may be restricted:

Free Tier

LimitValue
ReposFree (public and private)
StorageNot explicitly published; generous for typical repos
Built-in pull mirrorDaily schedule (free feature)
OrganizationsSupported

Authentication

FieldValue
Token typePersonal Access Token
Token URLhttps://gitflic.ru/user/settings/tokens
Required scoperepo:write (shown in Cyrillic UI as “запись в репозиторий”)
Env var nameMIRROR_GITFLIC_TOKEN
Git URL formathttps://chirag127:TOKEN@gitflic.ru/project/chirag127/repo.git
API basehttps://api.gitflic.ru/

How to get the token

  1. Log in at https://gitflic.ru
  2. Go to Settings → API Tokens (/user/settings/tokens)
  3. Click Create token
  4. Name: oriz-mirror-bot
  5. Scope: repo:write (repository write access)
  6. Click Create — copy immediately
  7. Store as chirag127 org-level GitHub secret(s) — paste value into .env then gh secret set <NAME> --org chirag127 --visibility all < <(printf %s "$VALUE"). Full loop: runbooks/platform/mirror-all-hosts-setup.md Step 2.

Built-in Pull Mirror (Bonus Feature)

GitFlic has a native “Mirror” feature that auto-pulls from GitHub daily:

  1. Go to GitFlic → + menu → New Mirror
  2. Strategy: PULL (GitFlic pulls from GitHub)
  3. Enter GitHub repo URL
  4. For private repos: provide GitHub PAT as auth
  5. GitFlic syncs daily automatically — no GitHub Actions needed for this host

This means GitFlic can be used as a passive mirror with zero GitHub Actions minutes, complementing the push-mirror approach.

API — Create Repo (idempotent)

# Create project
curl -X POST "https://api.gitflic.ru/project" \
  -H "Authorization: token ${MIRROR_GITFLIC_TOKEN}" \
  -H "Content-Type: application/json" \
  -d "{\"title\":\"${REPO_NAME}\",\"alias\":\"${REPO_NAME}\",\"private\":false}" \
  || true  # idempotent

# API docs: https://gitflic.ru/help/api

Mirror URL pattern (push-based, via GH Actions)

https://chirag127:${MIRROR_GITFLIC_TOKEN}@gitflic.ru/project/chirag127/${REPO_NAME}.git

Failure modes

SymptomCauseFix
451 UnavailableGeographic/sanction blockAccept loss; flag in Telegram digest
403 ForbiddenToken expired or wrong scopeRegenerate token
Push rejectedGitFlic URL format differs from standardCheck URL format; gitflic.ru/project/username/repo
API in CyrillicUI localizationUse API directly; English available in API responses

Cross-refs


Edit on GitHub · Back to index