Zoeken op website

Installeer Odoo EPR 17 op Rocky, Alma, CentOS, RHEL 9|8


Op het moment van het schrijven van dit artikel is Odoo ERP 17 de meest recente versie van de geweldige open-source Enterprise Resource Planning (ERP) software, ontwikkeld om je bedrijfsprocessen gestroomlijnd te houden. Odoo ERP biedt een platform met geïntegreerde applicaties om al je zakelijke problemen op te lossen, van HR, CRM, voorraadbeheer, financiën, productie, verkoop tot e-commerce. In Odoo ERP worden al deze integraties verspreid via een modulaire aanpak, waardoor je met een paar modules kunt beginnen en indien nodig meer kunt integreren. Dit maakt Odoo een zeer flexibele en schaalbare oplossing.

Om Odoo ERP 17 te installeren op Rocky Linux, AlmaLinux, CentOS of RHEL 9/8, moet je verschillende stappen volgen:

  • Installatie van afhankelijkheden die nodig zijn om Odoo 17 uit te voeren
  • Aanmaken van een Python-virtuele omgeving
  • Installatie van Odoo 17 op Rocky/AlmaLinux/RHEL 9|8
  • Configuratie van Odoo en webserver
  • Toegang tot en gebruik van Odoo

Voor de functies van Odoo ERP 17, zie de release-opmerkingen van Odoo 17

Vereisten

Voordat je verder kunt gaan, moet je aan de volgende vereisten voldoen.

Systeemeisen:
  1. Besturingssysteem: Geïnstalleerd Rocky, Alma, CentOS Stream of RHEL 8/9
  2. CPU: Minimaal dual-core CPU (Als je een quad-core hebt, is dat beter).
  3. RAM: Minimaal 2GB geheugen (Hoe meer, hoe beter; 4GB of meer is aan te raden).
  4. Schijf: Minimaal 20GB vrije schijfruimte voor het opslaan van Odoo-gegevens.
Softwarevereisten:
  1. Python: Python 3.10 of hoger.
  2. PostgreSQL: PostgreSQL 12 of hoger.
  3. Node.js en npm: Node.js 12.x of hoger en npm voor het beheren van assets.
  4. Wkhtmltopdf: Een specifieke versie van wkhtmltopdf (0.12.5 of 0.12.6) is vereist voor het afdrukken van PDF-rapporten.
  5. Nginx of Apache: Voor reverse proxy (Nginx wordt over het algemeen geprefereerd).

Laten we beginnen met de installatie van Odoo ERP.

Stap 1 – Installeer build-afhankelijkheden

Werk uw systeem bij voordat u iets installeert:

sudo dnf -y update

Als je kernel-updates hebt, overweeg dan om het systeem opnieuw op te starten voordat je verdergaat:

sudo reboot

Installeer vervolgens de ontwikkeltools op uw systeem.

sudo dnf groupinstall -y "Development Tools"

Installeer extra bibliotheken die mogelijk nodig zijn bij het bouwen van Odoo vanaf de bron:

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

Stap 2 – Installeer Python 3.11 & Node.js

We moeten Python 3.10+ installeren. In dit artikel zullen we Python 3.11 gebruiken.

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

Bevestig dat het succesvol is geïnstalleerd door de versie te controleren.

$ python3.11 --version
Python 3.11.9

Laten we ook Node.js installeren. Er is geen specifieke versie, we zullen Node.js v18 gebruiken.

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

Controleer door het versienummer van Node.js te controleren.

$ node --version
v18.20.2

Installeer de rtlcss node-module met npm:

sudo npm install -g rtlcss

Installeer ook Less en de Less Plugin Clean CSS:

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

Stap 3 – Installeer en configureer de PostgreSQL-database

PostgreSQL 12+ is vereist. We kunnen PostgreSQL 16 installeren, dat beschikbaar is in de OS APPStream-repositories. Reset de huidige PostgreSQL-module.

sudo dnf module -y disable postgresql

Schakel de PostgreSQL 16-module in.

sudo dnf install -y @postgresql:16

Installeer ook het postgresql-devel pakket.

sudo dnf install -y  postgresql-devel

Initialiseer de databaseserver.

sudo postgresql-setup initdb

Start en schakel de databaseservice in.

sudo systemctl enable --now postgresql

Maak uiteindelijk de odoo-databasegebruiker aan. Voer het wachtwoord voor de gebruiker in wanneer hierom wordt gevraagd.

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

Om een gebruiker met wachtwoord aan te maken, voer uit:

sudo -u postgres createuser odoo -U postgres -dP

Voor een externe PostgreSQL-database server moet je externe verbindingen inschakelen op je DB-server zodat Odoo ermee kan verbinden.

Stap 4 – Installeer wkhtmltopdf

Wkhtmltopdf is een open-source commandoregeltool die door Odoo wordt gebruikt om HTML om te zetten naar PDF en andere afbeeldingsformaten via de krachtige Webkit-renderingmotor. Dit is nodig voor het genereren van documenten zoals facturen, rapporten en andere afdrukbare documenten.

Download en installeer het wkhtmltopdf RPM-pakket.

  • RHEL 9-gebaseerde systemen
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
  • RHEL 8-gebaseerde systemen
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

Installeer validatie:

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

Stap 5 – Odoo Python-omgeving instellen

Maak een gebruiker genaamd odoo die de Odoo-diensten zal uitvoeren.

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

Installeer virtualenv:

sudo pip3.11 install virtualenv

Overschakelen naar het aangemaakte odoo gebruikersaccount.

sudo su - odoo

Clone de Github-repository van Odoo lokaal.

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

Gebruik het virtualenv commando om een Python-virtuele omgeving voor Odoo ERP te maken.

virtualenv odoo-venv

Activeer de gemaakte virtuele omgeving.

source odoo-venv/bin/activate

Werk pip bij nadat je het hebt geactiveerd.

pip3.11 install --upgrade pip

Installeer het Python-pakket wheel in de omgeving

pip3.11 install wheel

Installeer Odoo 17 Python-vereisten

pip3.11 install -r odoo/requirements.txt

Om alle in de virtuele omgeving geïnstalleerde Python-pakketten weer te geven, voert u de volgende opdracht uit:

pip3.11 list

Maak een map aan waarin alle add-ons van derden worden opgeslagen.

mkdir odoo/custom-addons

Verlaat de virtuele omgeving.

exit

Stap 6 – Configureer Odoo ERP

Kopieer het voorbeeld van het Odoo-configuratiebestand naar de /etc-map op uw systeem.

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

Het odoo.conf-bestand bevat belangrijke configuraties die nodig zijn voor Odoo om correct te functioneren. Open het bestand om te bewerken.

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

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

Pas de instellingen aan zodat ze er als hieronder uitzien.

[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

Voor een externe PostgreSQL-server, stel in:

  • db_host: IP-adres van de PostgreSQL-database server
  • db_wachtwoord: Wachtwoord voor de gebruiker die op de externe database is aangemaakt
  • db_user: Externe databasegebruiker aangemaakt.

Geef het bestand de juiste machtigingen:

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

Maak een Odoo systemd-service aan.

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

Maak een logmap aan.

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

Start en schakel de odoo-service in.

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

Controleer of de service correct werkt.

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

Stap 7 – Configureer firewalld

De service luistert op poort 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 <->

Als je firewalld hebt, sta poort 8069 toe

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

Je kunt toegang krijgen tot de Odoo-webconsole op http://serverip:8069 en de installatie afronden.

Voer de waarde van admin_passwd in die is ingesteld in odoo.conf voor het hoofdwachtwoord. Geef de databasenaam op, bijvoorbeeld odoo17. Maak vervolgens de eerste admin-gebruiker aan door een e-mailadres en wachtwoord op te geven. Optioneel kunt u het telefoonnummer, de taal en het land instellen.

Na het afronden van de installatie, log in met de aangemaakte admin-gebruiker en het bijbehorende wachtwoord.

Je krijgt toegang tot het Odoo-dashboard om modules enzovoort te activeren.

Stap 8 – Nginx-proxy configureren

We kunnen Nginx gebruiken om verzoeken naar Odoo ERP door te sturen. Installeer het nginx-pakket.

sudo dnf -y install nginx

Schakel de service in om automatisch te starten bij het opstarten van het systeem.

sudo systemctl enable nginx

Maak een Nginx-configuratiebestand voor de Odoo-service.

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

Plak en bewerk de volgende inhoud. Je moet odoo.example.com vervangen door je eigen domeinnaam.

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

Controleer de nginx-configuraties.

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

Als alles er goed uitziet, start de service dan opnieuw.

sudo systemctl restart nginx

Toegang tot het Odoo webdashboard op http://yourdomain.com

Stap 9 – Het gebruik van Let’s Encrypt SSL

Voor servers op een openbaar domein kunt u gratis Let’s Encrypt SSL gebruiken.

Installeer certbot en de Nginx-plugin ervan.

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

Verzoek om Let’s Encrypt SSL.

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

Als je geen e-mailadres wilt opgeven, gebruik dan L

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

Voorbeelduitvoer:

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

Het zal automatisch /etc/nginx/conf.d/odoo.conf configureren om SSL op te nemen.

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

Conclusie

We hebben onze tutorial over de installatie van Odoo op Rocky-, AlmaLinux-, CentOS- en RHEL 9 Linux-systemen afgerond. We begonnen met het voorbereiden van de server met de benodigde afhankelijkheden en gingen vervolgens verder met het installeren en configureren van Odoo ERP. Met de uitgebreide modules van Odoo, de flexibele en krachtige aanpassingen, is het een goed geschikte zakelijke oplossing om processen te automatiseren.