Compare commits

...

7 Commits

Author SHA1 Message Date
LinuxServer-CI
65515cfbf2
Bot Updating Package Versions 2026-01-08 15:53:39 +00:00
LinuxServer-CI
3b6b6cd6ea
Bot Updating Package Versions 2026-01-07 10:31:19 +00:00
LinuxServer-CI
524492780d
Bot Updating Templated Files 2026-01-07 10:26:03 +00:00
Adam
91e45fa122
Merge pull request #74 from linuxserver/3.23 2026-01-07 10:24:21 +00:00
LinuxServer-CI
28e459abdc
Bot Updating Package Versions 2026-01-06 21:20:09 +00:00
thespad
7e78e19937
Don't run CI tests because it requires a DB 2026-01-04 22:02:46 +00:00
thespad
9680c8d24a
Rebase to 3.23 2026-01-04 21:51:18 +00:00
30 changed files with 262 additions and 239 deletions

0
.editorconfig Executable file → Normal file
View File

0
.github/CONTRIBUTING.md vendored Executable file → Normal file
View File

0
.github/FUNDING.yml vendored Executable file → Normal file
View File

0
.github/ISSUE_TEMPLATE/config.yml vendored Executable file → Normal file
View File

0
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Executable file → Normal file
View File

0
.github/ISSUE_TEMPLATE/issue.feature.yml vendored Executable file → Normal file
View File

0
.github/workflows/call_issue_pr_tracker.yml vendored Executable file → Normal file
View File

0
.github/workflows/call_issues_cron.yml vendored Executable file → Normal file
View File

0
.github/workflows/greetings.yml vendored Executable file → Normal file
View File

0
.github/workflows/permissions.yml vendored Executable file → Normal file
View File

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.20
FROM ghcr.io/linuxserver/baseimage-alpine:3.23
# set version label
ARG BUILD_DATE
@ -49,7 +49,7 @@ RUN \
pip install -U --no-cache-dir \
pip \
wheel && \
pip install --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ -r requirements.txt && \
pip install --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.23/ -r requirements.txt && \
pip install --no-cache-dir django-auth-ldap && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.23
# set version label
ARG BUILD_DATE
@ -49,7 +49,7 @@ RUN \
pip install -U --no-cache-dir \
pip \
wheel && \
pip install --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ -r requirements.txt && \
pip install --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.23/ -r requirements.txt && \
pip install --no-cache-dir django-auth-ldap && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \

2
Jenkinsfile vendored
View File

@ -31,7 +31,7 @@ pipeline {
PR_DOCKERHUB_IMAGE = 'lspipepr/netbox'
DIST_IMAGE = 'alpine'
MULTIARCH='true'
CI='true'
CI='false'
CI_WEB='false'
CI_PORT='8000'
CI_SSL='false'

0
LICENSE Executable file → Normal file
View File

View File

@ -35,7 +35,6 @@ Find us at:
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/netbox.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/netbox)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/netbox.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/netbox)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-netbox%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-netbox/job/master/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fnetbox%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/netbox/latest/index.html)
[Netbox](https://github.com/netbox-community/netbox) is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations.
@ -89,10 +88,12 @@ services:
- DB_PORT=
- REDIS_HOST=
- REDIS_PORT=
- REDIS_USERNAME=
- REDIS_PASSWORD=
- REDIS_DB_TASK=
- REDIS_DB_CACHE=
- BASE_PATH= #optional
- CSRF_TRUSTED_ORIGINS= #optional
- REMOTE_AUTH_ENABLED= #optional
- REMOTE_AUTH_BACKEND= #optional
- REMOTE_AUTH_HEADER= #optional
@ -124,10 +125,12 @@ docker run -d \
-e DB_PORT= \
-e REDIS_HOST= \
-e REDIS_PORT= \
-e REDIS_USERNAME= \
-e REDIS_PASSWORD= \
-e REDIS_DB_TASK= \
-e REDIS_DB_CACHE= \
-e BASE_PATH= `#optional` \
-e CSRF_TRUSTED_ORIGINS= `#optional` \
-e REMOTE_AUTH_ENABLED= `#optional` \
-e REMOTE_AUTH_BACKEND= `#optional` \
-e REMOTE_AUTH_HEADER= `#optional` \
@ -152,7 +155,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-e SUPERUSER_EMAIL=` | Email address for `admin` account |
| `-e SUPERUSER_PASSWORD=` | Password for `admin` account |
| `-e ALLOWED_HOST=` | The hostname you will use to access the app (i.e., netbox.example.com) |
| `-e ALLOWED_HOST=` | The hostname you will use to access the app (e.g., netbox.example.com) |
| `-e DB_NAME=` | Database name (default: netbox) |
| `-e DB_USER=` | Database user |
| `-e DB_PASSWORD=` | Database password |
@ -160,16 +163,18 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-e DB_PORT=` | Database port (default: 5432) |
| `-e REDIS_HOST=` | Redis host (default: redis) |
| `-e REDIS_PORT=` | Redis port number (default: 6379) |
| `-e REDIS_USERNAME=` | Redis username (default: none) |
| `-e REDIS_PASSWORD=` | Redis password (default: none) |
| `-e REDIS_DB_TASK=` | Redis database ID for tasks (default: 0) |
| `-e REDIS_DB_CACHE=` | Redis database ID for caching (default: 1) |
| `-e BASE_PATH=` | The path you will use to access the app (i.e., /netbox, optional, default: none) |
| `-e REMOTE_AUTH_ENABLED=` | Enable remote authentication (optional, default: False) |
| `-e REMOTE_AUTH_BACKEND=` | Python path to the custom Django authentication backend to use for external user authentication (optional, default: netbox.authentication.RemoteUserBackend) |
| `-e REMOTE_AUTH_HEADER=` | Name of the HTTP header which informs NetBox of the currently authenticated user. (optional, default: HTTP_REMOTE_USER) |
| `-e REMOTE_AUTH_AUTO_CREATE_USER=` | If true, NetBox will automatically create local accounts for users authenticated via a remote service (optional, default: False) |
| `-e REMOTE_AUTH_DEFAULT_GROUPS=` | The list of groups to assign a new user account when created using remote authentication (optional, default: []) |
| `-e REMOTE_AUTH_DEFAULT_PERMISSIONS=` | A mapping of permissions to assign a new user account when created using remote authentication (optional, default: {}) |
| `-e BASE_PATH=` | The path you will use to access the app (i.e., /netbox, default: none) |
| `-e CSRF_TRUSTED_ORIGINS=` | List of comma-separated, single quoted, trusted origins. Must include protocol, and port if applicable (default: []) |
| `-e REMOTE_AUTH_ENABLED=` | Enable remote authentication (default: False) |
| `-e REMOTE_AUTH_BACKEND=` | Python path to the custom Django authentication backend to use for external user authentication (default: netbox.authentication.RemoteUserBackend) |
| `-e REMOTE_AUTH_HEADER=` | Name of the HTTP header which informs NetBox of the currently authenticated user. (default: HTTP_REMOTE_USER) |
| `-e REMOTE_AUTH_AUTO_CREATE_USER=` | If true, NetBox will automatically create local accounts for users authenticated via a remote service (default: False) |
| `-e REMOTE_AUTH_DEFAULT_GROUPS=` | The list of groups to assign a new user account when created using remote authentication (default: []) |
| `-e REMOTE_AUTH_DEFAULT_PERMISSIONS=` | A mapping of permissions to assign a new user account when created using remote authentication (default: {}) |
| `-v /config` | Persistent config files |
## Environment variables from files (Docker secrets)
@ -334,6 +339,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **05.01.26:** - Rebase to Alpine 3.23. Add CSRF_TRUSTED_ORIGINS env settings. Drop support for environments with explicitly disabled IPv6.
* **26.08.24:** - Restructure init to allow for plugins as mods.
* **16.07.24:** - Add required packages for LDAP support.
* **01.06.24:** - Rebase to Alpine 3.20.

View File

@ -19,7 +19,7 @@ repo_vars:
- PR_DOCKERHUB_IMAGE = 'lspipepr/netbox'
- DIST_IMAGE = 'alpine'
- MULTIARCH='true'
- CI='true'
- CI='false'
- CI_WEB='false'
- CI_PORT='8000'
- CI_SSL='false'

View File

@ -1,195 +1,196 @@
NAME VERSION TYPE
Simple Launcher 1.1.0.14 binary (+5 duplicates)
alpine-baselayout 3.6.5-r0 apk
alpine-baselayout-data 3.6.5-r0 apk
alpine-keys 2.4-r1 apk
alpine-release 3.20.8-r0 apk
apk-tools 2.14.4-r1 apk
asgiref 3.11.0 python
attrs 25.4.0 python
babel 2.17.0 python
backrefs 6.1 python
bash 5.2.26-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.36.1-r31 apk
busybox-binsh 1.36.1-r31 apk
c-ares 1.33.1-r0 apk
ca-certificates 20250911-r0 apk
ca-certificates-bundle 20250911-r0 apk
catatonit 0.2.0-r0 apk
certifi 2026.1.4 python
cffi 2.0.0 python
charset-normalizer 3.4.4 python
click 8.3.1 python
colorama 0.4.6 python
coreutils 9.5-r2 apk
coreutils-env 9.5-r2 apk
coreutils-fmt 9.5-r2 apk
coreutils-sha512sum 9.5-r2 apk
croniter 6.0.0 python
cross-web 0.4.0 python
cryptography 46.0.3 python
curl 8.14.1-r2 apk
defusedxml 0.7.1 python
django 5.2.9 python
django-auth-ldap 5.3.0 python
django-cors-headers 4.9.0 python
django-debug-toolbar 6.1.0 python
django-filter 25.2 python
django-graphiql-debug-toolbar 0.2.0 python
django-htmx 1.27.0 python
django-js-asset 3.1.2 python
django-mptt 0.17.0 python
django-pglocks 1.0.4 python
django-prometheus 2.4.1 python
django-redis 6.0.0 python
django-rich 2.2.0 python
django-rq 3.2.2 python
django-storages 1.14.6 python
django-tables2 2.8.0 python
django-taggit 6.1.0 python
django-timezone-field 7.2.1 python
djangorestframework 3.16.1 python
drf-spectacular 0.29.0 python
drf-spectacular-sidecar 2026.1.1 python
feedparser 6.0.12 python
findutils 4.9.0-r5 apk
gdbm 1.23-r1 apk
ghp-import 2.1.0 python
gmp 6.3.0-r1 apk
graphene 3.4.3 python
graphene-django 3.2.3 python
graphql-core 3.2.7 python
graphql-relay 3.2.0 python
griffe 1.15.0 python
gunicorn 23.0.0 python
idna 3.11 python
inflection 0.5.1 python
jansson 2.14-r4 apk
jinja2 3.1.6 python
jq 1.7.1-r0 apk
jsonschema 4.25.1 python
jsonschema-specifications 2025.9.1 python
libacl 2.3.2-r0 apk
libattr 2.5.2-r0 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libcap2 2.70-r0 apk
libcrypto3 3.3.5-r0 apk
libcurl 8.14.1-r2 apk
libexpat 2.7.3-r0 apk
libffi 3.4.6-r0 apk
libgcc 13.2.1_git20240309-r1 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libjpeg-turbo 3.0.3-r0 apk
libldap 2.6.8-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.4_p20240420-r2 apk
libpanelw 6.4_p20240420-r2 apk
libpq 16.11-r0 apk
libproc2 4.0.4-r0 apk
libpsl 0.21.5-r1 apk
libsasl 2.1.28-r6 apk
libsharpyuv 1.3.2-r0 apk
libssl3 3.3.5-r0 apk
libstdc++ 13.2.1_git20240309-r1 apk
libunistring 1.2-r0 apk
libwebp 1.3.2-r0 apk
libxml2 2.12.10-r0 apk
linux-pam 1.6.0-r0 apk
lz4-libs 1.9.4-r5 apk
mailcap 2.1.54-r0 apk
markdown 3.10 python
markdown-it-py 4.0.0 python
markupsafe 3.0.3 python
mdurl 0.1.2 python
mergedeep 1.3.4 python
mkdocs 1.6.1 python
mkdocs-autorefs 1.4.3 python
mkdocs-get-deps 0.2.0 python
mkdocs-material 9.7.1 python
mkdocs-material-extensions 1.3.1 python
mkdocstrings 1.0.0 python
mkdocstrings-python 2.0.1 python
mpdecimal 4.0.0-r0 apk
musl 1.2.5-r1 apk
musl-utils 1.2.5-r1 apk
ncurses-terminfo-base 6.4_p20240420-r2 apk
netaddr 1.3.0 python
netbox 4.4.0 npm
netbox-graphiql 4.3.0 npm
netcat-openbsd 1.226-r0 apk
nghttp2-libs 1.62.1-r0 apk
nh3 0.3.2 python
oauthlib 3.3.1 python
oniguruma 6.9.9-r0 apk
packaging 25.0 python
paginate 0.5.7 python
pathspec 1.0.1 python
pcre2 10.43-r0 apk
pillow 12.1.0 python
pip 25.3 python
platformdirs 4.5.1 python
postgresql-common 1.2-r1 apk
postgresql16-client 16.11-r0 apk
procps-ng 4.0.4-r0 apk
prometheus-client 0.23.1 python
promise 2.3 python
psycopg 3.3.2 python
psycopg-c 3.3.2 python
psycopg-pool 3.3.0 python
pyasn1 0.6.1 python
pyasn1-modules 0.4.2 python
pyc 3.12.12-r0 apk
pycparser 2.23 python
pygments 2.19.2 python
pyjwt 2.10.1 python
pymdown-extensions 10.20 python
python-dateutil 2.9.0.post0 python
python-ldap 3.4.5 python
python3 3.12.12-r0 apk
python3-openid 3.2.0 python
python3-pyc 3.12.12-r0 apk
python3-pycache-pyc0 3.12.12-r0 apk
pytz 2025.2 python
pyyaml 6.0.3 python
pyyaml-env-tag 1.1 python
readline 8.2.10-r0 apk
redis 7.1.0 python
referencing 0.37.0 python
requests 2.32.5 python
requests-oauthlib 2.0.0 python
rich 14.2.0 python
rpds-py 0.30.0 python
rq 2.6.1 python
scanelf 1.3.7-r2 apk
sgmllib3k 1.0.0 python
shadow 4.15.1-r0 apk
six 1.17.0 python
skalibs 2.14.1.1-r0 apk
social-auth-app-django 5.7.0 python
social-auth-core 4.8.3 python
sorl-thumbnail 12.11.0 python
sqlite-libs 3.45.3-r2 apk
sqlparse 0.5.5 python
ssl_client 1.36.1-r31 apk
strawberry-graphql 0.288.2 python
strawberry-graphql-django 0.73.0 python
svgwrite 1.4.3 python
tablib 3.9.0 python
text-unidecode 1.3 python
tiff 4.6.0t-r0 apk
typing-extensions 4.15.0 python
tzdata 2025.3 python
tzdata 2025c-r0 apk
uritemplate 4.2.0 python
urllib3 2.6.2 python
utmps-libs 0.1.2.2-r1 apk
uwsgi 2.0.25.1-r1 apk
uwsgi-python3 2.0.25.1-r1 apk
watchdog 6.0.0 python
wheel 0.45.1 python
xz-libs 5.6.2-r1 apk
zlib 1.3.1-r1 apk
zstd-libs 1.5.6-r0 apk
NAME VERSION TYPE
Simple Launcher 1.1.0.14 binary (+5 duplicates)
acl-libs 2.3.2-r1 apk
alpine-baselayout 3.7.1-r8 apk
alpine-baselayout-data 3.7.1-r8 apk
alpine-keys 2.6-r0 apk
alpine-release 3.23.2-r0 apk
apk-tools 3.0.3-r1 apk
asgiref 3.11.0 python
attrs 25.4.0 python
babel 2.17.0 python
backrefs 6.1 python
bash 5.3.3-r1 apk
brotli-libs 1.2.0-r0 apk
busybox 1.37.0-r30 apk
busybox-binsh 1.37.0-r30 apk
c-ares 1.34.6-r0 apk
ca-certificates 20251003-r0 apk
ca-certificates-bundle 20251003-r0 apk
catatonit 0.2.1-r0 apk
certifi 2026.1.4 python
cffi 2.0.0 python
charset-normalizer 3.4.4 python
click 8.3.1 python
colorama 0.4.6 python
coreutils 9.8-r1 apk
coreutils-env 9.8-r1 apk
coreutils-fmt 9.8-r1 apk
coreutils-sha512sum 9.8-r1 apk
croniter 6.0.0 python
cross-web 0.4.0 python
cryptography 46.0.3 python
curl 8.17.0-r1 apk
defusedxml 0.7.1 python
django 5.2.9 python
django-auth-ldap 5.3.0 python
django-cors-headers 4.9.0 python
django-debug-toolbar 6.1.0 python
django-filter 25.2 python
django-graphiql-debug-toolbar 0.2.0 python
django-htmx 1.27.0 python
django-js-asset 3.1.2 python
django-mptt 0.17.0 python
django-pglocks 1.0.4 python
django-prometheus 2.4.1 python
django-redis 6.0.0 python
django-rich 2.2.0 python
django-rq 3.2.2 python
django-storages 1.14.6 python
django-tables2 2.8.0 python
django-taggit 6.1.0 python
django-timezone-field 7.2.1 python
djangorestframework 3.16.1 python
drf-spectacular 0.29.0 python
drf-spectacular-sidecar 2026.1.1 python
feedparser 6.0.12 python
findutils 4.10.0-r0 apk
gdbm 1.26-r0 apk
ghp-import 2.1.0 python
graphene 3.4.3 python
graphene-django 3.2.3 python
graphql-core 3.2.7 python
graphql-relay 3.2.0 python
griffe 1.15.0 python
gunicorn 23.0.0 python
idna 3.11 python
inflection 0.5.1 python
jansson 2.14.1-r0 apk
jinja2 3.1.6 python
jq 1.8.1-r0 apk
jsonschema 4.25.1 python
jsonschema-specifications 2025.9.1 python
libapk 3.0.3-r1 apk
libattr 2.5.2-r2 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libcap2 2.77-r0 apk
libcrypto3 3.5.4-r0 apk
libcurl 8.17.0-r1 apk
libexpat 2.7.3-r0 apk
libffi 3.5.2-r0 apk
libgcc 15.2.0-r2 apk
libidn2 2.3.8-r0 apk
libintl 0.24.1-r1 apk
libjpeg-turbo 3.1.2-r0 apk
libldap 2.6.10-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.5_p20251123-r0 apk
libpanelw 6.5_p20251123-r0 apk
libpq 18.1-r0 apk
libproc2 4.0.5-r0 apk
libpsl 0.21.5-r3 apk
libsasl 2.1.28-r9 apk
libsharpyuv 1.6.0-r0 apk
libssl3 3.5.4-r0 apk
libstdc++ 15.2.0-r2 apk
libunistring 1.4.1-r0 apk
libwebp 1.6.0-r0 apk
libxml2 2.13.9-r0 apk
linux-pam 1.7.1-r2 apk
lz4-libs 1.10.0-r0 apk
mailcap 2.1.54-r0 apk
markdown 3.10 python
markdown-it-py 4.0.0 python
markupsafe 3.0.3 python
mdurl 0.1.2 python
mergedeep 1.3.4 python
mkdocs 1.6.1 python
mkdocs-autorefs 1.4.3 python
mkdocs-get-deps 0.2.0 python
mkdocs-material 9.7.1 python
mkdocs-material-extensions 1.3.1 python
mkdocstrings 1.0.0 python
mkdocstrings-python 2.0.1 python
mpdecimal 4.0.1-r0 apk
musl 1.2.5-r21 apk
musl-utils 1.2.5-r21 apk
ncurses-terminfo-base 6.5_p20251123-r0 apk
netaddr 1.3.0 python
netbox 4.5.0 npm
netbox-graphiql 4.5.0 npm
netcat-openbsd 1.234.1-r0 apk
nghttp2-libs 1.68.0-r0 apk
nghttp3 1.13.1-r0 apk
nh3 0.3.2 python
oauthlib 3.3.1 python
oniguruma 6.9.10-r0 apk
packaging 25.0 python
paginate 0.5.7 python
pathspec 1.0.2 python
pcre2 10.47-r0 apk
pillow 12.1.0 python
pip 25.3 python
platformdirs 4.5.1 python
postgresql-common 1.2-r2 apk
postgresql18-client 18.1-r0 apk
procps-ng 4.0.5-r0 apk
prometheus-client 0.23.1 python
promise 2.3 python
psycopg 3.3.2 python
psycopg-c 3.3.2 python
psycopg-pool 3.3.0 python
pyasn1 0.6.1 python
pyasn1-modules 0.4.2 python
pyc 3.12.12-r0 apk
pycparser 2.23 python
pygments 2.19.2 python
pyjwt 2.10.1 python
pymdown-extensions 10.20 python
python-dateutil 2.9.0.post0 python
python-ldap 3.4.5 python
python3 3.12.12-r0 apk
python3-openid 3.2.0 python
python3-pyc 3.12.12-r0 apk
python3-pycache-pyc0 3.12.12-r0 apk
pytz 2025.2 python
pyyaml 6.0.3 python
pyyaml-env-tag 1.1 python
readline 8.3.1-r0 apk
redis 7.1.0 python
referencing 0.37.0 python
requests 2.32.5 python
requests-oauthlib 2.0.0 python
rich 14.2.0 python
rpds-py 0.30.0 python
rq 2.6.1 python
scanelf 1.3.8-r2 apk
sgmllib3k 1.0.0 python
shadow 4.18.0-r0 apk
six 1.17.0 python
skalibs-libs 2.14.4.0-r0 apk
social-auth-app-django 5.7.0 python
social-auth-core 4.8.3 python
sorl-thumbnail 12.11.0 python
sqlite-libs 3.51.1-r0 apk
sqlparse 0.5.5 python
ssl_client 1.37.0-r30 apk
strawberry-graphql 0.288.2 python
strawberry-graphql-django 0.73.0 python
svgwrite 1.4.3 python
tablib 3.9.0 python
text-unidecode 1.3 python
tiff 4.7.1-r0 apk
typing-extensions 4.15.0 python
tzdata 2025.3 python
tzdata 2025c-r0 apk
uritemplate 4.2.0 python
urllib3 2.6.3 python
utmps-libs 0.1.3.1-r0 apk
uwsgi 2.0.31-r0 apk
uwsgi-python3 2.0.31-r0 apk
watchdog 6.0.0 python
wheel 0.45.1 python
xz-libs 5.8.1-r0 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.7-r2 apk

View File

@ -21,7 +21,7 @@ param_usage_include_env: true
param_env_vars:
- {env_var: "SUPERUSER_EMAIL", env_value: "", desc: "Email address for `admin` account"}
- {env_var: "SUPERUSER_PASSWORD", env_value: "", desc: "Password for `admin` account"}
- {env_var: "ALLOWED_HOST", env_value: "", desc: "The hostname you will use to access the app (i.e., netbox.example.com)"}
- {env_var: "ALLOWED_HOST", env_value: "", desc: "The hostname you will use to access the app (e.g., netbox.example.com)"}
- {env_var: "DB_NAME", env_value: "", desc: "Database name (default: netbox)"}
- {env_var: "DB_USER", env_value: "", desc: "Database user"}
- {env_var: "DB_PASSWORD", env_value: "", desc: "Database password"}
@ -29,18 +29,20 @@ param_env_vars:
- {env_var: "DB_PORT", env_value: "", desc: "Database port (default: 5432)"}
- {env_var: "REDIS_HOST", env_value: "", desc: "Redis host (default: redis)"}
- {env_var: "REDIS_PORT", env_value: "", desc: "Redis port number (default: 6379)"}
- {env_var: "REDIS_USERNAME", env_value: "", desc: "Redis username (default: none)"}
- {env_var: "REDIS_PASSWORD", env_value: "", desc: "Redis password (default: none)"}
- {env_var: "REDIS_DB_TASK", env_value: "", desc: "Redis database ID for tasks (default: 0)"}
- {env_var: "REDIS_DB_CACHE", env_value: "", desc: "Redis database ID for caching (default: 1)"}
opt_param_usage_include_env: true
opt_param_env_vars:
- {env_var: "BASE_PATH", env_value: "", desc: "The path you will use to access the app (i.e., /netbox, optional, default: none)"}
- {env_var: "REMOTE_AUTH_ENABLED", env_value: "", desc: "Enable remote authentication (optional, default: False)"}
- {env_var: "REMOTE_AUTH_BACKEND", env_value: "", desc: "Python path to the custom Django authentication backend to use for external user authentication (optional, default: netbox.authentication.RemoteUserBackend)"}
- {env_var: "REMOTE_AUTH_HEADER", env_value: "", desc: "Name of the HTTP header which informs NetBox of the currently authenticated user. (optional, default: HTTP_REMOTE_USER)"}
- {env_var: "REMOTE_AUTH_AUTO_CREATE_USER", env_value: "", desc: "If true, NetBox will automatically create local accounts for users authenticated via a remote service (optional, default: False)"}
- {env_var: "REMOTE_AUTH_DEFAULT_GROUPS", env_value: "", desc: "The list of groups to assign a new user account when created using remote authentication (optional, default: [])"}
- {env_var: "REMOTE_AUTH_DEFAULT_PERMISSIONS", env_value: "", desc: "A mapping of permissions to assign a new user account when created using remote authentication (optional, default: {})"}
- {env_var: "BASE_PATH", env_value: "", desc: "The path you will use to access the app (i.e., /netbox, default: none)"}
- {env_var: "CSRF_TRUSTED_ORIGINS", env_value: "", desc: "List of comma-separated, single quoted, trusted origins. Must include protocol, and port if applicable (default: [])"}
- {env_var: "REMOTE_AUTH_ENABLED", env_value: "", desc: "Enable remote authentication (default: False)"}
- {env_var: "REMOTE_AUTH_BACKEND", env_value: "", desc: "Python path to the custom Django authentication backend to use for external user authentication (default: netbox.authentication.RemoteUserBackend)"}
- {env_var: "REMOTE_AUTH_HEADER", env_value: "", desc: "Name of the HTTP header which informs NetBox of the currently authenticated user. (default: HTTP_REMOTE_USER)"}
- {env_var: "REMOTE_AUTH_AUTO_CREATE_USER", env_value: "", desc: "If true, NetBox will automatically create local accounts for users authenticated via a remote service (default: False)"}
- {env_var: "REMOTE_AUTH_DEFAULT_GROUPS", env_value: "", desc: "The list of groups to assign a new user account when created using remote authentication (default: [])"}
- {env_var: "REMOTE_AUTH_DEFAULT_PERMISSIONS", env_value: "", desc: "A mapping of permissions to assign a new user account when created using remote authentication (default: {})"}
param_usage_include_ports: true
param_ports:
- {external_port: "8000", internal_port: "8000", port_desc: "will map the container's port 8000 to port 8000 on the host"}
@ -67,38 +69,34 @@ init_diagram: |
init-migrations -> init-adduser
init-os-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-netbox-config -> init-config-end
init-os-end -> init-crontab-config
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
base -> init-migrations
base -> init-mods
init-config-end -> init-mods
init-mods -> init-mods-end
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-config -> init-netbox-config
base -> init-os-end
init-mods-end -> init-netbox-prepare
init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end
init-migrations -> init-os-end
init-custom-files -> init-services
init-mods-end -> init-services
init-services -> svc-cron
svc-cron -> legacy-services
svc-netbox-prepare -> svc-netbox
init-netbox-prepare -> svc-netbox
svc-netbox -> legacy-services
init-services -> svc-netbox-prepare
svc-netbox-prepare -> legacy-services
}
Base Images: {
"baseimage-alpine:3.20"
"baseimage-alpine:3.23"
}
"netbox:latest" <- Base Images
# changelog
changelogs:
- {date: "05.01.26:", desc: "Rebase to Alpine 3.23. Add CSRF_TRUSTED_ORIGINS env settings. Drop support for environments with explicitly disabled IPv6."}
- {date: "26.08.24:", desc: "Restructure init to allow for plugins as mods."}
- {date: "16.07.24:", desc: "Add required packages for LDAP support."}
- {date: "01.06.24:", desc: "Rebase to Alpine 3.20."}

View File

@ -12,13 +12,15 @@ ALLOWED_HOSTS = ['{{ALLOWED_HOST}}']
# PostgreSQL database configuration. See the Django documentation for a complete list of available parameters:
# https://docs.djangoproject.com/en/stable/ref/settings/#databases
DATABASE = {
'NAME': '{{DB_NAME}}', # Database name
'USER': '{{DB_USER}}', # PostgreSQL username
'PASSWORD': '{{DB_PASSWORD}}', # PostgreSQL password
'HOST': '{{DB_HOST}}', # Database server
'PORT': '{{DB_PORT}}', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age
DATABASES = {
'default': {
'NAME': '{{DB_NAME}}', # Database name
'USER': '{{DB_USER}}', # PostgreSQL username
'PASSWORD': '{{DB_PASSWORD}}', # PostgreSQL password
'HOST': '{{DB_HOST}}', # Database server
'PORT': '{{DB_PORT}}', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age
},
}
# Redis database settings. Redis is used for caching and for queuing background tasks such as webhook events. A separate
@ -31,6 +33,7 @@ REDIS = {
# Comment out `HOST` and `PORT` lines and uncomment the following if using Redis Sentinel
# 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
# 'SENTINEL_SERVICE': 'netbox',
'USERNAME': '{{REDIS_USERNAME}}',
'PASSWORD': '{{REDIS_PASSWORD}}',
'DATABASE': {{REDIS_DB_TASK}},
'SSL': False,
@ -44,6 +47,7 @@ REDIS = {
# Comment out `HOST` and `PORT` lines and uncomment the following if using Redis Sentinel
# 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
# 'SENTINEL_SERVICE': 'netbox',
'USERNAME': '{{REDIS_USERNAME}}',
'PASSWORD': '{{REDIS_PASSWORD}}',
'DATABASE': {{REDIS_DB_CACHE}},
'SSL': False,
@ -103,6 +107,10 @@ CORS_ORIGIN_REGEX_WHITELIST = [
# r'^(https?://)?(\w+\.)?example\.com$',
]
CSRF_TRUSTED_ORIGINS = [
{{CSRF_TRUSTED_ORIGINS}}
]
# Specify any custom validators here, as a mapping of model to a list of validators classes. Validators should be
# instances of or inherit from CustomValidator.
# from extras.validators import CustomValidator

View File

@ -1,5 +1,5 @@
[uwsgi]
http-socket = :8000
http-socket = [::]:8000
buffer-size = 32768
enable-threads
plugin = python3

View File

@ -8,6 +8,7 @@ mkdir -p \
declare -A NETBOX_CONF
NETBOX_CONF[ALLOWED_HOST]=${ALLOWED_HOST:-netbox.example.com}
NETBOX_CONF[BASE_PATH]=${BASE_PATH:-}
NETBOX_CONF[CSRF_TRUSTED_ORIGINS]=${CSRF_TRUSTED_ORIGINS:-}
NETBOX_CONF[DB_NAME]=${DB_NAME:-netbox}
NETBOX_CONF[DB_USER]=${DB_USER:-root}
NETBOX_CONF[DB_PASSWORD]=${DB_PASSWORD:-}
@ -15,6 +16,7 @@ NETBOX_CONF[DB_HOST]=${DB_HOST:-postgres}
NETBOX_CONF[DB_PORT]=${DB_PORT:-}
NETBOX_CONF[REDIS_HOST]=${REDIS_HOST:-redis}
NETBOX_CONF[REDIS_PORT]=${REDIS_PORT:-6379}
NETBOX_CONF[REDIS_USERNAME]=${REDIS_USERNAME:-}
NETBOX_CONF[REDIS_PASSWORD]=${REDIS_PASSWORD:-}
NETBOX_CONF[REDIS_DB_TASK]=${REDIS_DB_TASK:-0}
NETBOX_CONF[REDIS_DB_CACHE]=${REDIS_DB_CACHE:-1}
@ -38,7 +40,7 @@ if [[ ! -f "/config/configuration.py" ]]; then
done
fi
if [[ ! -e "/config/media" ]]; then
if [[ ! -e "/config/media" ]] && [[ -e "/app/netbox/netbox/media" ]]; then
mv /app/netbox/netbox/media /config/media
fi

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-netbox-prepare/run

View File

@ -1 +0,0 @@
/etc/s6-overlay/s6-rc.d/svc-netbox-prepare/run

View File

@ -0,0 +1,8 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [[ $(curl -Lo /dev/null -H "Host: ${ALLOWED_HOST}" -s -w "%{http_code}\n" http://localhost:8000) = "200" ]]; then
exit 0
else
exit 1
fi

View File

@ -2,5 +2,5 @@
# shellcheck shell=bash
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8000" \
s6-notifyoncheck -d -n 30 -w 5000 \
cd /app/netbox/netbox s6-setuidgid abc /usr/sbin/uwsgi uwsgi.ini