Odoo 16 ERP Software te installeren op Ubuntu 22.04
Odoo (voorheen bekend als OpenERP) is een zelf gehoste suite van meer dan 10.000 open Odoo is een gratis en open-source ERP oplossing voor meerdere soorten bedrijven. Het biedt relatiebeheer (CRM), verkooppijplijn, projectbeheer, productie, facturering, boekhouding, eCommerce en nog veel meer.
Odoo is een van de complete ERP-oplossingen voor je bedrijf. Het wordt standaard geleverd met 30 kernmodules en biedt meer dan 4500 gemeenschappelijke modules die je meerdere bedrijven kunnen helpen.
In deze tutorial zullen we de Odoo open-source ERP op de Ubuntu 22.04 server installeren. We installeren en configureren de laatste stabiele versie van Odoo 16, stellen de PostgreSQL database voor Odoo in, en stellen tenslotte Nginx in als reverse proxy voor de Odoo applicatie.
Voorwaarden
Om met deze tutorial te beginnen heb je de volgende vereisten nodig:
- Een Ubuntu 22.04 server – Dit voorbeeld gebruikt een Ubuntu server met de hostnaam‘odoo-server‘.
- Een niet-root gebruiker met sudo root/administrator privileges – of je kunt ook de root gebruiker gebruiken.
- Een domeinnaam gericht naar het IP-adres van de server – voor productie heb je een domeinnaam nodig voor de Odoo-installatie.
Afhankelijkheden installeren
Om Odoo te installeren moet je eerst enkele pakketafhankelijkheden op je Ubuntu systeem installeren. Odoo ERP is een webapplicatie die voornamelijk in Python is geschreven, dus moet je ook enkele Python pakketten installeren.
Voordat je begint met het installeren van pakketten, voer je het volgende apt commando uit om je pakketindex bij te werken en te verversen.
sudo apt update
Installeer vervolgens pakketafhankelijkheden voor odoo via het volgende apt commando. Deze installatie omvat de laatste versie van Python 3.10, build-essentials voor het compileren van Python pakketten, en enkele bibliotheken die odoo nodig heeft.
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
Voer y in om te bevestigen en druk op ENTER om verder te gaan. En de installatie begint.
Zodra Python en andere afhankelijkheden zijn geïnstalleerd, is de volgende stap het installeren van Node.js, dat gebruikt zal worden voor het genereren van statische bestanden, en het installeren van het wkhtmltopdf pakket voor het genereren van PDF rapporten.
Nodejs installeren
Om Odoo te installeren moet je ervoor zorgen dat Node.js op je systeem is geïnstalleerd. Node.js wordt gebruikt om statische bestanden te genereren voor Odoo webapplicaties. In deze stap installeer je Node.js 16 uit de Nodesource repository van derden.
Voer het volgende commando uit om de Nodesource repository voor Node.js 16 te downloaden en in te stellen.
sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
Dit commando zal het installatiescript downloaden en uitvoeren, waarna het installatiescript automatisch de repository voor Node.js opzet, de GPG-sleutel toevoegt, en automatisch de pakketindex op je systeem bijwerkt en ververst.
Voer vervolgens het volgende apt commando uit om het Node.js pakket te installeren.Voer y in om te bevestigen en druk op ENTER om verder te gaan.
sudo apt install nodejs
Zodra Node.js is geïnstalleerd, voer je het volgende npm commando uit om het ‘rtlcss’ pakket te installeren.
Het‘rtlcss‘ pakket is nodig voor odoo, vooral als je de rechts-naar-links gebruikersinterface gebruikt voor specifieke talen zoals Arabisch en Hebreeuws.
sudo npm install -g rtlcss
Installatie van de Wkhtmltopdf toepassing
Voor de odoo open-source ERP is het nodig om het wkhtmltopdf pakket te installeren. Dit pakket is nodig voor het renderen van HTML pagina’s naar PDF en diverse afbeeldingsformaten via de Qt Webkit. Het wkhtmltopdf pakket wordt handmatig geïnstalleerd via het .deb pakket op het Ubuntu systeem.
Voer het volgende commando uit om het .deb bestand van het Wkhtmltopdf pakket te downloaden.
cd /tmp wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
Installeer het Wkhtmltopdf pakket via het onderstaande dpkg commando.
sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb
Als je een foutmelding krijgt zoals een ontbrekend pakket, repareer die dan via het volgende apt commando.
sudo apt install -f
Nadat de Wkhtmltopdf is geïnstalleerd, kun je het binaire bestand Wkhtmltopdf pakket controleren dat standaard beschikbaar is in de ‘/usr/local/bin‘ directory. Je zou twee programma’s moeten zien:‘wkhtmltopdf‘ en‘wkhtmltoimage‘.
ls /usr/local/bin
Voer nu het volgende commando uit om de $PATH omgevingsvariabele te controleren en zorg ervoor dat de ‘/usr/local/bin’ directory beschikbaar is op het binaire $PATH. Anders zal het Wkhtmltopdf pakket niet goed werken.
echo $PATH
Voer tenslotte het volgende commando uit om er zeker van te zijn dat het binaire pad voor het Wkhtmltopdf pakket beschikbaar is. Als het Wkhtmltopdf pakket beschikbaar is, zou je een uitvoer moeten krijgen van het volledige pad van het Wkhtmltopdf pakket.
which wkhtmltopdf which wkhtmltoimage
Installatie van PostgreSQL databaseserver
Het open-source ERP odoo ondersteunt databases als MySQL, SQLite en PostgreSQL. In deze stap zul je PostgreSQL installeren en gebruiken als standaard database voor je odoo installatie. Je zult ook de PostgreSQL rol instellen en wijzigingen aanbrengen in de PostgreSQL configuratie.
Voer het volgende apt commando uit om de PostgreSQL database server te installeren. Wanneer om bevestiging wordt gevraagd, voer je y in en druk je op ENTER.
sudo apt install postgresql
Nadat PostgreSQL is geïnstalleerd, voer je het volgende commando uit om PostgreSQL te verifiëren en ervoor te zorgen dat de service is ingeschakeld en draait.
sudo systemctl is-enabled postgresql sudo systemctl status postgresql
In de volgende uitvoer kun je zien dat de PostgreSQL service is ingeschakeld en automatisch wordt uitgevoerd bij het opstarten van het systeem. En de status van de PostgreSQL is draaiend.
Vervolgens ga je een nieuwe rol aanmaken voor de odoo. Voer het volgende commando uit om in te loggen op de‘postgres‘ gebruiker en maak een nieuwe rol aan met de naam ‘odoo’.
su - postgres createuser -sdP odoo
Voer het wachtwoord voor de nieuwe rol‘odoo‘ in en herhaal dit.
Log nu in op de PostgreSQL shell via het onderstaande psql commando.
psql
Voer de volgende query uit om de lijst van de rol op PostgreSQL te controleren en controleer of de rol‘odoo‘ beschikbaar is.
\du
Voer nu‘\q‘ in om de PostgreSQL shell te verlaten. Typ dan‘exit‘ om uit te loggen uit de postgres gebruiker.
Nadat je nu een rol voor odoo hebt aangemaakt, ga je nu de authenticatie voor de‘odoo‘ rol instellen.
Bewerk de PostgreSQL configuratie‘/etc/postgresql/14/main/pg_hba.conf‘ met de volgende nano-editor.
sudo nano /etc/postgresql/14/main/pg_hba.conf
Voeg de volgende configuratie toe aan het bestand. Hiermee geef je toegang tot de PostgreSQL voor de rol‘odoo‘ met de wachtwoordverificatie‘scram-sha-256‘.
host all odoo 127.0.0.1/32 scram-sha-256
Sla het bestand op en sluit de editor af als je klaar bent.
Voer nu het volgende commando uit om de PostgreSQL service te herstarten en de nieuwe wijzigingen toe te passen.
sudo systemctl restart postgresql
Log tenslotte in als de ‘postgres’ gebruiker en verifieer de‘odoo‘ rol door in te loggen op de PostgreSQL shell via het psql commando zoals hieronder.
su - postgres psql -h 127.0.0.1 -U odoo -d postgres
Controleer na het inloggen met de volgende query.
\conninfo
Je zou nu moeten zien dat je verbonden bent met PostgreSQL met de rol‘odoo‘.
Op dit punt is de PostgreSQL database voorbereiding voor odoo nu klaar. Vervolgens start je de odoo installatie door de broncode te downloaden en Python afhankelijkheden te installeren.
Downloaden van Odoo 16
Voor deze demo ga je odoo v16 instellen en uitvoeren met de gebruiker‘odoo‘. Dus maak je nu een nieuwe Unix gebruiker ‘odoo’ aan en download je de laatste versie van de odoo 16 broncode.
Voer het volgende commando uit om een nieuwe gebruiker‘odoo‘ aan te maken. In dit voorbeeld is de standaard thuismap voor de gebruiker‘odoo‘‘/opt/odoo’ en de standaard shell is bash.
sudo adduser --system --group --home=/opt/odoo --shell=/bin/bash odoo
Verplaats nu de werkdirectory naar ‘/opt/odoo‘ en download de odoo broncode via het volgende git commando. In dit voorbeeld installeer je de odoo 16.
cd /opt/odoo git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.0 --single-branch odoo-server
Je zou nu de nieuwe directory ‘odoo-server’ moeten krijgen binnen de directory‘/opt/odoo‘.
Voer tenslotte het volgende commando uit om het eigendom van de odoo broncode te veranderen in de gebruiker en groep‘odoo‘.
sudo chown -R odoo:odoo /opt/odoo/odoo-server
Na het downloaden van de odoo broncode begin je met de installatie van de Python pakketafhankelijkheden voor odoo.
Python afhankelijkheden voor Odoo installeren
In deze stap ga je de Python virtuele omgeving voor odoo opzetten en Python afhankelijkheden installeren via het pip3 commando.
Verplaats de werkdirectory naar‘/opt/odoo/odoo-server‘ en maak een nieuwe Python virtuele omgeving‘venv‘ aan via het volgende commando.
cd /opt/odoo/odoo-server python3 -m venv venv
Activeer vervolgens de Python virtuele omgeving‘venv‘ via het volgende commando.
source venv/bin/activate
Nadat je de Python virtuele omgeving hebt geactiveerd, zul je zien dat je huidige shell is veranderd in ‘(venv) root@hostname…’.
Voer nu het volgende pip3 commando uit om het Python pakketwiel te installeren en installeer odoo Python afhankelijkheden via het bestand requirements.txt.
pip3 install wheel pip3 install -r requirements.txt
Nadat de Python afhankelijkheden zijn geïnstalleerd, voer je het volgende commando uit om de Python‘venv‘ virtuele omgeving te verlaten.
deactivate
Je hebt nu de odoo broncode gedownload en Python afhankelijkheden geïnstalleerd. Vervolgens ga je een nieuwe configuratie en map aanmaken voor de odoo installatie.
Odoo configuratie aanmaken
Nadat je de pakketafhankelijkheden voor Odoo hebt geïnstalleerd, ga je nu de configuratie voor odoo maken en odoo instellen als systemd service.
Maak een nieuw configuratiebestand‘/etc/odoo.conf‘ met behulp van de volgende nano-editor.
sudo nano /etc/odoo.conf
Voeg de volgende configuratie toe aan het bestand. En zorg ervoor dat je de‘admin_passwd‘ en details database gebruiker en wachtwoord wijzigt met jouw gegevens.
[options] ; This is the password that allows database operations: admin_passwd = adminpassodoo db_host = 127.0.0.1 db_port = 5432 db_user = odoo db_password = odoopass addons_path = /opt/odoo/odoo-server/addons xmlrpc_port = 8069 logfile = /var/log/odoo/odoo-server.log log_level = debug
Sla het bestand op en sluit de editor af.
Wijzig nu het eigendom van het odoo-configuratiebestand‘/etc/odoo.conf’ in de systeemgebruiker‘odoo‘.
sudo chown odoo:odoo /etc/odoo.conf
Voer vervolgens het volgende commando uit om een nieuwe map aan te maken waarin logs voor odoo worden opgeslagen.
sudo mkdir /var/log/odoo
Verander dan het eigendom van de odoo log directory‘/var/log/odoo‘ in de gebruiker‘odoo‘ en verander de rechten in 755.
sudo chown odoo:odoo /var/log/odoo sudo chmod 755 /var/log/odoo
Odoo draaien als Systemd Service
Op dit punt kun je odoo handmatig draaien via de opdrachtregel. Om het gemakkelijker te maken kun je odoo draaien als een systemd service. Hierdoor kun je odoo beheren via het systemctl commando.
Je gaat nu een nieuw systemd servicebestand aanmaken en odoo draaien als de systemd service.
Maak om te beginnen een nieuw systemd servicebestand ‘/lib/system/odoo-server.service’ aan met de volgende nano-editor.
sudo nano /lib/systemd/system/odoo-server.service
Voeg de volgende configuratie toe aan het bestand.
[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
Sla het bestand op en sluit de editor af als je klaar bent.
Herlaad vervolgens de systemd manager om een nieuw servicebestand toe te passen via het onderstaande systemctl commando.
sudo systemctl daemon-reload
Start en activeer de service‘odoo-server’ met het volgende commando.
sudo systemctl start odoo-server sudo systemctl enable odoo-server
Controleer tot slot de odoo-service om er zeker van te zijn dat de service draait.
sudo systemctl status odoo-server
Je zou de uitvoer moeten krijgen dat de service‘odoo-server‘ draait.
Odoo draaien met Nginx Reverse Proxy
De aanbevolen manier om odoo op productie te draaien is door de reverse proxy te gebruiken. Hierdoor kun je odoo alleen op de localhost draaien en wordt alle clienttoegang afgehandeld door de reverse proxy.
In deze stap zul je de Nginx webserver installeren en instellen als reverse proxy voor de odoo webapplicatie. Je zult ook de odoo installatie beveiligen met SSL. Dus, voordat je begint met het configureren van Nginx, moet je ervoor zorgen dat je de domeinnaam naar het IP-adres van de server laat wijzen en SSL Letsencrypt hebt gegenereerd.
Wijzig eerst het odoo configuratiebestand‘/etc/odoo.conf‘ met behulp van de volgende nano-editor.
sudo nano /etc/odoo.conf
Voeg de volgende configuratie toe aan het bestand. Deze configuratie zal odoo draaien als de backend applicatie die zal draaien op 127.0.0.1.
xmlrpc_interface = 127.0.0.1 proxy_mode = True
Sla het bestand op en sluit de editor af als je klaar bent.
Voer nu het volgende commando uit om de‘odoo-server‘ service te herstarten en de nieuwe wijzigingen toe te passen.
sudo systemctl restart odoo-server
Controleer nu de‘odoo-server‘ service om er zeker van te zijn dat de service draait.
sudo systemctl status odoo-server
Vervolgens ga je nu Nginx installeren en configureren.
Voer het volgende apt commando uit om het Nginx webserverpakket te installeren. Voer y in als daarom wordt gevraagd en druk op ENTER om door te gaan en de installatie te bevestigen.
sudo apt install nginx
Nadat Nginx is geïnstalleerd, maak je een nieuwe Nginx server blokken configuratie ‘/etc/nginx/sites-available/odoo.conf’ aan met de volgende nano editor.
sudo nano /etc/nginx/sites-available/odoo.conf
Voeg de onderstaande configuratie toe aan het bestand en zorg ervoor dat je de domeinnaam en het pad van SSL-certificaten verandert met jouw instellingen.
#odoo server upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # http -> https server { listen 80; server_name odoo.hwdomain.io; rewrite ^(.*) https://$host$1 permanent; } server { listen 443 ssl http2; server_name odoo.hwdomain.io; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # 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; # SSL parameters ssl_certificate /etc/letsencrypt/live/odoo.hwdomain.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/odoo.hwdomain.io/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # log access_log /var/log/nginx/odoo.access.log; error_log /var/log/nginx/odoo.error.log; # Redirect longpoll requests to odoo longpolling port location /longpolling { proxy_pass http://odoochat; } # Redirect requests to odoo backend server location / { proxy_redirect off; proxy_pass http://odoo; } # common gzip gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript; gzip on; }
Sla het bestand op en sluit de editor als je klaar bent.
Activeer nu de nieuwe Nginx serverblok configuratie en controleer de Nginx configuratie om er zeker van te zijn dat je de juiste configuraties hebt.
sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/ sudo nginx -t
Als je configuraties correct zijn, zie je een uitvoerbericht als’test succesvol – syntax OK‘.
Voer tot slot het volgende systemctl commando uit om de Nginx dienst opnieuw te starten en de nieuwe wijzigingen toe te passen.
sudo systemctl restart nginx
Op dit punt ben je klaar met de installatie en configuratie van de Nginx reverse proxy voor het odoo ERP. Je hebt nu toegang tot de installatie via je webbrowser.
Voer het volgende commando uit om de Nginx service te verifiëren en controleer of de service draait.
sudo systemctl restart nginx
Je zou moeten krijgen dat de Nginx service draait.
UFW Firewall instellen
Het wordt aanbevolen om de firewall op je odoo installatie in te schakelen. In deze stap leer je hoe je de UFW firewall instelt.
De generieke Ubuntu server heeft standaard het ufw pakket geïnstalleerd, dus je kunt gewoon beginnen met het configureren ervan.
Voer het volgende commando uit om de OpenSSH applicatie toe te voegen aan de ufw firewall. Voer vervolgens de ufw uit en schakel deze in.
sudo ufw allow "OpenSSH" sudo ufw enable
Als om bevestiging wordt gevraagd, voer dan y in en druk op ENTER om verder te gaan. En de ufw firewall service wordt ingeschakeld en draait.
Voer vervolgens het volgende commando uit om de applicatie‘Nginx Full‘ toe te voegen. Dit toepassingsprofiel wordt geleverd door Nginx pakketten op de standaardinstallatie en zal zowel HTTP als HTTPS poorten openen voor je toepassing.
sudo ufw allow "Nginx Full"
Controleer tot slot de lijst met ingeschakelde regels op ufw. Je zou twee applicaties moeten zien die‘OpenSSH‘ en ‘Nginx Full’ zijn ingeschakeld.
sudo ufw status
Database migreren en Odoo 16 installeren
Open je webbrowser en bezoek de domeinnaam van je odoo installatie (bijv.: https://odoo.hwdomain.io/).
Eerst moet je de database voor odoo migreren en een nieuwe administrator gebruiker aanmaken.
Het hoofdwachtwoord is hier het‘admin_passwd‘ dat je zojuist hebt toegevoegd in het bestand‘/etc/odoo.conf‘.
Voer de nieuwe databasenaam in die automatisch wordt aangemaakt en voer details nieuwe admin gebruiker en wachtwoord in voor je odoo installatie. Bovendien kun je het vakje Demo data aanvinken om de demo data aan je installatie toe te voegen.
Klik op‘Database aanmaken‘ om de odoo installatie te starten.
Nadat odoo is geïnstalleerd, word je doorgestuurd naar de odoo login pagina. Voer het admin e-mailadres en wachtwoord voor je odoo in en klik op‘Log in‘.
Je zou nu het odoo gebruikersdashboard moeten krijgen.
Conclusie
Gefeliciteerd! Je hebt nu Odoo open-source ERP geïnstalleerd op een Ubuntu 22.04 server. Je hebt nu ook de basisinstallatie geleerd van de PostgreSQL databaseserver en de Nginx webserver die als reverse proxy is geconfigureerd.
Op dit punt heb je de Odoo installatie op je Ubuntu server volledig beveiligd. Je kunt nu beginnen met het toevoegen van enkele extra plugins/add-ons die geschikt zijn voor je bedrijf.