type: service
status: active
timestamp: 2026-06-24
tags: [service, git-host, mirror, backup, gitflic, russia, free-tier]
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:
- Users in sanctioned countries may experience 451 (Unavailable for Legal Reasons)
- The platform may be blocked in some jurisdictions
- Treat as supplementary mirror only; do NOT rely on it as primary recovery source
Free Tier
| Limit | Value |
|---|---|
| Repos | Free (public and private) |
| Storage | Not explicitly published; generous for typical repos |
| Built-in pull mirror | ✅ Daily schedule (free feature) |
| Organizations | Supported |
Authentication
| Field | Value |
|---|---|
| Token type | Personal Access Token |
| Token URL | https://gitflic.ru/user/settings/tokens |
| Required scope | repo:write (shown in Cyrillic UI as “запись в репозиторий”) |
| Env var name | MIRROR_GITFLIC_TOKEN |
| Git URL format | https://chirag127:[email protected]/project/chirag127/repo.git |
| API base | https://api.gitflic.ru/ |
How to get the token
- Log in at https://gitflic.ru
- Go to Settings → API Tokens (
/user/settings/tokens) - Click Create token
- Name:
oriz-mirror-bot - Scope:
repo:write(repository write access) - Click Create — copy immediately
- Store as chirag127 org-level GitHub secret(s) — paste value into
.envthengh secret set <NAME> --org chirag127 --visibility all < <(printf %s "$VALUE"). Full loop:runbooks/platform/mirror-all-hosts-setup.mdStep 2.
Built-in Pull Mirror (Bonus Feature)
GitFlic has a native “Mirror” feature that auto-pulls from GitHub daily:
- Go to GitFlic → + menu → New Mirror
- Strategy: PULL (GitFlic pulls from GitHub)
- Enter GitHub repo URL
- For private repos: provide GitHub PAT as auth
- 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
| Symptom | Cause | Fix |
|---|---|---|
451 Unavailable | Geographic/sanction block | Accept loss; flag in Telegram digest |
403 Forbidden | Token expired or wrong scope | Regenerate token |
| Push rejected | GitFlic URL format differs from standard | Check URL format; gitflic.ru/project/username/repo |
| API in Cyrillic | UI localization | Use API directly; English available in API responses |
Cross-refs
- Full setup →
../../../runbooks/mirror-all-hosts-setup.md - 9-host decision →
../../decisions/ops/mirror-to-9-popular-alternatives-2026-06-28.md - GitFlic API docs: https://gitflic.ru/help/api/intro