How to Install ERPNext Open Source ERP on Ubuntu 17.04

ERP or Enterprise Resource Planning is an enterprise application suite used to manage core business processes. ERPNext is a free and open source, self-hosted ERP application written in Python. It uses Node.js for the front end and MariaDB to store its data. ERPNext provides an easy-to-use web interface that allows businesses to manage day to day tasks. It contains modules for accounting, CRM, HRM, manufacturing, POS, project management, purchasing, sales management, warehouse management, and more. ERPNext can be used to manage different industries such as service providers, manufacturing, retail and schools.

Prerequisites

  • A Vultr Ubuntu 17.04 server instance.
  • A sudo user.

Note: For this tutorial, we will use erp.example.com as the domain name pointed to the server. Please make sure to replace all occurrences of erp.example.com with your actual domain name.

Before we begin, make sure your server is up-to-date.

sudo apt update
sudo apt -y upgrade

Install Development Tools

ERPNext needs Python version 2.7 to work. Install Python 2.7.

sudo apt -y install python-minimal

You should be able to verify its version.

python -V

You will see the following output.

user@vultr:~$ python -V
Python 2.7.13

Install a few more dependencies.

sudo apt -y install git build-essential python-setuptools python-dev libffi-dev libssl-dev

Install Python's pip tool. Pip is the dependency manager for Python packages.

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Ensure that you have the latest version of pip and setuptools.

sudo pip install --upgrade pip setuptools

Install Ansible using Pip. Ansible automates software provisioning, configuration management, and application deployment.

sudo pip install ansible

Install MariaDB Server

Add the MariaDB repository into the system.

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'

Install MariaDB.

sudo apt update
sudo apt -y install mariadb-server libmysqlclient-dev

Provide a strong password for the MariaDB root user when asked.

The Barracuda storage engine is required for the creation of ERPNext databases, so you will need to configure MariaDB to use the Barracuda storage engine. Edit the default MariaDB configuration file my.cnf.

sudo nano /etc/mysql/my.cnf

Add the following lines under the [mysqld] line.

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

Also, add the following line under the [mysql] line.

default-character-set = utf8mb4

Restart MariaDB and enable it to automatically start at boot time.

sudo systemctl restart mariadb
sudo systemctl enable mariadb

Before configuring the database, you will need to secure MariaDB. You can secure it by running the mysql_secure_installation script.

sudo mysql_secure_installation

You will be asked for the current MariaDB root password. Provide the password you have set during the installation. You will be asked if you wish to change the existing password of the root user of your MariaDB server. You can skip setting a new password, as you have already provided a strong password during installation. Answer "Y" to all of the other questions that are asked.

Install Nginx, Node.js and Redis

Add the Nodesource repository for Node.js 8.x.

sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -

Install Nginx, Node.js and Redis.

sudo apt -y install nginx nodejs redis-server

Start Nginx and enable it to start at boot time.

sudo systemctl start nginx
sudo systemctl enable nginx

Start Redis and enable it to start at boot time.

sudo systemctl start redis-server
sudo systemctl enable redis-server

Install PDF Converter

The wkhtmltopdf program is a command line tool that converts HTML into PDF using the QT Webkit rendering engine. Install the required dependencies.

sudo apt -y install libxrender1 libxext6 xfonts-75dpi xfonts-base

Download the latest version of wkhtmltopdf.

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

Extract the archive.

sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt

The above command will extract the archive to /opt/wkhtmltox. Create a softlink so that wkhtmltopdf and wkhtmltoimage can be executed globally as a command.

sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage

You can now run wkhtmltopdf -V to check if it is working, you will see this.

user@vultr:~$ wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)

At this point, we have all the required dependencies installed. You can now proceed to install Bench.

Install Bench

Bench is a command line utility provided by Frappe to install and manage the ERPNext application on a Unix-based system for both development and production purposes. Bench can also create and manage Nginx and supervisor configurations.

Create a new user to run Bench processes in the isolated environment.

sudo adduser bench --home /opt/bench

Provide sudo permissions to the bench user.

sudo usermod -aG sudo bench

Login as the newly created bench user.

sudo su - bench

Clone the Bench repository in /opt/bench.

cd /opt/bench
git clone https://github.com/frappe/bench bench-repo

Install Bench using pip.

sudo pip install -e bench-repo

Once Bench is installed, proceed further to install ERPNext using Bench.

Install ERPNext using Bench

Initialize a bench directory with frappe framework installed. To keep everything tidy, we will work under the /opt/bench directory. Bench will also setup regular backups and auto updates once a day.

cd /opt/bench
bench init erpnext && cd erpnext

Create a new Frappe site.

bench new-site erp.example.com

The above command will prompt you for the MySQL root password. Provide the password which you have set for the MySQL root user earlier. It will also ask you to set a new password for the administrator account. You will need this password later to log into the administrator dashboard.

Download ERPNext installation files from the remote git repository using Bench.

bench get-app erpnext https://github.com/frappe/erpnext

Install ERPNext on your newly created site.

bench --site erp.example.com install-app erpnext

You can start the application immediately to check if the application installed successfully.

bench start

However, you should stop the execution and proceed further to set up the application for production use.

Setup Supervisor and Nginx

By default, the ERPNext application listens on port 8000, not the standard HTTP port 80. Also, running the built in web server for production use is not recommended as we will be exposing the server to the world. You should use a production web server as a reverse proxy such as Apache or Nginx. We will use Nginx as a reverse proxy as it can be automatically configured using Bench. Bench can automatically generate and install the configuration according to the ERPNext setup.

Although we can start the application using the 'bench start' command, the execution of ERPNext will stop as soon as you close the terminal. To overcome this issue, you should use Supervisor, which is very helpful in running the application continuously in a production environment. Supervisor is a process control system that enables you to monitor and control a number of processes on Linux operating systems. Once Supervisor is configured, it will automatically start the application at boot time as well as on failures. Bench can automatically configure Supervisor for the ERPNext application.

Install Supervisor.

sudo apt -y install supervisor

Start Supervisor and enable it to automatically start at boot time.

sudo systemctl start supervisor
sudo systemctl enable supervisor

Setup Bench for production use.

 sudo bench setup production bench

The above command may prompt you before replacing the existing Supervisor default configuration file with a new one. Choose y to proceed. Bench adds a number of processes to the Supervisor configuration file. The above command will also ask you if you wish to replace the current Nginx configuration with a new one. Enter y to proceed. Once Bench has finished installing the configuration, provide other users to execute the files in your home directory of the Bench user.

chmod o+x /opt/bench/

You can now access the site on http://erp.example.com.

You can check the status of the processes by running.

sudo supervisorctl status all

You should see the following output.

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

To stop all of the ERPNext processes.

sudo supervisorctl stop all

To start all the ERPNext processes.

sudo supervisorctl start all

Setting Up SSL using Let's Encrypt

Let's Encrypt provides free SSL certificates to the users. SSL can be installed manually or automatically through Bench. Bench can automatically install the Let's Encrypt client and obtain the certificates. Additionally, it automatically updates the Nginx configuration to use the certificates.

The domain name which you are using to obtain the certificates from the Let's Encrypt CA must be pointed towards the server. The client verifies the domain authority before issuing the certificates.

Enable DNS multi-tenancy for the ERPNext application.

bench config dns_multitenant on

Run Bench to set up Let's Encrypt on your site.

sudo bench setup lets-encrypt erp.example.com

During the execution of the script, the Let's Encrypt client will ask you to temporarily stop the Nginx web server. It will automatically install the required packages and the Let's Encrypt client. The client will prompt you for your email address. You will also need to accept the terms and conditions. Once the certificates have been generated, Bench will also generate the new configuration for Nginx which uses the SSL certificates. You will be asked before replacing the existing configuration. Bench also creates a crontab entry to automatically renew the certificates every month.

Finally, enable scheduler to automatically run the scheduled jobs.

bench enable-scheduler

You should see this output.

bench@vultr:~/erpnext$ bench enable-scheduler
Enabled for erp.example.com

Conclusion

Once the process has finished, you can access your application at https://erp.example.com. Login with the username Administrator and the password you have set during installation. You will be taken to the desk where you will need to provide information to set ERPNext ERP according to your company. You can now use the application to manage your company.

Congratulations, you have a fully working ERPNext application installed on your Ubuntu 17.04 server.


Vytvoření blogu Jekyll na Ubuntu 16.04

Vytvoření blogu Jekyll na Ubuntu 16.04

Používáte jiný systém? Jekyll je skvělá alternativa k WordPressu pro blogování nebo sdílení obsahu. Nevyžaduje žádné databáze a je velmi snadné i

Jak nainstalovat Squid Proxy na CentOS

Jak nainstalovat Squid Proxy na CentOS

Squid je populární bezplatný linuxový program, který vám umožňuje vytvořit webový proxy pro předávání. V této příručce uvidíte, jak nainstalovat Squid na CentOS, aby vás otočil

Nastavte Red5 Media Server na Ubuntu 16.04

Nastavte Red5 Media Server na Ubuntu 16.04

Používáte jiný systém? Red5 je open source mediální server implementovaný v Javě, který vám umožňuje spouštět aplikace Flash pro více uživatelů, jako je živé streamování

Jak nainstalovat Vanilla Forum na Ubuntu 16.04

Jak nainstalovat Vanilla Forum na Ubuntu 16.04

Používáte jiný systém? Vanilla forum je open source aplikace fóra napsaná v PHP. Je plně přizpůsobitelný, snadno použitelný a podporuje externí

Jak nainstalovat Kanboard na Ubuntu 18.04 LTS

Jak nainstalovat Kanboard na Ubuntu 18.04 LTS

Používáte jiný systém? Úvod Kanboard je bezplatný a otevřený softwarový program pro správu projektů, který je navržen tak, aby usnadnil a vizualizoval

Jak nainstalovat Kanboard na Debian 9

Jak nainstalovat Kanboard na Debian 9

Používáte jiný systém? Úvod Kanboard je bezplatný a otevřený softwarový program pro správu projektů, který je navržen tak, aby usnadnil a vizualizoval

Jak nainstalovat Gitea na Ubuntu 18.04

Jak nainstalovat Gitea na Ubuntu 18.04

Používáte jiný systém? Gitea je alternativní open source systém pro správu verzí s vlastním hostitelem poháněný git. Gitea je napsána v Golangu a je

Jak nainstalovat Thelia 2.3 na Debian 9

Jak nainstalovat Thelia 2.3 na Debian 9

Používáte jiný systém? Thelia je open source nástroj pro vytváření webových stránek pro e-business a správu online obsahu napsaného v PHP. Zdrojový kód Thelia i

Jak nainstalovat Microweber na CentOS 7

Jak nainstalovat Microweber na CentOS 7

Používáte jiný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je hostován na GitHubu. Tento průvodce vám to ukáže

Instalace Microweber na Ubuntu 16.04

Instalace Microweber na Ubuntu 16.04

Používáte jiný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je hostován na GitHubu. Tento průvodce vám to ukáže

Jak nainstalovat MODX Revolution na Ubuntu 16.04 LAMP VPS

Jak nainstalovat MODX Revolution na Ubuntu 16.04 LAMP VPS

Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, bezplatný a open source podnikový systém správy obsahu (CMS) napsaný i

Jak nainstalovat Vanilla Forum na CentOS 7

Jak nainstalovat Vanilla Forum na CentOS 7

Používáte jiný systém? Vanilla forum je open source aplikace fóra napsaná v PHP. Je plně přizpůsobitelný, snadno použitelný a podporuje externí

Jak nainstalovat Mattermost 4.1 na CentOS 7

Jak nainstalovat Mattermost 4.1 na CentOS 7

Používáte jiný systém? Mattermost je open source alternativa k zasílání zpráv Slack SAAS s vlastním hostitelem. Jinými slovy, s Mattermostem můžete ca

Jak nainstalovat dotCMS na Ubuntu 16.04

Jak nainstalovat dotCMS na Ubuntu 16.04

Používáte jiný systém? DotCMS je open-source podnikový systém pro správu obsahu napsaný v Javě. Obsahuje téměř všechny požadované funkce t

Jak nainstalovat BigTree CMS na Fedora 26 LAMP VPS

Jak nainstalovat BigTree CMS na Fedora 26 LAMP VPS

Používáte jiný systém? BigTree CMS 4.2 je rychlý a lehký, bezplatný a open source podnikový systém pro správu obsahu (CMS) s rozsáhlým

Umožňuje šifrovat na Plesku

Umožňuje šifrovat na Plesku

Ovládací panel Plesk se vyznačuje velmi pěknou integrací pro Lets Encrypt. Lets Encrypt je jedním z jediných poskytovatelů SSL, kteří rozdávají kompletní certifikáty

Umožňuje šifrovat na cPanel

Umožňuje šifrovat na cPanel

Lets Encrypt je certifikační autorita určená k bezplatnému poskytování certifikátů SSL. cPanel vytvořil úhlednou integraci, takže vy a váš klient

Nainstalujte Adminer na Debian/Ubuntu

Nainstalujte Adminer na Debian/Ubuntu

Adminer je odlehčená alternativa k phpMyAdmin. Pro srovnání, jeho celková velikost balíčku je 400 kB oproti 4,2 MB phpMyAdmin. Na rozdíl od phpMyAdmin, který

Jak nainstalovat Nextcloud na Ubuntu 17.04

Jak nainstalovat Nextcloud na Ubuntu 17.04

V tomto tutoriálu se naučíte nainstalovat software NextCloud. Caddy budeme používat pro potřeby našeho webového serveru, protože umožňuje jednodušší konfiguraci

Jak nainstalovat GoAccess na Ubuntu 16.04

Jak nainstalovat GoAccess na Ubuntu 16.04

Používáte jiný systém? GoAccess je open source analyzátor webových protokolů. Můžete jej použít pro analýzu logů v reálném čase buď v terminálu nebo

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více