Установка NetBox · 9 min read · Oct 31, 2025
Как установить NetBox IRM на Debian 12

NetBox — это моделирование ресурсов инфраструктуры (IRM), предназначенное для автоматизации сети и проектирования инфраструктуры. Изначально он был создан командой DigitalOcean, а теперь стал проектом с открытым исходным кодом, выпущенным под лицензией Apache 2. NetBox был создан в веб-фреймворке Python Django с PostgreSQL в качестве базы данных по умолчанию, и установка NetBox довольно похожа на другие веб-приложения на Python Django.
В этом руководстве мы покажем вам, как установить программное обеспечение NetBox IRM на сервер Debian 12 шаг за шагом. Мы покажем вам установку NetBox с PostgreSQL в качестве сервера базы данных и веб-сервера Apache2 в качестве обратного прокси. Вы также защитите свою установку NetBox с помощью сертификатов SSl/TLS.
Предварительные требования
Перед тем как продолжить, убедитесь, что у вас есть следующее:
- Сервер Debian 12.
- Пользователь, не являющийся root, с правами администратора.
- Публичное или локальное доменное имя, указывающее на IP-адрес сервера.
Установка зависимостей
NetBox — это веб-приложение, основанное на веб-фреймворке Python Django. Его можно установить с сервером базы данных PostgreSQL и сервером Redis для управления кэшом.
На следующем шаге вы установите те зависимости, которые нужны NetBox, а также установите веб-сервер Apache2, который будет использоваться в качестве обратного прокси для вашей установки NetBox.
Чтобы начать, выполните следующую команду 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Введите y, чтобы продолжить установку зависимостей, таких как веб-сервер Apache2, сервер базы данных PostgreSQL, Redis, Git, пакеты Python3 и некоторые дополнительные системные библиотеки.

После установки зависимостей проверьте каждую зависимость, выполнив команду ниже.
Проверьте службу apache2, чтобы убедиться, что служба включена и работает.
sudo systemctl is-enabled apache2
sudo systemctl status apache2Если apache2 работает и включен, вы должны получить вывод, похожий на следующий:

Проверьте службу PostgreSQL, чтобы убедиться, что служба работает и включена.
sudo systemctl is-enabled postgresql
sudo systemctl status postgresqlСлужба PostgreSQL должна работать и быть включенной, как показано ниже:

Теперь проверьте службу Redis, чтобы убедиться, что служба работает и включена.
sudo systemctl is-enabled redis
sudo systemctl status redisСлужба Redis должна работать и быть включенной, как показано ниже

Наконец, проверьте версию Python, используя команду ниже. Последняя версия NetBox IRM поддерживает Python v3.9, 3.10 и 3.11.
python3 --versionВы должны увидеть, что Python 3.11 установлен на вашем Debian.
Настройка сервера PostgreSQL
После установки зависимостей вы создадите новую базу данных PostgreSQL и пользователя, которые будет использовать NetBox. Для этого вам нужно войти на сервер PostgreSQL через командную строку psql.
Войдите на сервер PostgreSQL, выполнив команду ниже.
sudo -u postgres psqlЗапустите следующие запросы, чтобы создать нового пользователя netbox с паролем p4ssw0rd. Затем создайте новую базу данных netboxdb с владельцем netbox.
CREATE USER netbox LOGIN CREATEDB PASSWORD 'p4ssw0rd';
CREATE DATABASE netboxdb OWNER netbox;
После этого проверьте список пользователей и баз данных на вашем PostgreSQL, выполнив команду ниже.
l
uВы должны увидеть базу данных netboxdb и пользователя netbox, созданных на вашем сервере PostgreSQL.

Введите quit, чтобы выйти из сервера PostgreSQL.
Далее войдите в PostgreSQL, используя нового пользователя netbox для базы данных netboxdb. Это обеспечит возможность подключения пользователя netbox к базе данных netboxdb.
sudo -u postgres psql --username netbox --password --host localhost netboxdbПосле подключения проверьте ваше соединение, используя следующий запрос.
cnnfoВ следующем выводе вы должны увидеть, что вы подключены к базе данных netboxdb через пользователя netbox.

Введите quit снова, чтобы выйти из вашего сервера PostgreSQL.
Настройка сервера Redis
С созданной базой данных и пользователем PostgreSQL следующим шагом будет настройка вашего сервера Redis, который будет использоваться для управления кэшем для NetBox. Для этого вы измените конфигурацию Redis /etc/redis/redis.conf и проверите ваши изменения через redis-cli.
Откройте стандартную конфигурацию Redis /etc/redis/redis.conf с помощью следующей команды редактора nano.
sudo nano /etc/redis/redis.confУберите комментарий с опции requirepass и введите ваш пароль, который будет использоваться для защиты вашего сервера Redis.
requirepass p4ssw0rdNetBoxКогда закончите, сохраните и выйдите из файла.
Теперь выполните следующую команду systemctl, чтобы перезапустить службу redis и применить изменения, которые вы внесли.
sudo systemctl restart redisЧтобы убедиться, что все работает, вы можете проверить Redis через redis-cli. Получите доступ к вашему серверу Redis, используя команду redis-cli ниже.
redis-cliАутентифицируйтесь на сервере Redis, используя следующий запрос AUTH, и обязательно измените пароль.
AUTH p4ssw0rdNetBoxПосле аутентификации вы должны получить вывод OK.
Теперь выполните запрос PING ниже, чтобы убедиться, что ваше соединение успешно.
PINGЕсли успешно, вы должны получить вывод PONG от сервера Redis.

Установка NetBox IRM
В следующем разделе вы загрузите и установите NetBox IRM на вашу систему. Вы загрузите исходный код NetBox через Git, затем настроите его, изменив конфигурацию NetBox, добавив сервер базы данных PostgreSQL и Redis, а затем создадите администратора для NetBox.
Сначала выполните команду ниже, чтобы создать нового системного пользователя netbox, который будет использоваться для запуска установки NetBox.
sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netboxСкачайте исходный код NetBox IRM через git и измените владельца директории /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 и сгенерируйте секретный ключ NetBox с помощью скрипта generate_secret_key.py. Обязательно скопируйте сгенерированный секретный ключ, который будет использоваться для вашей установки NetBox.
cd /opt/netbox/netbox/netbox
sudo -u netbox python3 ../generate_secret_key.pyСкопируйте стандартную конфигурацию configuration_example.py в configuration.py, затем откройте новый файл configuration.py с помощью следующей команды редактора nano.
sudo -u netbox cp configuration_example.py configuration.py
sudo -u netbox nano configuration.pyВ разделе ALLOWED_HOSTS добавьте ваше доменное имя или IP-адрес вашего сервера.
ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.15']Введите данные вашей базы данных PostgreSQL в раздел DATABASE, включая имя базы данных, пользователя, пароль, хост и порт.
# конфигурация базы данных
DATABASE = {
'NAME': 'netboxdb', # Имя базы данных
'USER': 'netbox', # Имя пользователя PostgreSQL
'PASSWORD': 'p4ssw0rd', # Пароль PostgreSQL
'HOST': 'localhost', # Сервер базы данных
'PORT': '', # Порт базы данных (оставьте пустым для значения по умолчанию)
'CONN_MAX_AGE': 300, # Максимальный возраст соединения с базой данных (секунды)
}В разделе REDIS введите данные вашего сервера Redis для задач и параметров кэширования.
# Конфигурация кэша Redis
REDIS = {
'tasks': {
'HOST': 'localhost', # Сервер Redis
'PORT': 6379, # Порт Redis
'PASSWORD': 'p4ssw0rdNetBox', # Пароль Redis (необязательно)
'DATABASE': 0, # ID базы данных
'SSL': False, # Использовать SSL (необязательно)
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
'PASSWORD': 'p4ssw0rdNetBox',
'DATABASE': 1, # Уникальный ID для второй базы данных
'SSL': False,
}
}Наконец, введите ваш секретный ключ в разделе 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. С этим вы запустите NetBox на вашем локальном IP-адресе с портом 8000.
python3 manage.py runserver 0.0.0.0:8000 --insecure
Откройте веб-браузер и перейдите по IP-адресу вашего сервера, за которым следует порт 8000, например http://192.168.10.15:8000/. Если ваша установка успешна, вы должны увидеть индексную страницу NetBox IRM, и оттуда нажмите кнопку Войти в правом верхнем углу.

Введите вашего администратора и пароль, который вы создали, затем нажмите Войти.

Если все пройдет хорошо, вы должны увидеть панель управления NetBox, как показано ниже:

Вернитесь в ваш терминал и нажмите Ctrl+c, чтобы завершить процесс.
Запуск NetBox как службы Systemd
На данный момент вы установили NetBox IRM на вашем Debian. Чтобы упростить управление NetBox, вы будете запускать NetBox как службу systemd, что позволит вам управлять NetBox через утилиту systemctl.
Скопируйте файл /opt/netbox/contrib/gunicorn.py в /opt/netbox/gunicorn.py, затем откройте файл gunicorn.py с помощью команды редактора nano ниже.
sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
sudo -u netbox nano /opt/netbox/gunicorn.pyИзмените опцию bind на следующую. Это запустит вашу установку NetBox на локальном хосте на порту 8001 через gunicorn.
bind = '127.0.0.1:8001'Сохраните и закройте файл, когда закончите.
Далее скопируйте файлы службы systemd для NetBox в директорию /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Теперь вы можете запустить и включить как службу netbox, так и netbox-rq, используя команду systemctl ниже. После выполнения команды ваша установка 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 для генерации SSL-сертификатов от Letsencrypt.
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"Теперь скопируйте пример конфигурации виртуального хоста Apache для NetBox в /etc/apache2/sites-available/netbox.conf. Затем измените файл /etc/apache2/sites-available/netbox.conf, используя следующую команду редактора nano.
sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
sudo nano /etc/apache2/sites-available/netbox.confИзмените доменное имя на ваше доменное имя и измените путь к сертификатам SSL/TLS на правильный путь файла.
# ИЗМЕНИТЕ ЭТО НА ИМЯ ВАШЕГО СЕРВЕРА
ServerName netbox.howtoforge.local
...
ProxyPreserveHost On
# ИЗМЕНИТЕ ЭТО НА ИМЯ ВАШЕГО СЕРВЕРА
ServerName netbox.howtoforge.local
SSLEngine on
SSLCertificateFile /etc/ssl/certs/netbox.crt
SSLCertificateKeyFile /etc/ssl/private/netbox.key
...
Сохраните и выйдите из файла, когда закончите.
Теперь выполните следующую команду, чтобы включить некоторые модули Apache2, которые необходимы для NetBox.
sudo a2enmod ssl proxy proxy_http headers rewriteПосле этого выполните следующую команду, чтобы активировать файл виртуального хоста netbox.conf и проверить ваши конфигурации Apache2, чтобы убедиться, что у вас правильный синтаксис.
sudo a2ensite netbox.conf
sudo apachectl configtestЕсли у вас правильный синтаксис Apache2, вы должны получить вывод Syntax OK.

Теперь выполните следующую команду, чтобы перезапустить службу Apache2 и применить изменения, которые вы внесли.
sudo systemctl restart apache2Ваша установка NetBox должна быть доступна через доменное имя.
Откройте веб-браузер и перейдите по доменному имени вашей установки NetBox, например https://netbox.howtoforge.local/. Если все пройдет хорошо, вы должны увидеть индексную страницу NetBox, как показано ниже:

После входа в систему вы должны увидеть панель управления NetBox IRM, работающую с доменным именем под обратным прокси Apache2.

Заключение
В заключение, вы теперь установили NetBox IRM на сервер Debian 12 с сервером базы данных PostgreSQL и веб-сервером Apache2, используемым в качестве обратного прокси. Вы также защитили свою установку NetBox с помощью сертификатов SSL/TLS.
Get new posts in your inbox
No spam. Unsubscribe anytime.