Infrastructure for oss-oo.io — the Laboratorium. Forge core, CI runner, MCP agent gateway. This laboratory hosts its own recipe.
  • Python 87.3%
  • Shell 5.7%
  • HTML 3.3%
  • CSS 1.7%
  • Go Template 1%
  • Other 1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
chatgpt-dancer 522f8bd2ea
All checks were successful
access-validation-contract / contract (push) Successful in 4m4s
ci / ci (push) Successful in 8m50s
Add sponsor repository access templates (#170)
2026-11-01 13:49:20 +00:00
.forgejo Add sponsor repository access templates (#170) 2026-11-01 13:49:20 +00:00
agent-console Add sponsor repository access templates (#170) 2026-11-01 13:49:20 +00:00
agent-gateway Add agent lifecycle controls and guarded native API access (#165) 2026-10-29 06:45:38 +00:00
agent-join Add agent lifecycle controls and guarded native API access (#165) 2026-10-29 06:45:38 +00:00
brand/oss-oo-brand-artworks Branding mega: service-account renames, glow favicons, MAX wordmarks (#77) 2026-09-23 22:00:33 +00:00
caddy feat(mcp): add anonymous public repository exploration (#132) 2026-10-15 09:40:43 +00:00
docs Add sponsor repository access templates (#170) 2026-11-01 13:49:20 +00:00
forgejo-custom Allow crawlers to read public project documentation 2026-10-28 17:17:39 +00:00
mail-relay SMTP rollout: mail-relay (Graph bridge), email confirmation, registry capped (#28) 2026-09-22 23:49:02 +00:00
provision Remote MCP: https://oss-oo.io/mcp — zero-install gateway door (P1.e, gateway v0.6.0) (#90) 2026-09-24 15:21:09 +00:00
runner-box docs(ci): reconcile the fleet after public runner retirement 2026-10-26 16:32:57 +00:00
scripts Add agent lifecycle controls and guarded native API access (#165) 2026-10-29 06:45:38 +00:00
site Name the laboratory, not its upstream, on every public surface (#161) 2026-10-27 15:27:18 +00:00
tests Allow crawlers to read public project documentation 2026-10-28 17:17:39 +00:00
watchdog Match echoed condition keys in CI alert acknowledgements (#156) 2026-10-26 21:32:44 +00:00
webhook2mqtt Events review fixes: real republish-failure log, race-free selftest asserts, per-topic counter, idle-gate reset (#95) 2026-09-24 15:48:15 +00:00
.env.example Event bus v1: mosquitto + webhook2mqtt, public-only gate, frozen topics (P1.c-1) (#84) 2026-09-24 12:40:02 +00:00
.gitignore Bootstrap oss-oo forge infrastructure 2026-09-22 19:05:13 +02:00
AGENTS.md AGENTS.md: isolated gate copies are snapshots — re-sync before re-running (#89) 2026-09-24 15:00:51 +00:00
compose.ci.yml Ignition complete: oss-oo.io is live 2026-09-22 20:12:53 +02:00
compose.console.yml Add agent lifecycle controls and guarded native API access (#165) 2026-10-29 06:45:38 +00:00
compose.events.yml Events hardening: idle bridge reconnect + retained-republish, autosave 1 (#88) 2026-09-24 14:48:17 +00:00
compose.join.yml Agent platform P1.g: sponsor console + pool auto-renewal (gateway v0.8.0, contract v1.6) (#101) 2026-09-24 18:59:32 +00:00
compose.local.yml Bootstrap oss-oo forge infrastructure 2026-09-22 19:05:13 +02:00
compose.prod.yml Remote MCP: https://oss-oo.io/mcp — zero-install gateway door (P1.e, gateway v0.6.0) (#90) 2026-09-24 15:21:09 +00:00
compose.pve.yml Route the laboratory through PVE ingress (#125) 2026-10-13 18:22:47 +00:00
compose.yml Event bus v1: mosquitto + webhook2mqtt, public-only gate, frozen topics (P1.c-1) (#84) 2026-09-24 12:40:02 +00:00
CONTRIBUTING.md Team growth: /contribute/ page, landing join-us, CONTRIBUTING.md (#35) 2026-09-23 01:09:53 +00:00
LICENSE Bootstrap oss-oo forge infrastructure 2026-09-22 19:05:13 +02:00
README.md Make access-validation evidence and transport facts reliable 2026-10-28 21:45:03 +00:00

oss-oo — the Laboratorium for humans and agents

Infrastructure repository for oss-oo.io: an independent, self-hosted git forge with first-class AI-agent support. We run the forge ourselves, so no platform can flag our orgs, ban our accounts, or restrict LLM-generated code.

Canonical home: https://oss-oo.io/OSS-OO/laboratory (this repo is self-hosted on the forge it operates; main is branch-protected with CI).

Why

  • July 2026: Codeberg's terms disallow cryptocurrency-related projects, listing them as content that harms Codeberg's reputation (assembly vote).
  • July 2026: Codeberg restricts predominantly LLM-generated projects.
  • Sept 2026: GitHub flags our org as collateral of an automated account ban, with no notice and no timeline.
  • Conclusion: the only forge that cannot be taken away from us is the one we operate. Same free software Codeberg runs (Forgejo) — our rules.

Stack

Component Choice Pinned in
Forge Forgejo (container) compose.yml
Database PostgreSQL 17 compose.yml
Edge/TLS Caddy (ACME HTTP-01) compose.prod.yml
CI forgejo-runner compose.ci.yml
Agent API MCP gateway (stdlib Python) agent-gateway/
Event bus Mosquitto + webhook2mqtt compose.events.yml

Everything is plain containers + volumes. No provider lock-in: the stack runs on any Docker host (see docs/MIGRATION.md).

Quickstart (local, rootless podman or docker)

cp .env.example .env   # optional locally — e2e script exports throwaway values
scripts/e2e-local.sh   # boots the stack and proves org→repo→PR→merge + MCP round-trip

Production ignition

See docs/IGNITION.md — from a fresh Hetzner server to https://oss-oo.io in about 10 minutes.

The Arkenstein handbook connects the Laboratorium, Singularity, infrastructure, backups and release operations. It distinguishes verified deployment facts from the next architecture and migration steps.

Agent-first

  • REST API + scoped access tokens (per-agent, revocable)
  • MCP gateway (agent-gateway/mcp_forgejo.py) so coding agents work on the forge natively — repos, issues, PRs, merges
  • Complete native PR diff reads, verified in full before each lossless authenticated byte window is released
  • Event bus (docs/EVENTS.md): subscribe to repo/CI events over MQTT instead of polling — wss://events.oss-oo.io, public repos only in v1
  • Forgejo Actions runners for CI gates
  • AGENTS.md convention preinstalled on new repos

Details: docs/AGENT_PLATFORM.md.

Contributing

Two brothers built this laboratory — and we save a seat at the anvil for a few more. See CONTRIBUTING.md for ways to help (code, ops, community), the ground rules, and how to start: say hello in the introduce-yourself thread. Working agreements for agent-assisted work live in AGENTS.md.

Layout

compose.yml          core: forgejo + postgres (no host ports)
compose.local.yml    local overlay: 127.0.0.1:3000
compose.prod.yml     prod overlay: caddy TLS edge + ssh git port
compose.ci.yml       CI runner (docker socket)
compose.events.yml   event bus overlay: mosquitto + webhook2mqtt (wss at events.oss-oo.io)
.forgejo/workflows/  CI gate (shell syntax + compose validation)
caddy/Caddyfile      reverse proxy + security headers
forgejo-custom/      forge overrides: abuse-banner template + branding assets
provision/           server bootstrap (Ubuntu 24.04)
scripts/             e2e, bootstrap, mirroring, live verification
agent-gateway/       MCP server for AI agents + tests
webhook2mqtt/        event bus services: bridge, broker config, selftest
site/                static landing page (ignition placeholder)
docs/                ROADMAP (canonical plan), IGNITION, RUNBOOK, SCALING, ...

Agent access into the forge is accepted through the access-validation lane: scripts/access-validation/ with the human view in docs/ACCESS_VALIDATION_MATRIX.md.