Our Code — Four Forges, One Source
Forgejo is authoritative; GitHub, GitLab, Codeberg and a GRASP server carry copies you can verify independently. Clone any Rug Munch Media repository.
Where the code lives
Commits land on Forgejo first. The mirrors are push mirrors owned by the same organisation, not personal forks, and they receive the same refs on a schedule.
| Transport | Role | Address |
|---|---|---|
| Forgejo | Canonical (self-hosted) | git.rugmunch.io/RugMunchMedia |
| GitHub | Push mirror — org-owned | github.com/Rug-Munch-Media-LLC |
| GitLab | Push mirror — org-owned | gitlab.com/rug-munch-media-group |
| Codeberg | Push mirror — org-owned | codeberg.org/RugMunchMedia |
| Grasp | Fourth transport — nostr:// |
git.cryptorugmunch.com |
In a local clone the names are origin for Forgejo, github, gitlab and
codeberg for the mirrors. Mirrors are one-way: review happens on Forgejo, and a
pull request opened on a mirror is redirected rather than merged.
git clone https://git.rugmunch.io/RugMunchMedia/<repo> # HTTPS
git clone ssh://git@git.rugmunch.io:2222/RugMunchMedia/<repo> # SSH
git clone nostr://npub1e97559tn2j6j02shalmn5x6xv5jt8ejlclh6sta8nln0n55whwtszyrqud/git.cryptorugmunch.com/<repo>
What a commit touches
One push, five records. The last one is signed and outlives every host.
- commit
- Forgejo
- mirrors
- NIP-34 30617
- relay
Verify the transports agree
Mirrors run weekly, so a lagging mirror is a schedule, not a fork — compare commit hashes to tell one from the other.
Clone canonical
Forgejo is the reference tree. Nothing else is authoritative.
git clone https://git.rugmunch.io/RugMunchMedia/<repo>
Read the hash
The full SHA of the tip, not the short form.
git -C <repo> log -1 --format=%H
Compare a transport
Same SHA on a mirror means the copy is current.
git ls-remote https://github.com/Rug-Munch-Media-LLC/<repo> refs/heads/main
The same check works over nostr:// against the GRASP host.
Repositories
48 repositories in the organisation, 14 of them public. Add .git to any
canonical link to clone over HTTPS.
| Repository | Description | Source |
|---|---|---|
| rmi-backend | FastAPI crypto intelligence — 466+ routes, ~422k curated wallet labels; scanner engines in rugmunch-scanner | ↗ |
| rmi-frontend | Nuxt 4 + Vue 3.5 + React 19 dual-stack terminal-grade dashboard | ↗ |
| pryscraper | Multi-source crypto intelligence crawler — FastAPI + CLI + MCP | ↗ |
| walletpress | Python backend + WordPress plugin for crypto payments | ↗ |
| degenfeed-web | DegenFeed — the social feed of web3. Nostr, Mastodon, Bluesky aggregator | ↗ |
| rugmunchbot | Telegram bot — /scan, /portfolio, /chart, /watch commands | ↗ |
Infrastructure, site and payments
| Repository | Description | Source |
|---|---|---|
| fleet-infra | Nginx, systemd, Docker Compose, scripts — the glue | ↗ |
| fleet-template | Scaffold for new repos — Nuxt 4 + Vue + shadcn-vue, CI/CD, tests | ↗ |
| standards | Engineering playbook, guardrails, design system (private) | — |
| cryptorugmunch-com | This Astro site — the page you are reading | ↗ |
| x402-gateway | x402 payment/settlement layer for paid APIs | ↗ |
| rmi-mcp-x402 | MCP server — AI agents query crypto data via x402 payments | ↗ |
Archived: rugcharts — real-time crypto price charts; rugmaps — visual wallet relationship and token flow maps.
Radicle: archive only
We previously seeded a Radicle mirror and stopped publishing on 2026-09-27:
Radicle 1.x sends private repository content in cleartext and its peer
authentication can be impersonated, with the fix arriving in a wire-incompatible
2.0. Publication is permanent and cannot be recalled, so we stopped propagating
it. A read-only browser of the archive remains at
code.cryptorugmunch.com — there is no
rad:// clone to offer.
Every public repository is announced as a signed NIP-34 event, so the record survives any one of these hosts. Keys, relays and verification commands are on Nostr — Signed Repository Announcements.
One canonical history, three mirrors we control, one signed record no host can revoke.