Ricerca nel sito web

Come installare ERPNext su Rocky Linux 9


Su questa pagina

  1. Prerequisiti
  2. Impostazione dell'utente
  3. Installazione di Python 3.10
  4. Installazione e configurazione del server MariaDB
  5. Installazione delle dipendenze dal repository Rocky Linux
  6. Installazione di Nodejs 16 e Yarn
  7. Installazione di Wkhtmltopdf
  8. Installazione di Frappeframework tramite il banco
  9. Imposta nuova applicazione in Frappe
  10. Installazione di ERPNext tramite bench
  11. Impostazione dell'implementazione per ERPNext
  12. Configurazione di ERPNext
  13. Protezione con certificati SSL/TLS tramite Certbot e Letsencrypt
  14. Conclusione

ERPNext è un sistema Enterprise ERP (Enterprise Resource Planning) open source che può essere implementato nella tua azienda. ERPNext può essere implementato in diversi tipi di settori, come la produzione, la distribuzione, la vendita al dettaglio, il commercio, i servizi, l'istruzione, il non profit e l'assistenza sanitaria. Inoltre, fornisce moduli come contabilità, CRM, vendite, acquisti, sito Web, e-commerce, punto vendita, produzione, magazzino, gestione dei progetti, inventario e servizi.

ERPNext è una piattaforma ERP aziendale con licenza Licenza pubblica generale GNU v3. È scritto principalmente in Python e JavaScript, sviluppato da Frappe Technologies Pvt. ERPNext è un'applicazione scritta sotto il framework frappe, un framework web open source in Python e Javascript.

ERPNext è stato creato come alternativa a servizi come NetSuite di Oracle, QAD, Tython, OpenBrave e Odoo. Per funzionalità, ERPNext è simile a Odoo (precedentemente OpenERP).

In questo tutorial, installerai ERPNext su un server Rocky Linux 9 e poi proteggerai la tua installazione con certificati SSL/TLS tramite Certbot e Letsencrypt. Imparerai anche come installare le dipendenze per ERPNext come Python 3.10 dal sorgente, Redis che verrà utilizzato come gestore di sessione, Nginx come server Web e proxy inverso, Supervisor come gestore di processi, Fail2ban per la protezione dalla forza bruta, MariaDB come server di database, Node.js e Yarn per la creazione e la compilazione di file statici.

ERPNext è un'applicazione costruita sopra il framework frappe, quindi installerai anche il framework frappe nel processo tramite frappe-bench.

Prerequisiti

Avrai bisogno dei seguenti requisiti per completare questo tutorial:

  • Un server Debian 11 - Questo esempio usa un server Debian con il nome host erpnext-rocky.
  • Un utente non root con privilegi di amministratore sudo/root. Eseguirai tutti i comandi in questa guida come utente non root.
  • Un nome di dominio puntava all'indirizzo IP del server.
  • Un SELinux eseguito in modalità permissiva.

Ora iniziamo e installiamo ERPNext.

Configurazione dell'utente

La prima attività in questo tutorial è creare un nuovo utente dedicato che verrà utilizzato per eseguire l'applicazione ERPNext. Utilizzerai anche questo nuovo utente per eseguire tutti i comandi per l'installazione e la configurazione dei pacchetti.

Esegui il comando seguente per creare un nuovo utente frappe. Quindi, imposta la password per l'utente frappe, inserisci la nuova password complessa e ripeti la password.

sudo useradd -m -s /bin/bash frappe
sudo passwd frappe

Ora esegui il comando seguente per aggiungere l'utente frappe al gruppo ruota. Ciò consentirà all'utente frappe di eseguire il comando sudo diventando l'utente root o di eseguire il comando con privilegi di root.

sudo usermod -aG wheel frappe

Infine, accedi come utente frappe per verificare e assicurarti che il tuo utente sia stato creato. Quindi, esegui il comando sudo su per ottenere i privilegi di root.

sudo - frappe
sudo su

Inserisci la tua password per l'utente frappe. In caso di successo, la tua richiesta diventerà come [email :/home/frappe....

Ora digita exit o premi Ctrl+d per uscire dalla shell di root.

Installazione di Python 3.10

ERPNext è un'applicazione web creata utilizzando il framework web frappe basato su Python. Al momento della stesura di questo articolo, l'ultima versione del framework frappe e di ERPNext richiedeva almeno Python 3.10.

In questo passaggio, installerai Python 3.10 manualmente dall'origine sul server Rocky Linux 9.

Per iniziare, esegui il comando dnf di seguito per installare alcune dipendenze di base per la compilazione di Python 3.10.

sudo dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make

Immettere y quando richiesto e premere INVIO per procedere.

Successivamente, scarica il codice sorgente di Python 3.10 tramite il comando wget di seguito.

wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz

Dopo aver scaricato Python 3.10, estrai il codice sorgente Python e sposta la tua directory di lavoro al suo interno.

tar xzf Python-3.10.9.tgz
cd Python-*/

Quindi, esegui il comando seguente per iniziare a compilare Python 3.10. Quindi installalo sul tuo sistema. Questo installerà i file binari di Python 3.10 nella directory /usr/local/bin.

./configure --enable-optimizations
nproc
sudo make -j2
sudo make altinstall

Esegui il comando seguente per verificare i file binari di Python 3.10. Dovresti vedere più file binari Python, che includono Pip3.10.

ls /usr/local/bin

Successivamente, per assicurarti di poter eseguire la nuova versione dei comandi Python, dovresti aggiungere la directory /usr/local/bin al PATH di sistema e visudo secure_path.

Esegui il comando nano editor di seguito per aprire un nuovo file /etc/bashrc.

sudo nano /etc/bashrc

Aggiungi la seguente riga al file.

export PATH=$PATH:/usr/local/bin/

Salva ed esci quando hai finito.

Ora esegui il comando seguente per ricaricare il file di configurazione /etc/bashrc. Quindi verificare il PERCORSO di sistema.

source /etc/bashrc
echo $PATH

Ora dovresti vedere che la directory /usr/local/bin viene aggiunta alla variabile di ambiente PATH di sistema.

Successivamente, esegui il comando seguente per aggiungere e modificare il file di configurazione sudoers.

sudo visudo

Aggiungi la directory /usr/local/bin all'opzione Defaults secure_path: come di seguito.

Defaults secure_path=....:/usr/local/bin

Salva il file ed esci dall'editor al termine.

Ora esegui il binario Python3.10 e Pip3.10 tramite il comando sudo come di seguito.

sudo python3.10 --version
sudo pip3.10 --version

Dovresti ricevere un output simile a questo: Python 3.10 è installato dal codice sorgente sul tuo server Rocky Linux.

Nella fase successiva, installerai e configurerai il server MariaDB per ERPNext.

Installazione e configurazione del server MariaDB

Nell'installazione predefinita, ERPNext utilizzerà MySQL/MariaDB come server del database. L'ERPNext richiedeva una versione specifica di MySQL/MariaDB per l'installazione. E al momento della stesura di questo articolo, l'ultima versione di ERPNext richiedeva MariaDB 10.6.

In questo passaggio, installerai MariaDB Server 10.6 dal repository MariaDB ufficiale. Quindi, aggiungerai le configurazioni al tuo server MariaDB e proteggerai la distribuzione del server MariaDB.

Eseguire il comando seguente per aggiungere il repository MariaDB v10.6.

sudo curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.6"

Riceverai l'output qualcosa di simile a questo.

Successivamente, esegui il comando dnf di seguito per installare i pacchetti MariaDB. Immettere y quando viene richiesta la conferma e premere INVIO per procedere.

sudo dnf install MariaDB-server MariaDB-client

Inoltre, quando ti viene chiesto di accettare la chiave GPG del repository MariaDB, inserisci y e premi INVIO.

Dopo l'installazione del server MariaDB, eseguire l'utilità di comando systemctl riportata di seguito per avviare e abilitare il servizio MariaDB.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Ora verifica il servizio MariaDB tramite il comando seguente. Dovresti vedere che il servizio MariaDB è in esecuzione e dovrebbe essere abilitato, il che significa che verrà avviato automaticamente all'avvio.

sudo systemctl status mariadb

Con il server MariaDB in esecuzione, inizierai a configurare MariaDB come richiesto per ERPNext.

Apri il file di configurazione di MariaDB /etc/my.cnf.d/server.cnf utilizzando il seguente comando nano editor.

sudo nano /etc/my.cnf.d/server.cnf

Aggiungi le seguenti righe alla sezione [mysqld]. Questo abiliterà il formato barracuda sul tuo MariaDB. Inoltre, imposterai il set di caratteri predefinito su utf8mb4.

[mysqld]
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

Salva ed esci dal file quando hai finito.

Successivamente, apri un altro file di configurazione di MariaDB /etc/my.cnf.d/mysql-clients.cnf utilizzando il comando nano editor di seguito.

sudo nano /etc/my.cnf.d/mysql-clients.cnf

Aggiungi la riga seguente alla sezione [mysql]. Questo imposterà sempre il set di caratteri per il client su utf8mb4.

[mysql]
default-character-set = utf8mb4

Salva il file ed esci dall'editor.

Ora esegui il comando systemctl di seguito per riavviare il servizio MariaDB e applicare le modifiche.

sudo systemctl restart mariadb

Esegui il comando seguente mariadb-secure-installation per proteggere la distribuzione di MariaDB. Ti verrà quindi richiesta la configurazione della password di root di MariaDB, quindi assicurati di inserire e ripetere la nuova password. Per le restanti configurazioni digitare Y per confermare e premere ENTER.

sudo mariadb-secure-installation

Con questo, hai terminato l'installazione e la configurazione del server MariaDB. Nel passaggio successivo, installerai Redis, Nginx e Supervisor sulla tua macchina Rocky Linux.

Installazione delle dipendenze dal repository Rocky Linux

In questo passaggio, avrai alcune dipendenze per l'installazione di ERPNxt, inclusa l'installazione di Redis che verrà utilizzato come gestione della sessione, Nginx come server Web, Supervisor come gestione del processo e Fail2ban che protegge il tuo ERPNext dagli attacchi di forza bruta. .

La maggior parte dei pacchetti che installerai qui sono disponibili per impostazione predefinita nel repository Rocky Linux AppStream. Ma devi anche assicurarti che il repository di terze parti come EPEL sia disponibile sul tuo sistema.

Esegui il comando dnf seguente per installare Redis, Nginx, Supervisor e Fail2ban sul tuo sistema Rocky Linux.

sudo dnf install redis nginx supervisor fail2ban

Quando viene richiesta la conferma, inserire Y e premere INVIO per procedere.

Ora, al termine dell'installazione del pacchetto, eseguire i comandi systemctl seguenti per avviare e abilitare i servizi. Quindi verificare ogni servizio per assicurarsi che sia in esecuzione.

Avvia e abilita il servizio Redis, quindi verifica Redis per assicurarti che sia in esecuzione.

sudo systemctl start redis
sudo systemctl enable redis

sudo systemctl status redis

Riceverai un output simile a questo.

Successivamente, avvia e abilita il servizio Nginx, quindi verifica Nginx per assicurarti che il servizio sia in esecuzione.

sudo systemctl start nginx
sudo systemctl enable nginx

sudo systemctl status nginx

Riceverai l'output qualcosa di simile a questo.

Successivamente, avvia il servizio Supervisor e abilitalo. Quindi, verifica il servizio Supervisor per assicurarti che sia in esecuzione.

sudo systemctl start supervisord
sudo systemctl enable supervisord

sudo systemctl status supervisord

Di seguito è riportato l'output che dovresti ottenere sullo schermo del tuo terminale.

Infine, per il servizio Fail2ban, avvialo e abilitalo tramite l'utilità di comando systemctl di seguito. Quindi, verifica il servizio Fail2ban per assicurarti che sia in esecuzione.

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

sudo systemctl status fail2ban

Ora dovresti vedere che lo stato del servizio Fail2ban è in esecuzione.

Ora, dopo aver completato questa sezione e verificato che i servizi Redis, Nginx, Supervisor e Fail2ban siano in esecuzione. Passa alla sezione successiva per l'installazione del gestore di pacchetti Node.js e Yarn.

Installazione di Nodejs 16 e Yarn

L'ultima versione di ERPNext è la v14, che richiede almeno Node.js 16 e il gestore di pacchetti Yarn. In questo passaggio, configurerai il repository Nodesource per Node.js v16 e aggiungerai il repository Yarn per la distribuzione RHEL. Quindi, installerai sia Node.js che yarn tramite DNF.

Innanzitutto, esegui il comando seguente per aggiungere il repository Nodesource per Node.js v16 per le distribuzioni RHEL.

curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -

Dovresti ricevere l'output in questo modo: lo script rileverà automaticamente la versione dell'attuale distribuzione RHEL e aggiungerà il repository Nodesource.

Per il repository Yarn, esegui il comando seguente per scaricare il repository e aggiungerlo al tuo sistema.

curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

Di seguito è riportato l'output che dovresti ricevere sul tuo terminale.

Ora che sia il repository Nodesource che Yarn sono stati aggiunti al tuo sistema Rocky Linux, è il momento di installare il gestore di pacchetti Node.js e Yarn tramite DNF.

Esegui il comando dnf seguente per installare Node.js e Yarn sul tuo sistema. Immettere y quando viene richiesta la conferma e premere INVIO per procedere.

sudo dnf install gcc-c++ make nodejs yarn

Dovrebbe iniziare l'installazione di Node.js e Yarn.

Inoltre, quando viene richiesta la chiave GPG per entrambi i repository, immettere y e premere INVIO per aggiungere la chiave GPG al sistema.

Ora che il gestore di pacchetti Node.js e Yarn è installato, installerai il pacchetto Wkhtmltopdf tramite il file RPM.

Installazione di Wkhtmltopdf

In questo passaggio, installerai il pacchetto Wkhtmltopdf che verrà utilizzato da ERPNext per generare report PDF. Wkhtmltopdf può essere scaricato e installato manualmente tramite file .deb o file .rpm.

Innanzitutto, esegui il comando dnf seguente per installare le dipendenze per il pacchetto Wkhtmltopdf.

sudo dnf install fontconfig freetype libX11 libXext libXrender libjpeg libpng xorg-x11-fonts-75dpi xorg-x11-fonts-Type1

Immettere y quando richiesto e premere INVIO per procedere.

Successivamente, esegui il comando rpm di seguito per scaricare e installare il pacchetto Wkhtmltopdf sul tuo sistema Rocky Linux.

sudo rpm -Uvh https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm

Dopo aver installato Wkhtmltopdf, eseguire i comandi seguenti per verificare l'installazione.

Il pacchetto Wkhtmltopdf fornisce due strumenti a riga di comando, il comando wkhtmltopdf viene utilizzato per convertire una pagina HTML in PDF, mentre il comando wkhtmltoimage converte la pagina HTML in vari formati immagine.

which wkhtmltopdf
which wkhtmltoimage
wkhtmltopdf --version
wkhtmltoimage --version

Riceverai un output simile a questo: il pacchetto Wkhtmltopdf v0.12 è installato sul tuo sistema Rocky Linux.

A questo punto, hai terminato l'installazione delle dipendenze dei pacchetti per ERPNext e frappeframework. Ciò includeva i pacchetti Python3.10, Redis, Nginx, Supervisor, Fail2ban, MariaDB Server e Wkhtmltopdf.

Nella sezione successiva, avvierai l'installazione di ERPNext. Ma prima installerai e configurerai il frappeframework.

Installazione di Frappeframework tramite banco

ERPNext è un software ERP open source creato con frappeframework, scritto in Python e JavaScript. ERPNext verrà eseguito all'interno di frappeframework, quindi devi installare frappeframework sul tuo sistema, quindi puoi installare ERPNext.

Quindi, prima devi installare la panca. Quindi, installa il frappeframework tramite la panca. Infine, installerai l'applicazione ERPNext all'interno del frappeframework.

Eseguire il comando pip3.10 di seguito per installare bench dal repository PyPI.

sudo pip3.10 install frappe-bench

Riceverai un output simile a questo durante l'installazione al banco.

Dopo aver installato il banco, eseguire il comando seguente per verificarlo.

which bench
bench --version

Riceverai il comando bench del percorso binario e la versione corrente del bench che hai installato.

Con la panca installata, installerai quindi il framework frappe tramite il comando bench.

Esegui il seguente comando bench per installare il framework frappe nella tua attuale directory di lavoro. Inoltre, specificherai la versione di Python che verrà utilizzata per Python 3.10, specifica la versione del framework frappe per v14. La directory di installazione di destinazione è frappe-bench.

bench init --python python3.10 --frappe-branch version-14 frappe-bench

Riceverai un output simile a questo durante l'installazione di frappeframework.

Al termine dell'installazione del framework frappe, dovresti ricevere il seguente output.

Infine, esegui il comando seguente per consentire ad altri utenti di leggere ed eseguire nella directory di installazione del framework frappe /home/frappe/frappe-bench. Ciò è necessario affinché il server Web Nginx possa leggere ed eseguire il framework flap.

sudo chmod -R o+rx /home/frappe/frappe-bench
or
sudo chmod -R o+rx /home/frappe

Con il framework frappe installato, sarai pronto per installare e configurare ERPNext.

Imposta nuova applicazione in Frappe

Prima di installare ERPNext, è necessario creare un nuovo sito/progetto sul framework frappe. In questa fase, creerai un nuovo sito/progetto e trasformerai l'ambiente nel nuovo progetto tramite il banco.

Per prima cosa, sposta la tua directory di lavoro in frappe-bench tramite il comando cd.

cd ~/frappe-bench

Eseguire il comando bench di seguito per creare un nuovo sito/progetto per ERPNext. In questo esempio, creerai un nuovo sito erp.hwdomain.io, che è il nome di dominio di destinazione dell'installazione di ERPNext. Inoltre, durante il processo di installazione, ti verrà chiesto di configurare la password dell'amministratore per il tuo progetto, quindi inserisci la password e ripeti. Questa password verrà utilizzata per accedere alla tua applicazione ERPNext.

bench new-site erp.hwdomain.io

Infine, esegui il comando seguente per passare al nuovo sito/progetto erp.hwdomain.io.

bench use erp.hwdomain.io

Di seguito è riportato l'output durante la creazione del sito/progetto e dopo il passaggio al nuovo sito/progetto.

Installazione di ERPNext tramite bench

In questo passaggio, avvierai l'installazione di ERPNext all'interno del progetto framework frappe che hai creato.

Innanzitutto, esegui il comando seguente per scaricare le app pagamenti e erpnext. In questo esempio, scaricherai ERPNexxt v14.

bench get-app payments
bench get-app --branch version-14 erpnext

Di seguito è riportato un risultato simile che riceverai durante il processo di download dei pagamenti.

E di seguito è riportato il processo di download dell'applicazione ERPNext.

Successivamente, esegui il comando seguente per installare l'applicazione ERPNext sul sito/progetto erp.hwdomain.io.

bench --site erp.hwdomain.io install-app erpnext

Riceverai un output simile a questo - Inoltre dovresti vedere che l'applicazione pagamenti viene installata automaticamente come dipendenza per l'applicazione ERPNext.

Infine, esegui il comando bench di seguito per abilitare lo scheduler e disabilitare la modalità di manutenzione sul sito/progetto ERPNext erp.hwdomain.io.

bench --site erp.hwdomain.io enable-scheduler
bench --site erp.hwdomain.io set-maintenance-mode off

A questo punto, l'installazione di ERPNext è terminata. Nei passaggi successivi, configurerai il server Web Nginx e il supervisore per l'implementazione di ERPNext in produzione, che può essere configurato tramite il comando bench.

Configurazione della distribuzione per ERPNext

Innanzitutto, esegui il comando seguente per avviare la configurazione del framework frappe e di ERPNext per l'ambiente di produzione. Ciò installerà Ansible e configurerà automaticamente la distribuzione ERPNext tramite Ansible.

sudo bench setup production frappe

Di seguito è riportato l'output durante l'installazione di Ansible.

Di seguito è riportato l'output al termine della configurazione.

Successivamente, esegui il comando bench sottostante per configurare Nginx e Supervisor per ERPNext. Quando viene richiesto di sovrascrivere le impostazioni correnti, immettere y per confermare e premere ENTER.

sudo bench setup supervisor
sudo bench setup nginx

Successivamente, esegui nuovamente il comando bench di seguito per assicurarti che le configurazioni di Supervisor e Nginx siano installate.

sudo bench setup production frappe

Immettere y per sovrascrivere le impostazioni correnti e premere ENTR per procedere.

Successivamente, apri la configurazione del supervisore /etc/supervisor.conf tramite il seguente comando nano editor.

sudo nano /etc/supervisor.conf

Assicurati di avere la seguente riga nella sezione [include]. In caso contrario, puoi modificare il formato in *.conf come di seguito.

[include]
file = /etc/supervisord.d/*.conf

Salva ed esci dal file quando hai finito.

Ora esegui l'utilità di comando systemctl di seguito per riavviare il servizio Supervisor e applicare le modifiche.

sudo systemctl restart supervisord

Infine, esegui il seguente comando supervisorctl con privilegi sudo. Questo verificherà tutti i processi e i servizi utilizzati da frappe framework e ERPNext.

sudo supervisorctl status

Se l'installazione di ERPNext ha avuto esito positivo, dovresti ricevere un output simile al seguente: Tutti i servizi per ERPNext sono in esecuzione.

A questo punto, l'installazione di ERPNext è terminata ed è in esecuzione con Nginx come server Web e supervisore per il gestore dei processi. Ora puoi accedere alla tua installazione ERPNext tramite il tuo nome di dominio e il browser web.

Configurazione di ERPNext

Apri il tuo browser web e visita il nome di dominio della tua installazione ERPNext (ad esempio: http://erp.hwdomain.io/). Vedrai quindi la pagina di accesso del framework frappe.

Inserisci l'utente predefinito Administrator e inserisci la password che hai utilizzato durante la creazione del sito/progetto.

Ora seleziona la lingua, il fuso orario e la valuta predefiniti. Quindi fare clic su Avanti.

Inserisci il nuovo utente amministratore per la tua installazione ERPNext. Inserisci il tuo nome completo, indirizzo e-mail e password, quindi fai clic su Avanti.

Inserisci il nome dell'azienda e carica il logo della tua azienda, quindi fai clic su Avanti.

Inserisci i dettagli sulla tua organizzazione e fai clic su Completa configurazione.

Ora dovresti vedere la dashboard di amministrazione della tua installazione ERPNext.

Protezione con certificati SSL/TLS tramite Certbot e Letsencrypt

In questo passaggio finale, proteggerai ERPNext con certificati SSL/TLS tramite lo strumento Certbot e Letsencrypt. Prima di iniziare, assicurati che il tuo nome di dominio sia indirizzato all'indirizzo IP del tuo server e assicurati di avere un indirizzo email valido che verrà utilizzato per registrarti a Letsencrypt.

Installa lo strumento Certbot e il plug-in Certbot Nginx tramite il comando dnf di seguito. Quando richiesto, inserire y per confermare e premere INVIO per procedere.

sudo dnf install certbot python3-certbot-nginx

Dopo aver installato certbot, esegui il comando certbot di seguito per generare certificati SSL per il tuo nome di dominio ERPNext. Assicurati di modificare il nome di dominio e l'indirizzo e-mail nel comando seguente.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email  -d erp.hwdomain.io

Con questo, l'installazione di ERPNext è ora protetta con certificati SSL/TLS tramite Certbot e Letsencrypt. Hai anche configurato il reindirizzamento automatico da HTTP a HTTPS sul tuo nome di dominio ERPNext, che Certbot gestisce automaticamente.

Conclusione

In questo tutorial, hai imparato come installare ERPNext un software ERP open source, su un server Rocky Linux 9. Hai anche imparato l'installazione di alcune dipendenze come Python 3.10, che viene installato manualmente compilando il codice sorgente e installandolo. Altre dipendenze che hai anche installato sono MariaDB Server, Nginx, Supervisor, Redis e Fail2ban.

Hai anche imparato come installare il framework frappe e su di esso hai installato ERPNext. Quindi, hai appreso la configurazione di base di ERPNext come software ERP.

Infine, hai anche distribuito ERPNext per la produzione configurando Nginx come web server e Supervisor come process manager. Hai anche assicurato la distribuzione di ERPNext tramite Certbot e Letsencrypt.