Inštalácia Odoo ERP 17 na Rocky, Alma, CentOS, RHEL 9|8


V čase písania tohto článku je Odoo ERP 17 najnovšou verziou úžasného open-source softvéru pre plánovanie podnikov (ERP), vytvoreného s cieľom pomôcť vašim obchodným procesom zostať efektívnymi. Odoo ERP vám poskytuje platformu s integrovanými aplikáciami na riešenie všetkých vašich obchodných problémov, od HR, CRM, správy zásob, financií, výroby, predaja až po e-commerce. V Odoo ERP sú všetky tieto integrácie distribuované prostredníctvom modulárneho prístupu, ktorý vám umožňuje začať s niekoľkými modulmi a postupne pridávať ďalšie podľa potreby. To robí z Odoo vysoko flexibilné a škálovateľné riešenie.

Na inštaláciu Odoo ERP 17 na Rocky Linux, AlmaLinux, CentOS alebo RHEL 9/8 je potrebné nasledovať niekoľko krokov:

  • Inštalácia závislostí potrebných na spustenie Odoo 17
  • Vytvorenie virtuálneho prostredia Python
  • Inštalácia Odoo 17 na Rocky/AlmaLinux/RHEL 9|8
  • Konfigurácia Odoo a webového servera
  • Prístup k Odoo a jeho používanie

Pre funkcionality Odoo ERP 17 si pozrite Poznámky k vydaniu Odoo 17

Predpoklady

Predtým, ako môžete pokračovať, budete musieť splniť nasledujúce požiadavky.

Systémové požiadavky:
  1. Operačný systém: Nainštalovaný Rocky, Alma, CentOS Stream alebo RHEL 8/9
  2. CPU: Minimálne dvojjadrový procesor (ak máte štvorjadrový, tým lepšie).
  3. RAM: Minimálne 2 GB pamäte (Ak máte 4 GB alebo viac, tým lepšie).
  4. Disk: Minimálne 20 GB voľného miesta na disku pre uchovávanie údajov Odoo.
Softvérové požiadavky:
  1. Python: Python 3.10 alebo vyšší.
  2. PostgreSQL: PostgreSQL 12 alebo novší.
  3. Node.js a npm: Node.js verzie 12.x alebo novšej a npm na správu zdrojov.
  4. Wkhtmltopdf: Pre tlač PDF správ je potrebná konkrétna verzia wkhtmltopdf (0.12.5 alebo 0.12.6).
  5. Nginx alebo Apache: Pre reverzné proxy (zvyčajne sa uprednostňuje Nginx).

Začnime inštaláciu Odoo ERP.

Krok 1 – Nainštalujte závislosti pre zostavenie

Aktualizujte svoj systém pred akoukoľvek inštaláciou:

sudo dnf -y update

Ak máte aktualizácie jadra, zvážte reštart systému predtým, než budete pokračovať:

sudo reboot

Ďalej nainštalujte vývojové nástroje vo vašom systéme.

sudo dnf groupinstall -y "Development Tools"

Nainštalujte ďalšie knižnice, ktoré môžu byť potrebné pri zostavovaní Odoo zo zdroja:

sudo dnf install -y vim git gcc bzip2-devel redhat-rpm-config libxslt-devel  openldap-devel libjpeg-devel freetype-devel

Krok 2 – Nainštalujte Python 3.11 a Node.js

Musíme nainštalovať Python 3.10+. V tomto článku budeme používať Python 3.11.

sudo dnf install python3.11 python3.11-devel python3.11-pip

Potvrďte, že je nainštalovaný úspešne, tým, že skontrolujete jeho verziu.

$ python3.11 --version
Python 3.11.9

Nainštalujme aj Node.js. Nie je potrebná žiadna konkrétna verzia, použijeme Node.js v18.

 sudo dnf module reset nodejs -y
sudo dnf module install nodejs:18 -y

Overte to skontrolovaním verzie Node.js.

$ node --version
v18.20.2

Nainštalujte modul rtlcss pre Node pomocou npm:

sudo npm install -g rtlcss

Tiež nainštalujte Less a Less plugin Clean CSS:

sudo npm install -g less less-plugin-clean-css

Krok 3 – Inštalácia a konfigurácia databázy PostgreSQL

Vyžaduje sa PostgreSQL 12 alebo novší. Môžeme nainštalovať PostgreSQL 16, ktorý je dostupný v repozitároch OS APPStream. Resetujte aktuálny modul PostgreSQL.

sudo dnf module -y disable postgresql

Povoliť modul PostgreSQL 16.

sudo dnf install -y @postgresql:16

Nainštalujte tiež balík postgresql-devel.

sudo dnf install -y  postgresql-devel

Inicializujte databázový server.

sudo postgresql-setup initdb

Spustite a povolte službu databázy.

sudo systemctl enable --now postgresql

Nakoniec vytvorte používateľa databázy odoo. Zadajte heslo pre používateľa, keď budete vyzvaní.

sudo su - postgres -c "createuser -s odoo"

Ak chcete vytvoriť používateľa s heslom, spustite:

sudo -u postgres createuser odoo -U postgres -dP

Pre vzdialený server databázy PostgreSQL povolíte vo vašom databázovom serveri vzdialené pripojenia, aby sa k nemu Odoo mohlo pripojiť.

Krok 4 – Nainštalujte wkhtmltopdf

Wkhtmltopdf je open-source nástroj príkazového riadku, ktorý Odoo používa na prevod HTML do PDF a iných obrazových formátov prostredníctvom výkonného renderovacieho motora Webkit. Je to potrebné na generovanie dokumentov, ako sú faktúry, správy a iné tlačiteľné dokumenty.

Stiahnite a nainštalujte balík wkhtmltopdf RPM.

  • Systémy založené na RHEL 9
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm
sudo dnf install -y ./wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm
  • Systémy založené na RHEL 8
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux8.x86_64.rpm
sudo dnf install -y ./wkhtmltox-0.12.6.1-2.almalinux8.x86_64.rpm

Overiť inštaláciu:

$ wkhtmltopdf --version
wkhtmltopdf 0.12.6.1 (with patched qt)

Krok 5 – Nastavenie Python prostredia pre Odoo

Vytvorte používateľa s názvom odoo, ktorý bude spúšťať služby Odoo.

sudo useradd -m -U -r -d /opt/odoo -s /bin/bash odoo

Nainštalujte virtualenv:

sudo pip3.11 install virtualenv

Prepnite na vytvorený účet používateľa odoo.

sudo su - odoo

Lokálne skopírujte repozitár Odoo z Githubu.

git clone --depth 1 --branch 17.0 --single-branch https://github.com/odoo/odoo.git

Použite príkaz virtualenv na vytvorenie virtuálneho prostredia Python pre Odoo ERP.

virtualenv odoo-venv

Aktivujte vytvorené virtuálne prostredie.

source odoo-venv/bin/activate

Aktualizujte pip po aktivácii.

pip3.11 install --upgrade pip

Nainštalujte balík wheel pre Python v prostredí

pip3.11 install wheel

Nainštalujte požiadavky pre Python pre Odoo 17

pip3.11 install -r odoo/requirements.txt

Ak chcete zobraziť zoznam všetkých balíkov Python nainštalovaných vo virtuálnom prostredí, spustite nasledujúci príkaz:

pip3.11 list

Vytvorte adresár, ktorý bude ukladať všetky doplnky tretích strán.

mkdir odoo/custom-addons

Opustite virtuálne prostredie.

exit

Krok 6 – Konfigurácia Odoo ERP

Skopírujte ukážkový konfiguračný súbor Odoo do adresára /etc vo vašom systéme.

sudo cp /opt/odoo/odoo/debian/odoo.conf /etc/odoo.conf

Súbor odoo.conf obsahuje kľúčové nastavenia potrebné na správne fungovanie Odoo. Otvorte súbor na úpravu.

# Open with vim
sudo vim /etc/odoo.conf

# Open with nano
sudo nano /etc/odoo.conf

Upravte nastavenia tak, aby vyzerali ako nižšie.

[options]
; This is the password that allows database operations:
admin_passwd = Str0ngAdminPasw0rd
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo/addons, /opt/odoo/odoo/custom-addons
default_productivity_apps = True
xmlrpc_port = 8069

Pre vzdialený server PostgreSQL nastavte:

  • db_host: IP adresa servera databázy PostgreSQL
  • db_password: Heslo pre používateľa vytvoreného na vzdialenej databáze
  • db_user: Vzdialený databázový používateľ bol vytvorený.

Udeľte súboru príslušné oprávnenia:

sudo chown odoo:odoo /etc/odoo.conf
sudo chmod 640 /etc/odoo.conf

Vytvorte systémovú službu Odoo.

sudo tee /etc/systemd/system/odoo.service<<EOF
[Unit]
Description=Odoo ERP System
Documentation=http://www.odoo.com
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-venv/bin/python3.11 /opt/odoo/odoo/odoo-bin \
  --config=/etc/odoo.conf \
  --addons-path=/opt/odoo/odoo/addons/ \
  --logfile /var/log/odoo/odoo-server.log
StandardOutput=journal+console
KillMode=mixed

[Install]
WantedBy=multi-user.target
EOF

Vytvorte priečinok s logmi.

sudo mkdir /var/log/odoo/
sudo chown -R odoo:odoo /var/log/odoo/

Spustite a aktivujte službu odoo.

sudo systemctl daemon-reload
sudo systemctl enable --now odoo.service

Skontrolujte stav služby, či funguje správne.

$ systemctl status odoo
● odoo.service - Odoo ERP System
   Loaded: loaded (/etc/systemd/system/odoo.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2024-07-18 11:34:34 UTC; 21s ago
     Docs: http://www.odoo.com
 Main PID: 70809 (python3.11)
    Tasks: 4 (limit: 48750)
   Memory: 88.2M
   CGroup: /system.slice/odoo.service
           └─70809 /opt/odoo/odoo-venv/bin/python3.11 /opt/odoo/odoo/odoo-bin --config=/etc/odoo.conf --addons-path=/opt/odoo/odoo/addons/ --logfile /var/log/odoo/odoo-server.log

Jul 18 11:34:34 rocky8.cloudspinx.com systemd[1]: Started Odoo ERP System.

Krok 7 – Konfigurácia firewalld

Služba počúva na porte 8069.

$ ss -tunelp | grep 8069
tcp   LISTEN 0      128          0.0.0.0:8069      0.0.0.0:*    users:(("python3.11",pid=70809,fd=4)) uid:989 ino:115353 sk:5 <->

Ak máte firewalld, povolte port 8069

sudo firewall-cmd --add-port=8069/tcp --permanent
sudo firewall-cmd --reload

K webovej konzole Odoo môžete pristupovať na http://serverip:8069 a dokončiť nastavenie.

Zadajte hodnotu admin_passwd, nastavenú v odoo.conf pre hlavné heslo. Špecifikujte názov databázy, napríklad odoo17. Potom vytvorte prvého administrátorského používateľa zadaním e-mailovej adresy a hesla. Voliteľne nastavte telefónne číslo, jazyk a krajinu.

Po dokončení nastavenia sa prihláste pomocou vytvoreného administrátorského používateľa a jeho hesla.

Dostanete sa na Odoo panel pre povolenie modulov a podobne.

Krok 8 – Konfigurácia Nginx proxy

Môžeme použiť Nginx na proxy požiadavky na Odoo ERP. Nainštalujte balík nginx.

sudo dnf -y install nginx

Povoliť službe automatické spustenie pri štarte systému.

sudo systemctl enable nginx

Vytvorte konfiguračný súbor Nginx pre službu Odoo.

 sudo vim /etc/nginx/conf.d/odoo.conf

Skopírujte a upravte nasledujúci obsah. Musíte nahradiť odoo.example.com vašou skutočnou doménou.

# Odoo Upstreams
upstream odooserver {
 server 127.0.0.1:8069;
}

server {
    listen 80;
    server_name odoo.example.com;
    access_log /var/log/nginx/odoo_access.log;
    error_log /var/log/nginx/odoo_error.log;

    # Proxy settings
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;
    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;

    # Request for root domain
    location / {
       proxy_redirect off;
       proxy_pass http://odooserver;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odooserver;
    }

    # Gzip Compression
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

Overte konfigurácie nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ak všetko vyzerá v poriadku, reštartujte službu.

sudo systemctl restart nginx

Pristúpte k webovému panelu Odoo na http://yourdomain.com

Krok 9 – Použitie SSL od Let’s Encrypt

Pre servery na verejnej doméne môžete použiť bezplatný SSL od Let’s Encrypt.

Nainštalujte certbot a jeho plugin pre Nginx.

sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx -y

Žiadosť o SSL od Let’s Encrypt.

DOMAIN=odoo.example.com #replace with your actual domain
sudo certbot --nginx -d $DOMAIN --agree-tos

Ak nechcete poskytnúť e-mailovú adresu, použite

sudo certbot --nginx -d $DOMAIN --agree-tos --register-unsafely-without-email

Ukážkový výstup:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Account registered.
Requesting a certificate for odoo.example.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/odoo.example.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/odoo.example.com/privkey.pem
This certificate expires on 2024-10-16.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for odoo.cloudlabske.com to /etc/nginx/conf.d/odoo.conf
Congratulations! You have successfully enabled HTTPS on https://odoo.example.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Automaticky nastaví /etc/nginx/conf.d/odoo.conf, aby zahrňoval SSL.

cat /etc/nginx/conf.d/odoo.conf

Záver

Ukončili sme náš tutoriál o inštalácii Odoo na systémoch Linux Rocky, AlmaLinux, CentOS a RHEL 9. Začali sme prípravou servera s potrebnými závislosťami a potom sme pokračovali inštaláciou a konfiguráciou Odoo ERP. Vďaka rozsiahlym modulom, flexibilným a výkonným úpravám je Odoo dobre vhodné obchodné riešenie na automatizáciu procesov.