-
Notifications
You must be signed in to change notification settings - Fork 0
Quick start
The simplest route: a guided installation, with prompts walking you through it. Written for whoever is running the installer for the first time. If you are automating instead (scripts, CI), go to Non-interactive use and CI.
- Ubuntu ≥ 22.04, Debian ≥ 11 or Fedora ≥ 40;
- a normal user with
sudo(do not log in directly as root); - ≥ 5 GB free; port 8069 free (80/443 too if you will use Nginx).
Nothing else: the installer is a static binary — neither Python nor Rust is needed on the machine.
The shortest way on Ubuntu or Debian — replace 3.3.0 with the latest version on
Releases:
curl -fsSL -O https://github.com/Omisen/invok/releases/download/v3.3.0/invok_3.3.0-1_amd64.deb
sudo apt install ./invok_3.3.0-1_amd64.debOn Fedora it is the same binary in the other wrapper (invok-3.3.0-1.x86_64.rpm, with
sudo dnf install ./...). If you would rather install nothing, download the musl .tar.gz and run
it where you unpacked it; if you already have Rust, cargo install invok.
All the routes with their full commands, checksums and trade-offs are in the
README. From here on this guide assumes invok is on your
PATH.
invok --dry-run--dry-run prints the plan without touching anything. It works without sudo too, but then some
steps cannot inspect the system and the plan comes out thinner — the installer tells you so. It is the
safe way to find out what will happen. See
Verification and troubleshooting.
sudo invokThe installer asks you, one at a time (press Enter to accept the suggested value):
- Odoo version — pick one of 16.0 / 17.0 / 18.0 / 19.0;
- system user, database name, HTTP port, install directory;
-
admin password (masked — do not use
adminoutside a demo); - Nginx? — yes/no for the reverse proxy;
- finally a summary and the "Proceed?" confirmation.
While it works you get a progress bar with the current step (the clone and pip install are the
long ones). If something fails, the installer undoes its own work and says so — you are never left
with a half-installed system. Why you can rely on that: The rollback model.
systemctl status odoo18 # 18 = short version
source ~/.bashrc && odoo status # helper commandOpen http://<server-ip>:8069. Details and common problems in
Verification and troubleshooting.
Already have an Odoo installed by invok on this machine? Re-running does not add a second one: name it —
sudo invok --instance cliente-x --port 8169. See More than one instance.
Tip: for your first time, try it on a throwaway VM or container. Thanks to the rollback nothing is left behind if it goes wrong, but while learning it is handy to be able to start from scratch.
Start here
Key concepts
References
For developers
Technical detail — how it works inside
Steps:
- 1.1 PrepareOptRoot
- 1.2 CreateOdooUser
- 1.3 SetupLogDir
- 1.3b SetupCacheDir
- 1.4 AptPackages (delta)
- 1.5 InstallWkhtmltopdf
- 1.6 SetupPostgres
- 1.7 CreateDbRole
- 1.8 CreateDatabase
- 1.9 CloneOdooRepo
- 1.10 CreateVirtualenv
- 1.11 InstallPythonRequirements
- 1.12 GenerateConfig
- 1.12b SetupDataDir
- 1.13 InitializeOdooDatabase
- 1.14 SetupSystemd
- 1.15 Nginx (6 sub-steps)
- 1.16 WriteControlScript + PatchBashrc
Cross-cutting: