The back office you own,and extend in an afternoon.
Octarq is a self-hosted operations backend for indie hackers, one-person companies and small AI-native teams. Short links, custom-domain email and DNS ship as first-class plugins — then you add your own the same way the core is built. Every capability is drivable by your AI agent over MCP.
git clone https://github.com/octarq-org/octarq.git && cd octarq
cp .env.example .env # set OCTARQ_SECRET_KEY and OCTARQ_ADMIN_PASSWORD
docker compose up -dWhy Octarq
Everything your operations stack needs, under one binary.
Zero external daemon sprawl. Production short links, custom-domain email, and DNS automation built on a modular Go plugin architecture. Every capability is accessible through the browser dashboard and agent-native over MCP.
Bundled plugins
Useful on minute one
Each one is a plugin.Plugin + UIPlugin — the exact seam your own plugins use, so the bundled features double as reference implementations.
01
Links
Custom and random slugs, geo/device/OS/language routing, expiry and click limits, time-series analytics with bot detection, UTM builder, QR codes.
02
Mail
Inbound mail over Cloudflare Email Routing — no port 25, no spam daemons. Catch-all provisioning, a full read/reply/send client, raw .eml export.
03
DNS
Cloudflare and DNSPod CRUD, subdomain presets for short-link and email auth (MX/SPF/DKIM), native comment mapping.
04
Workspaces & RBAC
Isolated multi-tenant orgs, server-enforced roles, invites and onboarding, hashed bearer API tokens.
Agent-native over MCP
Every capability, one MCP server away.
Octarq ships a built-in MCP server (octarq mcp, over stdio and SSE) so assistants like Claude Code can read and query your instance. Every tool is read-only and scoped to the caller's own workspace.
A plugin implementing the optional MCPProvider interface exposes its own tools to every connected agent. Write a plugin, and your agent can drive it.
FAQ
Answers, dev to dev
What is Octarq, exactly?
A self-hosted operations backend: short links, custom-domain email, DNS and multi-tenant workspaces, each shipped as a first-class plugin behind the same seam you'd use to add your own.
What does "single Go binary" mean in practice?
No CGO, SQLite by default, the dashboard is go:embed'd into the binary. Docker Compose or a bare binary — either way, one process to run and one to back up.
How do I write a plugin?
Implement plugin.Plugin on the Go side and, if it needs a dashboard page, UIPlugin with a React page — the exact seam the bundled plugins use. Read the guide →
Does the MCP server allow writes?
The built-in tools read and export, and each one is scoped to the caller's own workspace. There is no raw-SQL tool: an arbitrary query can't be confined to one workspace, so it isn't offered. A plugin can expose its own write tools via MCPProvider if it chooses to.
How is Octarq architected?
Octarq is an original, modular Go codebase designed from scratch for operational autonomy. Every core feature (links, domains, email, tenancy) implements the same public plugin seam that you use to write custom extensions.
Is Octarq free and open source?
Yes. Octarq Core is licensed under MIT and free forever. Everything you need to deploy, operate, and extend a self-hosted instance is included in the open-source repository, with no hidden telemetry or proprietary lock-in.
Run it in an afternoon.
Clone it, set two environment variables, and it's up. Extend it whenever you're ready.