Tutorial Integrasi Docker, ERP Odoo dan Nginx di Ubuntu Linux
January 02, 2024NOTE: Pada kesempatan ini saya akan membahas bagaimana melakukan integarasi Docker, Odoo dan Nginx di ubuntu server. Tulisan ini saya buat dengan bentuk tutorial praktis yang sudah saya implementasikan di perusahaan. Jadi sangat praktis dan siap digunakan secara langsung dan tentunya dapat menghasilkan cuan π.
Jika anda tertarik ingin mendalaminya dan ingin kuliah langsung praktek ya hanya di Areta Informatics College, yang langsung belajar praktek dan menerapkannya di perusahaan, siap kerja dan buka bisnis sendiri tentunya di bidang IT dan Digital Marketing sebelum lulus kuliah. Keren kan? Info lebih lanjut bisa hubungi kami di websitenya https://aretacollege.com.
Setup Docker
Pada tutorial ini saya akan membahas bagaimana menggunakan docker compose untuk menjalan Odoo pada system operasi linux server ubuntu. Install docker compose dengan printah
$ sudo apt update
$ sudo apt install docker-compose
Cek versi docker dengan perintah
$ docker-compose βversion
Outputnya:
docker-compose version 1.29.2, build 5becea4c
Jalankan Odoo dan PostgreSQL dengan Docker Compose Pertama, buatkan direktori untuk menempatkan konfigurasi odoo
$ mkdir ~/odoo
$ cd ~/odoo
Buatkan file docker-compose.yml isikan filenya seperti berikut:
$ vim docker-compose.yml
version: β3β
services:
odoo:
image: odoo:15.0
env_file: .env
depends_on:
- postgres
ports:
- β8069:8069β
volumes:
- data:/var/lib/odoo
- ./config:/etc/odoo
postgres:
image: postgres:13
env_file: .env
volumes:
- db:/var/lib/postgresql/data/pgdata
volumes:
data:
db:
Buatkan file .env untuk menyimpan file konfigurasi odoo dan postgresql
$ vim .env
# postgresql environment variables
POSTGRES_DB=postgres
POSTGRES_PASSWORD=isikan_passwordmu
POSTGRES_USER=odoo
PGDATA=/var/lib/postgresql/data/pgdata
# odoo environment variables
HOST=postgres
USER=odoo
PASSWORD=isikan_passwordmu
Generate passwordmu menggunakan openssl
$ openssl rand -base64 30
Jalankan docker compose dengan perintah
$ docker-compose up -d
Jika ingin stop docker dan postgresql jalan perintah
$ docker-compose stop
Untuk melihat hasilnya dari shell gunakan perintah curl
$ curl β head http://localhost:8069
Outputnya:
HTTP/1.0 303 SEE OTHER
Content-Type: text/html; charset=utf-8
Content-Length: 215
Location: http://localhost:8069/web
Set-Cookie: session_id=36d9172180426eded02ca55c16e8bc4a48940ae3; Expires=Mon, 01-Apr-2024 06:48:51 GMT; Max-Age=7776000; HttpOnly; Path=/
Server: Werkzeug/1.0.1 Python/3.9.2
Date: Tue, 02 Jan 2024 06:48:51 GMT
Setup Nginx Server
Login ke shell Linux, jalan perintah update dan install nginx
$ sudo apt update
$ sudo apt install nginx
Allow public port 80 (http) dan 443 (https) menggunakan UFW dari aplikasi βNginx Fullβ
$ sudo ufw allow βNginx Fullβ
Outputnya:
Rules updated
Rules updated (v6)
Buat file odoo.conf pada direktori /etc/nginx/sites-available
$ vim /etc/nginx/sites-available/odoo.conf
Isikan filenya seperti berikut:
server {
listen 80;
listen [::]:80;
server_name erp.smkwijayakusuma.sch.id;
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://localhost:8069;
}
}
Buatkan link dari folder site-available ke folder site-enabled dengan perintah berikut:
$ sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/
Cek hasil konfigurasinya dengan perintah berikut:
$ sudo nginx -t
Ouputnya:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Start service nginx yang sudah di konfigurasi dengan perintah berikut:
$ sudo systemctl start nginx.service
Install Certbot dan setting Sertifikat TLS
Pertama install certbot dan plugin nginx
$ sudo apt install certbot python3-certbot-nginx
Jalankan certbot untuk mengaktikan domain dengan perintah berikut:
$ sudo certbot β nginx -d erp.smkwijayakusuma.sch.id
Outputnya:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for erp.smkwijayakusuma.sch.id
Waiting for verificationβ¦
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/odoo.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP ac cess.
- β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β -
1: No redirect β Make no further changes to the webserver configuration.
2: Redirect β Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if youβre confident your site works on HTTPS. You can undo this
change by editing your web serverβs configuration.
- β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Select the appropriate number [1β2] then [enter] (press βcβ to cancel): 2
Pada pilihan di atas ketik 2 lalu tekan enter
Outputnya:
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/odoo.conf
- β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β -
Congratulations! You have successfully enabled
https://erp.smkwijayakusuma.sch.id
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=erp.smkwijayakusuma.sch.id
- β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/erp.smkwijayakusuma.sch.id/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/erp.smkwijayakusuma.sch.id/privkey.pem
Your cert will expire on 2024β04β01. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the βcertonlyβ option. To non-interactively renew *all* of
your certificates, run βcertbot renewβ
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Letβs Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Sampai tahap ini selesai, anda dapat mengkakses server erp odoo anda dengan url https://nama_domain anda tanpa menggunakan port 8069