Sovereign by design

Self-hosted or air-gapped. Same platform.

Cycloid runs where your data has to stay, self-hosted, air-gapped or on your own cloud. European, open, and yours to keep.

docker compose up

The real constraint

Where you run it isn't a detail

For a lot of teams the platform can’t just live on someone else’s cloud. Data has a location, the environment is hardened, and the contract has to be one you can leave. Most developer platforms treat all three as an afterthought.

Your data has a location

Regulation, residency or plain policy means some of it can’t leave the country, the building or the network. A SaaS-only platform can’t answer that.

Hardened environments reject the usual tricks

CIS benchmarks, PCI-DSS, SOC 2, air-gapped networks – none of them grant privileged containers or Docker-in-Docker to a platform that demands them.

Lock-in is a board-level risk

Proprietary state you can’t read and a vendor you can’t leave are a liability the people signing the contract have to account for.

Cycloid for your team

What sovereignty means for each reader

Run it where your rules say
it must live

The problem

On-prem, air-gapped or a specific region – the platform has to run where policy says, not where a vendor prefers.

With Cycloid

docker compose up brings the whole stack, non-privileged. Kubernetes when you need it. Upgrades on your schedule.

The outcome

You run the platform end to end, with no exception carved out for the hard environments.

Self-service that doesn't stop
at the security boundary

The problem

Locked-down and air-gapped environments usually mean no self-service at all.

With Cycloid

The same catalog, Forms and golden paths, whether you’re on a hyperscaler or behind an air gap.

The outcome

You deploy the same way everywhere, with no ticket for the secure estate.

A compliance posture you own

The problem

Data residency, compliance and vendor lock-in are yours to answer for, to auditors and to the board.

With Cycloid

European, self-hosted or sovereign, open formats, Made in France. ISO 27001 certified, B Corp.

The outcome

Sovereignty and open formats you can point to, with no lock-in to explain later.

How it works

One file brings up the whole platform

01 · Pull the images

Standard public containers, or OCI tarballs loaded into your own registry when you’re air-gapped. No custom kernel modules, no host daemons.

02 · docker compose up

Five standard, non-privileged containers come up together. That’s what lets it run under CIS, PCI-DSS, SOC 2 or a full air gap.

03 · Migrations run themselves

They apply on startup, with a lock so concurrent instances wait rather than collide.

04 · Health check clears traffic

The instance serves only once migrations confirm. If one fails, it holds, and you go back to the previous image tag.

05 · Upgrade when you choose

No forced updates. docker compose pull takes you to the new version, with a dry run and a pre-migration backup hook.

It’s the same product on every tier. Docker Compose for an evaluation or a small team, Kubernetes with a Helm chart for production, or our SaaS if you’d rather we ran it. The images you self-host are the ones we run. Air-gapped really means air-gapped: the licence verifies offline against a bundled key, and the instance serves its own documentation. Tiers and upgrades are in the self-hosting docs.

One file brings up the whole platform

Open and yours

Open formats. Zero lock-in.

ISO 27001

Certified

B Corp

95 score at B Lab

Made in France

European by design

Open source

TerraCognita and InfraMap

Does this instance call out to a hosted model?

Cycloid

No. This instance is configured against your inference server at inference.internal, and the docs I answer from came with your release.

Working with your assistant

Your assistant runs on your hardware, too

Does the assistant get its own permissions?

No. There’s no service account and no elevated assistant role. If you can’t deploy to production, neither can the assistant you’re talking to, in Cycloid’s own assistant or any compliant MCP host.

The assistant runs in-process inside the application server. No extra container, no hosted control plane, no new network flow. Self-hosted, you point it at any endpoint that speaks the standard chat-completions API, including a local inference server on your own hardware.

Its documentation answers come from an index built with the release and packaged inside it. So an air-gapped instance answers from the docs that match the software it’s running, and nothing leaves the network.

Frequently asked questions

Yes. Nothing at runtime depends on Cycloid or the internet. Images load from OCI tarballs into your own registry, the licence checks offline against a bundled key, and the docs are served by the instance itself.

Yes. One product on three tiers: Docker Compose, Kubernetes or our cloud. The SaaS runs the same images we hand you, so you can move between tiers later without changing platforms.

No. Every container in the platform stack runs non-privileged. No Docker-in-Docker and no elevated kernel capabilities, which is why hardened environments can actually run it as it comes.

Wherever you put it. Your servers, your cloud, your region. Self-hosted or air-gapped, Cycloid never holds a copy, and your IaC stays in Terraform, Ansible and Helm, formats you already own.

Run it where it has to run

Self-hosted, air-gapped, or on your cloud. Tell us your constraints and we’ll show you the deployment that fits, in twenty minutes.