Deploy Odoo — Free Self-Hosted ERP & CRM on Railway
Self-host Odoo ERP & CRM free. No per-user fees. 50+ business apps.
Just deployed
/var/lib/postgresql/data
Odoo
Just deployed
/var/lib/odoo
Deploy and Host Odoo on Railway
Odoo is the open-source business suite that runs your whole company from one platform — CRM, Sales, Inventory, Accounting, HR, Manufacturing, eCommerce, Project, and 50+ integrated apps with 16,000+ community modules. The Community Edition is free and open-source (LGPL-3.0) — no per-user license, no feature upsells, no vendor lock-in. Your data lives in standard PostgreSQL that you own.
Odoo Standard costs ~$31/user/month and Odoo.sh runs ~$72/user/month — a 25-user company pays roughly $1,765/month on Odoo.sh. Self-hosted Community Edition on Railway costs ~$5–15/month flat, no matter how many users you add.
What This Template Deploys
| Service | Purpose |
|---|---|
| Odoo | The ERP/CRM application server — web client, app modules, and the admin UI on port 8069 |
| PostgreSQL 17 | The Odoo database — all business data, records, and module config. Odoo requires PostgreSQL specifically |
| Filestore Volume | Persistent volume for uploaded documents, attachments, and product images — survives every redeploy |
Both services connect over Railway's private network. PostgreSQL credentials are injected automatically. The filestore volume keeps attachments separate from the database for clean backups and faster performance.
About Hosting Odoo
Running Odoo in production requires a dedicated PostgreSQL database (Odoo only supports PostgreSQL), a persistent filestore for attachments and images, a public HTTPS endpoint, and careful worker configuration for performance. Self-hosting on a raw VPS means installing Odoo, tuning PostgreSQL, configuring Nginx, managing SSL, and handling backups manually — typically 2–8 hours of setup plus 5–10 hours monthly maintenance.
Railway removes all of that. This template provisions Odoo connected to a managed PostgreSQL 17 instance over private networking, with a persistent filestore volume and automatic HTTPS. Your business data and uploaded files survive every redeploy.

Typical cost: ~$5–15/month on Railway's Hobby plan for the full stack. Odoo.sh charges ~$72/user/month bundled with Enterprise licensing — a 25-user deployment is ~$1,765/month. Self-hosted Community Edition on Railway carries no license fee and no per-user cost.
Deploy in Under 5 Minutes
- Click Deploy on Railway — Odoo and PostgreSQL build automatically (~3–5 minutes)
- Database credentials are auto-injected via Railway reference variables
- Open your Railway-assigned URL on port
8069— the Odoo database manager loads - Set your master password, create your first database, and set the admin login
- Install the apps you need (CRM, Sales, Inventory, Accounting) from the Apps menu
No SSH. No PostgreSQL tuning. No Nginx or SSL configuration.
Common Use Cases
- Self-hosted ERP without per-user fees — run CRM, Sales, Inventory, and Accounting for your whole team at flat compute cost; Odoo Community has no $31–72/user/month license
- Self-hosted alternative to Odoo.sh — same Odoo, your infrastructure, your region, your cost; avoid Odoo.sh's per-worker and per-user surcharges that hit hard at scale
- Free alternative to NetSuite or SAP for SMBs — full ERP functionality at 70–90% lower cost than NetSuite, with no enterprise contract or implementation minimum
- Open-source CRM for sales teams — pipeline management, lead scoring, email integration, and quotations without Salesforce's per-seat pricing
- Inventory and manufacturing management — track stock across warehouses, manage BOMs and work orders, and automate purchase orders on infrastructure you control
- eCommerce backend with integrated ERP — run an Odoo online store wired directly to inventory, accounting, and CRM — no separate platform to sync
Configuration
| Variable | Required | Description |
|---|---|---|
HOST | ✅ Auto-injected | PostgreSQL private hostname via Railway reference variable |
PORT (db) | ✅ Auto-injected | PostgreSQL port — 5432 |
USER | ✅ Auto-injected | PostgreSQL user from the Railway database service |
PASSWORD | ✅ Auto-injected | PostgreSQL password via Railway reference variable |
ADMIN_PASSWORD | ✅ Required | Odoo master password — protects database creation and management |
ODOO_DATABASE | Recommended | Default database name to auto-create on first boot |
LIST_DB | Optional | Set to False in production to hide the database manager from public access |
WORKERS | Optional | Number of Odoo worker processes — increase for higher concurrency |
PROXY_MODE | Recommended | Set to True — required for correct HTTPS handling behind Railway's proxy |
Set
ADMIN_PASSWORD(the master password) before exposing your instance. After creating your database, setLIST_DB=Falseto hide the database manager from public visitors — a standard Odoo production hardening step.
Odoo vs. Alternatives
| Odoo Community (Railway) | Odoo.sh | NetSuite | SAP Business One | |
|---|---|---|---|---|
| Monthly cost | ~$5–15 flat | ~$72/user | Enterprise contract | Enterprise contract |
| 25-user cost | ~$5–15/mo | ~$1,765/month | $$$$ | $$$$ |
| Per-user license | ✅ None | ❌ Yes | ❌ Yes | ❌ Yes |
| Open source | ✅ LGPL-3.0 | ⚠️ Enterprise only | ❌ No | ❌ No |
| Data ownership | ✅ Your PostgreSQL | ⚠️ Odoo's GCP | ❌ Oracle cloud | ❌ SAP cloud |
| Self-hostable | ✅ Yes | ⚠️ PaaS only | ❌ No | ❌ No |
| 16,000+ modules | ✅ Yes (OCA + store) | ✅ Yes | ⚠️ Limited | ⚠️ Limited |
| Custom modules | ✅ Full control | ✅ Yes | ⚠️ Restricted | ⚠️ Restricted |
Dependencies for Odoo Hosting
- Railway account — Hobby plan (~$5–15/month) covers Odoo and PostgreSQL
- No license required — Odoo Community Edition is free under LGPL-3.0
- Optional: SMTP provider (Resend or Brevo) for outgoing email — quotations, invoices, alerts
Deployment Dependencies
- Odoo GitHub Repository — Community Edition source
- Odoo Documentation — app and configuration reference
- Odoo Community Association (OCA) — free community modules
- Odoo Apps Store — 16,000+ third-party modules
- Railway Volumes Documentation — filestore persistence
Implementation Details
This template deploys Odoo Community Edition alongside Railway-managed PostgreSQL 17 over private networking. Odoo requires PostgreSQL specifically — it does not support other databases. The filestore (uploaded documents, attachments, product images) is stored on a persistent volume separate from the database, which keeps backups clean and improves performance.

PROXY_MODE=True is set so Odoo correctly handles HTTPS behind Railway's proxy layer. The Odoo
database manager is exposed on first boot for initial setup — set LIST_DB=False after creating
your database to hide it in production. All business data persists in PostgreSQL and survives
every redeploy and version update.
Frequently Asked Questions
How much does self-hosted Odoo cost vs Odoo.sh? Odoo Community Edition is free — you pay only ~$5–15/month for Railway compute regardless of user count. Odoo.sh charges ~$72/user/month bundled with Enterprise licensing; a 25-user deployment runs roughly $1,765/month. Self-hosting on Railway eliminates both the per-user license and the per-worker hosting surcharge.
What's the difference between Odoo Community and Enterprise? Community Edition (LGPL-3.0, free) includes core apps: CRM, Sales, Invoicing, Inventory, Accounting, Project, and more. Enterprise adds Studio (no-code customization), multi-company, barcode scanning, full accounting automation, and official support — for a per-user fee. This template deploys Community Edition, which covers the needs of most small and mid-sized teams.
Does Odoo require PostgreSQL specifically? Yes. Odoo only supports PostgreSQL — it will not run on MySQL, MariaDB, or any other database. This template provisions a managed PostgreSQL 17 instance automatically, pre-wired to Odoo over Railway's private network.
Do I lose my business data if Railway redeploys? No. All business records are stored in the Railway-managed PostgreSQL database, and uploaded files live on the persistent filestore volume. Redeploys, updates, and restarts do not affect your data.
Can I install custom modules and OCA community apps? Yes. Community Edition gives you full access to install any module — the 16,000+ apps in the Odoo store and the free Odoo Community Association (OCA) catalog. Add modules to the addons path and restart the service.
How do I send email from Odoo (quotations, invoices)? Configure an outgoing mail server in Odoo settings. On Railway's Hobby plan raw SMTP is blocked, so use an HTTPS-based provider like Resend or Brevo (both have free tiers) as your SMTP relay.
Why Deploy and Host Odoo on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Odoo on Railway, you get a complete open-source ERP and CRM — CRM, Sales, Inventory, Accounting, and 50+ apps with PostgreSQL and persistent filestore — at ~$5–15/month flat, with no per-user license fees and full ownership of your business data.
Template Content
Odoo
odoo:19.0ODOO_SMTP_HOST
SMTP hostname
ODOO_SMTP_USER
SMTP username
ODOO_SMTP_PASSWORD
SMTP password
ODOO_SMTP_PORT_NUMBER
SMTP port number