DigitalOcean droplets are a cost-effective way to host Odoo. This guide gets you from a blank droplet to a production-ready Odoo 17 instance with Nginx and SSL.

STEP 1 Create a Droplet

Image: Ubuntu 22.04 LTS
Plan: 2 GB RAM / 1 CPU ($12/month minimum)
Region: Choose closest to your users
Authentication: SSH keys (recommended)

STEP 2 Initial Server Setup

ssh root@your-droplet-ip
adduser odoo
usermod -aG sudo odoo
ufw allow OpenSSH
ufw allow 8069
ufw allow 80
ufw allow 443
ufw enable

STEP 3 Install Dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-pip python3-dev python3-venv
sudo apt install -y build-essential libxml2-dev libxslt1-dev
sudo apt install -y libevent-dev libsasl2-dev libldap2-dev libpq-dev
sudo apt install -y postgresql nginx wkhtmltopdf nodejs npm
sudo npm install -g rtlcss

STEP 4 Setup PostgreSQL

sudo su - postgres
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo17
exit

STEP 5 Install Odoo

sudo su - odoo
git clone https://github.com/odoo/odoo --depth 1 --branch 17.0 /home/odoo/odoo17
python3 -m venv /home/odoo/odoo17-venv
source /home/odoo/odoo17-venv/bin/activate
pip install wheel
pip install -r /home/odoo/odoo17/requirements.txt
deactivate
mkdir /home/odoo/odoo17-custom-addons
exit

STEP 6 Configure Nginx

sudo nano /etc/nginx/sites-available/odoo
upstream odoo {
    server 127.0.0.1:8069;
}

server {
    listen 80;
    server_name yourdomain.com;

    access_log /var/log/nginx/odoo.access.log;
    error_log /var/log/nginx/odoo.error.log;

    proxy_buffers 16 64k;
    proxy_buffer_size 128k;

    location / {
        proxy_pass http://odoo;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }

    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        proxy_pass http://odoo;
    }
}
sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

STEP 7 Add SSL

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

Your Odoo instance is now live at https://yourdomain.com with SSL, Nginx proxy, and production-ready configuration.

Share this article

Comments

Join the discussion. Got a question, found an issue, or want to share your experience?

Leave a Comment

Your email stays private. We just use it for replies.

Nothing to preview yet.

Use **bold**, *italic*, `code`, ```code blocks```, [link](url), > quote, - list