Bot releases are visible (Hide)
Published by tobiasge almost 3 years ago
This fixed #653 and enables loading of the SOCIAL_AUTH_* settings
Thanks to @grawert for fixing some bugs in our startup initialisers
INSECURE_SKIP_TLS_VERIFY for Redis connection settings is now loaded from ENV variable
Our docker-compose file was updated to use PostgreSQL 14.
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 13, i.e. before the upgrade) and restore (with a clean PostgreSQL 14, 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 14, you can stick to version 13 just fine. You could do this with a docker-compose.override.yml
like so:
version: '3.4'
services:
postgres:
image: postgres:13-alpine
NetBox Docker is now also published to GitHub's Container Registry: docker pull ghcr.io/netbox-community/netbox
Added psql to enable use of manage.py dbshell
Add check for jq command to build scripts and print error if it is not found
This version of Netbox Docker is only compatible with Netbox v3.1.x.
For older versions, use a previous release of Netbox Docker.
Published by tobiasge about 3 years ago
As of this release we will have Docker tags that relate to the version of the NetBox Docker project.
Some examples:
latest-ldap
will also be tagged latest-ldap-1.4.1
v3.0-ldap
will also be tagged v3.0-ldap-1.4.1
v3.0.2-ldap
will also be tagged v3.0.2-ldap-1.4.1
snapshot-ldap
will also be tagged snapshot-ldap-1.4.1
latest
will also be tagged latest-1.4.1
v3.0
will also be tagged v3.0-1.4.1
v3.0.2
will also be tagged v3.0.2-1.4.1
snapshot
will also be tagged snapshot-1.4.1
user "101" not found
#589As a measure to prevent the getpwnam("101") failed, user "101" not found
error, we changed the default user.
It is now the user called unit
with the user-id 100
(instead of the previous user 101
).
We don't expect this to cause troubles, as the group-id will still be 0
(i.e. root
).
You can continue to run the container with any arbitrary user-id as long as the group-id is 0
.
You should not run the container as user root
(i.e. id 0
)!
python-crc32c
dependency was updated to version 1.3.0
.django-storage
dependency was updated to version 1.12.1
.This version of Netbox Docker is only compatible with Netbox v3.0.x.
For older versions, use a previous release of Netbox Docker.
Published by tobiasge about 3 years ago
This fixes some of the permission errors when the container is started as root.
Netbox version 3.0.x has a new housekeeping command that should be run periodically. This adds an additional container in which this command is run every 24 hours. The interval can be changed with a new environment variable: HOUSEKEEPING_INTERVAL
Display an error message when the database fails to start and a hint on how to print the complete error
The build script checks if the Netbox branch / tags exists before starting the build process. With this change we can now print a useful error message if a branch / tag is missing instead of a Git error.
tini
as entrypointAll containers use tini
as entrypint for correct handling of PID1 responsibilities.
This version of Netbox Docker is only compatible with Netbox v3.0.x. For older versions, use a previous release of Netbox Docker.
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Consider buying the maintainers of this project a beer or drink:
Published by tobiasge about 3 years ago
This release fixes a problem with the Python google-crc32c module when building the NetBox Docker image.
Fixed error with port on startup with latest Docker version (3.5.1 (66090)).
This version of Netbox Docker is only compatible with Netbox v3.0.x. For older versions, use a previous release of Netbox Docker.
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Consider buying the maintainers of this project a beer or drink:
Published by tobiasge about 3 years ago
This release adds support for for NetBox 3.0 and drops support for older releases.
Migrations are only started when they are needed. Additionally some update tasks from Netbox are run when migrations where done.
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
Image is now based on Alpine 3.14
This version of NetBox Docker is only compatible with NetBox v3.0.x. For older versions, use a previous release of NetBox Docker.
There are no confirmed critical issues at the time of writing this. See the issues labelled bug in our issues section.
Consider buying the maintainers of this project a beer or drink:
Published by tobiasge over 3 years ago
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.
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.
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.
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.
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.
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!
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!
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!
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.
This version of NetBox Docker is only compatible with NetBox v2.11.x. For older versions, use a previous release of NetBox Docker.
There are no confirmed critical issues at the time of writing this. See the issues labelled bug in our issues section.
Consider buying the maintainers of this project a beer or drink:
Published by cimnine over 3 years ago
This releases fixes a bug with the discovery of custom configurations. It also updates some dependencies. See the correspoding milestone for all changed.
We've made some major changes in version 1.0.0. Please read the corresponding release notes.
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.
As #netbox
moved to a new Slack instance,
we're following suit.
Please join our new Slack channel #netbox-docker
.
@MajesticFalcon kindly provided two new initializers. See these files for examples:
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.
The following dependencies were upgraded:
This version of NetBox Docker is only compatible with NetBox v2.10.x. For older versions, use a previous release of NetBox Docker.
There are no confirmed critical issues at the time of writing this. See the issues labelled bug in our issues section.
Consider buying the maintainers of this project a beer or drink:
Published by cimnine over 3 years ago
This release fixes a problem with the Python cryptograhpy module when building the NetBox Docker image.
We've made some major changes in version 1.0.0. Please read the corresponding release notes.
This version of Netbox Docker is only compatible with Netbox v2.10.x. For older versions, use a previous release of Netbox Docker.
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Consider buying the maintainers of this project a beer or drink:
Published by cimnine over 3 years ago
This release fixes a typo in docker/launch-netbox.sh
and updates the django-storages
dependency.
We've made some major changes in version 1.0.0. Please read the corresponding release notes.
This version of Netbox Docker is only compatible with Netbox v2.10.x. For older versions use a previous release of Netbox Docker.
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Consider buying the maintainers of this project a beer or drink:
Published by cimnine over 3 years ago
This release re-works how we serve HTTP content and introduced more initializers.
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!
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.
@ryanmerolle contributed a whole bunch of new initializers:
Thank you @ryanmerolle a lot!
@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.
This version of Netbox Docker is only compatible with Netbox v2.10.x. For older versions use a previous release of Netbox Docker.
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Consider buying the maintainers of this project a beer or drink:
Published by cimnine almost 4 years ago
This release fixes some bugs and introduces compatibility with Netbox 2.10.x.
This version of Netbox Docker is compatible with Netbox v2.10.x.
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:
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
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 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.
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.
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.
There is a new environment variable, SESSIONS_ROOT
, that controls Django's SESSIONS_FILE_PATH
.
LOGIN_TIMEOUT
#359There was an issue that LOGIN_TIMEOUT
could not be defined.
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.
This version of Netbox Docker is only compatible with Netbox v2.10.x. For older versions use a previous release of Netbox Docker.
There are no confirmed issues at the time of writing this. See the issues labelled bug in our issues section.
Published by cimnine almost 4 years ago
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.
The dynamic configuration which was introduced in Netbox Docker 0.26.0 didn't completely work for LDAP configurations.
This was fixed now.
This version of Netbox Docker is compatible with Netbox v2.9.x.
There are no known issues at the time of writing this.
See the issues labelled bug in our issues section.
Published by cimnine almost 4 years ago
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.
No such file or directory: '/tmp/metrics/counter_26.db'
#351A change that would benefit the monitoring of Netbox with Prometheus had unintended effects.
'NoneType' object has no attribute 'lower'
#350A change was made that broke the LDAP config when AUTH_LDAP_MIRROR_GROUPS
was not defined.
This version of Netbox Docker is compatible with Netbox v2.9.x
Published by cimnine almost 4 years ago
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.
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
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>'
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.
If a secret and env var for the same setting are available, then prefer the secret.
REMOVE_AUTH_*
configurations #310REMOTE_AUTH_ENABLED
, REMOTE_AUTH_BACKEND
, REMOTE_AUTH_HEADER
, REMOTE_AUTH_AUTO_CREATE_USER
and REMOTE_AUTH_DEFAULT_GROUPS
can be configured via environment variables.
AUTH_LDAP_MIRROR_GROUPS
configuration #327Add ability to mirror ldap groups into Netbox (AUTH_LDAP_MIRROR_GROUPS
)
primary_ip
in initializers #301Add optional primary_ip
on initializer
This version of Netbox Docker is compatible with Netbox v2.9.x
Published by tobiasge about 4 years ago
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.
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.
Added support for LOGIN_TIMEOUT in configuration.py
File upload and static file collection should run more smoothly now.
Fixed some typos in the Readme file
The startup scripts where adapted to changes in Netbox 2.9
This version of Netbox Docker is compatible with Netbox v2.9.x
Published by tobiasge over 4 years ago
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!
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!
There are no known issues.
Published by tobiasge over 4 years ago
This release mostly contains bug fixes and an optimized build system.
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 where not all initializer would run when one was empty.
Now all initializer scripts are run, even when one's YAML is empty.
File upload and static file collection should run more smoothly now.
SSL and TLS settings for email servers can now be configured with ENV variables. This was introduced with Netbox v2.8.4.
The STARTTLS settings for LDAP servers can now be configured with the ENV variable AUTH_LDAP_START_TLS
.
configuration.py
(webhooks
-tasks
) #267This 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
).
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.
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.
There are no known issues.
Published by cimnine over 4 years ago
This is mostly a maintenance release. We don't expect any problems when updating from the previous version to this version.
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.
We've introduced an error when we split the Redis instances into two: The cache and the work queue. This change fixes this bug.
Netbox recently introduced embedded documentation. This change adds the respective documentation files to the Netbox image.
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.
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.
This version of Netbox Docker is compatible with Netbox v2.7.x (and hopefully later versions as well).
There are no known issues.
Published by cimnine over 4 years ago
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!
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!
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.
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!
There is a problem with the Redis configuration. See #245 for a solution.
Published by cimnine over 4 years ago
This release fixes outdated information in the README file.
Please be sure to also check the release notes for the main version, 0.21.0
if you haven't done so already!
This version is compatible with Netbox 2.7.x (and hopefully later versions as well).
⚠️ This version is not compatible with Netbox 2.6.x or lower!
There are no known issues.