Complete Guide: Install Odoo on Any Ubuntu VPS
Production-ready ERP in under 5 minutes — Odoo + PostgreSQL 16 + Nginx + Free SSL
The odoo_setup.sh script by NG HOST VIP is a one-click solution to install the latest stable Odoo on any Ubuntu server (22.04 or 24.04). It detects the latest stable Odoo major version automatically and installs PostgreSQL 16, an Nginx reverse proxy and a free Let's Encrypt SSL certificate — all configured automatically.
Prerequisites Before You Start
| Requirement | Details |
|---|---|
| Operating System | Ubuntu 22.04 or 24.04 (fresh, clean installation) |
| Server Specs | Minimum: 2 CPU – 4GB RAM – 40GB SSD (recommended for production) |
| Domain (Optional) | A domain such as erp.example.com (you can also use the server IP) |
| DNS Record | An A Record pointing your domain to the server IP (only if using a domain) |
| Access | Root SSH access (or a user with sudo) |
| Email Address | Required for Let's Encrypt SSL registration (only with a domain) |
| Open Ports | Ports 80 and 443 open in your firewall |
Installation Steps
1 Connect to Your Server via SSH
Connect to your server using any SSH client (PuTTY, Terminal, Windows Terminal, etc.):
ssh root@YOUR_SERVER_IP
Replace YOUR_SERVER_IP with your actual server IP address.
2 Download the Script
Download the script from the official NG HOST VIP server:
wget https://download.nghost.vip/odoo_setup.sh
Or with curl:
curl -O https://download.nghost.vip/odoo_setup.sh
3 Grant Execute Permission
chmod +x odoo_setup.sh
4 Run the Script
sudo bash odoo_setup.sh
The NG HOST VIP welcome banner will appear:
+==================================================================+
| NG HOST VIP - SYSTEMS |
| Odoo ONE-CLICK INSTALLER (v3.0) |
+==================================================================+
Preparing your production-grade ERP...
Server IP: XXX.XXX.XXX.XXX
5 Choose Your Access Method
You'll be asked how you want to access Odoo:
How would you like to access Odoo? [1] IP Address -> http://YOUR_SERVER_IP (no SSL) [2] Domain Name -> https://your-domain.com (free SSL) Your choice [1 or 2]:
- Option [1] — IP Address: Quickest. Access Odoo via
http://YOUR_SERVER_IP. No SSL. - Option [2] — Domain Name: Production-ready with free SSL via Let's Encrypt.
If you choose [2], you'll then be asked for:
Domain name (e.g. erp.example.com): erp.example.com Email for SSL certificate: [email protected]
6 Save Your Credentials
After installation (~3-7 minutes), the script prints all your credentials on the screen and also saves them to:
cat /root/odoo-credentials.txt
What the Script Does Automatically
After you submit your choice, the script executes 6 automated phases:
Phase 1 / 6 System Update & Base Packages
- Refreshes apt and upgrades the OS.
- Installs Nginx, Certbot, Python build tools, image and PDF libraries, Node.js / npm, UFW, Fail2ban and all Odoo dependencies.
Phase 2 / 6 Install wkhtmltopdf (PDF Engine)
Downloads and installs wkhtmltox 0.12.6.1 from the official GitHub release — required for Odoo to render invoices, reports and PDF exports.
Phase 3 / 6 Install PostgreSQL 16
- Adds the official PostgreSQL APT repository (signed GPG, Ubuntu 24.04 compatible).
- Installs
postgresql-16andpostgresql-client-16. - Enables and starts the PostgreSQL service.
Phase 4 / 6 Detect & Install Latest Stable Odoo
- Queries
nightly.odoo.comto detect the latest stable major version automatically. - Adds the Odoo APT repository with verified GPG key.
- Installs the
odoopackage and creates theodoosystem user.
Phase 5 / 6 Configure Odoo, Nginx & SSL
- Generates secure random Master and DB passwords using
openssl. - Writes a hardened
/etc/odoo/odoo.confwith workers auto-scaled to your CPU. - Deploys an Nginx reverse proxy with WebSocket and long-polling support.
- If a domain was provided, requests a free Let's Encrypt SSL certificate and enables HTTPS redirect.
- Configures UFW firewall (SSH + HTTP + HTTPS only).
Phase 6 / 6 — Success Install odoo-manager & Finalize
A final success screen displays:
- Access URL (IP or HTTPS domain)
- Master Password (for creating new databases)
- Database user & password
- Installs the
odoo-managerCLI tool - Saves everything to
/root/odoo-credentials.txt
Access the Odoo Dashboard
Open the URL shown in your credentials file:
https://your-domain.com # or http://YOUR_SERVER_IP
- You'll land on the Database Manager page.
- Click Create Database.
- Paste the Master Password from
/root/odoo-credentials.txt. - Choose a database name, your country, admin email and admin password.
- Click Create Database — and start building your business! ⚡
Managing Your VPS with odoo-manager
The script installs a one-command management tool available globally on your server:
| Command | Purpose |
|---|---|
odoo-manager status |
Show Odoo, Nginx and PostgreSQL service status |
odoo-manager update |
Update Odoo & system packages, then restart |
odoo-manager backup <dbname> |
Compressed SQL dump of a database to /opt/odoo/backups |
odoo-manager logs |
Tail live Odoo log output |
odoo-manager restart |
Restart Odoo + Nginx services |
Example — back up your production database:
odoo-manager backup production_db
Backup saved: /opt/odoo/backups/production_db_20260520_1430.sql.gz
Key Paths & Files on Your VPS
| Path | Purpose |
|---|---|
/root/odoo-credentials.txt |
All credentials & URLs from the installer |
/etc/odoo/odoo.conf |
Odoo main configuration |
/opt/odoo/custom-addons |
Drop your custom modules here |
/var/log/odoo/odoo.log |
Odoo runtime logs |
/opt/odoo/backups |
Default backup destination |
/etc/nginx/sites-available/odoo |
Nginx reverse proxy config |
Common Troubleshooting
SSL Certificate Issuance Failed
Cause: your domain's A Record isn't pointing to the server yet. Verify with ping yourdomain.com and once DNS has propagated, run only the SSL step:
certbot --nginx -d your-domain.com -m [email protected] --agree-tos --non-interactive --redirect
Website Not Loading After Installation
Make sure firewall ports are open and services are running:
sudo ufw allow 80 sudo ufw allow 443 odoo-manager status
Odoo Service Not Responding
Check the live logs and restart the services:
odoo-manager logs odoo-manager restart
Lost Your Master Password?
It is stored in /etc/odoo/odoo.conf under admin_passwd. You can also change it manually, then restart Odoo with odoo-manager restart.
Security Recommendations
- Copy
/root/odoo-credentials.txtto your password manager, then remove it from the server. - Disable root password SSH login and use SSH keys only.
- Enable Two-Factor Authentication inside Odoo for every admin user.
- Schedule daily backups with
odoo-manager backup <db>and copy them off-server. - Run
odoo-manager updateregularly to apply security patches. - UFW and Fail2ban are pre-configured — only open extra ports you actually need.
Congratulations — Your Odoo is Live!
With this script you can deploy a production-grade Odoo ERP on any Ubuntu server in under 5 minutes instead of spending hours on manual configuration.
NG HOST VIP — Your partner in simplifying automation and deploying powerful tools with ease.