GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat software Odoo 14 ERP na Ubuntu 20.04

Odoo (dříve známý jako OpenERP) je samostatně hostovaná sada více než 10 000 aplikací s otevřeným zdrojovým kódem vhodných pro různé obchodní potřeby, včetně CRM, eCommerce, účetnictví, inventáře, projektového řízení a prodejního místa. Tyto aplikace jsou plně integrované a přístupné přes společné webové rozhraní.

V tomto tutoriálu se naučíme nainstalovat Odoo 14 Stack na server založený na Ubuntu 20.04.

Předpoklady

  1. Server založený na Ubuntu 20.04 s minimálně 2 GB RAM pro hostování Odoo Stack.

  2. Druhý server založený na Ubuntu 20.04 s minimálně 2 GB RAM pro hostování databáze PostgreSQL. Můžete však nainstalovat databázi na stejný server jako Odoo, ale pro produkční prostředí se důrazně doporučuje nainstalovat ji na samostatný server. Můžete si také vybrat kteroukoli z možností spravované databáze dostupných od libovolného poskytovatele dle vašeho výběru.

  3. Požadavky na RAM budou záviset na počtu souběžných uživatelů, kteří budou zásobník používat. Podrobný návod, jak vypočítat systémové požadavky, lze nalézt v dokumentaci Odoo.

  4. Udržujte své systémy aktualizované.

    $ sudo apt update
    $ sudo apt upgrade
    
  5. Uživatel bez oprávnění root s právy sudo na obou serverech.

Konfigurace pravidel brány firewall

Pro účely tohoto tutoriálu budeme předpokládat, že máte ufw firewall nainstalovaný na obou serverech.

Na serveru Odoo budeme potřebovat, aby byly otevřené porty 22, 80, 443, 6010, 5432 a 8069. 22 se používá pro SSH, 80 je pro HTTP, 443 je pro HTTPS, 6010 se používá pro Odoo komunikaci, 5432 je používáno PostgreSQL a 8069 je používáno serverovou aplikací Odoo.

Spuštěním následujících příkazů otevřete požadované porty na serveru Odoo.

$ sudo ufw allow "OpenSSH"
$ sudo ufw allow 80,443,6010,5432,8069,8072/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp
$ sudo ufw allow 8069/tcp
$ sudo ufw allow 8072/tcp

Na serveru PostgreSQL musíme otevřít porty 22, 6010 a 5432. Otevřete je pomocí příkazů, které jsme právě probrali.

Přiřadit názvy hostitelů

Můžete použít adresy IP serverů nebo použít jejich plně kvalifikované názvy domén (FQDN), pokud jsou k dispozici. V našem tutoriálu budeme používat FQDN a k tomu potřebujeme nastavit názvy hostitelů na obou serverech.

Na serveru Odoo otevřete /etc/hosts soubor.

$ sudo nano /etc/hosts

Ujistěte se, že to vypadá následovně.

127.0.0.1 	localhost
127.0.0.1	odoo.yourdomain.com		odoo
10.1.1.10	postgresql.yourdomain.com	postgresql

Na serveru PostgreSQL otevřete soubor a ujistěte se, že vypadá následovně.

127.0.0.1 	localhost
127.0.0.1	postgresql.yourdomain.com	postgresql
10.1.2.10	odoo.yourdomain.com		odoo

Stiskněte Ctrl + X zavřete editor a stiskněte Y až budete vyzváni k uložení souboru.

Instalace a konfigurace PostgreSQL

Ubuntu 20.04 se standardně dodává s PostgreSQL 12 a my to nainstalujeme. Spusťte následující příkaz na serveru PostgreSQL.

$ sudo apt install postgresql-12 postgresql-server-dev-12

Dále musíme vytvořit databázového uživatele odoo.

$ sudo -u postgres createuser odoo -U postgres -dP

Možnost -u provede příkaz jako postgres uživatel.

Možnost -U označte uživatelské jméno, ke kterému se chcete připojit.

Možnost -d uděluje uživateli oprávnění k vytváření databází.

Možnost -p vyzve k zadání nového hesla uživatele.

Konfigurace hostitelského ověřování

Abychom se mohli připojit k serveru Odoo, potřebujeme udělit oprávnění službě PostgreSQL.

Nejprve zastavte službu PostgreSQL.

$ sudo systemctl stop postgresql

Otevřete soubor /etc/postgresql/12/main/pg_hba.conf pro úpravy.

$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Vložte následující řádek na konec.

host		all		odoo		odoo.yourdomain.com		md5

Tento řádek uděluje oprávnění odoo pro připojení ke všem databázím na tomto serveru. Místo použití all můžete zadat i název databází klíčové slovo.

Stiskněte Ctrl + X zavřete editor a stiskněte Y až budete vyzváni k uložení souboru.

Konfigurovat adresu pro poslech PostgreSQL

Dále musíme povolit databázovému serveru naslouchat vzdáleným připojením. Otevřete soubor /etc/postgresql/12/main/postgresql.conf pro úpravy.

$ sudo nano /etc/postgresql/12/main/postgresql.conf

Změňte řádek listen_addresses od

#listen_addresses = 'localhost' # what IP address(es) to listen on;

do.

#From CONNECTIONS AND AUTHENTICATION Section
listen_addresses = '*'

* znamená, že bude naslouchat všem IP adresám. Můžete ji změnit na IP adresu vaší instance odoo.

Stiskněte Ctrl + X zavřete editor a stiskněte Y až budete vyzváni k uložení souboru.

Povolení a spuštění služby PostgreSQL

Protože je naše konfigurace hotová, je čas spustit a povolit službu PostgreSQL.

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Instalovat Odoo

Instalace závislostí a příprava na instalaci

Vytvořte nového uživatele systému pro správu procesů Odoo na serveru Odoo.

$ sudo adduser --system --home=/opt/odoo --group odoo

Potřebujeme nainstalovat některé systémové závislosti, ale nejprve musíme povolit zdrojová úložiště. Chcete-li to provést, zálohujte původní seznam zdrojů a poté povolte všechna zdrojová úložiště a aktualizujte seznam úložišť.

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list~
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt update

Nainstalujte systémové závislosti požadované pro nastavení Odoo 14.

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev fontconfig xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils libpq-dev
$ sudo apt build-dep lxml

Nainstalujte Nodejs.

$ sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

Nainstalujte balíček Less CSS pomocí Node.

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

Stáhněte si wkhtmltopdf balíček verze 0.12.6.

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

Nainstalujte balíček.

$ sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

Aby bylo zajištěno, že wkhtmltopdf funguje správně, zkopírujte binární soubory do /usr/bin a udělte jim patřičná oprávnění.

$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
$ sudo chmod a+x /usr/bin/wk*
$ cd ~

Stáhnout soubory Odoo

Naklonujte úložiště Github Odoo do svého systému.

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo

Pro naše účely zkopírujeme Odoo do /opt/odoo adresář, odkud bude nainstalován.

Nastavení prostředí Virtualenv Python

Tento krok je volitelný, ale doporučuje se, protože virtuální prostředí pythonu pro Odoo pomůže vyhnout se konfliktům s moduly Pythonu operačního systému, zejména při provádění upgradů OS.

K tomu použijeme virtualenv .

  1. Vytvořte nový virtualenv prostředí pro Odoo.

    $ python3 -m venv /home/<username>/odoo-env
    
  2. Aktivujte virtuální prostředí. Vytváříme prostředí pod domovským adresářem uživatele systému. Můžete si vybrat libovolné umístění.

    $ source /home/<username>/odoo-env/bin/activate
    
  3. Pro každý případ aktualizujte PIP.

    (odoo-env) $ pip3 install --upgrade pip
    
  4. Nainstalujte Pythonovo kolo do virtuálního prostředí.

    $ pip3 install wheel
    

Instalovat závislosti Pythonu

Nainstalujte závislosti Pythonu požadované Odoo 14.

$ pip3 install -r /opt/odoo/doc/requirements.txt
$ pip3 install -r /opt/odoo/requirements.txt

Instalace požadavků bude nějakou dobu trvat, takže buďte trpěliví.

Zkontrolujte, zda jsou požadavky nainstalovány správně, v seznamu nainstalovaných modulů Pythonu.

$ pip3 list
Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         20.3.0
Babel                         2.6.0
beautifulsoup4                4.9.3
cached-property               1.5.2
certifi                       2020.12.5
chardet                       3.0.4
decorator                     4.3.0
defusedxml                    0.7.1
docutils                      0.14
ebaysdk                       2.1.5
feedparser                    5.2.1
freezegun                     0.3.15
gevent                        20.9.0
greenlet                      0.4.17
html2text                     2018.1.9
idna                          2.6
imagesize                     1.2.0
isodate                       0.6.0
Jinja2                        2.11.2
libsass                       0.17.0
lxml                          4.6.1
Mako                          1.0.7
MarkupSafe                    1.1.0
num2words                     0.5.6
ofxparse                      0.19
packaging                     20.9
passlib                       1.7.1
Pillow                        8.0.1
pip                           21.0.1
pkg-resources                 0.0.0
polib                         1.1.0
psutil                        5.6.6
psycopg2                      2.8.5
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pydot                         1.4.1
Pygments                      2.8.1
pyparsing                     2.4.7
PyPDF2                        1.26.0
pyserial                      3.4
python-dateutil               2.7.3
python-ldap                   3.1.0
python-stdnum                 1.8
pytz                          2019.1
pyusb                         1.0.2
qrcode                        6.1
reportlab                     3.5.55
requests                      2.21.0
requests-toolbelt             0.9.1
setuptools                    44.0.0
six                           1.15.0
snowballstemmer               2.1.0
soupsieve                     2.2
Sphinx                        3.5.2
sphinx-patchqueue             1.0.4
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
unidiff                       0.6.0
urllib3                       1.24.3
vobject                       0.9.6.1
Werkzeug                      0.16.1
wheel                         0.36.2
xlrd                          1.2.0
XlsxWriter                    1.1.2
xlwt                          1.3.0
zeep                          3.2.0
zope.event                    4.5.0
zope.interface                5.2.0

Ukončete virtuální prostředí Pythonu.

$ deactivate

Konfigurovat Odoo

Zkopírujte výchozí konfigurační soubor Odoo a vytvořte nový.

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

Otevřete soubor pro úpravy.

$ sudo nano /etc/odoo-server.conf

Upravte soubor tak, aby vypadal následovně.

[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = postgresql.yourdomain.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069

Stiskněte Ctrl + X zavřete editor a stiskněte Y až budete vyzváni k uložení souboru.

Možnost admin_passwd je heslo, které umožňuje administrativní operace v rámci GUI Odoo. Ujistěte se, že jste zvolili bezpečné heslo.

Možnost db_host je FQDN nebo IP adresa serveru PostgreSQL.

Možnost db_port je nastaven na false, protože se používá výchozí port PostgreSQL 5432. Pokud chcete použít jiný port, budete muset tuto hodnotu aktualizovat.

Možnost db_user je jméno uživatele PostgreSQL.

Možnost db_password je uživatelské heslo PostgreSQL 'odoo', které jsme dříve vytvořili na serveru PostgreSQL.

Možnost addons_path je výchozí cesta k doplňkům. Můžete také přidat vlastní cestu pro doplňky a oddělit je čárkami.

Možnost xmlrpc_port je port, na kterém Odoo naslouchá.

Vytvořit službu Odoo

Abychom zajistili, že Odoo bude fungovat i po restartu systému, musíme pro něj vytvořit službu.

Vytvořte soubor /lib/systemd/system/odoo-server.service a otevřete jej pro úpravy.

$ sudo nano /lib/systemd/system/odoo-server.service

Vložte do něj následující kód.

[Unit]
Description=Odoo Open Source ERP and CRM

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home/<username>/odoo-env/bin/python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Nahraďte /home/<username> s umístěním, které jste vybrali pro instalaci virtuálního prostředí Python.

Stiskněte Ctrl + X zavřete editor a stiskněte Y až budete vyzváni k uložení souboru.

Nastavit oprávnění souboru

Nastavte oprávnění na odoo-server.service soubor, takže jej může číst nebo spustit pouze uživatel Odoo.

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

Nastavte vlastnictví v prostředí Pythonu a instalačním adresáři Odoo.

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home/<username>/odoo-env

Omezte konfigurační soubor Odoo.

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

Spustit server Odoo

Spusťte a povolte server Odoo.

$ sudo systemctl start odoo-server
$ sudo systemctl enable odoo-server

Zkontrolujte stav serveru.

$ sudo systemctl status odoo-server

V prohlížeči otevřete adresu URL http://<yourIPaddress>:8069 nebo http://odoo.yourdomain.com:8069 . Pokud vše funguje správně, měli byste vidět obrazovku vytváření databáze Odoo.

Vyplňte všechna pole. Zkontrolujte Demo Data do pole naplňte databázi ukázkovými daty a poté klikněte na Vytvořit databázi tlačítko.

Dále se vám zobrazí seznam aplikací, které si můžete vybrat a vybrat.

Při prvním vytvoření databáze bude načítání stránky doplňků chvíli trvat, takže stránku neobnovujte.

Instalace a konfigurace Nginx

Doposud jsme ke spuštění zásobníku používali server Odoo. Ale v ideálním případě je lepší jej spustit na Nginx pomocí proxy, protože to nám umožní nainstalovat na něj SSL.

Nainstalujte Nginx.

$ sudo apt install nginx

Abychom to mohli spustit přes Nginx, musíme spustit Odoo na localhost. Chcete-li to změnit, zastavte službu Odoo.

$ sudo systemctl stop odoo-server

Otevřete konfigurační soubor serveru Odoo.

$ sudo nano /etc/odoo-server.conf

Přidejte k tomu následující řádky.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Vytvořte konfigurační soubor Nginx pro Odoo.

$ sudo nano /etc/nginx/sites-available/odoo.conf

Vložte kód níže.

#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.yourdomain.com;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.yourdomain.com;
 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.yourdomain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.yourdomain.com/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;
 ssl_dhparam /etc/ssl/certs/dhparam.pem;

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

Stiskněte Ctrl + X zavřete editor a stiskněte Y až budete vyzváni k uložení souboru.

Tento konfigurační soubor aktivujte jeho propojením s sites-enabled adresář.

$ sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/

Otestujte konfiguraci Nginx.

$ sudo nginx -t

Instalovat SSL

Nainstalujeme SSL pomocí služby Let's Encrypt.

Za tímto účelem si nainstalujte Certbot.

$ sudo apt install certbot

Zastavte Nginx, protože to bude narušovat proces Certbot.

$ sudo systemctl stop nginx

Vygenerujte certifikát. Potřebujeme také vytvořit certifikát DHParams.

$ sudo certbot certonly --standalone -d odoo.yourdomain.com --preferred-challenges http --agree-tos -n -m [email protected] --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Musíme také nastavit úlohu cron pro automatické obnovení SSL. Chcete-li otevřít editor crontab, spusťte následující příkaz.

$ sudo crontab -e

Vložte následující řádek do spodní části.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”

Výše uvedená úloha cron spustí certbot každý den ve 2:25. Můžete jej změnit na cokoli chcete.

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Spustit Odoo

Nyní, když je vše nastaveno, můžeme znovu spustit server Odoo.

$ sudo systemctl start odoo-server

Spusťte Odoo ve svém prohlížeči přes https://odoo.yourdomain.com . Zobrazí se obrazovka popsaná dříve. Zadejte požadované údaje pro vytvoření databáze a měli byste se přihlásit do Odoo a zobrazit obrazovku jako je tato.

Závěr

Tímto končí náš tutoriál o instalaci Odoo na server Ubuntu 20.04. Pokud máte nějaké dotazy, napište je do komentářů níže.


Ubuntu
  1. Jak nainstalovat software Audacity v Ubuntu?

  2. Nainstalujte Odoo 9 na Ubuntu 14.04

  3. Jak nainstalovat Odoo 15 na Ubuntu 22.04

  1. Jak nainstalovat Odoo na Ubuntu

  2. Jak nainstalovat Odoo 15 na Ubuntu 20.04

  3. Jak nainstalovat Odoo 13 na Ubuntu 20.04

  1. Jak nainstalovat Odoo 11 na Ubuntu 16.04

  2. Jak nainstalovat Odoo 13 na Ubuntu 18.04

  3. Jak nainstalovat Odoo 14 na Ubuntu 20.04