Skip to main content
Now in general availability

Enterprise orchestration.
No Kubernetes required.

Odysseus is a fully managed container orchestration platform. Sign up, connect your nodes with a one-liner, and get autoscaling, canary deployments, AI-powered operations, and CVE scanning — without the Kubernetes complexity.

Fully managed control plane · One-liner node setup · No dedicated platform team

2–3 min
Deployment time (down from 30–60 min)
~50 MB
Control plane RAM, measured in production
Instant
Rollback on failure (vs 15–30 min manual)
0
Dedicated platform engineers required
The problem

Stuck between too simple
and too complex?

Managing 50 or 100 containers shouldn't require a dedicated platform team. But it shouldn't be held together with shell scripts either.

Docker Compose hits its limits

No autoscaling, no high availability, no rolling deploys. One bad push can take down your entire service — and manual recovery takes the team away from shipping.

Kubernetes is overkill

A documented 2 GB minimum per machine, months of ramp-up, 1–2 dedicated engineers to maintain it. At this size you're paying an enterprise tax for features you'll never fully use.

Every deployment is a risk

No canary releases means bugs reach 100% of your users instantly. No audit trail means you can't answer "what changed and when?" for compliance reviews or post-mortems.

❌ Without Odysseus
  • 30–60 minutes of manual deployment steps
  • A bad deploy takes down 100% of users
  • Scale manually when traffic spikes hit
  • No audit trail — "who changed that?" is unanswerable
  • Secrets live in environment variables or bash scripts
  • Recovery from failure takes 15–30 minutes
✅ With Odysseus
  • 2–3 minute automated deployments, every time
  • Canary releases expose bugs to 10% before full rollout
  • Prometheus-driven autoscaling, no manual intervention
  • Complete audit trail with actor, timestamp, and outcome
  • Vault-backed secrets on tmpfs — never in env vars
  • Instant automated rollback on health check failure
How it works

Sign up, connect, deploy

Odysseus is fully managed. Sign up, run a one-liner to connect your nodes, and start deploying — the control plane is on us.

odysseus.delta-telematics.ca/nodes
Nodes view showing 2 connected nodes with health status, VPN, scheduling, containers, CPU and memory metrics
Connect your infrastructure in one command. After signing up, run a single install script on your server. The Odysseus agent installs automatically, connects via encrypted WireGuard VPN, and your node appears in the dashboard — ready for deployments.
Capabilities

Everything you need.
Nothing you don't.

Built for teams that have outgrown Docker Compose but don't want to build a platform team just to run their containers.

Docker Compose syntax you already know

Extend your existing docker-compose.yml files with an x-odysseus block. No new DSL to learn — your team ships on day one.

# my-app.yaml version: "3" services: web: image: myapp:v2.1.0 x-odysseus: replicas: 3 scaling: min: 2 max: 10 metrics: - type: cpu target: 70 canary: weight: 10 auto_promote: true
✓ Compatible with existing Compose files

Multi-network container attachment

Attach containers to multiple Docker networks simultaneously — a key limitation of Nomad and many other orchestrators that Odysseus solves natively.

Four-tier RBAC

Admin, Operator, Developer, and Read-only roles out of the box. Control exactly who can deploy, scale, or just observe — with JWT + mTLS authentication.

4
Access roles
mTLS
Inter-component auth

Lightweight agent, zero overhead

The Odysseus agent is a single Go binary that runs on your nodes — about 28 MB of resident memory, measured on live production and development nodes. Installs in seconds, auto-upgrades with health-check-gated rollback.

~28 MB
Agent RAM, per node
<1%
CPU at idle

Automated incident response

Odysseus detects container crashes, OOM kills, restart loops, and health check failures in real time — then executes remediation automatically. Self-healing infrastructure without on-call fatigue.

8
Incident types
6
Auto-remediation actions

Built-in CVE scanning

Dual-backend vulnerability scanning with Trivy and Grype. Define policies to block deployments with critical CVEs automatically. Get patch recommendations with severity-based prioritization.

✓ Policy-based deployment gating
AI-Powered Operations

Meet Athena — your AI ops assistant

Deploy, troubleshoot, and manage infrastructure through natural language. Athena connects to 61 orchestration tools with RBAC-scoped access and safety guardrails.

Natural language deployments
"Deploy n8n with 2 replicas on n8n.my-domain.com"
Intelligent troubleshooting
"Why is redis-cache restarting?" — Athena investigates logs, metrics, and events
Operations at scale
"Scale web-frontend to 8 replicas" — with confirmation prompts for safety
Security-first
RBAC-scoped access, secret redaction, rate limiting, full audit trail
Athena AI — Cluster Overview
Athena answering 'How is everything looking?' with full cluster health status — 7 of 13 deployments running, 6 stopped, using cluster_health and deployment_list tools
61 tools across 11 categories: Deployments, Containers, Canary, Cluster, Config, Backup, Debug, Network, Volumes, Audit, and SRE. Each tool is permission-checked against your RBAC role before execution.
Autonomous Incident Response

SRE Orchestrator — self-healing infrastructure

Detect container crashes, OOM kills, health check failures, and performance anomalies in real time. An integrated LLM diagnoses root causes and executes safe remediations — with graduated rollout and human approval guardrails.

AI-powered diagnosis
The LLM analyzes logs, metrics, and container state to identify root causes — not just symptoms
Graduated rollout
Start in observe-only mode, graduate to low-risk auto-execution, then full automation — at your pace
Safety guardrails
Blacklist services, cap commands per incident, block dangerous patterns, require approval for high-risk actions
Real-time updates
WebSocket-powered live incident feed with Slack and email notification routing by severity
SRE Automation — Overview
SRE Automation dashboard showing orchestrator health status, incident statistics (23 total, 18 resolved, 4.2m avg resolution), and recent incidents with severity badges and real-time status updates
7 incident categories (health, performance, availability, security, configuration, resource, network) detected from Alertmanager, Consul, manual reports, and Athena. Each incident flows through AI diagnosis, risk-assessed remediation, and configurable approval gates.

LLM-powered analysis

Multi-turn AI analysis with configurable timeouts, token limits, and custom system prompts. The LLM investigates, diagnoses, and proposes commands — each tagged with a risk level.

3
Risk levels (LOW / MED / HIGH)
Multi-turn
Persistent investigation

Configurable guardrails

Set max commands per incident, cooldown periods, dangerous command patterns, and per-service blacklists. Control which severities and risk levels can auto-execute.

RBAC
sre:configure & sre:approve
Per-service
Blacklist protection

Full incident lifecycle

Incidents progress through open, in progress, awaiting approval, resolved, failed, or escalated — with deduplication, correlation, and resolution tracking (fixed, dismissed, external, no action needed).

6
Incident statuses
4
Resolution types
Comparison

The right tool at 50–100 containers per node — and up from there

Odysseus is purpose-built for the point where Docker Compose breaks down and Kubernetes is more machinery than the job needs — and it keeps going from there.

Capability Docker Compose Odysseus Kubernetes
Autoscaling Prometheus-driven Complex setup
Zero-downtime deployments
Canary deployments Auto-promote + rollback Via Istio/Argo
Instant rollback
RBAC 4 built-in roles Complex RBAC
Audit trail Built-in Via add-on
Vault secret injection tmpfs-mounted Via sidecar
Geographic data residency Placement filter, by ISO country or region[1] Via node affinity on custom labels
Multi-network containers Limited Native Via CNI plugin
Control plane RAM None — CLI only 47–65 MB measured 2 GB minimum per machine[2]
Per-node agent RAM None — CLI only ~28 MB measured 275 MB measured on K3s; 574 MB – 1.9 GB reserved by managed providers[3]
Learning curve Hours Days Months
AI operations assistant Athena (61 tools)
CVE scanning Trivy + Grype Via add-on
Auto-incident response AI-powered SRE Via add-on
Dedicated platform staff 0 0 1–2 engineers
Containers per node 1–20 containers 50–100+ containers[4] — 82 measured; the platform total scales with the number of nodes 110 pods per node[4] — a pod holds one or more containers

How these numbers and claims were arrived at

  1. Geographic data residency is a placement filter, and it ships switched off. A deployment carries odysseus.io/data-residency-country — an ISO 3166-1 alpha-2 code such as CA or DE — or odysseus.io/data-residency-region, which names an operator-defined set of those codes, or odysseus.io/blocked-countries. The scheduler compares each against the node’s own country and region labels before it places anything, and a node that does not satisfy the requirement is dropped from the candidate set — so the deployment cannot land outside its permitted geography, rather than being found there afterwards. It is switched on per installation in the control plane’s configuration and is off by default; the regions are the operator’s own definitions, not ours. Kubernetes can express the same constraint: it ships topology.kubernetes.io/region and topology.kubernetes.io/zone as well-known node labels, and node affinity to select on them, but no country or residency label of its own — so residency there is assembled from custom labels and affinity rules — kubernetes.io. The difference is where the concept lives, not whether it can be done.
  2. Odysseus memory figures are measured, not modelled. Both are resident memory (RSS) of the running process, sampled over a 14-minute window on 20 August 2026 across two live installations: production (control plane 47–51 MB over 19 samples, node agent 26–28 MB) and development (control plane 49–64 MB over 18 samples, node agent 26–28 MB). The control plane runs once per installation; the agent runs once per node. The control plane publishes the figure itself as process_resident_memory_bytes on its Prometheus /metrics endpoint, so it can be checked directly rather than taken on trust. We quote RSS rather than docker stats because the latter includes reclaimable page cache, which on a freshly started container reads several times higher without any of it belonging to the orchestrator. The Kubernetes figure is the documented minimum in the upstream kubeadm install guide: “2 GB or more of RAM per machine” — kubernetes.io.
  3. Per-node comparison. Upstream Kubernetes publishes no default reserve for its node agents — kubeReserved and systemReserved both ship empty — so there is no single official number to quote. The profiled figure is SUSE’s published K3s resource profiling, which puts the Kubernetes components on an agent (worker) node — its words, “the kubelet and k3s agent” — at 275 MB on an Intel 8375C, from 95th-percentile readings at steady state — docs.k3s.io. K3s is a single merged binary with its own embedded runtime, so this is a floor for upstream Kubernetes running the same components as separate processes, not an equivalent. The reserved figures are capacity that managed providers withhold from every worker node before any application container is scheduled, computed from their own published formulas: AWS EKS reserves (11 × max-pods) + 255 MiB (574 MiB on an m5.large, which supports 29 pods) — docs.aws.amazon.com; Google GKE reserves 25% of the first 4 GiB and 20% of the next 4 GiB plus 100 MiB (≈1.9 GiB on an 8 GiB node) — cloud.google.com. Reserved capacity is an allowance the scheduler withholds, not measured consumption; we label it as such because the two are not the same thing.
  4. Container counts are per node, and ours is a statement of fit, not a cap. Odysseus is built for the range where Docker Compose runs out of road and Kubernetes is more machinery than the job needs. The largest figure we have actually run is 82 containers across two tenants on a single node, in our own development installation, counted with docker ps --filter label=odysseus.managed=true on the date above; our production platform node carries 4, which is a small node rather than a limit. A platform total is that per-node figure across however many nodes a control plane manages — an architectural consequence, not something we have measured at fleet scale, so we publish the per-node number we have demonstrated and no fleet number we have not. The Kubernetes figure is that project’s own documented ceiling for a supported cluster: “No more than 110 pods per node”, stated alongside “No more than 5,000 nodes” and “No more than 300,000 total containers” — kubernetes.io. The two columns do not count the same unit — Kubernetes limits pods, a pod holds one or more containers, and we count containers — so read them as adjacent rather than interchangeable. We do not convert between them, because the ratio depends on how the pods are built. Managed distributions cap lower again: AWS EKS derives the per-node pod cap from the machine’s network interfaces rather than from that documented figure, and its own worked example is 29 pods on a two-vCPU machine — the document cited in note 3.
Pricing

Simple, transparent pricing

Base fee + per-node pricing that scales with you. Start free, upgrade as you grow.

Monthly
Annual Save up to 20%
Community
$ 0
Free forever

For indie developers, home labs, and evaluation use.

  • Up to 3 nodes
  • 1 user
  • Full Docker Compose compatibility
  • WireGuard VPN mesh
  • Basic Prometheus metrics
  • 2-tier RBAC
  • Community support
  • No Athena AI
  • No CVE scanning
Get started free
Starter
$ 10
/month base fee
+ $10 per node/month

For solo developers and tiny teams running small production workloads.

  • Up to 5 nodes
  • Up to 3 users
  • Athena AI (100 queries/mo)
  • Weekly CVE scanning
  • Canary deployments
  • Vault secret injection
  • Basic SRE automation
  • 30-day audit trail
  • Email support (48h SLA)
Start free trial
Enterprise
$ 99
/month base fee
+ $20 per node/month

For multi-site organizations with compliance and custom SLA needs.

  • Unlimited nodes
  • Everything in Pro
  • Multi-datacenter federation
  • SSO / SAML / LDAP / OIDC
  • 1-year audit trail
  • SOC 2 & ITSG-33 compliance
  • Volume discounts (50+ nodes)
  • Dedicated account manager
  • 1h SLA + 24/7 on-call support
Contact sales
14-day free trial on all paid tiers — no credit card required
Cancel anytime · Save ~20% with annual billing
Free migration support from Docker Compose, Swarm, or K8s
99.9% uptime SLA on Enterprise

Start orchestrating
in under 10 minutes.

Sign up, connect your first node, and deploy — all in under 10 minutes. No Kubernetes expertise, no dedicated platform team.

No credit card required · 14-day free trial · Cancel anytime