Odoo How to Install on DigitalOcean: Complete Ubuntu Guide for Odoo
If you are searching for “Odoo how to install on DigitalOcean?”, DigitalOcean is a practical option for businesses that want control over their Odoo server, PostgreSQL database, custom modules, backups and security.
This guide explains a production-oriented installation using an Ubuntu standard user, PostgreSQL, Odoo, Nginx and HTTPS. The examples can be adapted for Odoo 17, Odoo 18 and Odoo 19.
Important: Odoo 19's current Debian package supports Ubuntu 24.04 LTS (Noble). Odoo also provides official Community packages through its repository.
Why Install Odoo on DigitalOcean?
DigitalOcean can be suitable for SMEs, finance teams, CTOs and international businesses that need:
- Dedicated cloud resources
- Full server access
- Custom Odoo modules
- PostgreSQL control
- Nginx and SSL configuration
- Automated backups
- Odoo deployments
- Integrations with ecommerce and third-party systems
For Germany-based businesses, infrastructure should additionally be designed around security, GDPR requirements, backups and appropriate access controls.
Step 1: Create Your DigitalOcean Droplet
Create a DigitalOcean Droplet using Ubuntu 24.04 LTS for a new Odoo 19 installation.
After creating the server, connect using SSH:
ssh root@YOUR_SERVER_IP
Replace YOUR_SERVER_IP with your Droplet IP.
Create a standard Ubuntu user
Instead of performing day-to-day administration as root, create an administrator called odooadmin:
adduser odooadmin
usermod -aG sudo odooadmin
Switch to the new user:
su - odooadmin
From this point forward, the commands below are designed to be executed as the standard Ubuntu user with sudo privileges.
Check:
whoami
Expected result:
odooadmin
Step 2: Update Ubuntu
sudo apt update
sudo apt upgrade -y
Install basic utilities:
sudo apt install -y wget curl git unzip gnupg2 ca-certificates
Step 3: Install PostgreSQL
Odoo requires PostgreSQL. Odoo's official documentation recommends installing PostgreSQL on the same server for the standard packaged deployment.
sudo apt install -y postgresql postgresql-client
Check PostgreSQL:
sudo systemctl status postgresql
If necessary:
sudo systemctl enable postgresql
sudo systemctl start postgresql
Step 4: Install Odoo 19
For the Odoo 19 Community nightly repository:
wget -q -O - https://nightly.odoo.com/odoo.key | \
sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg
Add the repository:
echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/19.0/nightly/deb/ ./' | \
sudo tee /etc/apt/sources.list.d/odoo.list
Update and install:
sudo apt update
sudo apt install -y odoo
Odoo documents this repository-based installation for Community Edition.
Start Odoo:
sudo systemctl enable odoo
sudo systemctl start odoo
Check:
sudo systemctl status odoo
You can also test the local service:
curl http://127.0.0.1:8069
Step 5: Configure odoo.conf
With the Debian/package installation, Odoo's configuration file is normally:
/etc/odoo.conf
Odoo's documentation confirms /etc/odoo.conf for package installations.
Create a backup first:
sudo cp /etc/odoo.conf /etc/odoo.conf.backup
Open the configuration:
sudo nano /etc/odoo.conf
Sample production odoo.conf
[options]
; Database
admin_passwd = CHANGE_THIS_TO_A_LONG_RANDOM_MASTER_PASSWORD
db_host = False
db_port = False
db_user = odoo
db_password = False
; Addons
addons_path = /usr/lib/python3/dist-packages/odoo/addons
; Network
http_port = 8069
proxy_mode = True
; Logging
logfile = /var/log/odoo/odoo.log
log_level = info
; Performance
workers = 2
max_cron_threads = 1
; Memory limits
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
; Request limits
limit_time_cpu = 120
limit_time_real = 240
limit_request = 8192
; Database security
list_db = False
Do not copy these memory and worker values blindly. They should be calculated according to your Droplet's RAM, CPU cores, number of users, integrations and workload.
Save in Nano with:
CTRL+O
ENTER
CTRL+X
Restart Odoo:
sudo systemctl restart odoo
Check:
sudo systemctl status odoo
Step 6: Configure Nginx
Install Nginx:
sudo apt install -y nginx
Create a virtual host:
sudo nano /etc/nginx/sites-available/odoo
Example:
server {
listen 80;
server_name erp.example.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
location / {
proxy_pass http://127.0.0.1:8069;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Replace:
erp.example.com
with your actual domain.
Enable the configuration:
sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/odoo
Test Nginx:
sudo nginx -t
Restart:
sudo systemctl restart nginx
Step 7: Enable HTTPS
Install Certbot:
sudo apt install -y certbot python3-certbot-nginx
Run:
sudo certbot --nginx -d erp.example.com
Certbot can configure the SSL certificate and Nginx automatically.
Your Odoo instance should now be accessible through:
https://erp.example.com
Step 8: Configure the Firewall
Install UFW:
sudo apt install -y ufw
Allow SSH:
sudo ufw allow OpenSSH
Allow web traffic:
sudo ufw allow 'Nginx Full'
Enable:
sudo ufw enable
Check:
sudo ufw status
Do not expose port 8069 publicly when Nginx is being used as the reverse proxy.
Step 9: Verify Odoo
Check all important services:
sudo systemctl status postgresql
sudo systemctl status odoo
sudo systemctl status nginx
Check listening ports:
sudo ss -lntp
Check Odoo logs:
sudo tail -f /var/log/odoo/odoo.log
If Odoo fails:
sudo journalctl -u odoo -n 100 --no-pager
Odoo on DigitalOcean
The same overall architecture can be used for Odoo 17, Odoo 18, Odoo 19 and Odoo 20, but the exact dependencies, repositories and supported Ubuntu versions should be checked against the documentation for the specific Odoo release.
For companies maintaining multiple Odoo versions, I generally recommend separate environments or carefully isolated source-based installations rather than casually mixing versions on one production instance.
Odoo's current support table lists Odoo versions as on-premise releases, with planned standard-support end dates of September 2026, September 2027 and September 2028 respectively.
Real Odoo Implementation Experience
Installing the server is only one part of an ERP implementation.
My Odoo work includes successful implementations using Odoo 17, Odoo 18 and Odoo 19, including projects such as HighmoonRentals and Rheintal Armaturen, with implementations serving 5 customers.
The objective is not simply to make Odoo accessible at port 8069. A production implementation should also consider:
- Data migration
- Accounting configuration
- Custom modules
- User permissions
- PostgreSQL performance
- Backups
- SSL
- Monitoring
- Integrations
- Disaster recovery
- GDPR and security requirements
Need Help Installing Odoo on DigitalOcean?
If you are a business owner, CTO, IT manager or finance manager planning an Odoo deployment in Germany, Europe or the USA, I can help with the complete process—from DigitalOcean server architecture and Odoo installation to migration, customization, integrations and ongoing support.
Explore Odoo consulting and implementation services and learn more at ShahidMalik.io.
Need an Odoo DigitalOcean deployment? Get a production-ready architecture instead of simply installing Odoo and hoping the server remains stable.
I provides following for Germany, Europe, the USA and international businesses.
- Need strategic guidance? Explore our Expert Odoo ERP Consulting Services.
- Build tailored solutions with Custom Odoo Module Development.
- Transform operations via End-to-End Odoo Implementation.
- Securely transfer your legacy systems with Seamless Odoo Data Migration.
- Leverage advanced algorithms using AI Integration for Odoo ERP.
- Ensure long-term stability with Ongoing Odoo Support & Maintenance.
- Streamline manual routines through Odoo Workflow & Business Automation.
- Launch scalable storefronts with Odoo Website & E-commerce Store Development.
- Connect existing platforms via Third-Party Odoo System Integration.
Whether you are designing a complex custom application, refactoring legacy modules, or planning a major Odoo upgrade in Germany, Europe, or internationally, proper architecture makes all the difference. 👉 Book an Odoo Migration Consultation with Shahid Malik
Or Hire me directly
