インストールガイド · 3 min read · Oct 31, 2025
Debian 12にNetBox IRMをインストールする方法

NetBoxは、ネットワーク自動化およびインフラストラクチャエンジニアリングのために設計されたインフラストラクチャリソースモデリング(IRM)です。最初はDigitalOceanチームによって作成され、現在はApache 2ライセンスの下でリリースされたオープンソースプロジェクトとなっています。NetBoxはPython Django Webフレームワークで作成され、PostgreSQLがデフォルトのデータベースとして使用されており、NetBoxのインストールは他のPython Django Webアプリケーションと非常に似ています。
このガイドでは、Debian 12サーバーにNetBox IRMソフトウェアをステップバイステップでインストールする方法を示します。PostgreSQLをデータベースサーバーとして、Apache2 Webサーバーをリバースプロキシとして使用してNetBoxをインストールする方法を示します。また、SSL/TLS証明書を使用してNetBoxのインストールを保護します。
前提条件
進む前に、次のものを確認してください:
- Debian 12サーバー。
- 管理者権限を持つ非rootユーザー。
- サーバーのIPアドレスを指すパブリックまたはローカルのドメイン名。
依存関係のインストール
NetBoxはPython Django Webフレームワークに基づいたWebアプリケーションです。PostgreSQLデータベースサーバーとキャッシュ管理のためのRedisサーバーと共にインストールできます。
次のステップでは、NetBoxが必要とする依存関係をインストールし、NetBoxのインストールにリバースプロキシとして使用されるApache2 Webサーバーもインストールします。
まず、次のaptコマンドを実行してDebianリポジトリを更新します。
sudo apt update
次に、NetBox IRMインストールのためのパッケージ依存関係をインストールします。
sudo apt install apache2 postgresql postgresql-common libpq-dev redis-server git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libssl-dev zlib1g-devインストールを続行するには、Apache2 Webサーバー、PostgreSQLデータベースサーバー、Redis、Git、Python3パッケージ、およびいくつかの追加のシステムライブラリなどの依存関係のインストールにyと入力します。

依存関係がインストールされたら、以下のコマンドを実行して各依存関係を確認します。
apache2サービスが有効で実行中であることを確認します。
sudo systemctl is-enabled apache2
sudo systemctl status apache2apache2が実行中で有効であれば、次のような出力が得られます:

PostgreSQLサービスが実行中で有効であることを確認します。
sudo systemctl is-enabled postgresql
sudo systemctl status postgresqlPostgreSQLサービスは次のように実行中で有効である必要があります:

次に、Redisサービスが実行中で有効であることを確認します。
sudo systemctl is-enabled redis
sudo systemctl status redisRedisサービスは次のように実行中で有効である必要があります

最後に、以下のコマンドを使用してPythonのバージョンを確認します。最新のNetBox IRMはPython v3.9、3.10、および3.11をサポートしています。
python3 --versionDebianマシンにPython 3.11がインストールされていることが確認できるはずです。
PostgreSQLサーバーの設定
依存関係をインストールした後、NetBoxが使用する新しいPostgreSQLデータベースとユーザーを作成します。そのためには、psqlコマンドラインを介してPostgreSQLサーバーにログインする必要があります。
以下のコマンドを実行してPostgreSQLサーバーにログインします。
sudo -u postgres psql次のクエリを実行して、パスワードp4ssw0rdで新しいユーザーnetboxを作成します。その後、所有者netboxで新しいデータベースnetboxdbを作成します。
CREATE USER netbox LOGIN CREATEDB PASSWORD 'p4ssw0rd';
CREATE DATABASE netboxdb OWNER netbox;
その後、以下のコマンドを実行してPostgreSQLのユーザーとデータベースのリストを確認します。
\l
\duPostgreSQLサーバーにデータベースnetboxdbとユーザーnetboxが作成されているのが確認できるはずです。

PostgreSQLサーバーから退出するにはquitと入力します。
次に、新しいユーザーnetboxを使用してデータベースnetboxdbにログインします。これにより、ユーザーnetboxがデータベースnetboxdbに接続できることが確認されます。
sudo -u postgres psql --username netbox --password --host localhost netboxdb接続後、以下のクエリを使用して接続を確認します。
\conninfo次の出力では、ユーザーnetboxを介してデータベースnetboxdbに接続されていることが確認できるはずです。

再度quitと入力してPostgreSQLサーバーから退出します。
Redisサーバーの設定
PostgreSQLデータベースとユーザーが作成されたので、次のステップは、NetBoxのキャッシュ管理に使用されるRedisサーバーを設定することです。そのためには、Redis設定ファイル/etc/redis/redis.confを変更し、redis-cliを介して変更を確認します。
以下のnanoエディタコマンドを使用してデフォルトのRedis設定/etc/redis/redis.confを開きます。
sudo nano /etc/redis/redis.confオプションrequirepassのコメントを解除し、Redisサーバーを保護するために使用されるパスワードを入力します。
requirepass p4ssw0rdNetBox完了したら、ファイルを保存して終了します。
次に、以下のsystemctlコマンドを実行してRedisサービスを再起動し、変更を適用します。
sudo systemctl restart redisすべてが正常に動作していることを確認するために、redis-cliを介してRedisを確認できます。以下のredis-cliコマンドを使用してRedisサーバーにアクセスします。
redis-cli以下のAUTHクエリを使用してRedisサーバーに認証し、パスワードを変更してください。
AUTH p4ssw0rdNetBox認証が成功すると、出力はOKになります。
次に、接続が成功したことを確認するために以下のPINGクエリを実行します。
PING成功すれば、RedisサーバーからPONGの出力が得られます。

NetBox IRMのインストール
次のセクションでは、NetBox IRMをシステムにダウンロードしてインストールします。Gitを介してNetBoxのソースコードをダウンロードし、NetBoxの設定を変更してPostgreSQLデータベースサーバーとRedisを追加し、NetBoxの管理者ユーザーを作成します。
まず、以下のコマンドを実行して、NetBoxインストールを実行するために使用される新しいsystemdユーザーnetboxを作成します。
sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netboxGitを介してNetBox IRMソースコードをダウンロードし、/opt/netboxディレクトリの所有権をユーザーnetboxに変更します。
cd /opt; sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git
sudo chown -R netbox:netbox /opt/netbox
次に、作業ディレクトリを/opt/netboxに移動し、スクリプトgenerate_secret_key.pyを介してNetBoxの秘密鍵を生成します。生成された秘密鍵をコピーして、NetBoxのインストールに使用します。
cd /opt/netbox/netbox/netbox
sudo -u netbox python3 ../generate_secret_key.pyデフォルトの設定configuration_example.pyをconfiguration.pyにコピーし、以下のnanoエディタコマンドを使用して新しいファイルconfiguration.pyを開きます。
sudo -u netbox cp configuration_example.py configuration.py
sudo -u netbox nano configuration.pyALLOWED_HOSTSセクション内に、ドメイン名またはサーバーのIPアドレスを追加します。
ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.15']DATABASEセクションに、データベース名、ユーザー、パスワード、ホスト、ポートを含むPostgreSQLデータベースの詳細を入力します。
# database configuration
DATABASE = {
'NAME': 'netboxdb', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'p4ssw0rd', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age (seconds)
}REDISセクション内に、タスクとキャッシュオプションの両方にRedisサーバーの詳細を入力します。
# Redis cache configuration
REDIS = {
'tasks': {
'HOST': 'localhost', # Redis server
'PORT': 6379, # Redis port
'PASSWORD': 'p4ssw0rdNetBox', # Redis password (optional)
'DATABASE': 0, # Database ID
'SSL': False, # Use SSL (optional)
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
'PASSWORD': 'p4ssw0rdNetBox',
'DATABASE': 1, # Unique ID for second database
'SSL': False,
}
}最後に、SECRET_KEYセクションに秘密鍵を入力します。
# Secret key
SECRET_KEY = 'ZjYbgz$)j!NnqJcZLR!NB2BCz4(Yyk=o^Xr(1sTIrM)ZyiE%nk'完了したら、ファイルを保存して終了します。
次に、/opt/netbox/upgrade.shスクリプトを実行してNextBoxのインストールを開始します。これにより、新しいPython仮想環境が作成され、いくつかのPythonパッケージとライブラリがインストールされ、PostgreSQLサーバーへのデータベースマイグレーションが実行され、NextBoxの静的ファイルが生成されます。
sudo -u netbox /opt/netbox/upgrade.shプロセス中に得られる出力は以下のようになります。

データベースマイグレーションプロセス。

静的ファイル生成プロセス。

インストールが完了したときの出力は以下の通りです。

NetBoxが設定された後、NetBoxの管理者ユーザーを作成します。そのためには、以下のコマンドを使用して作成されたPython仮想環境にログインします。
source /opt/netbox/venv/bin/activate/opt/netbox/netboxディレクトリに移動し、manage.pyスクリプトを実行してNetBox管理者ユーザーを作成します。
cd /opt/netbox/netbox
python3 manage.py createsuperuser求められたら、管理者のメールアドレス、ユーザー名、およびパスワードの詳細を入力します。

次に、manage.pyを再度実行してNetBoxのインストールを確認します。これにより、ローカルIPアドレスでポート8000でNetBoxを実行します。
python3 manage.py runserver 0.0.0.0:8000 --insecure
Webブラウザを開き、サーバーのIPアドレスの後にポート8000を付けてアクセスします。例えば、http://192.168.10.15:8000/です。インストールが成功していれば、NetBox IRMのインデックスページが表示され、そこから右上のLoginボタンをクリックします。

作成した管理者ユーザーとパスワードを入力し、Sign Inをクリックします。

すべてがうまくいけば、次のようなNetBoxダッシュボードが表示されるはずです。

ターミナルに戻り、Ctrl+cを押してプロセスを終了します。
NetBoxをSystemdサービスとして実行する
この時点で、DebianマシンにNetBox IRMがインストールされました。NetBoxを管理しやすくするために、NetBoxをsystemdサービスとして実行します。これにより、systemctlユーティリティを介してNetBoxを制御できます。
ファイル/opt/netbox/contrib/gunicorn.pyを/opt/netbox/gunicorn.pyにコピーし、以下のnanoエディタコマンドを使用してgunicorn.pyファイルを開きます。
sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
sudo -u netbox nano /opt/netbox/gunicorn.pybindオプションを次のように変更します。これにより、localhostのポート8001でgunicornを介してNetBoxインストールが実行されます。
bind = '127.0.0.1:8001'完了したら、ファイルを保存して閉じます。
次に、NetBoxのsystemdサービスファイルを/etc/systemd/system/ディレクトリにコピーします。これにより、サービスファイルnetbox、netbox-rq、およびnetbox-housekeepingが/etc/systemd/system/ディレクトリにコピーされます。その後、systemdマネージャーを再読み込みして、システムの新しい変更を適用します。
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reloadこれで、以下のsystemctlコマンドを使用してnetboxとnetbox-rqサービスの両方を開始および有効にできます。コマンドを実行すると、NetBoxインストールがバックグラウンドでsystemdサービスとして実行されます。
sudo systemctl start netbox netbox-rq netbox-housekeeping
sudo systemctl enable netbox netbox-rq netbox-housekeeping最後に、以下のコマンドを使用してnetboxとnetbox-rqサービスの両方を確認します。
sudo systemctl status netbox
sudo systemctl status netbox-rq次の出力は、netboxサービスが実行中で有効であることを示しています。

以下の出力は、netbox-rqサービスが実行中で有効であることを確認します。

Apacheをリバースプロキシとして設定する
次のステップでは、Apache2をリバースプロキシとして設定します。その前に、サーバーのIPアドレスを指すドメイン名があることを確認してください。ローカルドメイン名を使用することもできます。
ローカルドメインを使用している場合は、以下のopensslコマンドを実行してSSL証明書を生成できます。パブリックドメインを使用している場合は、Certbotを使用してLetsencryptからSSL証明書を生成できます。
openssl req -x509 -newkey rsa:4096 -sha256 -days 365 \
-nodes -keyout /etc/ssl/private/netbox.key -out /etc/ssl/certs/netbox.crt -subj "/CN=netbox.howtoforge.local" \
-addext "subjectAltName=DNS:netbox.howtoforge.local,IP:192.168.10.15"次に、NetBoxのApache仮想ホスト設定例を/etc/apache2/sites-available/netbox.confにコピーします。その後、以下のnanoエディタコマンドを使用してファイル/etc/apache2/sites-available/netbox.confを変更します。
sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
sudo nano /etc/apache2/sites-available/netbox.confドメイン名を自分のドメインに変更し、SSL/TLS証明書のパスを適切なパスファイルに変更します。
# CHANGE THIS TO YOUR SERVER'S NAME
ServerName netbox.howtoforge.local
...
ProxyPreserveHost On
# CHANGE THIS TO YOUR SERVER'S NAME
ServerName netbox.howtoforge.local
SSLEngine on
SSLCertificateFile /etc/ssl/certs/netbox.crt
SSLCertificateKeyFile /etc/ssl/private/netbox.key
...
完了したら、ファイルを保存して終了します。
次に、NetBoxに必要なApache2モジュールを有効にするために以下のコマンドを実行します。
sudo a2enmod ssl proxy proxy_http headers rewriteその後、以下のコマンドを実行して仮想ホストファイルnetbox.confを有効にし、Apache2の設定が正しい構文であることを確認します。
sudo a2ensite netbox.conf
sudo apachectl configtestApache2の構文が正しければ、出力はSyntax OKとなります。

次に、Apache2サービスを再起動して、行った変更を適用するために以下のコマンドを実行します。
sudo systemctl restart apache2NetBoxのインストールは、ドメイン名を介してアクセスできるはずです。
Webブラウザを開き、NetBoxインストールのドメイン名にアクセスします。例えば、https://netbox.howtoforge.local/です。すべてがうまくいけば、次のようなNetBoxインデックスページが表示されます。

ログインすると、Apache2リバースプロキシの下で実行されているNetBox IRMダッシュボードが表示されるはずです。

結論
結論として、Debian 12サーバーにPostgreSQLデータベースサーバーとApache2 Webサーバーをリバースプロキシとして使用してNetBox IRMをインストールしました。また、SSL/TLS証明書を介してNetBoxのインストールを保護しました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。