Requisits previs
Instal·lar eines de desenvolupament
Instal·leu MariaDB Server
Instal·leu Nginx, Node.js i Redis
Instal·leu PDF Converter
Instal·leu el banc
Instal·leu ERPNext amb Bench
Supervisor de configuració i Nginx
Conclusió
ERP o Enterprise Resource Planning és una suite d'aplicacions empresarials que s'utilitza per gestionar els processos de negoci bàsics. ERPNext és una aplicació ERP autoallotjada, gratuïta i de codi obert, escrita en Python. Utilitza Node.js per a la portada i MariaDB per emmagatzemar les seves dades. ERPNext ofereix una interfície web fàcil d'utilitzar que permet a les empreses gestionar les tasques diàries. Conté mòduls de comptabilitat, CRM, HRM, fabricació, POS, gestió de projectes, compres, gestió de vendes, gestió de magatzems i molt més. ERPNext es pot utilitzar per gestionar diferents indústries, com ara proveïdors de serveis, fabricació, comerç minorista i escoles.
Requisits previs
Nota: Per a aquest tutorial, utilitzarem erp.example.comcom a nom de domini apuntat al servidor. Si us plau, assegureu-vos de substituir totes les ocurrències de erp.example.compel vostre nom de domini real .
Abans de començar, assegureu-vos que el vostre servidor estigui actualitzat.
sudo apt update
sudo apt -y upgrade
ERPNext necessita la versió 2.7 de Python per funcionar. Instal·leu Python 2.7.
sudo apt -y install python-minimal
Hauríeu de poder verificar la seva versió.
python -V
Veureu la següent sortida.
user@vultr:~$ python -V
Python 2.7.13
Instal·leu unes quantes dependències més.
sudo apt -y install git build-essential python-setuptools python-dev libffi-dev libssl-dev
Instal·leu l' pipeina de Python . Pip és el gestor de dependències dels paquets Python.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Assegureu-vos que teniu la versió més recent de pipi setuptools.
sudo pip install --upgrade pip setuptools
Instal·leu Ansible amb Pip. Ansible automatitza el subministrament de programari, la gestió de la configuració i el desplegament d'aplicacions.
sudo pip install ansible
Instal·leu MariaDB Server
Afegiu el repositori MariaDB al sistema.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
Instal·leu MariaDB.
sudo apt update
sudo apt -y install mariadb-server libmysqlclient-dev
Proporcioneu una contrasenya segura per a l'usuari root de MariaDB quan se'l demani.
El motor d'emmagatzematge Barracuda és necessari per a la creació de bases de dades ERPNext, de manera que haureu de configurar MariaDB per utilitzar el motor d'emmagatzematge Barracuda. Editeu el fitxer de configuració predeterminat de MariaDB my.cnf.
sudo nano /etc/mysql/my.cnf
Afegiu les línies següents sota la [mysqld]línia.
innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
A més, afegiu la línia següent sota la [mysql]línia.
default-character-set = utf8mb4
Reinicieu MariaDB i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl restart mariadb
sudo systemctl enable mariadb
Abans de configurar la base de dades, haureu de protegir MariaDB. Podeu assegurar-lo executant l' mysql_secure_installationscript.
sudo mysql_secure_installation
Se us demanarà la contrasenya d'arrel actual de MariaDB. Proporcioneu la contrasenya que heu establert durant la instal·lació. Se us demanarà si voleu canviar la contrasenya existent de l'usuari root del vostre servidor MariaDB. Podeu ometre la configuració d'una nova contrasenya, ja que ja heu proporcionat una contrasenya segura durant la instal·lació. Respon "Y" a totes les altres preguntes que es facin.
Instal·leu Nginx, Node.js i Redis
Afegiu el dipòsit de Nodesource per a Node.js 8.x.
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
Instal·leu Nginx, Node.js i Redis.
sudo apt -y install nginx nodejs redis-server
Inicieu Nginx i activeu-lo perquè s'iniciï en el moment de l'arrencada.
sudo systemctl start nginx
sudo systemctl enable nginx
Inicieu Redis i habiliteu-lo perquè s'iniciï en el moment de l'arrencada.
sudo systemctl start redis-server
sudo systemctl enable redis-server
Instal·leu PDF Converter
El wkhtmltopdfprograma és una eina de línia d'ordres que converteix HTML en PDF mitjançant el motor de representació QT Webkit. Instal·leu les dependències necessàries.
sudo apt -y install libxrender1 libxext6 xfonts-75dpi xfonts-base
Baixeu la darrera versió de wkhtmltopdf.
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
Extraieu l'arxiu.
sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt
L'ordre anterior extreu l'arxiu a /opt/wkhtmltox. Creeu un softlink perquè wkhtmltopdfi wkhtmltoimagees pugui executar globalment com a ordre.
sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage
Ara podeu córrer wkhtmltopdf -Vper comprovar si funciona, veureu això.
user@vultr:~$ wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)
En aquest punt, tenim instal·lades totes les dependències necessàries. Ara podeu procedir a instal·lar Bench.
Instal·leu el banc
Benchés una utilitat de línia d'ordres proporcionada per Frappe per instal·lar i gestionar l'aplicació ERPNext en un sistema basat en Unix tant amb finalitats de desenvolupament com de producció. Bench també pot crear i gestionar configuracions de Nginx i supervisors.
Creeu un usuari nou per executar processos Bench en l'entorn aïllat.
sudo adduser bench --home /opt/bench
Proporcioneu sudopermisos a l' benchusuari.
sudo usermod -aG sudo bench
Inicieu sessió com a benchusuari acabat de crear .
sudo su - bench
Clonar el dipòsit de Bench a /opt/bench.
cd /opt/bench
git clone https://github.com/frappe/bench bench-repo
Instal·leu Bench amb pip.
sudo pip install -e bench-repo
Un cop instal·lat Bench, procediu a instal·lar ERPNext mitjançant Bench.
Instal·leu ERPNext amb Bench
Inicieu un directori de banc amb el marc frappe instal·lat. Per mantenir-ho tot endreçat, treballarem sota el /opt/benchdirectori. Bench també configurarà còpies de seguretat periòdiques i actualitzacions automàtiques un cop al dia.
cd /opt/bench
bench init erpnext && cd erpnext
Creeu un nou lloc de Frappe.
bench new-site erp.example.com
L'ordre anterior us demanarà la contrasenya d'arrel de MySQL. Proporcioneu la contrasenya que heu establert anteriorment per a l'usuari root de MySQL. També us demanarà que configureu una nova contrasenya per al compte d'administrador. Necessitareu aquesta contrasenya més tard per iniciar sessió al tauler d'administrador .
Baixeu els fitxers d'instal·lació d'ERPNext des del dipòsit git remot mitjançant Bench.
bench get-app erpnext https://github.com/frappe/erpnext
Instal·leu ERPNext al vostre lloc recent creat.
bench --site erp.example.com install-app erpnext
Podeu iniciar l'aplicació immediatament per comprovar si l'aplicació s'ha instal·lat correctament.
bench start
Tanmateix, hauríeu d'aturar l'execució i continuar per configurar l'aplicació per a l'ús de producció.
Supervisor de configuració i Nginx
De manera predeterminada, l'aplicació ERPNext escolta al port 8000, no al port HTTP estàndard 80. A més, no es recomana executar el servidor web integrat per a ús en producció, ja que exposarem el servidor al món. Hauríeu d'utilitzar un servidor web de producció com a servidor intermediari invers, com ara Apache o Nginx. Utilitzarem Nginx com a servidor intermediari invers, ja que es pot configurar automàticament mitjançant Bench. Bench pot generar i instal·lar automàticament la configuració segons la configuració d'ERPNext.
Tot i que podem iniciar l'aplicació mitjançant l'ordre 'bench start', l'execució d'ERPNext s'aturarà tan bon punt tanqueu el terminal. Per solucionar aquest problema, hauríeu d'utilitzar Supervisor, que és molt útil per executar l'aplicació contínuament en un entorn de producció. Supervisor és un sistema de control de processos que us permet supervisar i controlar una sèrie de processos en sistemes operatius Linux. Un cop configurat el Supervisor, s'iniciarà automàticament l'aplicació en el moment d'arrencar així com en cas de fallades. Bench pot configurar automàticament Supervisor per a l'aplicació ERPNext.
Instal·leu Supervisor.
sudo apt -y install supervisor
Inicieu Supervisor i habiliteu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl start supervisor
sudo systemctl enable supervisor
Banc de configuració per a ús en producció.
sudo bench setup production bench
L'ordre anterior us pot demanar abans de substituir el fitxer de configuració predeterminat del supervisor existent per un de nou. Trieu ycontinuar. Bench afegeix una sèrie de processos al fitxer de configuració del supervisor. L'ordre anterior també us demanarà si voleu substituir la configuració actual de Nginx per una de nova. Entra yper continuar. Un cop Bench hagi acabat d'instal·lar la configuració, proporcioneu a altres usuaris que executin els fitxers al vostre directori d'inici de l'usuari de Bench.
chmod o+x /opt/bench/
Ara podeu accedir al lloc a http://erp.example.com.
Podeu comprovar l'estat dels processos executant.
sudo supervisorctl status all
Hauríeu de veure la següent sortida.
bench@vultr:~/erpnext$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache RUNNING pid 13852, uptime 0:00:54
erpnext-redis:erpnext-redis-queue RUNNING pid 13851, uptime 0:00:54
erpnext-redis:erpnext-redis-socketio RUNNING pid 13853, uptime 0:00:54
erpnext-web:erpnext-frappe-web RUNNING pid 13856, uptime 0:00:54
erpnext-web:erpnext-node-socketio RUNNING pid 13855, uptime 0:00:54
erpnext-workers:erpnext-frappe-default-worker-0 RUNNING pid 13862, uptime 0:00:54
erpnext-workers:erpnext-frappe-long-worker-0 RUNNING pid 13870, uptime 0:00:54
erpnext-workers:erpnext-frappe-schedule RUNNING pid 13869, uptime 0:00:54
erpnext-workers:erpnext-frappe-short-worker-0 RUNNING pid 13875, uptime 0:00:54
Per aturar tots els processos ERPNext.
sudo supervisorctl stop all
Per iniciar tots els processos ERPNext.
sudo supervisorctl start all
Configuració de SSL amb Let's Encrypt
Let's Encrypt proporciona certificats SSL gratuïts als usuaris. SSL es pot instal·lar manualment o automàticament mitjançant Bench. Bench pot instal·lar automàticament el client Let's Encrypt i obtenir els certificats. A més, actualitza automàticament la configuració de Nginx per utilitzar els certificats.
El nom de domini que utilitzeu per obtenir els certificats de Let's Encrypt CA s'ha d'apuntar cap al servidor. El client verifica l'autoritat del domini abans d'emetre els certificats .
Habiliteu la multiarrendament de DNS per a l'aplicació ERPNext.
bench config dns_multitenant on
Executeu Bench per configurar Let's Encrypt al vostre lloc.
sudo bench setup lets-encrypt erp.example.com
Durant l'execució de l'script, el client Let's Encrypt us demanarà que atureu temporalment el servidor web Nginx. Instal·larà automàticament els paquets necessaris i el client Let's Encrypt. El client us demanarà la vostra adreça de correu electrònic. També haureu d'acceptar els termes i condicions. Un cop generats els certificats, Bench també generarà la nova configuració per a Nginx que utilitza els certificats SSL. Se us demanarà abans de substituir la configuració existent. Bench també crea una crontabentrada per renovar automàticament els certificats cada mes.
Finalment, habiliteu el planificador per executar automàticament els treballs programats.
bench enable-scheduler
Hauríeu de veure aquesta sortida.
bench@vultr:~/erpnext$ bench enable-scheduler
Enabled for erp.example.com
Conclusió
Un cop finalitzat el procés, podeu accedir a la vostra sol·licitud a https://erp.example.com. Inicieu sessió amb el nom d'usuari Administratori la contrasenya que heu establert durant la instal·lació. Se us portarà al taulell on haureu de proporcionar informació per configurar ERPNext ERP segons la vostra empresa. Ara podeu utilitzar l'aplicació per gestionar la vostra empresa.
Enhorabona, teniu instal·lada una aplicació ERPNext que funciona completament al vostre servidor Ubuntu 17.04.