All Articles
Odoo Hosting & Performance

Odoo Installation on DigitalOcean: Complete Guide for Odoo

August 15, 202615 min read

Learn how to install Odoo on DigitalOcean with Ubuntu, PostgreSQL, Nginx, SSL, firewall configuration, backups, and production-ready settings.

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.

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

👉 Hire shahid directly

Related Reading

Shahid Malik - AI-First Odoo Consultant

Shahid Malik

AI-First Odoo ERP Specialist

Shahid Malik is an AI-first Odoo consultant helping businesses solve complex ERP and business process challenges. His work combines Odoo consulting, process optimization, automation, integrations, migrations, and practical AI solutions to build scalable and reliable business systems.

Book a consultation for your Odoo project