著者は、 Write for DOnations プログラムの一環として、 Software in the PublicInterestを選択して寄付を受け取りました。

序章

ERPNext は、オープンソーステクノロジーのパワーと柔軟性を活用するエンタープライズリソースプランニング(ERP)スイートです。 財務、販売、人材、製造、購入、サービス、ヘルプデスクのニーズなどのコアビジネスプロセスの管理に優れています。 ERPNextのようなシステムを実装する利点には次のものがあります。

  • 反復的なビジネスプロセスを自動化することによる生産性の向上
  • 社内のすべての部門のデータベースを共有することにより、IT効率が向上しました
  • ビジネスユニットが互いにどのように関連しているかという統合されたビジョンのおかげで、より良い意思決定が可能になります

ERPNextは、[X13X] Node / JavaScriptランタイム環境を最大限に活用し、を使用するPythonで記述されたフルスタックWebアプリケーションフレームワークであるFrappeに基づいています。データベースバックエンドとしてのMariaDB。 ERPNextのようなFrappeベースのアプリケーションの多くの利点の1つは、benchコマンドラインユーティリティです。 ベンチCLIは、複数のFrappe / ERPNextサイトのインストール、更新、構成、管理などのタスクを自動化することにより、管理者の時間を節約します。

このチュートリアルでは、Ubuntu18.04を実行している1台のサーバーにERPNextスタックをインストールして構成します。 これにより、ニーズに応じてさまざまな開発環境または本番環境用にスタックを構成でき、より複雑でフォールトトレラントなアーキテクチャを構築する準備が整います。

前提条件

注:サーバーの仕様を選択するときは、ERPシステムはリソースを大量に消費することに注意してください。 このガイドでは、4 GBのRAMを搭載した1台のサーバーが必要です。これは、基本的な使用例には十分ですが、特定のハードウェア要件は、ユーザー数やビジネスの規模によって異なる場合があります。

  • サーバーを指すAレコードを持つ完全に登録されたドメイン名。 DigitalOcean Dropletを使用している場合は、このガイドに従ってDNSを適切に設定できます。 このチュートリアルでは、 your_domain 全体を通して。

ステップ1—ファイアウォールの構成

開発用にファイアウォールを構成することはオプションですが、本番用にファイアウォールを構成することは必須のセキュリティ慣行です。

ERPNextサーバーで次のポートを開く必要があります。

  • 80/tcp443/tcp それぞれHTTPとHTTPSの場合
  • 3306/tcp MariaDB接続の場合(データベースへのリモートアクセスが必要な場合にのみ推奨)
  • 143/tcp25/tcp それぞれIMAPとSTMPの場合
  • 22/tcp SSHの場合(まだ有効にしていない場合 OpenSSH)
  • 8000/tcp サイトを展開する前の開発テスト用

一度に複数のポートを開くには、次のコマンドを使用できます。

  1. sudo ufw allow 22,25,143,80,443,3306,8000/tcp

または、次のコマンドを使用して、特定のポートの特定のIPアドレスからの接続を許可できます。

  1. sudo ufw allow from server_IP to any port port_number

必要なすべてのポートを開いた後、ファイアウォールを有効にします。

  1. sudo ufw enable

ファイアウォールを有効にした後、開いているポートのステータスを確認します。

  1. sudo ufw status

ファイアウォールの設定の詳細については、ガイド Ubuntu18.04でUFWを使用してファイアウォールを設定する方法をお読みください。

適切なファイアウォールの設定は、2つの準備手順の最初のステップです。 次に、サーバーでキーボードマッピングと文字エンコードを構成します。

ステップ2—ロケールの構成

コンソールのキーボードマッピング、およびホストの言語と文字エンコードを構成することを強くお勧めします。 これは、ERPNext12のインストールプロセス中に発生する可能性のある問題を回避するために必要です。 この構成は、実際のERPNextプラットフォームのUI言語とは関係がなく、システムロケール構成と関係があることに注意してください。

まず、サーバーを更新します。

  1. sudo apt update

次に、キーマップ、言語、および文字エンコードを構成します。

  1. sudo localectl set-keymap us && sudo localectl set-locale LANG=en_US.utf8

The localectl ユーティリティは、Ubuntu 18.04およびその他のLinuxディストリビューションで使用され、ユーザーがログインする前にシステム全体のロケールとキーボードのレイアウト設定を制御および変更します。これは、ERPNext12がまさに必要とするものです。

また、次の行を追加する必要があります /etc/environment ファイル。 使用する nano または、ファイルを開くための好みのテキストエディタ:

  1. sudo nano /etc/environment

次に、次のコンテンツを追加します。

/ etc / environment
LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LANG=en_US.UTF-8

ファイルを保存して閉じます。

サーバーを再起動して、すべての変更を適用します。

  1. sudo reboot

サーバーを数分待ってから再起動してから ssh 中に戻って。 これで、データベースをインストールする準備が整いました。

ステップ3—MariaDB10.4をインストールする

次に、MariaDBをサーバースタックに追加します。 ERPNext12にはMariaDB10.2+が必要ですが、Ubuntu 18.04の公式リポジトリに含まれるバージョンは10.1です。つまり、より高いバージョンをインストールする必要があります。 このガイドでは、MariaDBの最新の安定したリリースを使用します。これは、この記事の執筆時点ではバージョン10.4です。

MariaDB10.4をUbuntu18.04にインストールするには、適切な署名キーとリポジトリを追加する必要があります。 この情報は、MariaDBFoundationのリポジトリウィザードにあります。 WebブラウザでこのURLにアクセスします。 さて、 1.1。 ディストリビューションを選択 、 クリック Ubuntu 。 タイトルの2番目の列 2.2。 リリースを選択してください現れる。 このタイトルの下にある18.04LTS「バイオニック」をクリックします。 3.Choose aVersionというタイトルの3番目の列が表示されます。 この下で10.4安定をクリックします。 4。ミラーの選択というタイトルの3番目の列が表示されます。 場所に基づいてミラーを選択すると、MariaDBがカスタムインストールに適切なコマンドを入力します。

設定された3つのコマンドを実行すると、MariaDBリポジトリとキーが適切に追加されます。 独自のコマンドは次のようになります。

  1. sudo apt-get install software-properties-common && sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' && sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.klaus-uwe.me/mariadb/repo/10.4/ubuntu bionic main'

リポジトリの追加が完了したら、MariaDBをインストールします。

  1. sudo apt install mariadb-server

インストール後 mariadb-server、次のパッケージをインストールします。

  1. sudo apt install libmysqlclient-dev python3-mysqldb

ERPNext 12はPythonアプリケーションであるため、 python3-mysqldb データベース管理用のライブラリ。 について libmysqlclient-dev, mariadb-client、 と libmariadbclient18:これらのパッケージにより、ユーザーはMariaDBサービスと通信できます。 ntpdatelibdate-manip-perl サーバーの時刻同期のためにERPNextによって使用されます。

次に、MariaDBサーバーを実行して、セキュリティの基本レイヤーを追加します。 mysql_secure_installation 脚本:

  1. sudo mysql_secure_installation

The mysql_secure_installation スクリプトはいくつかの質問を促します:

  • 最初のプロンプトでrootパスワードについて尋ねられますが、パスワードがまだ構成されていないため、を押します。 ENTER.
  • 次に、Unix認証を使用するかどうかを決定する必要があります。 答え Y この認証方法を受け入れます。
  • MariaDB root パスワードの変更について尋ねられたら、答えてください N. root アカウントは自動化されたシステム保守タスクと密接に関連しているため、Unix認証とともにデフォルトのパスワードを使用することをUbuntuベースのシステムに推奨するセットアップです。
  • 残りの質問は、匿名データベースユーザーの削除、ローカルホストにリモートでログインするための root アカウントの制限、テストデータベースの削除、および特権テーブルの再読み込みに関係しています。 答えても安全です Y それらすべての質問に。

完了後 mysql_secure_installation スクリプトの場合、MariaDBはデフォルト構成を使用して実行を開始します。 標準のERPNextインストールでは、すべてのデータベース操作にMariaDBのrootユーザーが使用されます。 このアプローチは単一サーバーのセットアップでは便利な場合がありますが、適切なセキュリティプラクティスとは見なされません。 したがって、次のセクションでは、特別な権限を持つ新しいユーザーを作成することにより、この問題を回避する方法を学習します。

MariaDBスーパー管理者ユーザーの作成

ERPNextは、データベース接続の管理にMariaDBの root ユーザーを使用することを想定していますが、これは必ずしも理想的ではありません。 この制限を克服し、root以外のユーザーにMariaDBを管理させるには、ユーザーにちなんで名付けられたデータベースを手動で作成する必要があります。 次に、新しいユーザーに特別な特権を割り当てて、ERPNextデータベース操作を実行できるようになります。

MariaDBプロンプトを開きます。

  1. sudo mysql

次に、MariaDB接続に割り当てるユーザーにちなんで名付けられた新しいデータベースを作成します。 このチュートリアルでは、 sammy しかし、あなたはあなた自身の名前を自由に選ぶことができます:

  1. CREATE DATABASE sammy;

次のSQLステートメントを使用してデータベースが作成されたことを確認します。

  1. SHOW DATABASES;

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

Output
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sammy | +--------------------+

次に、MariaDBユーザーを作成します sammy root と同様の権限を持ち、ユーザーに選択した強力なパスワードを与えます。 パスワードは安全な場所に保管してください。 後で必要になります:

  1. GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'%' IDENTIFIED BY 'mariadb_password' WITH GRANT OPTION;

次に、ユーザーの作成と新しいユーザーの特権の両方を確認します。

  1. SELECT host, user, Super_priv FROM mysql.user;

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

Output
+-----------+-------+------------+ | Host | User | Super_priv | +-----------+-------+------------+ | localhost | root | Y | | localhost | mysql | Y | | % | sammy | Y | +-----------+-------+------------+ 3 rows in set (0.001 sec)

次に、特権をフラッシュしてすべての変更を適用します。

  1. FLUSH PRIVILEGES;

終了したら、セッションを終了します。

  1. exit

データベースユーザーを作成したので、MariaDBを微調整するだけで、ERPNext12が適切に動作するようになります。 幸い、ERPNextチームは、実装の開始点として使用する優れた構成テンプレートを提供します。 次のセクションでは、そのテンプレートを使用してMariaDBデータベースを適切に構成する方法を学習します。

ステップ4—ERPNext用のMariaDBの構成

MariaDBをインストールして保護したら、ERPNext接続用に微調整します。

まず、やめて mariadb.service:

  1. sudo systemctl stop mariadb

今すぐ使用 nano または、お気に入りのテキストエディタを使用してMariaDB構成ファイルを作成します。 settings.cnf:

  1. sudo nano /etc/mysql/conf.d/settings.cnf

次に、ERPNextの構成テンプレートを追加します。

/etc/mysql/conf.d/settings.cnf
[mysqld]

# GENERAL #
user                           = mysql
default-storage-engine         = InnoDB
socket                         = /var/lib/mysql/mysql.sock
pid-file                       = /var/lib/mysql/mysql.pid

# MyISAM #
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 256M
max-connect-errors             = 1000000
innodb                         = FORCE

# DATA STORAGE #
datadir                        = /var/lib/mysql/

# BINARY LOGGING #
log-bin                        = /var/lib/mysql/mysql-bin
expire-logs-days               = 14
sync-binlog                    = 1

# REPLICATION #
server-id                      = 1

# CACHES AND LIMITS #
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 10240

# INNODB #
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 5462M
innodb-file-format             = barracuda
innodb-large-prefix            = 1
collation-server               = utf8mb4_unicode_ci
character-set-server           = utf8mb4
character-set-client-handshake = FALSE
max_allowed_packet             = 256M

# LOGGING #
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 0
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

[mysql]
default-character-set = utf8mb4

[mysqldump]
max_allowed_packet=256M

!includedir /etc/mysql/mariadb.conf.d/

ファイルを保存して閉じます。 これらの構成の詳細については、ERPNextのGithubリポジトリでこのテンプレートファイルを確認してください。 これは、これらのオプションを検討するための便利な出発点です。

次に、という別のファイルを作成します erpnext.cnf:

  1. sudo nano /etc/mysql/mariadb.conf.d/erpnext.cnf

次のコンテンツをファイルに追加します。

/etc/mysql/mariadb.conf.d/erpnext.cnf
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
bind-address    = 0.0.0.0

最初のファイル、 /etc/mysql/conf.d/settings.cnfは、にあるデフォルトのMariaDB構成に含まれるいくつかの値を補完し、オーバーライドします。 /etc/mysql/my.cnf. このファイルは、ERPNextのデータベースパフォーマンスを大幅に向上させる厳選されたテンプレートを提供します。 このテンプレートは優れた出発点ですが、ニーズに合わせてこれらのパラメーターを調整することで、MariaDBのパフォーマンスをさらに向上させることを妨げるものは何もないことに注意してください。

2番目のファイル、 /etc/mysql/mariadb.conf.d/erpnext.cnf、データベース接続に関する特定の情報を導入することにより、一部の値も上書きします。

MariaDB接続のテスト

ERPNextは、ほとんどすべての内部操作をデータベース接続に依存しているため、続行する前に接続をテストすることをお勧めします。

始める mariadb.service:

  1. sudo systemctl start mariadb

接続をテストするには、次のコマンドを使用できます。 交換することを忘れないでください sammymariadb_password あなた自身の資格で:

  1. mysql --user sammy --password mariadb_password --host=localhost --protocol=tcp --port=3306 test

MariaDBの基本的なヘルプコンテンツといくつかのパラメーターを示す出力が表示されます。 これは、接続が成功したことを意味します。

Output
mysql Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Usage: mysql [OPTIONS] [database] Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf ... --ssl-verify-server-cert Verify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default. -t, --table Output in table format. --tee=name Append everything into outfile. See interactive help (\h) also. Does not work in batch mode. Disable with --disable-tee. This option is disabled by default. -u, --user=name User for login if not current user. -U, --safe-updates Only allow UPDATE and DELETE that uses keys. -U, --i-am-a-dummy Synonym for option --safe-updates, -U. -v, --verbose Write more. (-v -v -v gives the table output format). ... max-join-size 1000000 secure-auth FALSE show-warnings FALSE plugin-dir (No default value) default-auth (No default value) binary-mode FALSE connect-expired-password FALSE

MariaDBの設定を調整したり、エラーを修正したりする必要がある場合は、次のコマンドを使用してサービスをリロードすることを忘れないでください。

  1. sudo systemctl restart mariadb

完了したら、MariaDBを有効にします。

  1. sudo systemctl enable mariadb

データベース接続をテストしたので、ERPNextアプリケーションのインストールを続行できます。

ステップ5—ERPNextの設定12

データベースバックエンドの準備ができたので、ERPNextWebアプリケーションのセットアップを続行できます。 このセクションでは、ERPNext 12に必要なすべてのコンポーネントをインストールおよび構成してから、アプリケーション自体をインストールする方法を学習します。

ERPNext12に必要なすべてのシステムパッケージを使用してサーバーを準備することから始めます。 次のコマンドを使用して、システム全体の依存関係をインストールします。

  1. sudo DEBIAN_FRONTEND=noninteractive apt install -y curl build-essential mariadb-client python3-setuptools python3-dev libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base zlib1g-dev apt-transport-https libsasl2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libssl1.0-dev python3-mysqldb libdate-manip-perl logwatch

The DEBIAN_FRONTEND=noninteractive Postfixプロンプトを回避するために、変数がインストールコマンドに渡されました。 Postfix設定の詳細については、 Ubuntu18.04にPostfixをインストールして設定する方法に関するガイドをお読みください。

次に、更新します pip3 次に、ERPNextに必要な3つの追加のPythonモジュールの最新バージョンをインストールします。

  1. sudo -H python3 -m pip install --upgrade setuptools cryptography psutil

必要なすべてのグローバル依存関係をインストールしたので、ERPNext12に必要なすべてのサービスとライブラリをインストールします。

Node.jsとYarnの設定

ERPNext 12は、Node.jsサーバー環境のバージョン8以降で動作します。 実際、この記事の執筆時点では、公式のERPNext easy_install スクリプトはノード8を使用します。 ただし、セキュリティの観点から、ノード8は2020年に保守終了(EOL)に達し、セキュリティパッチをこれ以上受け取らないため、新しいバージョンをインストールすることをお勧めします。 このガイドの目的のために、Node.jsバージョン12LTSが対応するものと一緒にインストールされます npmyarn パッケージマネージャー。 Frappeフレームワークは yarn 依存関係をインストールします。 別のインストール方法を使用する場合は、バージョン1.12+を使用するようにしてください。 yarn システムで実行されています。

NodeSourceリポジトリをシステムに追加します。

  1. curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh

これで、ダウンロードしたスクリプトの内容を調べることができます。

  1. sudo nano nodesurce_setup.sh

満足したら、スクリプトを実行できます。

  1. sudo bash nodesource_setup.sh

このスクリプトは自動的に更新します apt リスト。 今、あなたはインストールすることができます nodejs サーバー上:

  1. sudo apt install nodejs

次に、インストールします yarn 含まれているを使用してグローバルに npm パッケージ:

  1. sudo npm install -g yarn

Nodeをインストールしたので、引き続き構成できます wkhtmltopdf あなたのプラットフォームのために。

ERPNextは wkhtmltopdf QtWebKitレンダリングエンジンを使用してHTMLコンテンツをPDFに変換するオープンソースツール。 この機能は主に、請求書、見積もり、およびその他のレポートの印刷に使用されます。 ERPNext 12の場合、特定のバージョンの wkhtmltopdf 必要とされている、 0.12.5 パッチを当てたQtを使用。

インストールするには wkhtmltopdf、まず、適切なディレクトリに切り替えてパッケージをダウンロードします。この場合は /tmp:

  1. cd /tmp

適切なダウンロード wkhtmltopdf プロジェクトのページからのUbuntu18.04のバージョンとパッケージ:

  1. wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

次に、を使用してパッケージをインストールします dpkg 道具:

  1. sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb

次に、関連するすべての実行可能ファイルを /usr/bin/ ディレクトリ:

  1. sudo cp /usr/local/bin/wkhtmlto* /usr/bin/

ファイルを配置したら、アクセス許可を変更して実行可能にします。

  1. sudo chmod a+x /usr/bin/wk*

wkhtmltopdf 正しくインストールされている場合、Redisをデータベーススタックに追加します。

Redisのインストール

ERPNext 12は、Redisを使用してMariaDBのパフォーマンスを強化します。 具体的には、キャッシュを支援します。

まず、公式のUbuntu18.04リポジトリからRedisをインストールします。

  1. sudo apt install redis-server

次に、起動時にRedisを有効にします。

  1. sudo systemctl enable redis-server

スタックにRedisを追加したので、これまでに達成したことを要約してみましょう。 これまでに、ERPNext12に必要なすべての主要コンポーネントをインストールしました。これには次のものが含まれます。

  • MariaDBデータベースバックエンド
  • Node.jsJavaScriptサーバー環境
  • ヤーンパッケージマネージャー
  • Redisデータベースキャッシュ
  • The wkhtmltopdf PDFドキュメントジェネレータ

ERPシステムを開発用にインストールする場合でも、本番用にインストールする場合でも、次のステップであるFrappeフルスタックフレームワークと実際のERPNext12Webアプリケーションをインストールする準備が整いました。

ステップ6— FrappeBenchCLIのインストール

ERPNextのスタック要件をすべてインストールしたので、Frappeの柔軟性を解き放つことができます。 bench コマンドラインユーティリティ。 The bench CLIは、Frappe Frameworkに基づくERPNextなどのアプリケーションのインストール、セットアップ、および管理のプロセスでユーザーを支援することを目的として設計されました。 次のセクションでは、 bench CLIを使用して、ERPNext12のセットアッププロセスを完了します。

Frappeユーザー(この場合は sammy)に適切な権利があります home ディレクトリ:

  1. sudo chown sammy -R /home/sammy

次に、クローンを作成します frappe/bench ホームディレクトリへのリポジトリ。 交換することを忘れないでください sammy システムユーザー名:

  1. git clone https://github.com/frappe/bench /home/sammy/.bench --depth 1 --branch master

をインストールします bench CLI:

  1. sudo pip3 install -e /home/sammy/.bench

このガイドは、テスト/本番シナリオ用にERPNext 12をインストールしていることを前提としているため、 master ブランチ。 ただし、アプリケーションまたはカスタムERPNextモジュールを開発する場合は、 develop ブランチはより良いオプションかもしれません。 いずれの場合も、これでFrappeFrameworkをインストールする準備が整いました。 これは、ERPNext自体をインストールする前の最後のステップになります。

Frappeフレームワーク環境のセットアップ

このセクションでは、Frappe環境を使用して作成します。 bench CLI。

Frappeのインストール中に、Ubuntuのファイル監視制限(デフォルトでは8192に設定されている)を超える場合があります。 この問題を回避するには、次のコマンドを使用して上限を設定します。

  1. echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

次に、FrappeFramework12を初期化します。 Sammyをシステムユーザー名に置き換えます。

  1. bench init /home/sammy/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-12 --python python3

実行中に、いくつかの警告とともに、パスに関する1つのエラーが表示される場合があります。 プロセスを最後まで続けましょう。 完了すると、次のような出力が表示され、環境が正常に作成されたことを示します。

Output
... Done in 82.23s. INFO:bench.utils:setting up backups no crontab for sammy SUCCESS: Bench /home/sammy/frappe-bench initialized

注: bench init 次の場合、プロセスが停止する可能性があります spawn ENOMEM エラーが発生しました。 このエラーは、システムのメモリが不足した場合に発生します。 続行する前に、物理メモリを増設するか、SWAPスペースを割り当てることにより、問題を修正する必要があります。

環境の作成に使用されるコマンドを詳しく見てみましょう。

  • /home/sammy/frappe-bench Frappe Framework、Webサイト、および関連するアプリケーションがインストールされるパスです。 と呼ばれる新しいディレクトリ frappe-bench この例では、必要なすべてのファイルに対応するために作成されます。
  • --frappe-path この場合は公式のGithubリポジトリであるFrappeリポジトリを指します。
  • --frappe-branch インストールするFrappeのバージョンです。 ERPNext 12をインストールするため、選択したバージョンはFrappe12です。
  • --python 使用されるPythonバージョンです。 ERPNext12にはPython3.6以降が必要です。 ただし、以前のバージョンでは引き続きPython2.7を使用しています。

詳細については bench CLIコマンドは、ベンチコマンドのチートシートを参照してください。

Frappeフレームワークによって提供される柔軟性は、分離された環境を使用することをはるかに超えています。 また、さまざまなWebサイトを作成して、それらにアプリケーションをインストールすることもできます。

ステップ7— ERPNext12Webアプリケーションのインストール

このセクションでは、Frappeベースのサイトをセットアップしてから、ERPNext12アプリケーションをインストールします。

Frappeが初期化されたディレクトリに移動します。

  1. cd /home/sammy/frappe-bench

次に、ERPNext12をリポジトリからダウンロードします。 bench CLI:

  1. bench get-app erpnext https://github.com/frappe/erpnext --branch version-12

次に、新しいサイトを作成し、置き換えます your_domain このサーバーのIPに関連付けたドメインを使用します。

  1. bench new-site your_domain --admin-password 'erpnext_admin_password' --mariadb-root-username sammy --mariadb-root-password 'mariadb_password'

上記のコマンドで使用されているオプションを確認してみましょう。

  • bench new-site FrappeFrameworkに基づいて新しいサイトを作成します。
  • your_domain 新しいサイトの名前です。 ドメインのDNSにサーバーのIPを指すAレコードがあることを確認してください。
  • erpnext_admin_password ERPNextのAdministratorユーザーに必要なパスワードです。 このパスワードは安全な場所に保管してください。まもなく必要になります。
  • mariadb_password MariaDBユーザー向けのガイドの冒頭で作成したパスワードです sammy.

これに続いて、ERPNextアプリケーションをサイトにインストールします。

  1. bench --site your_domain install-app erpnext

インストールが完了すると、ERPNext12アプリケーションが機能するようになります。 それでは、を使用してテストしてみましょう。 bench 指図:

  1. bench start

上記は、Webサーバーやその他のサービスに関するさまざまなメッセージを表示するリアルタイム監視コンソールを開始します。 Webブラウザーを開き、に移動します localhost:8000 (ローカルインストールの場合)または your_domain:8000 (リモートサーバーを使用している場合)。 ERPNextログイン画面が表示されます(サイトの運用準備が整ったら、後のステップでログインとセットアップを続行します)。

テスト展開にアクセスした後、ターミナルに戻ってを押します CTRL+C. これにより、ERPNextが停止し、監視コンソールが終了します。

主な目標がモジュールの作成またはERPNext12の変更である場合は、この時点で停止できます。 開発目的でこれ以上のコンポーネントは必要ありません。 ただし、手動で初期化する必要のない本番環境に対応したシステムが必要な場合は、いくつかの追加コンポーネントをインストールして構成する必要があります。 これがあなたの次のステップです。

ステップ8—本番用にERPNext12をセットアップする

ERPNext 12アプリケーションの準備はできていますが、システム全体としては、まだ完全に本番環境に対応する準備ができていません。 ERPNextの信頼性とセキュリティを確保するには、いくつかの追加サービスを有効にする必要があります。

  • Fail2ban は、悪意のあるユーザーやボットからのブルートフォース攻撃に対する保護の追加レイヤーを提供します。
  • Nginx は主にWebプロキシとして使用され、ポートからのすべてのトラフィックをリダイレクトします 8000 ポートへ 80 (HTTP)またはポート 443 (HTTPS)
  • スーパーバイザーこのサービスは、ERPNextキープロセスが常に稼働し、必要に応じて再起動することを保証します。

ここまでは、ERPNext 12を手動でインストールして構成しました。これにより、特定のユースケースに合わせてプロセスをカスタマイズできます。 それでも、残りの本番セットアップでは、の利便性を活用できます。 bench CLIを使用して、これらの残りのサービスのインストールと構成を自動化します。

Frappe作業ディレクトリにいることを確認します。

  1. cd /home/sammy/frappe-bench

次に、次のコマンドを使用して、本番用のERPNext12のセットアップを完了します。

  1. sudo bench setup production sammy --yes

上記は、Nginx、Supervisor、Fail2Banをインストールして構成し、設定します sammy 実稼働環境の所有者として。

によって作成された構成ファイル bench コマンドは次のとおりです。

  • にある2つのNginx構成ファイル /etc/nginx/nginx.conf/etc/nginx/conf.d/frappe-bench.conf
  • 次の場所にある1つのFail2Banプロキシ刑務所 /etc/fail2ban/jail.d/nginx-proxy.conf とにある1つのフィルター /etc/fail2ban/filter.d/nginx-proxy.conf

このチュートリアルでは、これらのデフォルト構成で十分ですが、これらのファイルを自由に調べて調整し、独自の要件に一致させる必要があります。 次のコマンドを実行すると、すべてのサービスを停止できます。

  1. sudo supervisorctl stop all

そして、準備ができたら、サービスを再開できます。

  1. sudo supervisorctl start all

これで、インストールをテストする準備が整いました。

ERPNext12インストールのテスト

まず、以下を使用して、主要な本番サービスが実行されていることを確認します systemctl コマンドを実行し、それをにパイプします grep:

  1. systemctl list-unit-files | grep 'fail2ban\|nginx\|supervisor'

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

Output
fail2ban.service enabled nginx.service enabled supervisor.service enabled

すべてが期待どおりに機能していることを確認したら、サーバー上でERPNext12をライブでテストできます。 お気に入りのブラウザを開き、ERPNext12アプリケーションをホストしているドメインに移動します。

数秒後、ERPNext12ログイン画面が表示されます。 ユーザー名とユーザー名にはAdministratorを使用します erpnext_admin_password 以前にパスワード用に作成したもの。

次の画面に、アプリケーションのUI言語を選択できるドロップダウンメニューが表示されます。

言語の選択に続いて、ERPNextはあなたの国、タイムゾーン、および通貨についてプロンプトを表示します。

地域情報を入力すると、最初のERPNextユーザーを作成できるようになります。 指定した情報は、ユーザーのログイン資格情報として使用されます。

次の画面で、ERPNextがDomainsと呼ぶものについて尋ねられます。 ドメインがわからない場合は、配信を選択し、次へボタンをクリックしてください。

次に、会社名と略語を入力する必要があります。

最後の画面で、ERPNextはあなたの会社が何をしているのか、銀行名、勘定科目表の種類、そして会計年度の期間を尋ねます。 後で追加の銀行に入ることができます。 今のところ、必要に応じてすべてのフィールドに入力し、セットアップの完了ボタンをクリックします。

次に、プログレスバーが表示されます。

セットアッププロセスが完了すると、ERPNext12のメインダッシュボードが表示されます。

これで、ERPNext12アプリケーションが完全にインストールおよび構成されました。

結論

ERPNext 12アプリケーションが適切にインストールされたので、ビジネスニーズに合わせてシステムの実装を開始することをお勧めします。 良い出発点は、ERPNextダッシュボードのはじめにボタンをクリックすることです。 ERPNextは、すべてのビジネスおよびeコマースのニーズに合わせてプラットフォームを構成するのに役立ちます。

また、ERPNextの速度を向上させることもできます。 その場合は、 ERPNext Performance Tuning をお読みください。これにより、ベストプラクティスと、パフォーマンス関連の問題をデバッグする方法について説明します。