Instalirajte Odoo ERP 17 na Rocky, Alma, CentOS, RHEL 9|8


U trenutku pisanja ovog članka, Odoo ERP 17 je najnovija verzija izvanrednog open-source softvera za planiranje poslovnih resursa (ERP) koji je stvoren kako bi pomogao vašim poslovnim procesima da ostanu učinkoviti. Odoo ERP pruža platformu s integriranim aplikacijama za rješavanje svih vaših poslovnih problema, od HR-a, CRM-a, upravljanja zalihama, financija, proizvodnje, prodaje do e-trgovine. U Odoo ERP-u, sve ove integracije distribuirane su modularnim pristupom koji vam omogućuje da započnete s nekoliko modula i dodajete više po potrebi. To čini Odoo izuzetno fleksibilnim i skalabilnim rješenjem.

Da biste instalirali Odoo ERP 17 na Rocky Linux, AlmaLinux, CentOS ili RHEL 9/8, morate slijediti nekoliko koraka:

  • Instalacija ovisnosti potrebnih za pokretanje Odoo 17
  • Kreiranje Python virtualnog okruženja
  • Instalacija Odoo 17 na Rocky/AlmaLinux/RHEL 9|8
  • Konfiguracija Odoo-a i web poslužitelja
  • Pristup i korištenje Odoo-a

Za značajke Odoo ERP 17 pogledajte Bilješke o izdanju Odoo 17

Preduvjeti

Prije nego što možete nastaviti, trebate ispuniti sljedeće zahtjeve.

Sistemski zahtjevi:
  1. Operativni sustav: Instaliran Rocky, Alma, CentOS Stream ili RHEL 8/9
  2. CPU: Minimalno dvojezgreni procesor (ako imate četverojezgreni, to je bolje).
  3. RAM: Minimalno 2GB memorije (ako imate 4GB ili više, to je bolje).
  4. Disk: Minimalno 20 GB slobodnog prostora na disku za pohranu Odoo podataka.
Zahtjevi za softver:
  1. Python: Python 3.10 ili noviji.
  2. PostgreSQL: PostgreSQL 12 ili noviji.
  3. Node.js i npm: Node.js 12.x ili noviji i npm za upravljanje resursima.
  4. Wkhtmltopdf: Za ispis PDF izvještaja potrebna je određena verzija wkhtmltopdf-a (0.12.5 ili 0.12.6).
  5. Nginx ili Apache: Za reverzni proxy (Nginx se općenito preferira).

Započnimo instalaciju Odoo ERP-a.

Korak 1 – Instalirajte ovisnosti za izgradnju

Ažurirajte svoj sustav prije bilo kakvih instalacija:

sudo dnf -y update

Ako imate ažuriranja kernela, razmislite o ponovnom pokretanju sustava prije nego što nastavite dalje:

sudo reboot

Zatim instalirajte razvojne alate na svoj sustav.

sudo dnf groupinstall -y "Development Tools"

Instalirajte dodatne biblioteke koje mogu biti potrebne prilikom izgradnje Odoo-a iz izvornog koda:

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

Korak 2 – Instalirajte Python 3.11 i Node.js

Moramo instalirati Python 3.10 ili noviji. U ovom članku ćemo koristiti Python 3.11.

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

Potvrdite da je instalacija uspješna provjerom verzije.

$ python3.11 --version
Python 3.11.9

Također instalirajmo Node.js. Nema specifične verzije, koristit ćemo Node.js v18.

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

Provjerite tako da provjerite broj verzije Node.js-a.

$ node --version
v18.20.2

Instalirajte rtlcss Node modul koristeći npm:

sudo npm install -g rtlcss

Također instalirajte Less i Less Plugin Clean CSS:

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

Korak 3 – Instalirajte i konfigurirajte PostgreSQL bazu podataka

Potreban je PostgreSQL 12 ili noviji. Možemo instalirati PostgreSQL 16 koji je dostupan u OS APPStream spremištima. Resetirajte trenutni PostgreSQL modul.

sudo dnf module -y disable postgresql

Omogući PostgreSQL 16 modul.

sudo dnf install -y @postgresql:16

Također instalirajte postgresql-devel paket.

sudo dnf install -y  postgresql-devel

Inicijaliziraj poslužitelj baze podataka.

sudo postgresql-setup initdb

Pokrenite i omogućite uslugu baze podataka.

sudo systemctl enable --now postgresql

Na kraju stvorite odoo korisnika baze podataka. Unesite lozinku za korisnika kada budete upitani.

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

Za stvaranje korisnika s lozinkom pokrenite:

sudo -u postgres createuser odoo -U postgres -dP

Za udaljeni PostgreSQL poslužitelj baze podataka omogućit ćete udaljene veze na svom DB poslužitelju kako bi se Odoo mogao povezati s njim.

Korak 4 – Instalirajte wkhtmltopdf

Wkhtmltopdf je open-source alat za naredbeni redak koji Odoo koristi za pretvaranje HTML-a u PDF i druge slikovne formate putem moćnog Webkit renderirajućeg motora. Ovo je potrebno za generiranje dokumenata kao što su računi, izvještaji i drugi tiskani dokumenti.

Preuzmite i instalirajte wkhtmltopdf RPM paket.

  • Sustavi temeljeni 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
  • Sustavi temeljeni 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

Provjerite instalaciju:

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

Korak 5 – Postavljanje Odoo Python okruženja

Kreirajte korisnika pod imenom odoo koji će pokretati Odoo usluge.

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

Instalirajte virtualenv:

sudo pip3.11 install virtualenv

Prebaci se na kreirani korisnički račun odoo.

sudo su - odoo

Klonirajte Odooov Github repozitorij lokalno.

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

Koristite naredbu virtualenv za stvaranje Python virtualnog okruženja za Odoo ERP.

virtualenv odoo-venv

Aktivirajte kreirano virtualno okruženje.

source odoo-venv/bin/activate

Nadogradite pip nakon aktivacije.

pip3.11 install --upgrade pip

Instalirajte Python paket wheel u okruženju

pip3.11 install wheel

Instalirajte Python zahtjeve za Odoo 17

pip3.11 install -r odoo/requirements.txt

Za prikaz svih Python paketa instaliranih u virtualnom okruženju pokrenite sljedeću naredbu:

pip3.11 list

Napravite direktorij koji će pohranjivati sve dodatke trećih strana.

mkdir odoo/custom-addons

Izađite iz virtualnog okruženja.

exit

Korak 6 – Konfigurirajte Odoo ERP

Kopirajte uzorak konfiguracijske datoteke Odoo u direktorij /etc na vašem sustavu.

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

Datoteka odoo.conf sadrži ključne konfiguracije potrebne za pravilno pokretanje Odoo-a. Otvorite datoteku za uređivanje.

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

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

Prilagodite postavke da izgledaju kao dolje.

[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

Za udaljeni PostgreSQL poslužitelj postavite:

  • db_host: IP adresa PostgreSQL poslužitelja baze podataka
  • db_password: Lozinka za korisnika kreiranog na udaljenoj bazi podataka
  • db_user: Udaljeni korisnik baze podataka je kreiran.

Dodijelite datoteci odgovarajuće dozvole:

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

Kreirajte Odoo systemd uslugu.

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

Napravite direktorij za zapise.

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

Pokrenite i omogućite odoo servis.

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

Provjerite status usluge da vidite radi li ispravno.

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

Korak 7 – Konfigurirajte firewalld

Usluga sluša na portu 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 <->

Ako imate firewalld, dozvolite port 8069

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

Možete pristupiti Odoo web konzoli na http://serverip:8069 i dovršiti postavljanje.

Unesite vrijednost admin_passwd postavljenu u odoo.conf za Glavnu lozinku. Navedite naziv baze podataka za stvaranje, primjerice odoo17. Zatim kreirajte prvog administratorskog korisnika unošenjem adrese e-pošte i lozinke. Opcionalno postavite broj telefona, jezik i državu.

Nakon završetka postavljanja, prijavite se pomoću kreiranog administratorskog korisnika i njegove lozinke.

Doći ćete do Odoo nadzorne ploče za omogućavanje modula itd.

Korak 8 – Konfigurirajte Nginx posrednika

Možemo koristiti Nginx za proksiranje zahtjeva prema Odoo ERP-u. Instalirajte nginx paket.

sudo dnf -y install nginx

Omogući da se usluga automatski pokrene prilikom pokretanja sustava.

sudo systemctl enable nginx

Kreirajte Nginx konfiguracijsku datoteku za Odoo servis.

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

Zalijepite i uredite sljedeći sadržaj. Morate zamijeniti odoo.example.com sa svojim stvarnim nazivom domene.

# 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;
}

Provjerite konfiguracije nginx-a.

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

Ako sve izgleda u redu, ponovno pokrenite servis.

sudo systemctl restart nginx

Pristupite Odoo web nadzornoj ploči na http://yourdomain.com

Korak 9 – Korištenje Let’s Encrypt SSL-a

Za poslužitelje na javnoj domeni možete koristiti besplatni Let’s Encrypt SSL.

Instalirajte certbot i njegov Nginx dodatak.

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

Zahtjev za Let’s Encrypt SSL.

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

Ako ne želite pružiti adresu e-pošte, upotrijebite

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

Primjer izlaza:

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

Automatski će konfigurirati /etc/nginx/conf.d/odoo.conf da uključuje SSL.

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

Zaključak

Zaključili smo našu uputu za instalaciju Odoo-a na Linux sustave Rocky, AlmaLinux, CentOS i RHEL 9. Počeli smo pripremom poslužitelja s potrebnim ovisnostima, a zatim smo nastavili s instalacijom i konfiguracijom Odoo ERP-a. S obzirom na opsežan modul Odoo-a, fleksibilne i moćne prilagodbe, on predstavlja dobro rješenje za poslovanje za automatizaciju procesa.