Odoo install ubuntu: Difference between revisions
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 | |||
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
- --------------------------------------------------
- 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 install nodejs
sudo npm install -g rtlcss
cd /tmp
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
- --------------------------------------------------
- Downloading Odoo 16
- --------------------------------------------------
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
- --------------------------------------------------
- Installing Python Dependencies for Odoo
- --------------------------------------------------
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
- --------------------------------------------------
- Runnnig Odoo as Systemd Service
- --------------------------------------------------
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
- --------------------------------------------------
- Running Odoo with Nginx Reverse Proxy
- --------------------------------------------------
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
- --------------------------------------------------
- Enable ssl with certbot
- --------------------------------------------------
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/
- --------------------------------------------------
- Migrating Database and Installing Odoo 16
- --------------------------------------------------
http://<your_domain_or_IP_address>:8069
- --------------------------------------------------
- END
- --------------------------------------------------
[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/)