New — Claude Code vibe-coding sidecar is live on every dev branch.See it →
self-hosted odoo · v15 → v19 · ce + ee
Ship Odoo like you ship code.
Branch, build and deploy fully isolated Odoo instances in minutes — with automated backups, a web shell, custom domains and an AI sidecar that writes modules for you. No servers. No IPs. No ops.
Every project gets production, staging and development branches — exactly like the platform you already know, minus the servers you don’t want to babysit.
01 / production
Push to deploy
A commit triggers a build: clone, patch the image with your addons, run the test battery, roll the deployment. Real emails, real backups.
02 / staging
Rehearse safely
A neutralized copy of production data with the mail catcher on — so nothing escapes. Drag a branch between stages to promote it.
mailcatcherneutralized
03 / development
Build from scratch
Demo data, unit tests, a web shell and the AI sidecar. Short-lived and garbage-collected so you never pay for stale environments.
demo dataweb shell
// LAUNCH SEQUENCE
Your first instance, in four steps.
Pick a version, a plan and a domain, and watch it deploy — an isolated namespace, zero ops.
Quota, default-deny networking, restricted pods and RBAC — applied before Odoo boots.
02
Backups to object storage
DB + filestore + config, rotated 7d/4w/3m. Zero-egress restores cost nothing in bandwidth.
03
Web shell
A sandboxed terminal, container-only. Never the node, never the provider.
04
Custom domains
CNAME and go. TLS auto-issued. No instance is ever reachable by IP.
05
Real-time logs
Build and deploy logs streamed live over WebSockets as they happen.
06
Git push to deploy
Webhooks, deploy keys and submodules. Push a commit, get a build.
07
Mail catcher
On for dev and staging so test emails never reach a real inbox. Production sends for real.
// VIBE CODING SIDECAR
Describe the module. Ship the module.
Every dev branch runs a coding agent right beside your addons. It enters plan mode, asks the questions a business analyst would, writes the module across files, and pushes to staging. Bring any model — Claude Code, Gemini or Codex.
plan mode123 odoo skillsMCP groundingbring-your-own-key
dev · sidecar · /workspace/dev
$ claude "add a loyalty points field to res.partner"
◇ entering plan mode…
? which model inherits the field — res.partner (contacts)?
✓ res.partner · loyalty_points: Integer
→ writing models/res_partner.py
→ writing security/ir.model.access.csv
→ updating __manifest__.py
✓ 214 tests passed · pushed to staging #77
// THE HONEST COMPARISON
Odyssey vs odoo.sh vs your own VPS.
Same workflow you love, minus the constraints — and none of the 2 a.m. server babysitting.
Odysseyodoo.shown VPS
Branch → build → deploy workflow✓✓manual
Community edition hosting✓enterprise only✓
AI dev sidecar — bring any model✓vendor-locked—
Zero-egress backups (€0.04/GB)✓bundledDIY
Fixed margin, no renewal hikes✓—n/a
Sandboxed web shell✓✓raw SSH
Server patching & ops on you——✓
odoo.sh comparison based on publicly documented features. Odoo and odoo.sh are trademarks of Odoo S.A. — Odyssey is not affiliated.
// PRICING
Longer term, lower rate. No renewal hikes.
Priced on real infrastructure with a fixed margin. The base cost never rises when you renew.
Prices in EUR, billed per instance — “from” price at the 24-month term. Add-ons: backups €0.04/GB · extra domains · autoscaling. Enterprise edition requires your own Odoo subscription. First dev instance free.
// ISOLATION BY DEFAULT
Your tenant never meets its neighbours.
Every instance is a hardened Kubernetes namespace — quota, default-deny networking, restricted pods and a sandboxed shell — provisioned before Odoo ever boots. No provider names. No raw IPs. Ever.
✓ResourceQuota + LimitRange before boot
✓Default-deny cross-namespace networking
✓Restricted Pod Security Admission
✓Sandboxed shell — cap-drop ALL, non-root
✓Cloudflare-only ingress, no public IPs
✓Every admin override is audit-logged
// FROM THE FLEET
Teams that stopped babysitting servers.
“
“We moved 4 client databases in a weekend. The staging-with-mailcatcher setup alone paid for itself.”
K
K. Haddad
Odoo agency lead
“
“Half the price we modelled for odoo.sh, and we kept Community edition. The margin math is refreshingly public.”
S
S. Lindqvist
Ops lead, retail group
“
“I described a custom module to the sidecar on Friday. It was on staging with tests by lunch.”
M
M. Oyelaran
CTO, logistics SaaS
// QUESTIONS
Before you ask.
Do I need an Odoo Enterprise subscription?+
Only for Enterprise instances — bring your own subscription code and we fetch the enterprise addons for you. Community instances need nothing, from Odoo 15 to 19.
Can I migrate from odoo.sh or my own server?+
Yes. Upload a database dump and filestore, connect your addons repo, and we rebuild the instance. A guided checklist walks you through it.
Where is my data hosted?+
In EU data centers, behind Cloudflare. Every instance is a hardened, isolated namespace and is never reachable by raw IP.
How does backup pricing work?+
Optional backups cost a flat €0.04 per GB per month on zero-egress storage. Restores and downloads are always free — your data is yours.
What happens if I cancel?+
Export everything, any time: database dump, filestore and your repositories. No lock-in, no exit fees.
Is the AI sidecar included?+
It runs on every dev branch. Bring your own key for Claude Code, Gemini or Codex — or use metered platform credits.
Set sail with Odyssey.
Your first development instance is free. No card, no cloud console, no YAML.