Odoo install ubuntu
- --------------------------------------------------
- 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 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
- --------------------------------------------------
- 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
- --------------------------------------------------
- Migrating Database and Installing Odoo 16
- --------------------------------------------------
http://<your_domain_or_IP_address>:8069
- --------------------------------------------------
- END
- -------------------------------------------------
source: https://www.howtoforge.com/how-to-install-odoo-16-on-ubuntu-22-04/