Odoo 19 Community on AWS User Guide
Odoo 19 Community on AWS User Guide
This guide covers deploying the cloudimg Odoo 19 Community Edition AMI, retrieving your automatically-generated credentials, accessing the Odoo web interface, and setting up HTTPS with Let's Encrypt.
Prerequisites
- An AWS account with EC2 access
- The Odoo 19 Community AMI launched (t3.medium or larger recommended; m5.large for production)
- Security group with inbound TCP 22, 80, 443, and 8069 open
- Your instance's public IP address or DNS hostname
Connecting to your instance
| OS variant | SSH login user |
|---|---|
| Ubuntu 24.04 | ubuntu |
ssh -i /path/to/your-key.pem ubuntu@<instance-public-ip>
Checking Odoo is running
After launch, cloud-init runs the first-boot service which initialises the database and rotates credentials. Wait approximately two minutes, then verify all services are active:
sudo systemctl status odoo.service postgresql.service nginx.service
Expected output:
● odoo.service - Odoo Open Source ERP and CRM
Active: active (running) since Wed 2026-05-27 19:55:18 UTC; 28s ago
Main PID: 9231 (/usr/bin/python3 /usr/bin/odoo)
● postgresql.service - PostgreSQL RDBMS
Active: active (exited) since Wed 2026-05-27 19:47:44 UTC; 7min ago
● nginx.service - A high performance web server and a reverse proxy server
Active: active (running) since Wed 2026-05-27 19:55:18 UTC; 28s ago
Check which ports are listening:
ss -tlnp | grep -E ':80|:8069'
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=9235,fd=5))
LISTEN 0 16 0.0.0.0:8069 0.0.0.0:* users:(("odoo",pid=9231,fd=6))
Verify the Odoo version:
odoo --version
Odoo Server 19.0-20260527
Retrieving your credentials
On first boot, a one-shot service generates unique credentials for your instance and writes them to a root-only file:
sudo cat /root/odoo-credentials.txt
# Odoo 19 Community - generated on first boot by odoo-firstboot.service
# These credentials are unique to this VM. Store them somewhere safe.
odoo.url=http://172.31.90.207/
odoo.database=cloudimg
odoo.admin.email=admin@example.com
odoo.admin.user=admin
odoo.admin.pass=<ODOO_ADMIN_PASSWORD>
odoo.master.pass=<master-password>
# To access Odoo, browse to http://<this-vm-public-ip>/ and sign in to the
# database 'cloudimg' as 'admin' with the password above.
Note the odoo.admin.pass value — you will use it to sign in to the web interface.
Accessing the Odoo web interface
Browse to your instance's public IP address in a web browser:
http://<instance-public-ip>/
Odoo redirects to the login page automatically:

Sign in with:
- Email / Username: admin
- Password: the odoo.admin.pass value from /root/odoo-credentials.txt
- Database: cloudimg (pre-selected)
After signing in you reach the Odoo application launcher:

Installing modules
The image ships with the Odoo base framework and web modules. Install business modules from the Apps catalogue:
- Click the grid icon in the top-left corner and select Apps
- Browse or search for the module you want (Sales, CRM, Accounting, Inventory, etc.)
- Click Activate to install
The most commonly used modules are: - Sales — quotations and invoices - CRM — customer relationships and pipeline - Invoicing — billing and payments - Inventory — stock management and warehousing - Purchase — purchase orders and vendor management - Project — task and project management - Employees — HR and payroll
Disk layout
The instance has two dedicated EBS gp3 data volumes in addition to the OS root disk:
| Mount point | Purpose | Default size |
|---|---|---|
/var/lib/postgresql |
PostgreSQL 16 database data | 20 GiB |
/var/lib/odoo |
Odoo filestore, sessions, attachments | 20 GiB |
Verify the layout:
lsblk -o NAME,SIZE,MOUNTPOINT
NAME SIZE MOUNTPOINT
nvme0n1 8G
├─nvme0n1p1 7G /
nvme1n1 20G /var/lib/postgresql
nvme2n1 20G /var/lib/odoo
You can resize either data volume independently in the AWS console without touching the OS disk.
Useful management commands
Check the Odoo service log:
sudo tail -f /var/log/odoo/odoo-server.log
Restart Odoo after a configuration change:
sudo systemctl restart odoo.service
Access the PostgreSQL database directly:
sudo -u postgres psql -d cloudimg
Enabling HTTPS with Let's Encrypt
To serve Odoo over HTTPS with a trusted certificate you need a domain name that resolves to your instance's public IP address.
Install Certbot:
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
Obtain a certificate (replace your-domain.example.com with your actual domain):
sudo certbot --nginx -d your-domain.example.com
Certbot automatically updates the nginx configuration to serve port 443 and redirect HTTP to HTTPS. After obtaining the certificate, restart nginx:
sudo systemctl restart nginx.service
Certbot installs a systemd timer that renews the certificate automatically before it expires.
Firewall and security groups
To enable HTTPS traffic, add an inbound rule to your EC2 security group allowing TCP 443
from 0.0.0.0/0. Port 8069 provides direct access to the Odoo application server if you
need it; you can restrict it to your own IP once nginx is handling public traffic.
Screenshots

Terminal showing Odoo 19 version and systemctl status for odoo, postgresql and nginx services all active and running.

The Odoo 19 sign-in page served on port 80 via nginx, ready immediately on first boot.

The Odoo 19 main application dashboard showing the module launcher for CRM, Sales, Accounting, Inventory and more.
Support
This image is provided by cloudimg with 24/7 technical support. For assistance with Odoo deployment, module configuration, upgrades, customisations, performance tuning or PostgreSQL administration, contact support at www.cloudimg.co.uk.