Your own Postgres, not a shared one
A dedicated PostgreSQL 16 container on your project server with no separate fee, not a cluster shared with other customers.
Odoo 18 Community, the open source ERP, deploys here with its own PostgreSQL 16 onto a dedicated server Selfhost.dev provisions, secures and runs, across six locations on three continents.
Odoo Community on a server you control instead of Odoo's SaaS: the full ERP, your database and your file store. The software is free; you pay only for a server that arrives configured to run it.
Teams who want their ERP data on their own server, need custom modules Odoo Online forbids or pay a per-user bill that grows with every hire.
From the first paid user, because a flat server rate beats a per-user subscription. Straight away if you need custom addons, which Odoo Online does not permit.
A dedicated PostgreSQL 16 container on your project server with no separate fee, not a cluster shared with other customers.
odoo-web-data holds the filestore (every attachment and PDF), odoo-extra-addons your custom modules (on the addons path from first boot), postgresql-data the database. All three survive a redeploy.
Your team, in the browser
TLS and routing
Odoo 18
PostgreSQL 16
Filestore and addons
Master password
| Component | Version | What it does |
|---|---|---|
| Odoo | odoo:18.0-20260817 | The ERP application: CRM, accounting, inventory, manufacturing, website and the rest of the suite |
| PostgreSQL | postgres:16-alpine | Odoo's own database. Odoo connects as superuser and creates its databases itself |
| TLS and routing | Managed by Selfhost.dev | Public HTTPS URL, certificate provisioned and renewed automatically |
Self hosted Odoo on a VPS means doing all of this yourself. Here it is written into /etc/odoo/odoo.conf before the first boot.
| On a VPS you set up yourself | Here, already done |
|---|---|
| Provision a server, harden it, open only ports 22, 80 and 443 | Done at provisioning, one customer per machine |
| Write a compose file and pin versions | Two pinned containers, deployed together |
| Install PostgreSQL and wire its credentials | Dedicated Postgres 16, host, user and password wired |
Set proxy_mode or debug broken links and password resets | proxy_mode = True, set before first boot |
Write admin_passwd into odoo.conf, since Odoo has no CLI flag for it | Generated and injected before the container starts |
Point data_dir and addons_path at persistent volumes | Filestore and addons on volumes that survive a redeploy |
| Keep the database manager on for backup and restore | list_db = True, left enabled |
| Install a reverse proxy, get a certificate, automate renewal | Traefik and Let's Encrypt, automatic |
No default password, ever. If seeding the master password ever fails, the instance boots locked on a random secret rather than open.
The template ships everything Odoo needs on one server, so the only requirement you choose is its size.
Odoo and its own Postgres share one box, so we recommend 8 GB. You can choose 4 GB, but it is tight for both.
This is a managed Odoo server, not managed ERP administration: we run the infrastructure. You own what happens inside Odoo.
No Docker Compose, no Postgres to install, no certificate to renew.
Name it and pick a server: 8 GB, since Odoo runs with its own Postgres. No cloud account to connect.
Add serviceTemplateOdoo
Both containers deploy together. We do not report it as deployed until the URL actually answers.
Open the URL, enter the master password from your console and create a database. The first person to do this owns the instance, so do it before you share the address.
Email is not set up. Add your mail provider in Odoo's settings. Until then, invitations and password resets will not send.
Keep the generated hostname or add your own with a TXT record. HTTPS provisions and renews automatically.
You pay for the server and nothing else. Adding users never changes the bill.
| Item | Cost |
|---|---|
| Odoo template, PostgreSQL 16, HTTPS and domain | $0 |
| Users | $0, no per-user fee |
| Bandwidth | $0, traffic included |
| Daily whole-server backups | Optional, +20% of the server price |
| Server | Cores | RAM | Disk | Where | Rate | Monthly at 730 hrs |
|---|---|---|---|---|---|---|
cx33 (recommended) | 4 | 8 GB | 80 GB | EU | $0.03/hr | $23.36 |
cax21 (ARM) | 4 | 8 GB | 80 GB | EU | $0.04/hr | $29.20 |
cpx32 | 4 | 8 GB | 160 GB | EU | $0.13/hr | $98.26 |
cpx32 | 4 | 8 GB | 160 GB | Singapore | $0.19/hr | $135.63 |
ccx13 | 2 dedicated | 8 GB | 80 GB | US | $0.16/hr | $119.28 |
Monthly figures assume 730 hours. Europe is Falkenstein, Nuremberg and Helsinki.
With a card on file or a past top-up, the server is powered off and held for 24 hours. A top-up in that window restarts it. Welcome-credit-only servers are deleted at zero.
Every size in every location is priced in the pricing calculator, with no signup.
Odoo runs three ways: Odoo Online, the SaaS priced per user; Odoo.sh, Odoo's developer platform on the Custom plan with hosting on top; or on-premise, on a server you control. This template is on-premise Community, on one flat server rate.
| Odoo Online, Standard | Odoo self hosted here (8 GB, EU) | |
|---|---|---|
| Monthly price | $31.10 per user, billed yearly | $23.36 for the whole server, any number of users |
| Edition | Enterprise | Community |
| Free tier | One app, unlimited users, on Odoo Online only | None. You pay for the server from the first hour |
| 1 user | $31.10/mo | $23.36/mo |
| 5 users | $155.50/mo | $23.36/mo |
| 20 users | $622/mo | $23.36/mo |
| Custom modules | Not permitted | Supported |
| Enterprise-only apps | Included | Not available |
| Where data lives | Odoo's infrastructure | Your dedicated server |
Odoo Online US-dollar renewal prices on yearly billing (the first year is discounted to $24.90 per user). Source: Odoo pricing.
Self hosted Odoo is often pitched at large enterprises. With Community on a flat server it is cheaper from the first user: $23.36 a month against $31.10 per user. The gap widens with every hire.
Odoo.sh is a development platform with staging branches, GitHub integration and Odoo's build pipeline. To run Odoo rather than build it, a project server is simpler: root SSH, a dedicated Postgres and an addons volume at one hourly rate.
If you need Enterprise apps, buy from Odoo. Studio, some accounting localisations and a few apps are licence-gated to Odoo's paid plans. No host can add them. Everything else that pushes people to Odoo Online, the setup, database, certificate and proxy, is already done here.
Odoo's template deploys in about eight minutes. That is the platform's own budget, not an estimate.
None of these a dealbreaker? The template deploys in about eight minutes.
Launch OdooA daily image of the whole server, plus your own copies whenever you want them. Nothing here makes leaving hard.
| Method | What it covers | Where it lives |
|---|---|---|
| Daily server backup (optional, +20%) | Every container, the database and all three volumes in one image, last 7 kept | With the server and deleted with it |
| Odoo's database manager | The database and filestore as one portable backup, to restore or duplicate | Wherever you download it |
pg_dump or a volume archive over root SSH | The database or every volume, byte for byte | Wherever you copy it |
Back up your current instance in its database manager and restore it here through the same screen. The database and filestore come across together, with no export ticket.
Odoo Online and Odoo.sh run Enterprise. Enterprise-only modules will not load on Community. Check your installed apps before you move.
Tell us your team size and which Odoo apps you need. We will send back the server size, the monthly cost and what it replaces on your current bill. One email, no newsletter.
Odoo Community is free and open source under the LGPL, so self hosting it costs only the server: a European 8 GB server is about $23 a month, with no per-user fee. Odoo Enterprise needs Odoo's paid Custom plan; this template runs Community.
A European 8 GB server is $0.03/hr, about $23.36 a month. That covers Odoo, its Postgres, HTTPS and every user. Daily backups add 20%. Other regions cost more: the US 8 GB server is $0.16/hr. Odoo Online Standard is $31.10 per user a month, billed yearly.
Yes. On-premise is Odoo's own name for running Odoo on a server you control rather than on Odoo Online or Odoo.sh. It can be Community (no licence) or Enterprise (on the Custom plan). This template is on-premise Community on a dedicated server we run.
Yes. The database manager stays enabled, so you can create, duplicate and restore several databases on one instance, such as a staging copy beside production. They share the server's memory and disk, so a second busy company may need a bigger server.
Yes. Odoo installs apps one at a time, so you can enable the CRM and leave the rest off, though it still wants 8 GB. We compared eight open source CRMs: Odoo is the pick when sales has to reach invoicing or stock. EspoCRM does the job when it never does.
Yes. Odoo's official Docker image runs on a laptop for a first look. A team needs an address everyone can reach, HTTPS and proxy_mode set behind a proxy. When you are ready, move the local database here through Odoo's database manager.
Selfhost.dev is a managed self hosting platform for developers and small teams. Open source apps and databases on dedicated servers you control, billed by the hour with no subscription tiers.
Best for: Odoo, Twenty CRM, n8n, Supabase and managed PostgreSQL, MySQL, Redis, ClickHouse, OpenSearch and Kafka.