Skip to content

Releases: netbox-community/netbox-docker

Version 1.0.0

29 Jan 09:50
ed62561
Compare
Choose a tag to compare

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

15 Dec 08:54
aa4d630
Compare
Choose a tag to compare

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 to custom_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 for select custom fields in custom_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

27 Oct 15:43
a51ad36
Compare
Choose a tag to compare

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

27 Oct 11:34
097bea8
Compare
Choose a tag to compare

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.

Also see the issues labelled bug in our issues section.

Version 0.26.0

26 Oct 15:56
43aea3a
Compare
Choose a tag to compare

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

See the bug label in our issues section.

Version 0.25.0

01 Sep 09:08
00022e7
Compare
Choose a tag to compare

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

29 May 12:41
e9a9d9b
Compare
Choose a tag to compare

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).

⚠️ This version is not compatible with Netbox 2.8.4 or lower!

Known Issues

There are no known issues.

Version 0.24.0

16 May 16:57
93a3784
Compare
Choose a tag to compare

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

30 Mar 18:53
5769684
Compare
Choose a tag to compare

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

08 Feb 09:50
80f514f
Compare
Choose a tag to compare

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).

⚠️ It is not compatible with Netbox v2.6.x or lower!

Known Issues

There is a problem with the Redis configuration. See #245 for a solution.