Odoo je bezplatný, open source a nejoblíbenější ERP software, který nabízí širokou škálu podnikových aplikací včetně řízení vztahů se zákazníky (CRM), prodejních kanálů, řízení projektů a výroby , fakturace, účetnictví, eCommerce a mnoho dalších. Je to webová a plně vybavená aplikace, která vám pomůže udržovat ERP v jakémkoli podnikání. Odoo přichází s 30 základními moduly a více než 4500 moduly vytvořenými komunitou, které vám pomohou přizpůsobit jej jako malý obchod korporaci na podnikové úrovni.
V tomto tutoriálu se naučíme, jak nainstalovat a nakonfigurovat Odoo 13 s Nginx jako reverzní proxy na serveru CentOS 8.
Požadavky
- Server se systémem CentOS 8 s minimálně 2 GB paměti RAM.
- Platný název domény odkazující na IP adresu vašeho serveru. V tomto tutoriálu budeme používat doménu exmaple.com..
- Na serveru je nakonfigurováno heslo uživatele root.
Začínáme
Nejprve aktualizujte systém a nainstalujte úložiště EPEL pomocí následujícího příkazu:
dnf update
dnf install epel-release
Dále budete muset nainstalovat některé nástroje a závislosti potřebné k sestavení Odoo na vašem systému.
Všechny je můžete nainstalovat pomocí následujícího příkazu:
dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel
Jakmile jsou všechny balíčky nainstalovány, můžete přejít k dalšímu kroku.
Vytvořit uživatele Odoo
Dále budete muset vytvořit nového systémového uživatele s názvem odoo a domovským adresářem /opt/odoo pomocí následujícího příkazu:
useradd -m -U -r -d /opt/odoo -s /bin/bash odoo
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalace a konfigurace PostgreSQL
Odoo používá PostgreSQL k ukládání svých dat. Takže budete muset nainstalovat PostgreSQL na váš server. Můžete jej nainstalovat pomocí následujícího příkazu:
dnf install postgresql postgresql-server postgresql-contrib
Po instalaci inicializujte databázi pomocí následujícího příkazu:
/usr/bin/postgresql-setup initdb
Měli byste získat následující výstup:
* Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
Dále spusťte službu PostgreSQL a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start postgresql
systemctl enable postgresql
Nyní můžete ověřit PostgreSQL pomocí následujícího příkazu:
systemctl status postgresql
Měli byste vidět následující výstup:
? postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2019-12-02 01:01:44 EST; 6s ago Process: 31805 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS) Main PID: 31808 (postmaster) Tasks: 8 (limit: 12552) Memory: 16.5M CGroup: /system.slice/postgresql.service ??31808 /usr/bin/postmaster -D /var/lib/pgsql/data ??31809 postgres: logger process ??31811 postgres: checkpointer process ??31812 postgres: writer process ??31813 postgres: wal writer process ??31814 postgres: autovacuum launcher process ??31815 postgres: stats collector process ??31816 postgres: bgworker: logical replication launcher
Dále budete muset vytvořit nového uživatele PostgreSQL se stejným jménem jako systémový uživatel, jak je uvedeno níže:
su - postgres -c "createuser -s odoo"
Instalovat Wkhtmltopdf
Dále budete muset do svého systému nainstalovat nástroj wkhtmltopdf, aby Odoo mohl tisknout zprávy ve formátu PDF. Můžete jej nainstalovat pomocí následujícího příkazu:
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm
Po instalaci můžete přejít k dalšímu kroku.
Instalovat a konfigurovat Odoo 13
Nejprve se přepněte na uživatele Odoo pomocí následujícího příkazu:
su - odoo
Dále si stáhněte nejnovější verzi Odoo 13 z úložiště Git pomocí příkazu git:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13
Dále vytvořte nové virtuální prostředí pro instanci Odoo 13 pomocí následujícího příkazu:
cd /opt/odoo
python3 -m venv odoo13-venv
Dále aktivujte virtuální prostředí pomocí následujícího příkazu:
source odoo13-venv/bin/activate
Měli byste získat následující výstup:
(odoo13-venv) [[email protected] ~]$
Dále nainstalujte všechny požadované moduly Pythonu pro Odoo 13 pomocí následujícího příkazu:
pip3 install -r odoo13/requirements.txt
Jakmile jsou nainstalovány všechny požadované moduly, deaktivujte virtuální prostředí pomocí následujícího příkazu:
deactivate
Nakonec ukončete uživatele Odoo pomocí následujícího příkazu:
exit
Dále vytvořte nový adresář pro ukládání vlastních modulů Odoo a protokolů Odoo:
mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log
Dále změňte vlastnictví obou adresářů na uživatele odoo pomocí následujícího příkazu:
chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/
Dále vytvořte nový konfigurační soubor pro Odoo 13 pomocí následujícího příkazu:
nano /etc/odoo.conf
Přidejte následující řádky:
[options] admin_passwd = [email protected] db_host = False db_port = False db_user = odoo db_password = False xmlrpc_port = 8069 logfile = /var/log/odoo13/odoo.log logrotate = True addons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons
Po dokončení uložte a zavřete soubor.
Vytvoření souboru Systemd Service pro Odoo 13
Dále budete muset vytvořit nový soubor systemd unit pro Odoo 13, abyste mohli spravovat službu Odoo.
Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/systemd/system/odoo13.service
Přidejte následující řádky:
[Unit] Description=Odoo13 #Requires=postgresql-10.6.service #After=network.target postgresql-10.6.service [Service] Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
Uložte a zavřete soubor. Poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reload
Dále spusťte službu Odoo a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start odoo13
systemctl enable odoo13
Stav Odoo můžete také ověřit pomocí následujícího příkazu:
systemctl status odoo13
Měli byste získat následující výstup:
? odoo13.service - Odoo13 Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2019-12-02 01:15:43 EST; 2s ago Main PID: 17022 (python3) Tasks: 4 (limit: 12552) Memory: 63.7M CGroup: /system.slice/odoo13.service ??17022 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf Dec 02 01:15:43 centos8 systemd[1]: Started Odoo13.
Ve výchozím nastavení naslouchá Odoo na portu 8069. Můžete to zkontrolovat pomocí následujícího příkazu:
netstat -plntu | grep 8069
Měli byste vidět následující výstup:
tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN 17022/python3
Nakonfigurujte Nginx jako reverzní proxy pro Odoo 13
Dále budete muset nainstalovat a nakonfigurovat Nginx jako reverzní proxy pro instanci Odoo 13.
Nejprve nainstalujte webový server Nginx pomocí následujícího příkazu:
dnf install nginx
Po instalaci vytvořte nový konfigurační soubor virtuálního hostitele pomocí následujícího příkazu:
nano /etc/nginx/conf.d/odoo13.conf
Přidejte následující řádky:
upstream odoo { server 127.0.0.1:8069; } server { listen 80; server_name example.com; access_log /var/log/nginx/odoo13.access.log; error_log /var/log/nginx/odoo13.error.log; location / { 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; proxy_redirect off; proxy_pass http://odoo; } location ~* /web/static/ { proxy_cache_valid 200 90m; proxy_buffering on; expires 864000; proxy_pass http://odoo; } gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on; }
Po dokončení uložte a zavřete soubor. Poté spusťte službu Nginx a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start nginx
systemctl enable nginx
Stav služby Nginx můžete ověřit pomocí následujícího příkazu:
systemctl status nginx
Měli byste vidět následující výstup:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2019-12-02 01:25:15 EST; 6s ago Process: 17244 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 17241 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 17239 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 17245 (nginx) Tasks: 3 (limit: 12552) Memory: 5.4M CGroup: /system.slice/nginx.service ??17245 nginx: master process /usr/sbin/nginx ??17246 nginx: worker process ??17247 nginx: worker process Dec 02 01:25:15 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server... Dec 02 01:25:15 centos8 nginx[17241]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Dec 02 01:25:15 centos8 nginx[17241]: nginx: configuration file /etc/nginx/nginx.conf test is successful Dec 02 01:25:15 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
Konfigurovat bránu firewall
Dále budete muset službě Nginx přes firewall povolit přístup k instanci Odoo 13 ze vzdáleného systému.
Chcete-li povolit službu Nginx přes firewalld, můžete spustit následující příkaz:
firewall-cmd --permanent --zone=public --add-service=nginx
firewall-cmd --reload
Ve výchozím nastavení je SELinux povolen v CentOS 8. Takže budete muset povolit HTTP přes SELinux. Můžete to povolit pomocí následujícího příkazu:
setsebool -P httpd_can_network_connect on
Přístup k webovému rozhraní Odoo 13
Nyní je Odoo 13 nainstalován a nakonfigurován. Je čas vstoupit do webového rozhraní Odoo 13.
Otevřete webový prohlížeč a zadejte adresu URL http://example.com . Budete přesměrováni na následující stránku:
Nyní zadejte své hlavní heslo, název databáze, e-mail, heslo, zemi a klikněte na Vytvořit databáze knoflík. Budete přesměrováni na stránku Administrace Odoo 13:
Závěr
Ve výše uvedeném tutoriálu jste se naučili, jak nainstalovat a nakonfigurovat Odoo 13 na serveru CentOS 8. Také jste se naučili, jak nakonfigurovat Nginx jako reverzní proxy pro Odoo 13. Nyní si můžete přizpůsobit svou instanci Odoo 13 podle svých obchodních potřeb.