Releases: netbox-community/netbox-docker
Version 1.3.0
This release adds support for for NetBox 3.0 and drops support for older releases.
Noteworthy Changes
Optimise migrations on startup #507
Migrations are only started when they are needed. Additionally some update tasks from Netbox are run when migrations where done.
Update postgres Docker tag to v13 #508
Our docker-compose file was updated to use PostgreSQL 13.
Note that you will need to take manual action after you upgrade a live PostgreSQL database.
If your database is not too big, a full backup (with PostgreSQL 12, i.e. before the upgrade) and restore (with a clean PostgreSQL 13, i.e. after the upgrade) is probably the easiest to achieve. Our troubleshooting wiki page has instructions on how to backup and restore a Netbox database. Please test the procedure on a test system first!
Note that there is no requirement to update to PostgreSQL 13, you can stick to version 12 just fine. You could do this with a docker-compose.override.yml
like so:
version: '3.4'
services:
postgres:
image: postgres:12-alpine
Alpine update to 3.14 #534
Image is now based on Alpine 3.14
Compatibility
This version of NetBox Docker is only compatible with NetBox v3.0.x. For older versions, use a previous release of NetBox Docker.
Known Issues
There are no confirmed critical issues at the time of writing this. See the issues labelled bug in our issues section.
Sponsoring
Consider buying the maintainers of this project a beer or drink:
Version 1.2.0
This release adds support for for NetBox 2.11 and drops support for older releases. It also fixes some bugs in the initializers and in the handling of custom configuration files.
Noteworthy Changes
Initializers need updates! #485
As upstream NetBox evolves, our initializers have to follow suit. Therefore you need to adjust the following files if you make use of them. Also, rack_groups.yml
was renamed to locations.yml
.
# custom_links.yml
- name: link_to_repo
- text: 'Link to Netbox Docker'
- url: 'https://github.com/netbox-community/netbox-docker'
+ link_text: 'Link to Netbox Docker'
+ link_url: 'https://github.com/netbox-community/netbox-docker'
# power_panels.yml
- rack_group: cage 101
+ location: cage 101
# racks.yml
- group: cage 101
+ location: cage 101
There are also some new features in devices.yml
and vlan_groups.yml
, see the respective files. We're very grateful for this work by @tobiasge.
Fixes for User, Groups and Permissions initializers #497
The underlying permission system changed in a recent NetBox version, which broke our initializer scripts.
@ryanmerolle has provided a fix for this.
Changes are required, if you use the initializers to set permissions!
Please see the PR and / or the current users.yml
, groups.yml
and object_permissions.yml
files.
Removed the random port exposure #495
Previously, NetBox Docker's docker-compose.yml
contained a line to expose NetBox Docker's internal port 8080
to a random port.
We have removed this now.
Because for a while now, we advise users to customize their setup using the docker-compose.override.yml
file.
In it, you can bind NetBox Docker's port 8080
to a port of your choosing, often that would be 8080:8080
.
Yet, because of the way Docker merges the two YAML files, it was only possible to add another port mapping.
But the old port mapping stayed around.
This was now changed.
This was initially suggested in #407 by @centum – thank you for starting the discussion – and @tobiasge provided the PR that was finally merged.
Extra configuration example for LDAP #448
Some things are better not configured through environment variables.
Until recently it was very hard to adjust such settings.
But we recently introduced the possibility for custom configuration files, that can be mounted into the container (or built-in by extending the container).
@ryanmerolle took the effort to propose an example configuration file, configuration/ldap/extra.py
, which showcases some of the LDAP settings for which there is otherwise no obvious solution for their configuration.
RE: TLS
We previously recommended to use Hitch in order to set up TLS for NetBox Docker.
It turns out that this solution had some flaws.
We now suggest the same setup (from an architectural point of view), but with Caddy instead of Hitch.
Please find all the relevant information in the Wiki on our TLS page. (It even has an example showing how to configure that setup with automatic certificates from Let's Encrypt!)
Thanks to @ryanmerolle for the hard work of figuring out the nuts and bolts of this new setup.
This shall also be a short reminder that our wiki is a community wiki and that anyone is welcome to improve it or provide alternative solutions!
Fixed CMD passing #492
If you need to use a custom command with your NetBox Docker container, then may have experienced troubles before. @jhujhiti provided a fix for this. Thanks a lot!
Updated Dependencies #483 #486 #479 #477
The following pre-installed dependencies, that are not dependencies of NetBox itself, have been updated:
ruamel.yaml
is now atv0.17.4
django-auth-ldap
is now atv2.4.0
These were provided by @renovate-bot – thanks for the awesome service!
Examples for plugin configuration and enhanced logging #496
There are now two additional configuration files, that are exemplarily for how to configure plugins and also for how to configure more fine-grained logging.
Note: If you turn on the logging, don't forget to add the LOGGING
variable to your netbox.env
or docker-compose.override.yml
.
This improvement was proposed and implemented by @ryanmerolle.
Compatibility
This version of NetBox Docker is only compatible with NetBox v2.11.x. For older versions, use a previous release of NetBox Docker.
Known Issues
There are no confirmed critical issues at the time of writing this. See the issues labelled bug in our issues section.
Sponsoring
Consider buying the maintainers of this project a beer or drink:
Version 1.1.0
Noteworthy Changes
This releases fixes a bug with the discovery of custom configurations. It also updates some dependencies. See the correspoding milestone for all changed.
🚨 Upgrading from Earlier Versions than 1.0.0? Read this! ⚠️
We've made some major changes in version 1.0.0. Please read the corresponding release notes.
Fix Custom Configuration Discovery #450
There was a bug which prevented that certain custom configuration files were not loaded.
This was the case, when the custom configuration file's name was alphabetically before the main configuration file's name.
I.e. a_configuration.py
is alphabetically before configuration.py
. With this file, a_configuation.py
, it was therefore not possible to overwrite values which are already declared in configuration.py
. (The same holds true for ldap_config.py
, but it's worse, because the letter L is relatively late in the alphabet.)
See #450 for more details.
Change of Slack server #455
As #netbox
moved to a new Slack instance,
we're following suit.
Please join our new Slack channel #netbox-docker
.
New Initializer #391
@MajesticFalcon kindly provided two new initializers. See these files for examples:
- initializers/custom_links.yml
- initializers/webhooks.yml
«Batteries Included» for Storage Backends #421
We now ship the dependencies to use the following django-storages
-backends out of the box:
azure
(for Azure Blob storage)boto3
(for AWS S3 and compatible storage)dropbox
google
(for Google Cloud Storage)libcloud
sftp
See the django-storages
documentation and the relevant part in the NetBox documentation.
Updated Dependencies #460 #438
The following dependencies were upgraded:
- ruamel.yaml to v0.16.13
- django-auth-ldap to v2.3.0
Compatibility
This version of NetBox Docker is only compatible with NetBox v2.10.x. For older versions, use a previous release of NetBox Docker.
Known Issues
There are no confirmed critical issues at the time of writing this. See the issues labelled bug in our issues section.
Sponsoring
Consider buying the maintainers of this project a beer or drink:
Version 1.0.2
Noteworthy Changes
This release fixes a problem with the Python cryptograhpy module when building the NetBox Docker image.
🚨 Upgrading from Earlier Versions than 1.0.0? Read this! ⚠️
We've made some major changes in version 1.0.0. Please read the corresponding release notes.
Compatibility
This version of Netbox Docker is only compatible with Netbox v2.10.x. For older versions, use a previous release of Netbox Docker.
Known Issues
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Sponsoring
Consider buying the maintainers of this project a beer or drink:
Version 1.0.1
Noteworthy Changes
This release fixes a typo in docker/launch-netbox.sh
and updates the django-storages
dependency.
🚨 Upgrading from Earlier Versions than 1.0.0? Read this! ⚠️
We've made some major changes in version 1.0.0. Please read the corresponding release notes.
Compatibility
This version of Netbox Docker is only compatible with Netbox v2.10.x. For older versions use a previous release of Netbox Docker.
Known Issues
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Sponsoring
Consider buying the maintainers of this project a beer or drink:
Version 1.0.0
Noteworthy Changes
This release re-works how we serve HTTP content and introduced more initializers.
Migrate from the "Nginx&Gunicorn"-combo to just "Nginx Unit" #361
We've changed how we serve Netbox's HTTP traffic fundamentally. Instead of an nginx
and a netbox
container, it's now just a netbox
container. And instead of relying on nginx
to server static content and gunicorn
to serve dynamic content, the Nginx unit
application server does it all.
This makes the whole setup less brittle and adds a few benefits like faster startup time and simpler deployments.
Big thanks to @tobiasge for the work on this!
🚨 Upgrading from Earlier Versions? Read this! ⚠️
The nginx
container was removed entirely. If you reference it in your docker-compose.override.yml
, make sure to change nginx
to netbox
:
version: '3.4'
services:
- nginx:
+ netbox:
ports:
- '8080:8080'
Also, if you build a container based on Netbox Docker, please be aware that we now rely on a virtual env (/opt/netbox/venv/
) to install our Python packages.
More Initializers #384
@ryanmerolle contributed a whole bunch of new initializers:
- Circuit Types
- Circuits
- Cluster Groups
- Clusters
- Power Feeds
- Power Panels
- Providers
- Route Targets
- Secret Roles
- Services
- Tags
Thank you @ryanmerolle a lot!
Fix Assignment of Primary IPs in Initializers #393
@MajesticFalcon discovered that it is sometimes not possible to assign a primary ip and provided a fix for this.
There was an issue that LOGIN_TIMEOUT
could not be defined.
Compatibility
This version of Netbox Docker is only compatible with Netbox v2.10.x. For older versions use a previous release of Netbox Docker.
Known Issues
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Sponsoring
Consider buying the maintainers of this project a beer or drink:
Version 0.27.0
Noteworthy Changes
This release fixes some bugs and introduces compatibility with Netbox 2.10.x.
Compatibility with Netbox v2.10.x #342
This version of Netbox Docker is compatible with Netbox v2.10.x.
🚨 Upgrading from Earlier Versions? Read this! ⚠️
When you upgrade from earlier versions, you must run a manual command and – if you use our initializers – adjust the structure of their YAML. Read on!
First, if you use the cable traces feature of Netbox, then you will have to run a separate command because of changes in the internal structure of the upstream project. Run this command to migrate the DB and fix the missing links in cable paths:
docker-compose run --rm netbox ./manage.py trace_paths
Second, a change in how Custom Fields are handled in upstream Netbox breaks compatibility with older versions.
Please apply these two changes to your initializer YAML files:
- Rename
custom_fields
tocustom_field_data
in every domain object (e.g.site.yml
)- name: AMS 1 slug: ams1 region: Downtown status: active facility: Amsterdam 1 asn: 12345 - custom_fields: + custom_field_data: text_field: Description for AMS1
- Change the
choices
array forselect
custom fields incustom_fields.yml
like this:legacy_select_field: type: select on_objects: - dcim.models.Device choices: - - value: First Item - weight: 10 - - value: Second Item - weight: 20 - - value: Third Item - weight: 30 + - First Item + - Second Item + - Third Item
Netbox Docker is mirrored to Quay.io #369
Netbox Docker will from now on be pushed to quay.io/netboxcommunity/netbox as well.
You can pull and use it like so:
docker pull quay.io/netboxcommunity/netbox:latest
This offers a fallback should Docker Hub not be available or should you have reached a usage limit of some sorts.
Fix LDAP configuration not applied #354
From now on, unless AUTH_LDAP_REQUIRE_GROUP
is declared, no group-related requests will be made to LDAP server. This change is required for compatibility with Google's Secure LDAP service.
Upgrade Python image to 3.9-alpine #348
We updated the underlying Python version to 3.9.
Note: Since we're planing to move from python:3.9-alpine
to alpine:3.x
images we may downgrade to Python 3.8 again in the future. Please follow the PR #361.
New SESSIONS_ROOT environment variable #356
There is a new environment variable, SESSIONS_ROOT
, that controls Django's SESSIONS_FILE_PATH
.
Fix TypeError when using LOGIN_TIMEOUT
#359
There was an issue that LOGIN_TIMEOUT
could not be defined.
Introducing our Github Community #370
Github recently made the Discussions feature available in Beta. We've opted to try this feature in order to lower the barrier for getting help. For now, the NetworkToCode Slack will remain available and active.
Compatibility
This version of Netbox Docker is only compatible with Netbox v2.10.x. For older versions use a previous release of Netbox Docker.
Known Issues
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Version 0.26.2
This release fixes two bugs. One that prevented the Netbox Docker from working for most users out of the box and the second one that prevented LDAP from working unless a certain variable was set.
Fix LDAP configuration not applied #354
The dynamic configuration which was introduced in Netbox Docker 0.26.0 didn't completely work for LDAP configurations.
This was fixed now.
Compatibility
This version of Netbox Docker is compatible with Netbox v2.9.x.
Known Issues
There are no known issues at the time of writing this.
See the issues labelled bug in our issues section.
Version 0.26.1
This release fixes two bugs. One that prevented the Netbox Docker from working for most users out of the box and the second one that prevented LDAP from working unless a certain variable was set.
Fix for No such file or directory: '/tmp/metrics/counter_26.db'
#351
A change that would benefit the monitoring of Netbox with Prometheus had unintended effects.
Fix for 'NoneType' object has no attribute 'lower'
#350
A change was made that broke the LDAP config when AUTH_LDAP_MIRROR_GROUPS
was not defined.
Compatibility
This version of Netbox Docker is compatible with Netbox v2.9.x
Known Issues
- LDAP configuration still seems to be broken, see #352.
Version 0.26.0
This version brings an often requested feature to make advanced configuration possible.
Besides that we squashed a few bugs.
We'd like to thank our community for their contributions and their patience.
PostgreSQL 12
Our docker-compose file was updated to use PostgreSQL 12.
Note that you will need to take manual action after you upgrade a live PostgreSQL database.
If your database is not too big, a full backup (with PostgreSQL 11, i.e. before the upgrade) and restore (with a clean PostgreSQL 12, i.e. after the upgrade) is probably the easiest to achieve. Our troubleshooting wiki page has instructions on how to backup and restore a Netbox database. Please test the procedure on a test system first!
Note that there is no requirement to update to PostgreSQL 12, you can stick to version 11 just fine. You could do this with a docker-compose.override.yml
like so:
version: '3.4'
services:
postgres:
image: postgres:11-alpine
Dynamic Configration #343
We have added the possibility to load additional configuration files when Netbox Docker starts.
If you use our docker-compose.yml
file, then just put any relevant additional configuration files into the configuration
directory.
Otherwise mount them to /etc/netbox/config/
within the container.
All .py
files are loaded.
They can contain arbitrary Python code.
Be aware that the files are evaluated in alphabetical order while configuration.py
will always be first.
Later files overwrite the settings of earlier files.
The same works for LDAP configurations:
If you use our docker-compose.yml
file, then just put any relevant additional LDAP configuration files into the configuration/ldap
directory.
Otherwise mount them to /etc/netbox/config/ldap/
within the container.
All .py
files are loaded.
They can contain arbitrary Python code.
Be aware that the files are evaluated in alphabetical order while configuration.py
will always be first.
Later files overwrite the settings of earlier files.
Here's an example:
# In the repo: configuration/configuration.py
# -- OR --
# In the container: /etc/netbox/config/retro.py
from datetime import datetime
now = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
BANNER_TOP = f'<marquee width="200px">This instance started on {now}.</marquee>'
Preparations for Monitoring with Prometheus #344
This project does now contain all changes that would be necessary to monitor Netbox Docker using Prometheus.
See https://github.com/netbox-community/netbox-docker/wiki/Monitoring for a sample setup.
Prefer secret to env var if both are available #291
If a secret and env var for the same setting are available, then prefer the secret.
Add REMOVE_AUTH_*
configurations #310
REMOTE_AUTH_ENABLED
, REMOTE_AUTH_BACKEND
, REMOTE_AUTH_HEADER
, REMOTE_AUTH_AUTO_CREATE_USER
and REMOTE_AUTH_DEFAULT_GROUPS
can be configured via environment variables.
Add AUTH_LDAP_MIRROR_GROUPS
configuration #327
Add ability to mirror ldap groups into Netbox (AUTH_LDAP_MIRROR_GROUPS
)
Allow primary_ip
in initializers #301
Add optional primary_ip
on initializer
Compatibility
This version of Netbox Docker is compatible with Netbox v2.9.x