type: decision
status: active
timestamp: 2026-06-28
tags: [backup, mirroring, auto-start, datasets, master-plan]

Public-only multi-Git mirror + auto-start services + datasets-to-build queue

Mirror chirag127 to 4-5 Git hosts. Auto-start Hr/RTK/cavemem. Ship datasets as static APIs

Master plan — multi-Git mirror + auto-start + dataset queue

1. Multi-Git mirror

Goal: every public chirag127/* and chirag127/* repo gets pushed to N Git providers automatically. If one provider goes down or DMCAs us, the others stand.

Targets (locked 2026-06-28) — every managed (non-self-hosted) Git host. Account creation needed on each:

#ProviderURL patternNotes
1GitHub (primary)github.com/chirag127/<slug>Where the work happens
2GitLab Cloudgitlab.com/chirag127/<slug>Free unlimited public, mature CI
3Codebergcodeberg.org/chirag127/<slug>German non-profit, EU jurisdiction, no AI training
4Bitbucket Cloudbitbucket.org/chirag127/<slug>Atlassian, free 5-user public
5Azure DevOpsdev.azure.com/chirag127/<slug>Microsoft enterprise host
6GitFlicgitflic.ru/chirag127/<slug>Russia-hosted, relaxed DMCA
7GitGud.iogitgud.io/chirag127/<slug>Sapphire.moe GitLab, fringe-friendly
8NotABug.orgnotabug.org/chirag127/<slug>FOSS-only, Gogs, minimal admin
9SourceHutgit.sr.ht/~chirag127/<slug>Hyper-minimalist, no JS/tracking. Personal account only (no orgs)
10Gitea.com (hosted)gitea.com/chirag127/<slug>Public Gitea instance (NOT self-host)
11SourceForgesourceforge.net/p/chirag127/<slug>Legacy but free + still active
12Launchpadcode.launchpad.net/~chirag127/<slug>Canonical/Ubuntu, free public Git+Bzr
13Framagitframagit.org/chirag127/<slug>Framasoft GitLab instance, FOSS-only, French
14Disroot Gitgit.disroot.org/chirag127/<slug>Disroot Forgejo instance, privacy-first
15Pagurepagure.io/<slug>Fedora-run, RPC-based PR model

Scope of mirroring:

Skipped (and why):

1a. API documentation + landing page

Goal: every API repo has a real docs page and the fleet has a landing page.

SurfaceURLWhat it shows
Fleet landingoriz.in or api.oriz.inList of all live APIs (Bhagavad Gita link to upstream, RTO, constants, ragas, dynasties, countries-plus), feature highlights, how-to-use, “free forever” pitch
Per-API docs<slug>.oriz.in rootAuto-generated from JSON Schema + manual examples. Endpoint list, sample responses, jsDelivr alt URL, license, contribute link
API explorer<slug>.oriz.in/explorerInteractive UI: pick a code ? see JSON response live (similar to Swagger but lighter — just a <select> + fetch() + pretty-print)

Build pattern: each API repo contains a _site/ (Pages output) with:

Fleet-level landing lives in chirag127/api-fleet-landing ? deploys to api.oriz.in (or replaces the placeholder at oriz.in directly).

Stack: Astro static (matches framework-astro-react-tailwind-shadcn decision), with a single shared layout component that each API repo imports via npm or git submodule. Or keep it simple: pure HTML + Tailwind CDN per repo, no shared dep, easier to maintain than a shared package.

Implementation: GitHub Actions workflow in each repo that pushes to all 4 mirrors on every push to main. Use pixta-dev/repository-mirroring-action or hand-rolled git push --mirror per provider. Secrets (mirror PATs) stored as GH Actions org-level secrets.

Scope: PUBLIC repos only. Secrets stay in restic?Backblaze B2 + Bitwarden per existing rules. No private mirror repo.

2. Auto-start services

Goal: Hr (Headroom), hai, RTK hook, cavemem worker, plus anything else session-critical, start on user login without manual intervention. Survive reboot.

Mechanism: Windows Task Scheduler entries triggered at user logon. One entry per service. Each entry runs a small .cmd or directly the binary.

Services to wire:

ServiceWhatWhy auto-start
Headroom Docker containerHr?hai?Bedrock chain on localhost:8787the AI agent fails if :8787 is down
cavemem workerlocal SQLite worker on :37777Background memory writes need it
RTK hookPer-session via the AI agent hook (already wired)n/a — fires on demand
MCP serversPer-session via the AI agent MCP confign/a — the AI agent starts them

So actually only Headroom + cavemem truly need Task Scheduler. RTK + MCP run inside the AI agent.

Implementation: a single script C:\D\oriz\scripts\install-auto-start.cmd that:

  1. Registers a Scheduled Task Oriz-Headroom-Login running docker start headroom at user logon
  2. Registers a Scheduled Task Oriz-Cavemem-Login running cavemem start at user logon
  3. Both with “Run only when user is logged on” + “Run with highest privileges”

3. Dataset queue — build order

Verified gaps from 2026-06-28 audit (no free OSS API exists for any of these):

#DatasetSubdomainEffort estimateTime-to-shipStatus
1Indian RTO codesrto.oriz.inTrivial~2 hours? Shipped 2026-06-28 (chirag127/rto-api, 1299 codes, 35 states)
2Physics constants (CODATA 2022)constants.oriz.inTrivial — one-shot CODATA parse, ~150 constants~2 hoursQueued
3Indian classical music ragasragas.oriz.inModerate — schema exists at OpenRaga/ragajson, no hosted API; merge Hindustani+Carnatic data~1 dayQueued
4Indian dynasties timelinedynasties.oriz.inModerate — Wikipedia scrape + reconciliation across articles~1 dayQueued
5RestCountries extension (mottos, founding dates, former capitals)countries-plus.oriz.inModerate — Wikipedia infobox parse + merge with existing RestCountries shape~1 dayQueued

Build order rationale: Constants next (trivial, fastest validation of the rto-api pattern on a different dataset). Then ragas/dynasties/countries-plus in parallel if time allows.

Each ships with same pattern:

4. Sequence to execute

  1. Deploy rto.oriz.in to CF Pages now (wrangler is authed; 5-10 min)
  2. Lock auto-start rule + write install-auto-start.cmd
  3. Set up mirror automation — create org accounts on GitLab/Codeberg/Bitbucket, generate PATs, store as GH org secrets, write the reusable workflow
  4. Ship Physics Constants API (next dataset)
  5. Ship the remaining 3 datasets one by one
  6. Backfill mirrors — once §3 works, run a one-time backfill to push every existing chirag127/* and chirag127/* public repo to all mirrors

Step 1 can happen this session. §2-§6 likely need multiple sessions; this plan is the durable spec.

ItemCost
GitHub Pages / Actions?0 (2000 min/mo)
GitLab Cloud free tier?0 (free public, free 5GB)
Codeberg?0 (FOSS-only, donations-funded)
Bitbucket free?0 (5 users, 1GB LFS)
Azure DevOps free?0 (5 users public)
Cloudflare Pages?0 (100 projects free)
Cloudflare DNS?0 (unlimited)
oriz.in domainalready owned
jsDelivr CDN?0 (unlimited public-repo serving)
Total ongoing?0

Edit on GitHub · Back to index