Odoo install ubuntu

From wiki karavi
Revision as of 16:48, 18 October 2023 by Karavi (talk | contribs) (Created page with "#-------------------------------------------------- #Step 1: Update Package Manager #-------------------------------------------------- lsb_release -a && ip r sudo apt-get update sudo apt-get upgrade -y sudo apt install git wget python3 build-essential libzip-dev python3-dev libxslt1-dev python3-pip libldap2-dev python3-wheel libsasl2-dev python3-venv python3-setuptools node-less libjpeg-dev xfonts-75dpi xfonts-base libxrender1 libpq-dev libffi-dev fontconfig sudo apt...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
  1. --------------------------------------------------
  2. Step 1: Update Package Manager
  3. --------------------------------------------------

lsb_release -a && ip r sudo apt-get update sudo apt-get upgrade -y

sudo apt install git wget python3 build-essential libzip-dev python3-dev libxslt1-dev python3-pip libldap2-dev python3-wheel libsasl2-dev python3-venv python3-setuptools node-less libjpeg-dev xfonts-75dpi xfonts-base libxrender1 libpq-dev libffi-dev fontconfig sudo apt install nodejs sudo npm install -g rtlcss cd /tmp wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb sudo apt install -f ls /usr/local/bin 'Now run the following command to verify the $PATH environment variable and make sure the '/usr/local/bin' directory is available on the binary $PATH. Otherwise, the Wkhtmltopdf package will not work properly.' echo $PATH which wkhtmltopdf which wkhtmltoimage sudo apt install postgresql sudo systemctl is-enabled postgresql sudo systemctl status postgresql su - postgres createuser -sdP odoo

psql \du ALTER ROLE odoo WITH PASSWORD 'password123'; \q su root sudo systemctl restart postgresql sudo nano /etc/postgresql/14/main/pg_hba.conf 'host all odoo 127.0.0.1/32 scram-sha-256' sudo systemctl restart postgresql su - postgres psql -h 127.0.0.1 -U odoo -d postgres \conninfo

  1. --------------------------------------------------
  2. Downloading Odoo 16
  3. --------------------------------------------------

sudo adduser --system --group --home=/opt/odoo --shell=/bin/bash odoo cd /opt/odoo git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.0 --single-branch odoo-server sudo chown -R odoo:odoo /opt/odoo/odoo-server

  1. --------------------------------------------------
  2. Installing Python Dependencies for Odoo
  3. --------------------------------------------------

cd /opt/odoo/odoo-server python3 -m venv venv source venv/bin/activate pip3 install wheel pip3 install -r requirements.txt deactivate sudo nano /etc/odoo.conf

[options]

This is the password that allows database operations

admin_passwd = admin db_host = 127.0.0.1 db_port = 5432 db_user = odoo db_password = password123 addons_path = /opt/odoo/odoo-server/addons xmlrpc_port = 8069 logfile = /var/log/odoo/odoo-server.log log_level = debug xmlrpc_interface = 127.0.0.1 proxy_mode = True


sudo chown odoo:odoo /etc/odoo.conf sudo mkdir /var/log/odoo sudo chown odoo:odoo /var/log/odoo sudo chmod 755 /var/log/odoo

  1. --------------------------------------------------
  2. Runnnig Odoo as Systemd Service
  3. --------------------------------------------------

sudo nano /lib/systemd/system/odoo-server.service [Unit] Description=Odoo 16.0 Service Requires=postgresql.service After=network.target postgresql.service

[Service] Type=simple SyslogIdentifier=odoo PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/odoo-server/venv/bin/python3 /opt/odoo/odoo-server/odoo-bin -c /etc/odoo.conf StandardOutput=journal+console

[Install] WantedBy=multi-user.target


sudo systemctl daemon-reload sudo systemctl start odoo-server sudo systemctl enable odoo-server sudo systemctl status odoo-server

  1. --------------------------------------------------
  2. Running Odoo with Nginx Reverse Proxy
  3. --------------------------------------------------

sudo nano /etc/odoo.conf xmlrpc_interface = 127.0.0.1 proxy_mode = True


sudo systemctl restart odoo-server sudo systemctl status odoo-server sudo apt install nginx sudo nano /etc/nginx/sites-available/odoo.conf

server {

 # set proper server name after domain set
 server_name erp.ntk.ir;
 # Add Headers for odoo proxy mode
 proxy_set_header X-Forwarded-Host \$host;
 proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto \$scheme;
 proxy_set_header X-Real-IP \$remote_addr;
 add_header X-Frame-Options "SAMEORIGIN";
 add_header X-XSS-Protection "1; mode=block";
 proxy_set_header X-Client-IP \$remote_addr;
 proxy_set_header HTTP_X_FORWARDED_HOST \$remote_addr;
 #   odoo    log files
 access_log  /var/log/nginx/odoo-access.log;
 error_log       /var/log/nginx/odoo-error.log;
 #   increase    proxy   buffer  size
 proxy_buffers   16  64k;
 proxy_buffer_size   128k;
 proxy_read_timeout 900s;
 proxy_connect_timeout 900s;
 proxy_send_timeout 900s;
 #   force   timeouts    if  the backend dies
 proxy_next_upstream error   timeout invalid_header  http_500    http_502
 http_503;
 types {
   text/less less;
   text/scss scss;
 }
 #   enable  data    compression
 gzip    on;
 gzip_min_length 1100;
 gzip_buffers    4   32k;
 gzip_types  text/css text/less text/plain text/xml application/xml application/json application/javascript application/pdf image/jpeg image/png;
 gzip_vary   on;
 client_header_buffer_size 4k;
 large_client_header_buffers 4 64k;
 client_max_body_size 0;
 location / {
   proxy_pass    http://127.0.0.1:8069;
   # by default, do not forward anything
   proxy_redirect off;
 }
 location /longpolling {
   proxy_pass http://127.0.0.1:8072;
 }
 location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
   expires 2d;
   proxy_pass http://127.0.0.1:8069;
   add_header Cache-Control "public, no-transform";
 }
 # cache some static data in memory for 60mins.
 location ~ /[a-zA-Z0-9_-]*/static/ {
   proxy_cache_valid 200 302 60m;
   proxy_cache_valid 404      1m;
   proxy_buffering    on;
   expires 864000;
   proxy_pass    http://127.0.0.1:8069;
 }
   listen 443 ssl; # managed by Certbot
   ssl_certificate /etc/letsencrypt/live/erp.ntk.ir/fullchain.pem; # managed by Certbot
   ssl_certificate_key /etc/letsencrypt/live/erp.ntk.ir/privkey.pem; # managed by Certbot
   include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}server {

   if ($host = erp.ntk.ir) {
       return 301 https://$host$request_uri;
   } # managed by Certbot


 listen 80;
 server_name erp.ntk.ir;
   return 404; # managed by Certbot


}




sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx sudo ufw allow "OpenSSH" sudo ufw enable sudo ufw allow "Nginx Full" sudo ufw status

  1. --------------------------------------------------
  2. Enable ssl with certbot
  3. --------------------------------------------------
 sudo apt-get update -y
 sudo apt install snapd -y
 sudo snap install core; snap refresh core
 sudo snap install --classic certbot
 sudo apt-get install python3-certbot-nginx -y
 sudo certbot --nginx -d $WEBSITE_NAME --noninteractive --agree-tos --email $ADMIN_EMAIL --redirect
 sudo service nginx reload

Step 5 — Verifying Certbot Auto-Renewal sudo systemctl status snap.certbot.renew.service 'test the renewal process' sudo certbot renew --dry-run

  1. --------------------------------------------------
  2. Migrating Database and Installing Odoo 16
  3. --------------------------------------------------
http://<your_domain_or_IP_address>:8069



  1. --------------------------------------------------
  2. END
  3. --------------------------------------------------