Releases: netbox-community/netbox-docker
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
Known Issues
Version 0.25.0
Don't try to run non-python files #307
During startup, only the startup_scripts who's filenames end in *.py will be executed. Previously, all files would be interpreted as Python files. This has led to unintentional behaviour.
Remove the 'X-Forwarded-Proto' line from the nginx config #308
Nginx will no longer set or overwrite the X-Forwarded-Proto header in the default configuration. This was implemented, because in the default configuration it would set the header to http every time. And this would overwrite the header of an upstream proxy which might set X-Forwarded-Proto to https, because it is terminating the TLS connection.
Add optional LOGIN_TIMEOUT to configuration.py #313
Added support for LOGIN_TIMEOUT in configuration.py
Fixed File Permissions in Media and Static Directories #276
File upload and static file collection should run more smoothly now.
Typos in Readme
Fixed some typos in the Readme file
Fixes for Netbox 2.9 #326
The startup scripts where adapted to changes in Netbox 2.9
Compatibility
This version of Netbox Docker is compatible with Netbox v2.9.x
Known Issues
- LDAP is currently not working with Netbox v2.9.x
Version 0.24.1
This release fixes issue #303: Netbox builds won't start due to improper import in startup scripts.
Please be sure to also check the release notes for the main version, 0.24.0
if you haven't done so already!
Compatibility
This version is compatible with Netbox 2.8.5 (and hopefully later versions as well).
Known Issues
There are no known issues.
Version 0.24.0
This release mostly contains bug fixes and an optimized build system.
Fixed to the README.md #279
There was a wrong command in the Quickstart instructions of our README.md
.
When you currently have a file netbox-docker.override.yml
, then rename it to docker-compose.override.yml
. If you have both files, it should be safe to delete the former.
Fixed a Problem With Initializers #294
Fixed a problem where not all initializer would run when one was empty.
Now all initializer scripts are run, even when one's YAML is empty.
Fixed File Permissions in Media and Static Directories #276
File upload and static file collection should run more smoothly now.
Implement SSL and TLS Config (for mail servers) #295
SSL and TLS settings for email servers can now be configured with ENV variables. This was introduced with Netbox v2.8.4.
Add STARTTLS option (for LDAP servers) #277
The STARTTLS settings for LDAP servers can now be configured with the ENV variable AUTH_LDAP_START_TLS
.
Update Redis Section in configuration.py
(webhooks
-tasks
) #267
This prevents the warning that was shown since Netbox 2.8 during the Netbox startup.
The change is currently implemented in a way that both – the old webhooks
and the new tasks
– are defined, i.e. it's backwards-compatible.
In a future version we will remove the old setting (i.e. webhooks
).
Updated Build Scripts #274
The build scripts have been updated to only build new images when needed.
Needed is defined as that there is a change to the python
Docker image, to our files or to the respective branch of the upstream Netbox repository.
New images will only be uploaded to Docker Hub when there was such a change.
Local builds are not affected by this.
Compatibility
This version of Netbox Docker is compatible with Netbox v2.7.x until v2.8.4.
Please update to netbox-docker 0.24.1 when you intend to use Netbox v2.8.5 or later.
Known Issues
There are no known issues.
Version 0.23.0
This is mostly a maintenance release. We don't expect any problems when updating from the previous version to this version.
Improved Maintainability of Startup Scripts by Reducing Duplicates #244
This is an internal change and unifies the creation of the users and groups in the respective startup scripts. It also lays the foundation for more of this, i.e. more removal of duplicate code.
Fix Inconsistent Redis Configuration #245
We've introduced an error when we split the Redis instances into two: The cache and the work queue. This change fixes this bug.
Fix Embedded Documentation #255
Netbox recently introduced embedded documentation. This change adds the respective documentation files to the Netbox image.
Improve README #258
The README file, which is potentially the first contact with our project for new users, was inconsistent with our wiki. It was overhauled to better suit newcomers.
Expose RELEASE_CHECK_URL As Environment Variable #263
Netbox recently introduced new variables in the configuration file: RELEASE_CHECK_URL
and RELEASE_CHECK_TIMEOUT
. These are now exposed in the Netbox Docker default configuration file and can be defined through environment variables.
Compatibility
This version of Netbox Docker is compatible with Netbox v2.7.x (and hopefully later versions as well).
Known Issues
There are no known issues.
Version 0.22.0
This release updates the LDAP configuration and adds an easy way to add permissions to the users and groups defined in the initializer yaml files using wildcards.
Please be sure to also check the release notes for version, 0.21.0
if you upgrade from a version below that!
Adapt LDAP configuration #233
We've updated the LDAP caching configuration to match changes made to django-auth-ldap in 1.6.0.
Django-auth-ldap now uses different cache configuration options. Netbox adapted to this change back in v2.6, but since it was implemented in a backwards compatible way, no one cared to update our configuration until now.
What this means for you is that you should delete the environment variable AUTH_LDAP_CACHE_GROUPS
and rename the variable AUTH_LDAP_GROUP_CACHE_TIMEOUT
to AUTH_LDAP_CACHE_TIMEOUT
.
Thank you @newlandk for this contribution!
Simpler permission selection #199 #200 #236
In the groups.yml
and users.yml
it is now possible to use wildcards when adding permissions:
# users.yaml
writer:
password: writer
permissions:
- delete_device
- delete_virtualmachine
- add_*
- change_*
Thank you @LBegnaud for contributing the idea and the initial implementation.
Compatibility
This version of Netbox Docker is compatible with Netbox v2.7.x (and hopefully later versions as well).
Known Issues
There is a problem with the Redis configuration. See #245 for a solution.