Antelao Odoo Host Manager
Antelao hosts multiple Odoo instances as Docker containers on a single Linux server, and gives you one place to create, configure, back up, secure and monitor them.
It is aimed at three kinds of operator:
- Odoo enthusiasts running one or two instances for themselves, who want the boring parts (TLS, backups, upgrades, intrusion prevention) handled properly without becoming a full-time system administrator.
- Odoo developers who need instances they can create, break, clone and throw away, with Git-backed addons and a database they can restore from a customer's backup in a minute.
- Hosting companies running many instances for many customers, who need quotas, unattended scheduling, off-site backups, users scoped to their own customers' instances and a machine interface to drive it all.
The four parts
Antelao is one product over a single domain layer. Anything you can do in one front-end you can do in the others.
| Part | What it is | When you use it |
|---|---|---|
ohm | The command-line tool, from a Debian package. ohm install is the installer of the whole system | Install and repair, scripting, remote administration of any number of servers |
ohm-agent | The host agent: a container run by the host's own systemd unit | Installs, repairs and upgrades everything else, and executes what the API dispatches. Its own page is the recovery door when the console is down |
ohm-api | The management API container | The machine interface. It owns the background-job queue and the maintenance scheduler, so it is also what makes anything happen |
ohm-web | The console | Day-to-day administration in a browser |
Each of the three containers answers on a plain HTTP port for the server's own use and an HTTPS port for everything else:
| Port | Protocol | Bound to | Firewall script | Service | What it is |
|---|---|---|---|---|---|
| 5201 | HTTP | Loopback | Nothing | ohm-agent | The host agent, for the command line and the server's own parts |
| 5202 | HTTPS | Every interface | Your addresses | ohm-agent | The host agent's page and API. Protected by its key and by who may reach the agent |
| 5311 | HTTP | Loopback | Nothing | ohm-api | The management API, for the command line and the console on the server itself |
| 5312 | HTTPS | Every interface | Your addresses | ohm-api | The management API |
| 5321 | HTTP | Loopback | Nothing | ohm-web | The console, for the server itself and an SSH tunnel |
| 5322 | HTTPS | Every interface | Your addresses | ohm-web | The console |
The console is strictly a client of the API - it holds no Docker socket and no domain code at all -
and so is ohm when it runs remotely. There is no operation the browser can perform that a script
cannot.
What a server runs
ohm install lays the whole host. Every container it manages carries the ohm- prefix, which is
also how the product tells its own containers from everything else on the machine.
| Container | Purpose |
|---|---|
ohm-postgres | The shared PostgreSQL server holding the instance databases and the master database |
ohm-nginx | The public edge: TLS termination and one site per instance |
ohm-geoip | Fetches the GeoLite2 databases the location rules match against |
ohm-fail2ban | Bans abusive addresses based on the nginx logs |
ohm-portainer | Docker management UI, optional: installed only when you choose it |
ohm-pgadmin | PostgreSQL administration UI |
ohm-postfix | SMTP relay, started only when a mail profile is configured |
ohm-<id> | One container per Odoo instance |
Which port each of them answers on, on which address, and what the firewall script does with it is in the port table.
Instance containers are named ohm- followed by the instance's twelve-character id, which is how you
find an instance's container in docker ps.
Odoo versions
Antelao hosts Odoo 15.0, 16.0, 17.0, 18.0, 19.0 and 20.0, in both the Community and Enterprise editions. Instances of different versions run side by side on one server, each in its own container against the shared PostgreSQL server.
Where behaviour differs by Odoo version, the page concerned says so. The manual follows Antelao releases, not Odoo releases.
Editions
Antelao itself is licensed. Two editions are free of charge, two are subscriptions, and an unregistered server is a supported state rather than a broken one: it runs one instance with one database and keeps working indefinitely.
The rule of thumb is by hand versus unattended and local versus off-site. Taking a backup yourself is free; letting the scheduler take it every night is not. See Editions for what each one unlocks, and When the license changes for what the server switches off when its license carries less, and how it comes back.
Where to start
Install the server and create your first instance in Getting started.