Infrastructure for oss-oo.io — the Laboratorium. Forgejo core, CI runner, MCP agent gateway. This laboratory hosts its own recipe.
- Python 29.1%
- HTML 21.4%
- Shell 18.1%
- CSS 17.4%
- Go Template 14%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| agent-gateway | ||
| caddy | ||
| docs | ||
| forgejo-custom | ||
| provision | ||
| scripts | ||
| site | ||
| .env.example | ||
| .gitignore | ||
| AGENTS.md | ||
| compose.ci.yml | ||
| compose.local.yml | ||
| compose.prod.yml | ||
| compose.yml | ||
| LICENSE | ||
| README.md | ||
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 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/ |
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.
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 - Forgejo Actions runners for CI gates
AGENTS.mdconvention preinstalled on new repos
Details: docs/AGENT_PLATFORM.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)
.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
site/ static landing page (ignition placeholder)
docs/ ROADMAP (canonical plan), IGNITION, RUNBOOK, SCALING, ...