Step-by-step guide to install netbox on ubuntu vps
Follow this step-by-step guide to install netbox on ubuntu vps.

This article provides a step-by-step guide to install NetBox on Ubuntu VPS server.

What is NetBox?

NetBox is a powerful and versatile open-source tool that allows you to efficiently manage your network infrastructure. In this comprehensive guide, we will walk you through the process of installing NetBox on your Ubuntu VPS. By following these step-by-step instructions, you will be able to seamlessly deploy NetBox and take full advantage of its features on your Ubuntu VPS server.

Step-by-Step Guide to Install NetBox on Ubuntu VPS

This guide will walk you through installing NetBox, a popular open-source IP Address Management (IPAM) and Data Center Infrastructure Management (DCIM) tool, on a fresh Ubuntu VPS.

NetBox uses Python, PostgreSQL, and other dependencies, which need to be properly set up before you can run the software.

Prerequisites:

Launch 100% ssd ubuntu vps from $2. 49/mo!
Once you’ve confirmed the prerequisites, then it’s time to Install NetBox on Ubuntu VPS.

  1. Update the System

    Before installing any new packages, it’s essential to ensure your server is up to date. Run the following commands to update your system.

    sudo apt update && sudo apt upgrade -y

    Once the update process is complete, reboot the server:

    sudo reboot
  2. Install Required Dependencies

    NetBox relies on several core components such as Python, PostgreSQL, Redis, and some additional tools like Git. Install these dependencies using the following commands:

    1. Install PostgreSQL (Database)
      sudo apt install -y postgresql libpq-dev
    2. Install Redis (Caching Backend)
      sudo apt install -y redis-server
    3. Install Python 3 and other dependencies
      sudo apt install -y python3-pip python3-dev python3-venv build-essential libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev
    4. Install Git
      sudo apt install -y git
  3. Set up PostgreSQL Database

    1. Switch to the postgres user:
      sudo -u postgres psql
    2. Create a database and user for NetBox. Replace netbox and password with your preferred database name and password.
      CREATE DATABASE netbox; CREATE USER netbox WITH PASSWORD 'password'; ALTER ROLE netbox SET client_encoding TO 'utf8'; ALTER ROLE netbox SET default_transaction_isolation TO 'read committed'; ALTER ROLE netbox SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox; \q
  4. Create a Directory for NetBox

    1. Clone the NetBox repository into /opt/netbox/:
      sudo git clone -b main https://github.com/netbox-community/netbox.git /opt/netbox/
    2. Change into the NetBox directory:
      cd /opt/netbox/
  5. Configure Python Virtual Environment

    1. Set up a Python virtual environment for NetBox. Virtual environments help manage dependencies locally for the application without affecting the system Python installation.
      sudo python3 -m venv /opt/netbox/venv
    2. Activate the virtual environment:
      source /opt/netbox/venv/bin/activate
    3. Install the required Python dependencies:
      pip install -r /opt/netbox/requirements.txt
  6. Configure NetBox

    1. Copy the example configuration file to configuration.py:
      cd /opt/netbox/netbox/netbox/ sudo cp configuration_example.py configuration.py
    2. Open configuration.py for editing:
      sudo nano /opt/netbox/netbox/netbox/configuration.py
    3. Modify the configuration:
      • Database Settings: Update the database settings to reflect the PostgreSQL database and user you created in Step 3.
        DATABASE = { 'NAME': 'netbox', # Database name 'USER': 'netbox', # PostgreSQL username 'PASSWORD': 'password', # PostgreSQL password 'HOST': 'localhost', # Database host 'PORT': '', # Leave blank for default }
      • Secret Key: Generate a random secret key to use for NetBox. You can use the following Python command to generate one:
        python3 -c "import secrets; print(secrets.token_urlsafe(50))"

        Paste this key in the SECRET_KEY field in the configuration.py file.

        SECRET_KEY = 'your_generated_secret_key_here'
      • ALLOWED_HOSTS: Set this to your server’s domain name or IP address.
        ALLOWED_HOSTS = ['your_server_ip_or_domain']
  7. Run Database Migrations

    To set up the database schema, you need to run the NetBox migrations.

    cd /opt/netbox/netbox/ python3 manage.py migrate
  8. Create a Superuser

    Create a superuser to access the NetBox web interface:

    python3 manage.py createsuperuser

    Follow the prompts to set up your admin account.

  9. Collect Static Files

    NetBox uses static files (CSS, JavaScript, etc.), and you need to gather these files using the following command:

    python3 manage.py collectstatic

    You will be prompted to confirm the collection process. Type yes when asked.

  10. Set Up Gunicorn

    NetBox uses Gunicorn as the application server. To configure Gunicorn:

    1. Install Gunicorn:
      pip install gunicorn
    2. Create a Gunicorn systemd service:
      sudo nano /etc/systemd/system/netbox.service

      Add the following configuration:

      [Unit] Description=NetBox WSGI Service After=network.target [Service] User=root Group=www-data WorkingDirectory=/opt/netbox/netbox ExecStart=/opt/netbox/venv/bin/gunicorn --workers 3 --bind 127.0.0.1:8001 netbox.wsgi [Install] WantedBy=multi-user.target

      Save and exit the file. Reload the systemd service configuration:

      sudo systemctl daemon-reload
    3. Start and enable the NetBox service:
      sudo systemctl start netbox sudo systemctl enable netbox
  11. Set Up Nginx

    NetBox uses Nginx as a reverse proxy to route traffic to Gunicorn. Install Nginx:

    sudo apt install nginx

    Create an Nginx configuration file for NetBox:

    sudo nano /etc/nginx/sites-available/netbox

    Add the following configuration:

    server { listen 80; server_name your_server_ip_or_domain; client_max_body_size 25m; location /static/ { alias /opt/netbox/netbox/static/; } location / { proxy_pass http://127.0.0.1:8001; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }

    Save the file and create a symbolic link to enable the site:

    sudo ln -s /etc/nginx/sites-available/netbox /etc/nginx/sites-enabled/

    Check the Nginx configuration for syntax errors:

    sudo nginx -t

    Restart Nginx to apply the changes:

    sudo systemctl restart nginx
  12. Enable HTTPS

    If you plan to serve NetBox over HTTPS (highly recommended for production environments), you can use Let’s Encrypt to obtain an SSL certificate.

    1. Install Certbot:
      sudo apt install certbot python3-certbot-nginx
    2. Obtain an SSL certificate:
      sudo certbot --nginx -d your_domain_name
    3. Follow the prompts to install the SSL certificate and configure automatic redirection.
  13. Access NetBox

    Now that the setup is complete, you can access your NetBox installation through a web browser. Navigate to:

    http://your_server_ip_or_domain/

    Log in with the superuser credentials you created.

  14. Automate Background Tasks

    NetBox relies on background tasks that can be managed using systemd. To automate them, create the following service and timer files:

    1. Create the NetBox RQ worker service:
      sudo nano /etc/systemd/system/netbox-rq.service

      Add the following:

      [Unit] Description=NetBox RQ Worker After=netbox.service [Service] User=root Group=www-data WorkingDirectory=/opt/netbox/netbox/ ExecStart=/opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker [Install] WantedBy=multi-user.target
    2. Enable and start the service:
      sudo systemctl enable netbox-rq sudo systemctl start netbox-rq

Launch 100% ssd ubuntu vps from $2. 49/mo!

Conclusion

You have successfully completed the step-by-step guide to install NetBox on Ubuntu VPS server. You can now manage your IP addresses, racks, devices, and more using the web-based interface.

Make sure to regularly update NetBox and its dependencies to ensure security and performance.

Avatar of editorial staff

Editorial Staff

Rad Web Hosting is a leading provider of web hosting, Cloud VPS, and Dedicated Servers in Dallas, TX.
lg