Εγκατάσταση του Odoo EPR 17 σε Rocky, Alma, CentOS, RHEL 9|8
Στη στιγμή της συγγραφής αυτού του άρθρου, το Odoo ERP 17 είναι η πιο πρόσφατη έκδοση του εκπληκτικού λογισμικού Διαχείρισης Επιχειρησιακών Πόρων (ERP) ανοιχτού κώδικα, που δημιουργήθηκε για να βοηθήσει τις επιχειρησιακές σας διαδικασίες να παραμείνουν ομαλές. Το Odoo ERP σας προσφέρει μια πλατφόρμα με ενσωματωμένες εφαρμογές για να λύσετε όλα τα επιχειρησιακά σας προβλήματα, από HR, CRM, Διαχείριση Αποθεμάτων, Οικονομικά, Παραγωγή, Πωλήσεις έως Ηλεκτρονικό Εμπόριο. Στο Odoo ERP, όλες αυτές οι ενσωματώσεις διανέμονται μέσω μιας αρθρωτής προσέγγισης που σας επιτρέπει να ξεκινήσετε με λίγα μόνο μοντέλα και να ενσωματώσετε περισσότερα όποτε χρειάζεστε. Αυτό καθιστά το Odoo μια εξαιρετικά ευέλικτη και επεκτάσιμη λύση.
Για να εγκαταστήσετε το Odoo ERP 17 σε Rocky Linux, AlmaLinux, CentOS ή RHEL 9/8, πρέπει να ακολουθήσετε αρκετά βήματα:
- Εγκατάσταση των εξαρτήσεων που απαιτούνται για τη λειτουργία του Odoo 17
- Δημιουργία εικονικού περιβάλλοντος Python
- Εγκατάσταση του Odoo 17 σε Rocky/AlmaLinux/RHEL 9|8
- Διαμόρφωση του Odoo και του διαδικτυακού διακομιστή
- Πρόσβαση και χρήση του Odoo
Για χαρακτηριστικά του Odoo ERP 17, δείτε τις Σημειώσεις Έκδοσης του Odoo 17
Προαπαιτούμενα
Πριν προχωρήσετε, θα χρειαστεί να πληροίτε τις ακόλουθες προϋποθέσεις.
Απαιτήσεις συστήματος:
- Λειτουργικό Σύστημα: Εγκατεστημένα Rocky, Alma, CentOS Stream ή RHEL 8/9
- CPU: Ελάχιστη διπύρηνη CPU (Αν έχετε τετραπύρηνη, ακόμα καλύτερα).
- RAM: Ελάχιστη μνήμη 2GB (Αν έχετε 4GB ή περισσότερη, τόσο το καλύτερο).
- Δίσκος: Ελάχιστος ελεύθερος χώρος 20GB για την αποθήκευση δεδομένων Odoo.
Απαιτήσεις λογισμικού:
- Python: Python 3.10 ή νεότερη.
- PostgreSQL: PostgreSQL 12 ή νεότερη έκδοση.
- Node.js και npm: Node.js 12.x ή νεότερο και npm για διαχείριση πόρων.
- Wkhtmltopdf: Απαιτείται συγκεκριμένη έκδοση του wkhtmltopdf (0.12.5 ή 0.12.6) για την εκτύπωση αναφορών PDF.
- Nginx ή Apache: Για αντίστροφη διαμεσολάβηση (συνήθως προτιμάται το Nginx).
Ας ξεκινήσουμε την εγκατάσταση του Odoo ERP.
Βήμα 1 – Εγκατάσταση των εξαρτήσεων κατασκευής
Ενημερώστε το σύστημά σας πριν από οποιεσδήποτε εγκαταστάσεις:
sudo dnf -y updateΑν έχετε ενημερώσεις του πυρήνα, σκεφτείτε να επανεκκινήσετε το σύστημα πριν προχωρήσετε περαιτέρω:
sudo rebootΣτη συνέχεια, εγκαταστήστε τα εργαλεία ανάπτυξης στο σύστημά σας.
sudo dnf groupinstall -y "Development Tools"Εγκαταστήστε επιπλέον βιβλιοθήκες που ενδέχεται να απαιτούνται κατά την εγκατάσταση του Odoo από τον πηγαίο κώδικα:
sudo dnf install -y vim git gcc bzip2-devel redhat-rpm-config libxslt-devel openldap-devel libjpeg-devel freetype-develΒήμα 2 – Εγκατάσταση Python 3.11 & Node.js
Χρειαζόμαστε να εγκαταστήσουμε την Python 3.10 ή νεότερη. Σε αυτό το άρθρο θα χρησιμοποιήσουμε την Python 3.11.
sudo dnf install python3.11 python3.11-devel python3.11-pipΕπιβεβαιώστε ότι εγκαταστάθηκε με επιτυχία ελέγχοντας την έκδοση.
$ python3.11 --version
Python 3.11.9Ας εγκαταστήσουμε επίσης το Node.js. Δεν υπάρχει συγκεκριμένη έκδοση, θα χρησιμοποιήσουμε το Nodejs v18.
sudo dnf module reset nodejs -y
sudo dnf module install nodejs:18 -yΕπαληθεύστε ελέγχοντας τον αριθμό έκδοσης του Node.js.
$ node --version
v18.20.2Εγκαταστήστε το module rtlcss για node χρησιμοποιώντας το npm:
sudo npm install -g rtlcssΕγκαταστήστε επίσης το Less και το πρόσθετο Less Plugin Clean CSS:
sudo npm install -g less less-plugin-clean-cssΒήμα 3 – Εγκατάσταση και ρύθμιση της βάσης δεδομένων PostgreSQL
Απαιτείται PostgreSQL 12 ή νεότερη έκδοση. Μπορούμε να εγκαταστήσουμε την PostgreSQL 16 που είναι διαθέσιμη στα αποθετήρια APPStream του λειτουργικού συστήματος. Επαναφέρετε το τρέχον module της PostgreSQL.
sudo dnf module -y disable postgresqlΕνεργοποιήστε το module PostgreSQL 16.
sudo dnf install -y @postgresql:16Εγκαταστήστε επίσης το πακέτο postgresql-devel.
sudo dnf install -y postgresql-develΑρχικοποιήστε τον διακομιστή βάσης δεδομένων.
sudo postgresql-setup initdbΞεκινήστε και ενεργοποιήστε την υπηρεσία βάσης δεδομένων.
sudo systemctl enable --now postgresqlΤέλος, δημιουργήστε τον χρήστη βάσης δεδομένων odoo. Δώστε έναν κωδικό πρόσβασης για τον χρήστη όταν σας ζητηθεί.
sudo su - postgres -c "createuser -s odoo"Για να δημιουργήσετε έναν χρήστη με κωδικό, εκτελέστε:
sudo -u postgres createuser odoo -U postgres -dPΓια απομακρυσμένο διακομιστή βάσης δεδομένων PostgreSQL, θα ενεργοποιήσετε τις απομακρυσμένες συνδέσεις στον διακομιστή βάσης σας ώστε το Odoo να μπορεί να συνδεθεί σε αυτόν.
Βήμα 4 – Εγκατάσταση του wkhtmltopdf
Wkhtmltopdf είναι ένα εργαλείο ανοικτού κώδικα CLI που χρησιμοποιείται από το Odoo για τη μετατροπή HTML σε PDF και άλλες μορφές εικόνας μέσω της ισχυρής μηχανής απόδοσης Webkit. Αυτό απαιτείται για τη δημιουργία εγγράφων όπως τιμολόγια, αναφορές και άλλα έγγραφα προς εκτύπωση.
Κατεβάστε και εγκαταστήστε το πακέτο RPM του wkhtmltopdf.
- Συστήματα βασισμένα σε 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- Συστήματα βασισμένα σε 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
Επαληθεύστε την εγκατάσταση:
$ wkhtmltopdf --version
wkhtmltopdf 0.12.6.1 (with patched qt)Βήμα 5 – Ρύθμιση του Περιβάλλοντος Python για το Odoo
Δημιουργήστε χρήστη με όνομα odoo που θα εκτελεί τις υπηρεσίες Odoo.
sudo useradd -m -U -r -d /opt/odoo -s /bin/bash odooΕγκατάσταση virtualenv:
sudo pip3.11 install virtualenvΑλλάξτε στον δημιουργημένο λογαριασμό χρήστη odoo.
sudo su - odooΚλωνοποιήστε το αποθετήριο Github του Odoo τοπικά.
git clone --depth 1 --branch 17.0 --single-branch https://github.com/odoo/odoo.gitΧρησιμοποιήστε την εντολή virtualenv για να δημιουργήσετε ένα εικονικό περιβάλλον Python για το Odoo ERP.
virtualenv odoo-venvΕνεργοποιήστε το δημιουργημένο εικονικό περιβάλλον.
source odoo-venv/bin/activateΑναβαθμίστε το pip αφού το ενεργοποιήσετε.
pip3.11 install --upgrade pipΕγκαταστήστε το πακέτο Python wheel στο περιβάλλον
pip3.11 install wheelΕγκατάσταση των απαιτήσεων Python για το Odoo 17
pip3.11 install -r odoo/requirements.txtΓια να καταγράψετε όλα τα πακέτα Python που είναι εγκατεστημένα στο εικονικό περιβάλλον, εκτελέστε την ακόλουθη εντολή:
pip3.11 listΔημιουργήστε έναν φάκελο που θα αποθηκεύει όλα τα πρόσθετα τρίτων.
mkdir odoo/custom-addonsΒγες από το εικονικό περιβάλλον.
exitΒήμα 6 – Διαμόρφωση Odoo ERP
Αντιγράψτε το δείγμα αρχείου ρύθμισης Odoo στον κατάλογο /etc στο σύστημά σας.
sudo cp /opt/odoo/odoo/debian/odoo.conf /etc/odoo.confΤο αρχείο odoo.conf περιέχει βασικές ρυθμίσεις που απαιτούνται για τη σωστή λειτουργία του Odoo. Ανοίξτε το αρχείο για επεξεργασία.
# Open with vim
sudo vim /etc/odoo.conf
# Open with nano
sudo nano /etc/odoo.confΡύθμισε τις επιλογές ώστε να φαίνονται όπως παρακάτω.
[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Για απομακρυσμένο διακομιστή PostgreSQL, ορίστε:
- db_host: Διεύθυνση IP του διακομιστή βάσης δεδομένων PostgreSQL
- db_password: Κωδικός πρόσβασης για τον χρήστη που δημιουργήθηκε στη απομακρυσμένη βάση δεδομένων
- db_user: Δημιουργήθηκε απομακρυσμένος χρήστης βάσης δεδομένων.
Δώστε στο αρχείο τα κατάλληλα δικαιώματα:
sudo chown odoo:odoo /etc/odoo.conf
sudo chmod 640 /etc/odoo.confΔημιουργήστε υπηρεσία systemd για το 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Δημιουργήστε φάκελο καταγραφών.
sudo mkdir /var/log/odoo/
sudo chown -R odoo:odoo /var/log/odoo/Ξεκινήστε και ενεργοποιήστε την υπηρεσία odoo.
sudo systemctl daemon-reload
sudo systemctl enable --now odoo.serviceΕλέγξτε την κατάσταση της υπηρεσίας αν λειτουργεί σωστά.
$ 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.Βήμα 7 – Διαμόρφωση του firewalld
Η υπηρεσία ακούει στην θύρα 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 <->Αν έχετε firewalld, επιτρέψτε τη θύρα 8069
sudo firewall-cmd --add-port=8069/tcp --permanent
sudo firewall-cmd --reloadΜπορείτε να αποκτήσετε πρόσβαση στην web κονσόλα του Odoo στο http://serverip:8069 και να ολοκληρώσετε τη ρύθμιση.
Εισάγετε την τιμή admin_passwd που έχει οριστεί στο odoo.conf για τον Κύριο κωδικό. Καθορίστε το όνομα της βάσης δεδομένων για δημιουργία, για παράδειγμα odoo17. Στη συνέχεια, δημιουργήστε τον πρώτο διαχειριστή παρέχοντας διεύθυνση email και κωδικό. Προαιρετικά, μπορείτε να ορίσετε αριθμό τηλεφώνου, γλώσσα και χώρα.
Αφού ολοκληρώσετε τη ρύθμιση, συνδεθείτε με τον διαχειριστή που δημιουργήσατε και τον κωδικό του.
Θα μεταβείτε στον πίνακα ελέγχου του Odoo για να ενεργοποιήσετε τα modules κ.λπ.
Βήμα 8 – Ρύθμιση του Nginx Proxy
Μπορούμε να χρησιμοποιήσουμε το Nginx για να προωθούμε αιτήματα στο Odoo ERP. Εγκαταστήστε το πακέτο nginx.
sudo dnf -y install nginxΕνεργοποιήστε την υπηρεσία ώστε να ξεκινά αυτόματα κατά την εκκίνηση του συστήματος.
sudo systemctl enable nginxΔημιουργήστε αρχείο διαμόρφωσης Nginx για την υπηρεσία Odoo.
sudo vim /etc/nginx/conf.d/odoo.confΕπικόλλησε και επεξεργάσου τα παρακάτω περιεχόμενα. Πρέπει να αντικαταστήσεις το odoo.example.com με το πραγματικό όνομα του τομέα σου.
# 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;
}Επαληθεύστε τις ρυθμίσεις του 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Αν όλα φαίνονται σωστά, επανεκκινήστε την υπηρεσία.
sudo systemctl restart nginxΠρόσβαση στον ιστό πίνακα ελέγχου του Odoo στο http://yourdomain.com
Βήμα 9 – Χρήση SSL από το Let's Encrypt
Για διακομιστές σε δημόσιο τομέα, μπορείτε να χρησιμοποιήσετε δωρεάν SSL από το Let’s Encrypt.
Εγκαταστήστε το certbot και το πρόσθετο για Nginx.
sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx -yΑίτημα για SSL από το Let’s Encrypt.
DOMAIN=odoo.example.com #replace with your actual domain
sudo certbot --nginx -d $DOMAIN --agree-tosΕάν δεν θέλετε να δώσετε διεύθυνση email, χρησιμοποιήστε τοL
sudo certbot --nginx -d $DOMAIN --agree-tos --register-unsafely-without-emailΔείγμα αποτελέσματος:
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Θα διαμορφώσει αυτόματα το /etc/nginx/conf.d/odoo.conf για να περιλαμβάνει SSL.
cat /etc/nginx/conf.d/odoo.confΣυμπέρασμα
Έχουμε ολοκληρώσει το σεμινάριό μας για την εγκατάσταση του Odoo στα συστήματα Linux Rocky, AlmaLinux, CentOS και RHEL 9. Ξεκινήσαμε προετοιμάζοντας τον διακομιστή με τις απαραίτητες εξαρτήσεις και στη συνέχεια προχωρήσαμε στην εγκατάσταση και διαμόρφωση του Odoo ERP. Με την εκτενή συλλογή μονάδων του Odoo, τις ευέλικτες και ισχυρές προσαρμογές, καθίσταται μια κατάλληλη επιχειρηματική λύση για την αυτοματοποίηση των διαδικασιών.


