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 enableSTEP 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 rtlcssSTEP 4 Setup PostgreSQL
sudo su - postgres
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo17
exitSTEP 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
exitSTEP 6 Configure Nginx
sudo nano /etc/nginx/sites-available/odooupstream 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 nginxSTEP 7 Add SSL
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.comYour Odoo instance is now live at https://yourdomain.com with SSL, Nginx proxy, and production-ready configuration.
Comments
Join the discussion. Got a question, found an issue, or want to share your experience?