ERPNext インストール · 4 min read · Oct 24, 2025

Debian 11にERPNext 14をインストールする方法

ERPNextは、ビジネスに実装できるオープンソースのエンタープライズERP(エンタープライズリソースプランニング)システムです。ERPNextは、製造、流通、小売、貿易、サービス、教育、非営利団体、医療など、複数の業界で実装できます。また、会計、CRM、販売、購買、ウェブサイト、eコマース、販売時点管理、製造、倉庫、プロジェクト管理、在庫、サービスなどのモジュールを提供します。

ERPNextは、GNU General Public Licence v3の下でライセンスされたエンタープライズERPプラットフォームです。主にPythonとJavaScriptで書かれており、Frappe Technologies Pvtによって開発されています。ERPNextは、PythonとJavaScriptのオープンソースウェブフレームワークであるFrappeフレームワークの下に書かれたアプリケーションです。

ERPNextは、OracleのNetSuite、QAD、Tython、OpenBrave、Odooなどのサービスの代替です。機能的には、ERPNextはOdoo(以前のOpenERP)に似ています。

このチュートリアルでは、Debian 11サーバーにERPNextをインストールし、次にCertbotとLetsencryptを介してSSL/TLS証明書でERPNextを保護します。また、Python 3.10、Redis、Nginx、Supervisor、Fail2ban、MariaDB Server、Node.js、Yarn、Frappe Web Frameworkなど、ERPNextの依存関係をインストールする方法も学びます。

前提条件

このチュートリアルを完了するには、以下の要件が必要です:

  • Debian 11サーバー1台 - この例では、ホスト名が「 erpnext-server 」のDebianサーバーを使用します。
  • sudo/root管理者権限を持つ非rootユーザー。ガイド内のすべてのコマンドは非rootユーザーとして実行します。
  • サーバーのIPアドレスを指すドメイン名。

それでは、インストールに進みましょう。

新しいユーザーの設定

このチュートリアルの最初のステップは、ERPNextアプリケーションを実行するために使用される新しいユーザーを作成することです。また、新しいユーザーを「sudo」グループに追加し、このユーザーがroot権限でコマンドを実行できるようにします。

以下のコマンドを実行して新しいユーザーを作成し、新しいユーザーのパスワードを設定します。この例では、ERPNextを実行するために使用される新しいユーザー「 frappe 」を作成します。

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

次に、以下のコマンドを介してユーザー「 frappe 」を「sudo」グループに追加します。

sudo usermod -aG sudo frappe

最後に、以下のコマンドを実行して新しいユーザーを確認します。ユーザー「 frappe 」としてログインし、「 sudo su 」コマンドを介してroot権限を取得します。

su - frappe  
sudo su

ターミナルプロンプトは「root@hostname:/home/frappe..」のように変更されるはずです。今、「exit」と入力してrootシェルからログアウトします。

setup user

これで、ERPNext用の新しいユーザーが作成されました。次のステップでは、ソースからコンパイルしてPython 3.10を手動でインストールします。

Python 3.10のインストール

ERPNextは、Pythonに基づいたfrappeframeworkで作成されたウェブアプリケーションです。この執筆時点で、frappeframeworkとERPNextの最新バージョンは、少なくともPython 3.10を必要とします。

このステップでは、ソースからPython 3.10を手動でインストールします。現在のDebian 11リポジトリはまだPython 3.10パッケージを提供していません。

始める前に、新しいユーザー「 frappe 」としてDebianサーバーにログインしていることを確認してください。

su - frappe

まず、以下のコマンドを実行してDebianパッケージインデックスを更新します。

sudo apt update

次に、以下のaptコマンドを実行してPythonをコンパイルするための依存関係をインストールします。

sudo apt install wget build-essential libncursesw5-dev libssl-dev \  
     libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

プロンプトが表示されたらyを入力し、ENTERを押して続行します。

install dependencies

次に、以下のwgetコマンドを介してPythonダウンロードページからPython 3.10のソースコードをダウンロードします。この例では、Python 3.10.9をダウンロードしてインストールします。

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

Pythonソースコードがダウンロードされたら、tarコマンドを介してPythonソースコードを抽出し、作業ディレクトリに移動します。

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

次に、以下のコマンドを実行してPython 3.10をコンパイルしてインストールします。

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

download compile python

Pythonのインストールが完了すると、「 /usr/local/bin/ 」ディレクトリにPythonバイナリが配置されるはずです。以下のコマンドを実行してPython 3.10のインストールを確認します。

ls /usr/local/bin

Python 3.10パッケージのバイナリファイル「 python3.10 」や「 pip3.10 」が表示されるはずです。

次に、新しいバージョンのPythonコマンドを実行できるようにするために、「 /usr/local/bin 」ディレクトリをシステムPATHとvisudo secure_pathに追加する必要があります。

以下のnanoエディタコマンドを使用して新しいファイル ‘/etc/profile.d/custom-path.sh’ を作成します。

sudo nano /etc/profile.d/custom-path.sh

ファイルに以下の行を追加します。

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

ファイルを保存してエディタを終了します。

次に、以下のコマンドを実行して新しいファイル ‘ /etc/profile.d/custom-path.sh ‘ を読み込み、システムPATHを確認します。

source /etc/profile.d/custom-path.sh  
echo $PATH

/usr/local/bin 」ディレクトリがシステム PATH 環境変数に追加されていることが確認できるはずです。

次に、以下のコマンドを実行してsudoers構成を編集します。

sudo visudo

Defaults secure_path= 」の行に、新しいバイナリsecure_path「 /usr/local/bin 」を追加します。

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

完了したら、エディタを保存して終了します。

これで、sudoコマンドを介して新しいPython 3.10を実行できるようになりました。以下のコマンドを実行して Python3.10Pip3.10 を確認します。

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

以下は、ターミナルで受け取る類似の出力です。

setup python

Python 3.10のインストールが完了したので、次はERPNextの依存関係であるNginxウェブサーバーとSupervisorのインストールに進みます。

NginxとSupervisorのインストール

ERPNextをインストールするには、デフォルトのウェブサーバーとして使用されるNginxとプロセスマネージャーとしてのSupervisorをインストールする必要があります。NginxとSupervisorの両方のパッケージはDebianリポジトリにあり、APTを介して簡単にインストールできます。

以下のaptコマンドを実行してNginxとSupervisorパッケージをインストールします。

sudo apt install git nginx supervisor

プロンプトが表示されたらyを入力し、ENTERを押して続行します。

install nginx supervisor

次に、以下のsystemctlコマンドユーティリティを実行して、NginxとSupervisorの両方のサービスを確認します。これにより、NginxとSupervisorの両方のサービスが実行中で有効であることが確認され、両方のサービスが起動時に自動的に実行されることを意味します。

Nginxサービスを確認します。

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

出力:

verify nginx

Supervisorサービスを確認します。

sudo systemctl is-enabled supervisor  
sudo systemctl status supervisor

出力:

verify supervisor

NginxとSupervisorがインストールされ、実行中になったので、次はRedis ServerとFail2banのインストールに進みます。

RedisとFail2banのインストール

Redisは、セッションなどの一時データを保存するために使用できるキー・バリューデータベースです。Fail2banは、ERPNextアプリケーションに対するブルートフォース攻撃をブロックするためのセキュリティツールです。

ERPNextは、セッションマネージャーとして使用されるRedisと、ERPNextのユーザーログインページに対するブルートフォース攻撃をブロックするためのFail2banを必要とします。

以下のaptコマンドを実行して、DebianサーバーにRedisとFail2banをインストールします。

sudo apt install redis-server fail2ban

確認のためにプロンプトが表示されたらyを入力し、ENTERを押して続行します。

install redis

install fail2ban

RedisとFail2banがインストールされたら、以下のsystemctlコマンドを実行して両方のサービスを確認します。

sudo systemctl is-enabled redis-server  
sudo systemctl status redis-server
sudo systemctl is-enabled fail2ban  
sudo systemctl status fail2ban

Redisサービスについては、次のような出力が表示されるはずです - Redisサービスは有効であり、起動時に自動的に実行されます。そして、Redisの現在のステータスは実行中です。

verify redis

Fail2banサービスについては、次のような出力が表示されるはずです - Fail2banサービスは有効であり、起動時に自動的に実行されます。そして、Fail2banの現在のステータスは実行中です。

verify fail2ban

これで、Redis ServerとFail2banがインストールされ、実行中になりました。次のステップでは、MariaDBデータベースサーバーをインストールして構成します。

MariaDB Serverのインストールと構成

デフォルトのインストールでは、ERPNextはデータベースサーバーとしてMySQL/MariaDBを使用します。ERPNextは、インストールのために特定のバージョンのMySQL/MariaDBを必要とします。

このステップでは、公式のMariaDBリポジトリからMariaDB Server 10.6をインストールします。次に、MariaDB Serverに構成を追加し、MariaDB Serverのデプロイメントを保護します。

以下のコマンドを実行してMariaDB Serverリポジトリv10.6を追加します。

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

次のような出力が表示されます。

次に、以下のaptコマンドを実行してMariaDBパッケージをインストールします。

sudo apt install mariadb-server mariadb-client default-libmysqlclient-dev

インストールのためにプロンプトが表示されたらyを入力し、ENTERを押して続行します。

install mariadb

MariaDB Serverがインストールされたら、以下のsystemctlコマンドを実行してMariaDBサービスを確認し、サービスが有効で実行中であることを確認します。

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

次のような出力が表示されるはずです - MariaDBサービスは有効であり、起動時に自動的に実行されます。そして、MariaDBサービスの現在のステータスは実行中です。

verify mariadb

次に、以下のnanoエディタコマンドを使用してMariaDB Serverの設定ファイル ‘/etc/alternatives/my.cnf’ を開きます。

sudo nano /etc/alternatives/my.cnf

ファイルに以下の行を追加します。以下の構成は、MariaDB Serverで「barruca」形式を有効にし、サーバーとクライアントのデフォルト文字セットを「 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  
  
[mysql]  
default-character-set = utf8mb4

完了したら、ファイルを保存してエディタを終了します。

次に、以下のsystemctlコマンドユーティリティを実行してMariaDBサービスを再起動し、変更を適用します。

sudo systemctl restart mariadb

次に、MariaDBデプロイメントを保護します。

以下のコマンド「 mariadb-secure-installation 」を実行してMariaDBデプロイメントを保護します。MariaDBのrootパスワードを設定するように求められるので、新しいパスワードを入力して繰り返してください。残りの構成については、Yを入力して確認し、ENTERを押します。

sudo mariadb-secure-installation

これで、MariaDB Serverのインストールと構成が完了しました。次のステップでは、ERPNextがPDFレポートを生成するために使用するwkhtmltopdfパッケージをインストールします。

Wkhtmltopdfパッケージのインストール

このステップでは、ERPNextがPDFレポートを生成するために使用するWkhtmltopdfパッケージをインストールします。Wkhtmltopdfは、手動で.debファイルまたは.rpmファイルを介してダウンロードしてインストールできます。しかし、Debianの場合、APTを介して公式のDebianリポジトリからインストールできます。

以下のコマンドを実行してwkhtmltopdfパッケージをインストールします。プロンプトが表示されたらYを入力し、ENTERを押して続行します。

sudo apt install xvfb libfontconfig wkhtmltopdf

install wkhtmltopdf

Wkhtmltopdfがインストールされたら、以下のコマンドを実行して確認します。wkhtmltopdfコマンドはHTMLページをPDFに変換するために使用され、wkhtmltoimageはHTMLページをさまざまな画像形式に変換します。

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

次のような出力が表示されるはずです - Wkhtmltopdf v0.12がDebianシステムにインストールされています。

verify wkhtmltopdf

次のステップでは、ERPNextの静的ファイルを生成するために使用されるNode.jsとYarnパッケージマネージャーをインストールします。

Nodejs 16とYarnのインストール

ERPNextの最新バージョンはv14で、少なくともNode.js 16とYarnパッケージマネージャーが必要です。このステップでは、Nodesourceリポジトリを介してNode.js 16をインストールします。次に、Yarnパッケージマネージャーをインストールします。

まず、以下のコマンドを実行してNode.js 16のためのNodesourceリポジトリを追加します。

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

次のような出力が表示されます。

add nodesource repo

次に、以下のコマンドを実行してDebian-LinuxディストリビューションのためのYarnリポジトリを追加します。

sudo curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null  
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

add yarn repo

その後、’apt update’コマンドを介してDebianパッケージインデックスを更新およびリフレッシュします。次に、’apt install’コマンドを介してNode.jsとyarnパッケージマネージャーをインストールします。

sudo apt update  
sudo apt install nodejs yarn

これでNode.jsとYarnパッケージマネージャーのインストールが始まります。

install yarn and nodejs

Node.jsとYarnがインストールされると、Frappe Web FrameworkとERPNextアプリケーションの依存関係のインストールが完了しました。

frappeフレームワークとfrappe-benchのインストール

ERPNextは、PythonとJavaScriptで書かれたfrappeframeworkで作成されたオープンソースのERPソフトウェアです。ERPNextをインストールするには、システムにfrappeframeworkをインストールする必要があり、「frappe-bench」または「bench」を介してインストールできます。

まず、benchをインストールする必要があります。次に、benchを介してfrappeframeworkをインストールします。最後に、frappeframework内にERPNextアプリケーションをインストールします。

benchをインストールするには、以下のpip3.10コマンドを実行します。

sudo pip3.10 install frappe-bench

benchのインストール中に次のような出力が表示されます。

install bench

benchがインストールされたら、以下のコマンドを実行して確認します。’ bench ‘コマンドのバイナリパスと、インストールしたbenchの現在のバージョンが表示されます。

which bench  
bench --version

benchがインストールされたので、次にfrappeframeworkをインストールします。以下の’bench’コマンドを実行して、現在の作業ディレクトリにfrappeframeworkをインストールします。また、使用するPythonバージョンを Python 3.10 に指定し、frappeframeworkのバージョンを v14 に指定し、ターゲットインストールディレクトリを「 frappe-bench 」に指定します。

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

frappeframeworkのインストール中に次のような出力が表示されます。

install frappeframework via bench

frappeframeworkがインストールされた後、インストールの最後に次の出力が表示されるはずです。

frappeframework installed

最後に、以下のコマンドを実行して、他のユーザーがfrappeframeworkのインストールディレクトリを読み取りおよび実行できるようにします。これは、Nginxウェブサーバーがfrappeframeworkを読み取りおよび実行できるようにするために必要です。

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

frappeframeworkがインストールされたので、ERPNextをインストールして設定する準備が整いました。

Frappeframeworkで新しいサイト/プロジェクトを設定

ERPNextをインストールする前に、frappeframeworkで新しいサイト/プロジェクトを作成する必要があります。このステップでは、新しいサイト/プロジェクトを作成し、benchを介して新しいプロジェクトに環境を切り替えます。

まず、cdコマンドを介して作業ディレクトリを「 frappe-bench 」に移動します。

cd ~/frappe-bench

以下のbenchコマンドを実行して、ERPNextの新しいサイト/プロジェクトを作成します。この例では、新しいサイト「 erp.howtoforge.local 」を作成します。これはERPNextインストールのターゲットドメイン名です。また、セットアッププロセス中に、frappeプロジェクトの管理者パスワードを設定するように求められるので、パスワードを入力して繰り返してください。このパスワードは、ERPNextアプリケーションにログインするために使用されます。

bench new-site erp.howtoforge.local

最後に、以下のコマンドを実行して新しいサイト/プロジェクト「 erp.howtoforge.local 」に切り替えます。

bench use erp.howtoforge.local

以下は、サイト/プロジェクトの作成中および新しいサイト/プロジェクトに切り替えた後の出力です。

create new site project

frappe-benchを介してERPNextをインストール

frappeframeworkで新しいサイト/プロジェクトが作成された後、以下のコマンドを実行してアプリ「 payments 」と「 erpnext 」をダウンロードします。この例では、ERPNext v14をダウンロードします。

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

以下は、「 payments 」のダウンロードプロセス中に受け取る類似の出力です。

download app payments

以下は、ERPNext アプリケーションのダウンロードプロセスです。

download app erpnext

次に、以下のコマンドを実行して、サイト/プロジェクト ‘erp.howtoforge.local ‘ にERPNextアプリケーションをインストールします。

bench --site erp.howtoforge.local install-app erpnext

次のような出力が表示されるはずです - また、アプリケーション「 payments 」がERPNextアプリケーションの依存関係として自動的にインストールされるのが確認できるはずです。

install erpnext

最後に、以下のbenchコマンドを実行して、スケジューラーを有効にし、サイト/プロジェクト「erp.howtoforge.local」のメンテナンスモードを無効にします。

bench --site erp.howtoforge.local enable-scheduler  
bench --site erp.howtoforge.local set-maintenance-mode off

この時点で、ERPNextのインストールが完了しました。しかし、ERPNextを本番環境で実行する場合は、次にNginxウェブサーバーとSupervisorを設定する必要があります。これらはbenchコマンドを介して構成できます。

ERPNextを本番環境にデプロイ

まず、以下のコマンドを実行して、frappeframeworkとERPNextを本番環境用に構成します。これにより、Ansibleがインストールされ、Ansibleを介してERPNextのデプロイメントが自動的に設定されます。

sudo bench setup production frappe

以下は、Ansibleインストール中の出力です。

install dependnecies

以下は、構成が完了したときの出力です。

installation finished

次に、以下のbenchコマンドを実行して、ERPNextのためにNginxとSupervisorを設定します。現在の設定を上書きするように求められた場合は、yを入力して確認し、ENTERを押します。

sudo bench setup supervisor  
sudo bench setup nginx

その後、再度以下のbenchコマンドを実行して、SupervisorとNginxの構成がインストールされていることを確認します。

sudo bench setup production frappe

現在の設定を上書きするためにyを入力し、ENTERを押して続行します。

reinstall to ensure all installed

最後に、以下の’supervisorctl’コマンドをsudo権限で実行します。これにより、frappeframeworkとERPNextで使用されるすべてのプロセスとサービスが確認されます。

sudo supervisorctl status

ERPNextのインストールが成功した場合、次のような出力が表示されるはずです - frappeframeworkとERPNextのすべてのサービスが実行中です。

verify supervisorctl

この時点で、ERPNextのインストールが完了し、Nginxをウェブサーバーとして、Supervisorをプロセスマネージャーとして実行しています。これで、ドメイン名とウェブブラウザを介してERPNextのインストールにアクセスできます。

ERPNextインストールの構成

ウェブブラウザを開き、ERPNextインストールのドメイン名(例:http://erp.howtoforge.local /)にアクセスします。次に、frappeframeworkのログインページが表示されます。

デフォルトのユーザー「 Administrator 」を入力し、サイト/プロジェクト作成中に使用したパスワードを入力します。

frappeframeowrk login

次に、デフォルトの言語、タイムゾーン、通貨を選択します。そして、次へをクリックします。

erpnext basic configuration

ERPNextインストール用の新しい管理ユーザーを入力します。フルネーム、メールアドレス、パスワードを入力し、次へをクリックします。

create admin user

会社名を入力し、会社のロゴをアップロードして、次へをクリックします。

setup organization

組織に関する詳細を入力し、セットアップを完了をクリックします。

setup organization

これで、ERPNextインストールの管理ダッシュボードが表示されるはずです。

ERPNExt dashboard

CertbotとLetsencryptを介してSSL/TLS証明書で保護

このステップでは、Certbotツールを使用してLetsencryptから生成できるSSL/TLS証明書でERPNextのデプロイメントを保護します。始める前に、ドメイン名がサーバーのIPアドレスを指していることを確認し、Letsencryptに登録するために使用されるメールアドレスがあることを確認してください。

以下のaptコマンドを実行して、certbotツールとNginxウェブサーバー用のcertbotプラグインをインストールします。プロンプトが表示されたらyを入力して確認し、ENTERを押して続行します。

sudo apt install certbot python3-certbot-nginx

certbotがインストールされたら、以下のcertbotコマンドを実行してERPNextのドメイン名用のSSL証明書を生成します。以下のコマンド内のドメイン名とメールアドレスを変更してください。

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d erp.howtoforge.local

これで、ERPNextのインストールがCertbotとLetsencryptを介してSSL/TLS証明書で保護されました。また、Certbotが自動的に処理するERPNextドメイン名のHTTPからHTTPSへの自動リダイレクトも構成しました。

結論

このチュートリアルでは、Debian 11サーバーにオープンソースのERPソフトウェアであるERPNextをインストールする方法を学びました。また、ソースコードをコンパイルして手動でインストールされたPython 3.10などの依存関係をインストールする方法も学びました。MariaDB、Nginx、Supervisor、Redis、Fail2banなど、Debianサーバーに他の依存関係をインストールしました。

さらに、Frappeフレームワークをインストールし、その上にERPNextを構築する方法も学びました。次に、ERPソフトウェアとしてのERPNextの基本的な構成を学びました。

最後に、Nginxをウェブサーバーとして、Supervisorをプロセスマネージャーとして構成することにより、ERPNextを本番環境用に設定しました。また、CertbotとLetsencryptを使用してERPNextの使用を保護しました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。