Skip to Content

Odoo 19 Installation Manual

☁️ Installing Odoo 19 on AWS

A step-by-step guide to installing Odoo 19 on Amazon EC2 + Ubuntu 24.04
including Nginx, SSL, and firewall configuration

⏱ Install time: ~60 min 🎯 Difficulty: Intermediate 🖥 OS: Ubuntu 24.04 LTS

Step 1 — Create an AWS EC2 Instance

✅ Recommended Instance Specs

Scale Instance vCPU Memory Storage
Small (1–10 users) t3.medium 2 4 GB 30 GB GP3
Medium (10–50 users) t3.large 2 8 GB 50 GB GP3
Large (50+ users) m5.xlarge 4 16 GB 100 GB GP3

🔑 EC2 생성 순서

  1. AWS Console → EC2Launch Instance
  2. AMI: Select Ubuntu Server 24.04 LTS (HVM), SSD Volume Type
  3. Instance type: refer to the table above
  4. Create or select an existing Key Pair (used for SSH access)
  5. Configure security group inbound rules:
    • SSH (22) — My IP
    • HTTP (80) — 0.0.0.0/0
    • HTTPS (443) — 0.0.0.0/0
    • Odoo (8069) — My IP (close after setup)
  6. Storage: Select GP3 and enter recommended capacity
  7. Allocate an Elastic IP and associate it with the instance
⚠ 주의: 탄력적 IP를 할당하지 않으면 인스턴스를 재시작할 때마다 IP가 변경됩니다. 도메인 연결 전에 반드시 Elastic IP를 할당하세요.

Step 2 — Connect to Server & Set Up Environment

SSH Connection

ssh -i ~/your-key.pem ubuntu@

System Update & Dependency Installation

sudo apt update && sudo apt upgrade -y

sudo apt install -y \
  python3-pip python3-dev python3-venv \
  libxml2-dev libxslt1-dev libevent-dev \
  libsasl2-dev libldap2-dev libpq-dev \
  libjpeg-dev zlib1g-dev libfreetype6-dev \
  node-less npm git curl build-essential

# wkhtmltopdf 설치 (PDF 출력용)
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo dpkg -i wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo apt install -f -y
💡 팁: wkhtmltopdf는 Odoo에서 견적서, 납품서, 청구서 등을 PDF로 출력할 때 반드시 필요합니다.

Step 3 — Install & Configure PostgreSQL

# PostgreSQL 16 설치
sudo apt install -y postgresql postgresql-client

# PostgreSQL 서비스 시작
sudo systemctl enable postgresql
sudo systemctl start postgresql

# Odoo 전용 DB 사용자 생성
sudo -u postgres createuser -s odoo

# 비밀번호 설정 (선택)
sudo -u postgres psql -c "ALTER USER odoo WITH PASSWORD 'your_strong_password';"
⚠ 보안: 운영 환경에서는 반드시 강력한 비밀번호를 설정하고, PostgreSQL의 외부 접속을 비활성화하세요.

Step 4 — Install Odoo 19

Create Odoo System User & Download Source

# odoo 전용 시스템 계정 생성
sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo

# Odoo 소스 클론 (커뮤니티)
sudo -u odoo git clone https://github.com/odoo/odoo.git \
  --depth 1 --branch 19.0 /opt/odoo/odoo-server

# Python 가상환경 생성 및 의존성 설치
sudo -u odoo python3 -m venv /opt/odoo/venv
sudo -u odoo /opt/odoo/venv/bin/pip install -r /opt/odoo/odoo-server/requirements.txt

Create Odoo Configuration File

sudo tee /etc/odoo.conf > /dev/null <
              

Register systemd Service

sudo tee /etc/systemd/system/odoo.service > /dev/null <
              
✅ Verification: If you see the Odoo database creation screen at http://:8069, the installation was successful.

Step 5 — Configure Nginx Reverse Proxy

sudo apt install -y nginx

sudo tee /etc/nginx/sites-available/odoo > /dev/null <<'EOF'
upstream odoo {
  server 127.0.0.1:8069;
}
upstream odoochat {
  server 127.0.0.1:8072;
}

server {
  listen 80;
  server_name your-domain.com;

  # Gzip 압축
  gzip on;
  gzip_types text/css text/javascript application/javascript;

  # 정적 파일 캐싱
  location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2)$ {
    expires 7d;
    add_header Cache-Control "public";
    proxy_pass http://odoo;
  }

  # 롱폴링 (실시간 알림)
  location /websocket {
    proxy_pass http://odoochat;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
  }

  location / {
    proxy_pass http://odoo;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_read_timeout 720s;
    client_max_body_size 200M;
  }
}
EOF

sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Step 6 — Apply SSL Certificate (Let’s Encrypt)

# Certbot 설치
sudo apt install -y certbot python3-certbot-nginx

# SSL 인증서 발급 (도메인이 EC2에 연결된 후 실행)
sudo certbot --nginx -d your-domain.com

# 자동 갱신 확인
sudo certbot renew --dry-run
💡 팁: Certbot은 Nginx 설정을 자동으로 수정하여 HTTP → HTTPS 리다이렉트와 443 포트 설정을 처리합니다. 인증서는 90일마다 자동 갱신됩니다.

7단계 — 운영 최적화 및 보안 설정

🔒 방화벽 (UFW)

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw deny 8069
sudo ufw enable

💾 자동 백업 (S3)

sudo apt install -y awscli
aws configure
# crontab -e 에 추가:
0 3 * * * pg_dump odoo | \
  gzip | aws s3 cp - \
  s3://your-bucket/odoo-$(date +\%F).sql.gz

odoo.conf Recommended Production Settings

Parameter Recommended Value Description
workers vCPU × 2 + 1 Number of concurrent request worker processes
max_cron_threads 2 Dedicated thread for scheduled tasks
limit_memory_hard 2684354560 Max memory per worker (2.5 GB)
proxy_mode True Nginx 프록시 사용 시 필수
logrotate True Automatic log rotation

Build Your AWS Odoo with Expert Support

Darindari is your specialist partner for AWS-based Odoo installation, operations, and customization.
One-stop support from infrastructure design to ongoing operations.

Contact Dev Services →