Odoo install ubuntu: Difference between revisions

From wiki karavi
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
#--------------------------------------------------
#--------------------------------------------------
#Step 1: Update Package Manager
#Step 1: Update Package Manager
#--------------------------------------------------
#--------------------------------------------------
lsb_release -a && ip r
 
sudo apt-get update
lsb_release -a
 
ip r
 
sudo apt-get update  
 
sudo apt-get upgrade -y
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 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 apt install nodejs
sudo npm install -g rtlcss
sudo npm install -g rtlcss
cd /tmp
cd /tmp
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
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 dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo apt install -f
sudo apt install -f
ls /usr/local/bin
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.'
'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
echo $PATH
which wkhtmltopdf
which wkhtmltopdf
which wkhtmltoimage
which wkhtmltoimage
sudo apt install postgresql
sudo apt install postgresql
sudo systemctl is-enabled postgresql
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
sudo systemctl status postgresql
su - postgres
su - postgres
createuser -sdP odoo
createuser -sdP odoo


psql
psql
\du
\du
ALTER ROLE odoo WITH PASSWORD 'password123';
ALTER ROLE odoo WITH PASSWORD 'password123';
\q
\q
su root
su root
sudo systemctl restart postgresql
sudo systemctl restart postgresql
sudo nano /etc/postgresql/14/main/pg_hba.conf
sudo nano /etc/postgresql/14/main/pg_hba.conf
'host    all  odoo    127.0.0.1/32    scram-sha-256'
'host    all  odoo    127.0.0.1/32    scram-sha-256'
sudo systemctl restart postgresql
sudo systemctl restart postgresql
su - postgres
su - postgres
psql -h 127.0.0.1 -U odoo -d postgres
psql -h 127.0.0.1 -U odoo -d postgres
\conninfo
\conninfo
#--------------------------------------------------
#--------------------------------------------------
#Downloading Odoo 16
#Downloading Odoo 16
#--------------------------------------------------
#--------------------------------------------------
sudo adduser --system --group --home=/opt/odoo --shell=/bin/bash odoo
sudo adduser --system --group --home=/opt/odoo --shell=/bin/bash odoo
cd /opt/odoo
cd /opt/odoo
git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.0 --single-branch odoo-server
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
sudo chown -R odoo:odoo /opt/odoo/odoo-server


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


[options]
[options]
; This is the password that allows database operations:
; This is the password that allows database operations:
admin_passwd = admin
admin_passwd = admin
db_host = 127.0.0.1
db_host = 127.0.0.1
db_port = 5432
db_port = 5432
db_user = odoo
db_user = odoo
db_password = password123
db_password = password123
addons_path = /opt/odoo/odoo-server/addons
addons_path = /opt/odoo/odoo-server/addons
xmlrpc_port = 8069
xmlrpc_port = 8069
logfile = /var/log/odoo/odoo-server.log
logfile = /var/log/odoo/odoo-server.log
log_level  = debug
log_level  = debug
xmlrpc_interface = 127.0.0.1
xmlrpc_interface = 127.0.0.1
proxy_mode = True
proxy_mode = True




Line 233: Line 306:


''Step 5 — Verifying Certbot Auto-Renewal''
''Step 5 — Verifying Certbot Auto-Renewal''
sudo systemctl status snap.certbot.renew.service
sudo systemctl status snap.certbot.renew.service
'test the renewal process'
'test the renewal process'
sudo certbot renew --dry-run
sudo certbot renew --dry-run
certbot -v --nginx --no-redirect -d hospital.ucr.ir,erp.ntk.ir,noveltyred.ir -w /var/www/html/letsencrypt/


#--------------------------------------------------
#--------------------------------------------------

Latest revision as of 06:38, 26 October 2023

  1. --------------------------------------------------
  1. Step 1: Update Package Manager
  1. --------------------------------------------------

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. --------------------------------------------------
  1. Downloading Odoo 16
  1. --------------------------------------------------

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. --------------------------------------------------
  1. Installing Python Dependencies for Odoo
  1. --------------------------------------------------

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

certbot -v --nginx --no-redirect -d hospital.ucr.ir,erp.ntk.ir,noveltyred.ir -w /var/www/html/letsencrypt/


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



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

[source 1](https://www.howtoforge.com/how-to-install-odoo-16-on-ubuntu-22-04/)

[source 2](https://vegastack.com/tutorials/step-by-step-tutorial-to-install-odoo-16-erp-on-ubuntu-22-04/)