Two Ways to Install Odoo
Odoo can be installed from source (cloning the Git repository) or via pre-built packages (.deb for Debian/Ubuntu, .rpm for RHEL/Rocky). Each method has trade-offs for control, maintenance, and ease of use.
Source Install (Git Clone)
# Clone from GitHub
git clone --depth 1 -b 19.0 https://github.com/odoo/odoo.git
# Advantages:
# + Pin to exact commit
# + Easy to add enterprise addons alongside
# + Full control over Python virtualenv
# + Custom addons_path configuration
# + Easy git pull updates
# + Multiple Odoo instances on one server
# Disadvantages:
# - Manual systemd service setup
# - Manual dependency management
# - No automatic init scripts
# - Must manage wkhtmltopdf separatelyPackage Install (apt/deb)
# Debian/Ubuntu .deb package
wget https://nightly.odoo.com/19.0/nightly/deb/odoo_19.0.latest_all.deb
sudo apt install ./odoo_19.0.latest_all.deb
# Advantages:
# + One-command install
# + Automatic systemd service created
# + Dependencies pulled automatically
# + Standard paths (/etc/odoo, /var/log/odoo)
# + Automatic logrotate configured
# + Easy apt upgrade path
# Disadvantages:
# - Harder to manage custom addons
# - Fixed Python environment (system)
# - Updates may overwrite config
# - Single instance per server
# - Cannot pin to specific commitDirectory Structure Comparison
# Source install (typical):
# /opt/odoo/odoo-server/ ← Odoo source
# /opt/odoo/venv/ ← Python virtualenv
# /opt/odoo/custom-addons/ ← Your modules
# /etc/odoo.conf ← Configuration
# /var/log/odoo/ ← Logs
# Package install:
# /usr/lib/python3/dist-packages/odoo/ ← Odoo code
# /usr/bin/odoo ← Binary
# /etc/odoo/odoo.conf ← Config
# /var/log/odoo/ ← Logs
# /var/lib/odoo/ ← DataUpdate Strategy
# Source: git pull and restart
cd /opt/odoo/odoo-server
git pull origin 19.0
sudo systemctl restart odoo
# Package: apt upgrade
sudo apt update
sudo apt upgrade odoo
# Config may be overwritten — use dpkg prompts
# Enterprise addons:
# Source: clone into separate directory, add to addons_path
# Package: requires manual handling of enterprise pathWhen to Use Each
# Use SOURCE install when:
# - Running multiple Odoo instances
# - Using enterprise edition
# - Need specific commit/version pinning
# - Custom Python dependencies
# - Docker or containerized deployments
# - Development environments
# Use PACKAGE install when:
# - Single community instance
# - Quick setup for evaluation
# - Prefer standard Linux package management
# - Simple production with minimal customization
# - Managed by sysadmin unfamiliar with PythonDeployMonkey Approach
DeployMonkey uses Docker-based deployment, combining the benefits of both: reproducible builds, isolated environments, easy updates, and full control over addon paths. No manual installation decisions needed.