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シェルからログアウトします。

これで、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を押して続行します。

次に、以下のwgetコマンドを介してPythonダウンロードページからPython 3.10のソースコードをダウンロードします。この例では、Python 3.10.9をダウンロードしてインストールします。
wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgzPythonソースコードがダウンロードされたら、tarコマンドを介してPythonソースコードを抽出し、作業ディレクトリに移動します。
tar xzf Python-3.10.9.tgz
cd Python-*/次に、以下のコマンドを実行してPython 3.10をコンパイルしてインストールします。
./configure --enable-optimizations
nproc
sudo make -j2
sudo make altinstall
Pythonのインストールが完了すると、「 /usr/local/bin/ 」ディレクトリにPythonバイナリが配置されるはずです。以下のコマンドを実行してPython 3.10のインストールを確認します。
ls /usr/local/binPython 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.10 と Pip3.10 を確認します。
sudo python3.10 --version
sudo pip3.10 --version以下は、ターミナルで受け取る類似の出力です。

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を押して続行します。

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

Supervisorサービスを確認します。
sudo systemctl is-enabled supervisor
sudo systemctl status 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を押して続行します。


RedisとFail2banがインストールされたら、以下のsystemctlコマンドを実行して両方のサービスを確認します。
sudo systemctl is-enabled redis-server
sudo systemctl status redis-serversudo systemctl is-enabled fail2ban
sudo systemctl status fail2banRedisサービスについては、次のような出力が表示されるはずです - Redisサービスは有効であり、起動時に自動的に実行されます。そして、Redisの現在のステータスは実行中です。

Fail2banサービスについては、次のような出力が表示されるはずです - Fail2banサービスは有効であり、起動時に自動的に実行されます。そして、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を押して続行します。

MariaDB Serverがインストールされたら、以下のsystemctlコマンドを実行してMariaDBサービスを確認し、サービスが有効で実行中であることを確認します。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb次のような出力が表示されるはずです - MariaDBサービスは有効であり、起動時に自動的に実行されます。そして、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
Wkhtmltopdfがインストールされたら、以下のコマンドを実行して確認します。wkhtmltopdfコマンドはHTMLページをPDFに変換するために使用され、wkhtmltoimageはHTMLページをさまざまな画像形式に変換します。
which wkhtmltopdf
wkhtmltopdf --versionwhich wkhtmltoimage
wkhtmltoimage --version次のような出力が表示されるはずです - Wkhtmltopdf v0.12がDebianシステムにインストールされています。

次のステップでは、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次のような出力が表示されます。

次に、以下のコマンドを実行して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
その後、’apt update’コマンドを介してDebianパッケージインデックスを更新およびリフレッシュします。次に、’apt install’コマンドを介してNode.jsとyarnパッケージマネージャーをインストールします。
sudo apt update
sudo apt install nodejs yarnこれでNode.jsとYarnパッケージマネージャーのインストールが始まります。

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-benchbenchのインストール中に次のような出力が表示されます。

benchがインストールされたら、以下のコマンドを実行して確認します。’ bench ‘コマンドのバイナリパスと、インストールしたbenchの現在のバージョンが表示されます。
which bench
bench --versionbenchがインストールされたので、次にfrappeframeworkをインストールします。以下の’bench’コマンドを実行して、現在の作業ディレクトリにfrappeframeworkをインストールします。また、使用するPythonバージョンを Python 3.10 に指定し、frappeframeworkのバージョンを v14 に指定し、ターゲットインストールディレクトリを「 frappe-bench 」に指定します。
bench init --python python3.10 --frappe-branch version-14 frappe-benchfrappeframeworkのインストール中に次のような出力が表示されます。

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

最後に、以下のコマンドを実行して、他のユーザーがfrappeframeworkのインストールディレクトリを読み取りおよび実行できるようにします。これは、Nginxウェブサーバーがfrappeframeworkを読み取りおよび実行できるようにするために必要です。
sudo chmod -R o+rx /home/frappe/frappe-bench
or
sudo chmod -R o+rx /home/frappefrappeframeworkがインストールされたので、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以下は、サイト/プロジェクトの作成中および新しいサイト/プロジェクトに切り替えた後の出力です。

frappe-benchを介してERPNextをインストール
frappeframeworkで新しいサイト/プロジェクトが作成された後、以下のコマンドを実行してアプリ「 payments 」と「 erpnext 」をダウンロードします。この例では、ERPNext v14をダウンロードします。
bench get-app payments
bench get-app --branch version-14 erpnext以下は、「 payments 」のダウンロードプロセス中に受け取る類似の出力です。

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

次に、以下のコマンドを実行して、サイト/プロジェクト ‘erp.howtoforge.local ‘ にERPNextアプリケーションをインストールします。
bench --site erp.howtoforge.local install-app erpnext次のような出力が表示されるはずです - また、アプリケーション「 payments 」が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インストール中の出力です。

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

次に、以下のbenchコマンドを実行して、ERPNextのためにNginxとSupervisorを設定します。現在の設定を上書きするように求められた場合は、yを入力して確認し、ENTERを押します。
sudo bench setup supervisor
sudo bench setup nginxその後、再度以下のbenchコマンドを実行して、SupervisorとNginxの構成がインストールされていることを確認します。
sudo bench setup production frappe現在の設定を上書きするためにyを入力し、ENTERを押して続行します。

最後に、以下の’supervisorctl’コマンドをsudo権限で実行します。これにより、frappeframeworkとERPNextで使用されるすべてのプロセスとサービスが確認されます。
sudo supervisorctl statusERPNextのインストールが成功した場合、次のような出力が表示されるはずです - frappeframeworkとERPNextのすべてのサービスが実行中です。

この時点で、ERPNextのインストールが完了し、Nginxをウェブサーバーとして、Supervisorをプロセスマネージャーとして実行しています。これで、ドメイン名とウェブブラウザを介してERPNextのインストールにアクセスできます。
ERPNextインストールの構成
ウェブブラウザを開き、ERPNextインストールのドメイン名(例:http://erp.howtoforge.local /)にアクセスします。次に、frappeframeworkのログインページが表示されます。
デフォルトのユーザー「 Administrator 」を入力し、サイト/プロジェクト作成中に使用したパスワードを入力します。

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

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

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

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

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

CertbotとLetsencryptを介してSSL/TLS証明書で保護
このステップでは、Certbotツールを使用してLetsencryptから生成できるSSL/TLS証明書でERPNextのデプロイメントを保護します。始める前に、ドメイン名がサーバーのIPアドレスを指していることを確認し、Letsencryptに登録するために使用されるメールアドレスがあることを確認してください。
以下のaptコマンドを実行して、certbotツールとNginxウェブサーバー用のcertbotプラグインをインストールします。プロンプトが表示されたらyを入力して確認し、ENTERを押して続行します。
sudo apt install certbot python3-certbot-nginxcertbotがインストールされたら、以下の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の使用を保護しました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。