# `netbox` role A role for setting up NetBox. It automatically pulls in all required dependencies like Redis and PostgreSQL, deploys the provided systemd services and gunicorn config and sets up a PostgreSQL database named `netbox` with an owner named `netbox` and the specified password. However providing the [NetBox configuration](#netbox-configuration), [setting up a web server like nginx to proxy to gunicorn](#web-server-setup) and tasks like creating users, etc. you have to do yourself. ## Supported Distributions Should work on Debian-based distributions. ## Required Arguments - `netbox__version`: The NetBox version to deploy. - `netbox__db_password`: The password to use for connection to the database. This is required since the upgrade script runs as root and therefore peer authentication doesn't work. - `netbox__config`: The NetBox config to deploy. See [NetBox Configuration](#netbox-configuration) for more infos. ## Optional Arguments None. ## NetBox Configuration The NetBox configuration should include a connection to Redis as well as a connection to PostgreSQL. Configuration for the Redis connection: ```python REDIS = { "tasks": { "HOST": "localhost", "PORT": 6379, "USERNAME": "", "PASSWORD": "", "DATABASE": 0, "SSL": False, }, "caching": { "HOST": "localhost", "PORT": 6379, "USERNAME": "", "PASSWORD": "", "DATABASE": 1, "SSL": False, }, } ``` Configuration for the PostgreSQL connection: ```python DATABASE = { "HOST": "localhost", "NAME": "netbox", "USER": "netbox", "PASSWORD": "", } ``` Further configuration should take place. Some relevant resources can be found here: - Installation guide configuration docs: - Configuration docs: - Example configuration: ## Web Server Setup As this role just sets up gunicorn, but doesn't set up a web server, you need to do that yourself. The relevant documentation on how to do that can be found here: - Web server setup docs: - Example base nginx config: ## Links & Resources - The NetBox Git Repo: - The NetBox installation docs: