Open-source ERP for sales, invoicing, inventory, purchasing and manufacturing, operated on your own servers or dedicated machines in Switzerland and the EU. Pilae runs it on your own servers, or in Zurich, Switzerland, and eleven other Pilae Cloud regions.
- Licence
- LGPL-3.0
- Runs on
- Your own hardware, or any of 10+ Pilae regions — six of them in Switzerland and the EU
- Upgrades
- Pinned, tested against your configuration, applied in your window
- Upstream
- www.odoo.com
Running Odoo Community in production: what it takes
Deploy on PostgreSQL with workers
Odoo Community pinned to a major version we have run, on its own PostgreSQL, in multi-worker mode with memory and time limits set so one runaway report cannot take the server down.
Keep modules in Git
Community Association modules and your custom modules are pinned in a repository. Installing or updating a module is a reviewed change the Pilae Agent plans, you approve and it applies in your window.
Close the database manager
The database manager page is switched off and the master password is held as a secret. Nobody creates, copies or drops a database from a browser.
Back up database and filestore together
Both go offsite daily, encrypted, to a location in your chosen country. Once a month we restore them into a scratch instance, log in and open a posted invoice with its attachment. The result is recorded in the console.
Plan major upgrades as projects
Odoo ships one major version a year and each changes the database schema. We migrate a copy with OpenUpgrade scripts once they cover the target version, test your processes on it, and move production in a window you agree.
What Odoo Community is, and who runs it
Self-hosted Odoo Community for sales, stock and invoicing
Odoo is an ERP built from modules that share one database: CRM and sales, invoicing, purchasing, inventory, manufacturing, projects, timesheets and a customer portal. You install the ones you use and add others later without a new integration project, because an order, its delivery and its invoice are records in the same system.
We operate Odoo Community on dedicated machines in any of 10+ Pilae Cloud regions, six of them in Switzerland and the EU, or on your own hardware. The back office answers on your private network, and only the customer portal is published, if you want one. Your customer list, prices and margins sit in the jurisdiction you chose, on machines nobody else shares.
Odoo in production: workers, modules and backups
A default Odoo install runs as one process with the database manager open on the login page. We run it in multi-worker mode with memory and time limits, close the database manager and pin every module, including those from the Odoo Community Association, in a Git repository. Module changes and upgrades go through the Pilae Agent: it plans the change, waits for your approval, applies it in your window and records it.
The database and the filestore are backed up together, daily, encrypted, to an offsite location in your chosen country. Every month we restore both into a scratch instance and check that a posted invoice opens with its attachment. The restore is recorded in the console. See backups for how that works across every app.
Moving off SAP Business One or Microsoft Dynamics
The move is scoped as a fixed-price migration: master data and open items come across, closed years stay archived, and the cut-over lands on a period boundary. Sign-in joins your other apps through SSO and identity, and n8n can connect Odoo to the systems it does not replace.
Odoo licence and editions
Odoo Community has no per-user fee. Our operation follows the published plans. Talk to us about the processes you want to bring home.
Odoo Community system requirements
Before anything is deployed, this is what has to exist. We size it with you in the first session, and we say so when your own hardware is already enough.
- CPU and memory
- 4 vCPU · 8 GBFor a few dozen concurrent users in multi-worker mode. Sized up by concurrent users and scheduled jobs, not by the number of installed modules.
- Database
- PostgreSQLOdoo keeps every record in PostgreSQL. We run it on its own volume with point-in-time recovery.
- Filestore
- Local volume or S3-compatible bucketAttachments, scanned invoices and generated PDFs live beside the database. A backup is only complete with both.
- Workers
- HTTP workers + 1 gevent processMulti-worker mode keeps a slow report from blocking everyone else. The gevent process serves live chat and notifications over websockets.
- Outgoing mail
- SMTP relayInvoices, quotes and reminders go out through your relay or ours, with SPF and DKIM set on your domain.
- Access
- Private network or public portalThe back office answers on your private mesh. The customer and supplier portal can be published through the Pilae gate on port 443.
Migrating from SAP Business One to Odoo Community
An ERP move is a data move before it is a software move. From SAP Business One we bring across master data (customers, suppliers, products, price lists, chart of accounts) and open items (unpaid invoices, open orders, stock on hand), loaded through Odoo's import tools and checked against the old system's reports. Closed years usually stay in the old system as a read-only archive or an export, because rebuilding ten years of posted entries costs more than it returns. Custom SAP add-ons and reports do not convert: each one is either covered by a standard Odoo module, an Odoo Community Association module, or a small custom module we scope before we start. The cut-over lands on a period boundary, so the books close in one system and open in the other.
Map the processes, not the menus
Quote to cash, purchase to pay, stock and the month-end close, written down with the people who run them. Each step is matched to a standard Odoo module, a community module or a scoped custom module.
Clean and load master data
Customers, suppliers, products and the chart of accounts are exported, de-duplicated and imported into a staging copy, then checked line by line by your finance team.
Run a trial month
A full month of real transactions is replayed in staging, and the trial balance, stock valuation and open items are compared with the old system before anyone signs off.
Cut over on a period boundary
Open items and opening balances load on the first day of the period. The old system stays read-only for lookups and audits until you retire it.
An Odoo server configuration, as we deploy it
# /etc/odoo/odoo.conf [options] db_host = db-01.internal db_port = 5432 db_user = odoo db_sslmode = require dbfilter = ^erp$ list_db = False proxy_mode = True data_dir = /var/lib/odoo workers = 8 max_cron_threads = 1 gevent_port = 8072 limit_memory_soft = 2147483648 limit_memory_hard = 2684354560 limit_time_cpu = 600 limit_time_real = 1200 addons_path = /opt/odoo/addons,/opt/oca,/opt/custom admin_passwd = __from_secret_file__ smtp_server = relay.internal smtp_port = 587 smtp_ssl = True log_level = info
What Pilae is responsible for
A pinned version
A version we have run, not whatever latest resolves to that day.
A runbook
What it depends on, how it fails, what to do about it. In your repository.
A restore drill
Backups restored on a schedule. A backup nobody has restored is a file.
A patch window
Security updates in a window you agreed, with a rollback ready.
Someone watching
Every endpoint probed on the minute. An alert reaches a person, not a dashboard nobody opens.
- Where it runs
- zur1, fra1, fal1, gra1, ams1, hel1, lon1, ash1, hil1, sin1, tok1, syd1, on-premZurich, Frankfurt, Falkenstein, Gravelines, Amsterdam, Helsinki, London, Ashburn, Hillsboro, Singapore, Tokyo, Sydney, Your own hardware
- Who holds the credentials
- You do. Ours are separate, named, logged and revocable with one command. We ask before anything changes outside an agreed window.
- If you leave
- The machine, the data, the compose files and the runbook are already yours. Nothing stops when our access does.
What running Odoo Community costs
On Starter, Odoo Community runs in Pilae Cloud for CHF 449EUR 479USD 559 a month, hosting and onboarding included. On Business, it is one of up to three apps for CHF 1,590EUR 1,690USD 1,990 a month, on your own servers or in Pilae Cloud. Enterprise is quoted. The plans set what each includes; these are the inputs that move the price around them.
- Instance size
- The CPU, memory and, where a model runs, the GPUs the app needs for your users and your data.
- High availability
- One machine with tested restores, or a replicated setup that keeps serving when a node fails.
- Storage and backups
- How much data it holds, how long backups are kept, and point-in-time recovery for its database.
- Plan and support
- Starter, Business or Enterprise: support hours, response times in the contract and how often we review the service with you.
- Region
- Your own hardware, where the infrastructure is already yours, or a Pilae Cloud region, where machines are priced per month. On Starter, Pilae chooses the site.
- Sign-on and integrations
- Single sign-on, directory sync, mail relays and the other systems the app has to reach.
Odoo Community: common questions
Is Odoo open source?
What does Community leave out compared with Enterprise?
Does Odoo handle Swiss requirements such as QR-bills and VAT?
How do major version upgrades work on Community?
Can Odoo sign in with our directory?
Also in business
Plane
Issues, cycles and roadmaps for engineering and product teams, on dedicated machines in Switzerland, the EU or your own datacentre.
Replaces Jira, Linear
Cal.com
Booking pages synced with your calendars, run on dedicated machines in any of 10+ Pilae Cloud regions, six of them in Switzerland and the EU, or your own datacentre, from the MIT-licensed community edition of Cal.com.
Replaces Calendly
Twenty
An open-source CRM for contacts, companies and deals, with a data model you shape yourself, operated on your servers or dedicated machines in Switzerland and the EU.
Replaces Salesforce, HubSpot CRM
Bring us your Odoo Community. We will tell you what it takes.
Thirty minutes on the deployment you already have, or the one you are about to start.