Self-host / On-prem
Last updated 2026-06-02T00:00:00.000Z
Two paths, one stack
The same code runs in our SaaS and inside your datacentre. What differs is who operates the cluster and how the license is issued. Pick the path that matches your constraints.
Read the source for diligence
The full corresponding source is available under AGPL-3.0-or-later for your security team’s review on request — email legal@feder8d.ai (under NDA where appropriate). You can review the implementation, run it locally for evaluation, and verify our claims against the code. The AGPL grants you the right to run it — including in production — as long as you meet the AGPL’s terms (notably the Section 13 network-copyleft obligation). For production support, a managed install, or a commercial license that lifts the copyleft obligation, see the Dedicated On-Prem option below.
Run it in production (Dedicated On-Prem)
You’re free to self-host under the AGPL. If you’d rather not operate it yourself — or you need a commercial license, an SLA, and hands-on help — a Dedicated On-Prem contract covers that. We do this sales-led for the first 3–5 customers so we can hand-tune the install for your environment, K8s flavour, and compliance constraints. Email sales@feder8d.ai.
What a Dedicated On-Prem install includes
Each install is bespoke for v1. The standard deliverables once you sign:
- Helm umbrella chart pre-configured with
mode: on_prem, tuned for your environment - OCI image bundle for every service (orchestrator, tenant-api, model-gateway, operator, console, workers) plus bundled Caddy, Postgres, Qdrant, Redis, MinIO
- Pre-pulled model weights for the entitled models (Qwen 2.5 7B, Mistral-Small 24B, BGE embedding + reranker)
- A signed license JWT scoped to your tenant, renewed monthly
- Pre-flight + install session — half a day with your ops team, on Zoom or on-site
- 30-day Slack Connect support with our engineering team after install
- Restore drill scripts for testing recovery against your backup target
- A named contact at feder8d for the duration of the contract
Run it on a single box (small teams)
Don’t have a Kubernetes cluster — or just want feder8d on one machine in the office? The same monthly license runs on a single box (a Mac mini, a Linux NUC, a workstation) via a Docker Compose install. No cluster, no cloud.
- What you need: Docker, and Ollama on the host for the LLM. On an Apple-Silicon Mac the model runs natively on the Metal GPU (Docker can’t reach the Apple GPU, so Ollama stays on the host); on a Linux box with an NVIDIA GPU it runs there.
- What you get: the full platform — console, RAG, chat, ingestion — with real email + password login and the same Ed25519 license gate. Your documents, embeddings, and chats never leave the box.
- Install: extract the single-box bundle and run
./install.sh. It generates secrets, pulls the models, brings the stack up, and prints your first-login credentials. One command, a few minutes. - Sizing: an M-series Mac mini (16–64 GB) comfortably serves a small team on small/medium models (Llama 3.1 8B, Qwen 2.5 7B). Outgrow it and you move to the cluster install below — same license, no migration.
Good fit for a clinic, a law firm, or a department that wants sovereign AI on a box in the corner. Ask for the single-box bundle when you start your trial.
Prerequisites your team needs to have ready
Before the install session:
- Kubernetes 1.28+ — EKS / GKE / OpenShift / k3s all supported
- A storage class that supports
ReadWriteOnce(for Postgres + Qdrant + MinIO) - Internal DNS for
feder8d.<your-domain>plus a wildcard subdomain - A wildcard TLS certificate from your internal CA, OR Let’s Encrypt access
- An internal container registry we can push the OCI images into
- An SMTP relay endpoint for outbound email (email verification + password reset)
- For production GPU inference: at least 1× GPU node with ≥48 GB VRAM
(or CPU-only with
llama.cppfallback at lower throughput) - A backup target — S3-compatible bucket of your choice (MinIO works)
Air-gapped installs
Available on request for fully-disconnected environments. Bundle is shipped on encrypted media (no internet egress at install time). Quote and timeline depend on your specific environment — typically 1–2 weeks longer than a connected install.
Point your domain at the install
feder8d serves everything under one hostname you choose — you own the DNS and the TLS. Three steps:
- Pick a hostname for the install (e.g.
ai.yourcompany.com) and set it in your values ascustomerHosts.consoleHost(the cluster bundle) orFEDER8D_CONSOLE_URL(the single-box install). The bundled Caddy edge serves the console, API, and auth under that host. - Create the DNS records. For the cluster bundle, add the apex plus a
wildcard —
feder8d.yourcompany.comand*.feder8d.yourcompany.com— pointing at your ingress load balancer. For the single box, point one A/AAAA record at the box’s IP (front it with a reverse proxy for the console, API, and auth ports — see the bundle README’s Caddyfile example). - Terminate TLS. Either supply a wildcard certificate from your internal CA, or let the bundled Caddy fetch and auto-renew a Let’s Encrypt certificate (it needs outbound 443 to the ACME endpoint, or your internal ACME/step-ca). No certificate wrangling after that — Caddy renews on its own.
Nothing phones home: the license is verified locally, and your hostname is served entirely from your own edge. The full DNS/TLS checklist ships in the bundle README and is walked through in the install session.
Running on a single box (Mac mini / NUC)? You don’t need a public IP
For a box in the office, pick a reachability model — you only need a public static IP if you genuinely want feder8d on the public internet (usually you don’t):
- LAN / VPN (recommended, fully private): give the box a static LAN IP, add
an internal DNS record (
ai.company.internal → 192.168.1.50), and users on the LAN or your VPN reach it. TLS via a DNS-01 Let’s Encrypt challenge (proves ownership by DNS TXT — no inbound ports) or your internal CA. - Tailscale / WireGuard mesh:
tailscale servegives the box an HTTPS hostname with a valid cert — no public IP, no port-forwarding, works off-site. - Public: a static IP + port-forward, or an outbound Cloudflare Tunnel (a public hostname with no static IP and no open ports).
License terms
The platform code is AGPL-3.0-or-later. Modifications you run as a network service
trigger AGPL Section 13 — your modified source must be available to your users. The
Tenant Console exposes a “Source · AGPL-3.0” link that points at our source-request
channel by default; configure NEXT_PUBLIC_SOURCE_URL to point at your own fork’s
source (or your own request channel) if you’ve modified the code.
For deployments where AGPL’s network-copyleft clause is incompatible with your needs (typical for embedding feder8d inside a closed-source SaaS product you sell), the commercial license is available. It’s included in every Dedicated On-Prem and Dedicated Managed contract by default. For other commercial-license enquiries email legal@feder8d.ai.
Renewal
Renewal is a new license JWT, dropped at /etc/feder8d/license.jwt. The license watcher
hot-reloads — no restart needed. New OCI images for the version you renewed against are
delivered with the renewal if you’ve moved up a major version.
Where to go next
- Public API reference
- Security posture
- Pricing — Dedicated tiers + paid POC