Skip to content

Instantly share code, notes, and snippets.

@jidokaaris
Created November 14, 2021 14:31
Show Gist options
  • Select an option

  • Save jidokaaris/ad475a05b3d0c69f3b6f5c971ac66bf5 to your computer and use it in GitHub Desktop.

Select an option

Save jidokaaris/ad475a05b3d0c69f3b6f5c971ac66bf5 to your computer and use it in GitHub Desktop.
install odoo (odoo + postgresql +nginx + ssl comodo) di vps dengan docker compose
  1. docker-compose.yml
version: '3'

services:
  nginx:
    image: nginx:latest
    container_name: webserver
    restart: unless-stopped
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./ssl:/ssl/
  db:
    image: postgres:12
    restart: unless-stopped
    environment:
      - POSTGRES_USER=odoo # Set value of postgres credential
      - POSTGRES_PASSWORD=seCRETpassWORD
      - POSTGRES_DB=postgres
      - PGDATA=/var/lib/postgresql/data/pgdata
    volumes:
      - odoo-db-data:/var/lib/postgresql/data/pgdata # set postgresql data persistence
    ports:
      - "5432:5432"
  odoo:
    image: odoo:13.0
    # build: .
    container_name: odoo
    restart: unless-stopped
    volumes:
      - ./addons-enterprise:/mnt/enterprise-addons # Mount volume between host and container, host_dir:container_dir
      - ./addons-extra:/mnt/extra-addons
      - ./config:/etc/odoo
      - odoo-web-data:/var/lib/odoo
    ports:
      - "8069:8069"
    depends_on:
      - db # set depends on postgresql db
    environment:
      - HOST=db
      - USER=odoo
      - PASSWORD=seCRETpassWORD
volumes:
  odoo-web-data:
  odoo-db-data:
  1. buat folder ssl, nginx, config, addons-extra, addons-enterprise
  2. copy paste file .cert, .key, .ca-bundle ke folder ssl yg kita dapat ketika beli ssl comodo
  3. gabung menjadi .pem misal cat nama-file.crt nama-file.key nama-file.ca-bundle > nama-file.pem referensi https://www.novri.web.id/2021/02/cara-install-ssl-di-vps-nginx-ubuntu.html
  4. buat file nginx.conf di folder nginx:
events { }

http {

  map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
  }

  server {
    listen 80;
    server_name nama-domain-kita.com;
    return 301 https://nama-domain-kita.com$request_uri;
  }

  server {
    listen 443 ssl;
    server_name nama-domain-kita.com;

    ssl_certificate /ssl/nama-certificate.pem;
    ssl_certificate_key /ssl/nama-private-key.key;

    access_log /var/log/nginx/data-access.log combined;

    location / {
      proxy_pass http://odoo:8069/;
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_redirect http://odoo:8069/ $scheme://$http_host/;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $connection_upgrade;
      proxy_read_timeout 20d;
      proxy_buffering off;
    }
  }
}
  1. buat file odoo.conf di folder config, isinya menyesuaikan konfigurasi odoo, refernsi https://hub.docker.com/_/odoo
  2. run docker-compose up

image atau image odoo, postgres, nginx bisa menyesuaikan atau bild custom.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment