Overview

This guide walks you through a complete production-quality deployment of Odoo on Oracle Cloud Infrastructure (OCI). It begins immediately after your Oracle VM is created and reachable via SSH, and covers every step through to a secured, running Odoo instance.

Scope

This guide starts after VM creation. It covers PostgreSQL setup, Odoo Community & Enterprise source installation, Python virtual environment, odoo.conf, systemd service, Nginx reverse proxy, domain configuration, HTTPS via Certbot, dual-layer firewall, and administration tools.

🐧
Operating System
Ubuntu 24.04 LTS (Noble Numbat)
🐘
Database
PostgreSQL (Ubuntu repositories)
🐍
Runtime
Python 3 · Virtual environment
Web Server
Nginx reverse proxy with WebSocket
🔒
TLS / SSL
Let's Encrypt via Certbot
🛡️
Firewall
Oracle Security List + iptables

Architecture

The final deployment uses a layered architecture where each component has a specific responsibility and communicates only with adjacent layers.

Architecture diagram: Internet → HTTPS → Nginx → Odoo → PostgreSQL

Request flow from the public Internet through Nginx to Odoo and PostgreSQL

Key design principle

Odoo binds to 127.0.0.1:8069 only. Port 8069 is never exposed publicly. All traffic enters through Nginx on ports 80 (redirect) and 443 (HTTPS).

Deployment Roadmap

Follow these chapters in order. Each page covers a single topic with commands, explanations, and verification steps.

Final Verification Checklist

Use this checklist after completing every chapter to confirm a successful deployment.

  • Odoo service is running and enabled on boot
  • PostgreSQL is running with the odoo user
  • Nginx is running and passes configuration test
  • HTTPS active with a valid Let's Encrypt certificate
  • Automatic certificate renewal is configured
  • Odoo is bound to 127.0.0.1 only
  • Port 8069 is not publicly accessible
  • Firewall exposes only ports 22, 80 and 443

Administration & Troubleshooting

Back to top