Skip to content

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.

your server
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 -d

Why 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.

Single-Binary
Go + SQLite + Embedded UI
Ops Infrastructure
Links · Domains · Email
Extensible Core
Plugin Seam + Native MCP
Octarq
unified runtime · full control

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.

Your agent
Claude Code, or any MCP client
MCP server
list_linkslist_mailboxeslist_domainsexport_data
Links
Mail
DNS
Workspaces & RBAC
SQLite · single binary

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.

Type to search…

↑↓ navigate↵ selectEsc close