Skip to content

Releases: netbox-community/netbox-docker

Version 1.3.0

30 Aug 19:31
6c5434e
Compare
Choose a tag to compare

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

27 Apr 07:50
676ca79
Compare
Choose a tag to compare

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 at v0.17.4
  • django-auth-ldap is now at v2.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

05 Mar 14:55
cb5ffa0
Compare
Choose a tag to compare

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

10 Feb 12:16
c80fb19
Compare
Choose a tag to compare

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

03 Feb 14:32
4dd7a51
Compare
Choose a tag to compare

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

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.