Compare commits

...

133 Commits

Author SHA1 Message Date
55640a7aad Update .github/workflows/build_image.yaml
Some checks failed
ci / docker (push) Failing after 41s
release / Builds new NetBox Docker Images (./build-latest.sh, linux/amd64,linux/arm64) (push) Failing after 14s
release / Builds new NetBox Docker Images (./build.sh develop, linux/amd64,linux/arm64) (push) Failing after 15s
release / Builds new NetBox Docker Images (./build.sh feature, linux/amd64,linux/arm64) (push) Failing after 14s
release / Builds new NetBox Docker Images (PRERELEASE=true ./build-latest.sh, linux/amd64,linux/arm64) (push) Failing after 16s
2024-08-21 18:32:50 -05:00
e9590de870 Update configuration/plugins.py
Some checks failed
ci / docker (push) Failing after 41s
2024-08-21 18:15:00 -05:00
9bf14a6612 Update plugin_requirements.txt
Some checks failed
ci / docker (push) Has been cancelled
2024-08-21 18:14:33 -05:00
2b73a7df5e Update .github/workflows/build_image.yaml
Some checks failed
ci / docker (push) Failing after 4m59s
2024-08-21 11:02:18 -05:00
3c2ac0f7ec Update .github/workflows/build_image.yaml
Some checks failed
ci / docker (push) Failing after 7m10s
2024-08-21 10:42:08 -05:00
dec47084e1 Add docker-compose.override.yml 2024-08-21 10:41:12 -05:00
0e86bbb17e Add Dockerfile-Plugins 2024-08-21 10:40:57 -05:00
725764b856 Add plugin_requirements.txt 2024-08-21 10:40:38 -05:00
28c9b46e73 Update env/netbox.env 2024-08-21 10:32:50 -05:00
26c78c9a02 Update configuration/plugins.py 2024-08-21 10:32:23 -05:00
5cbb16524c Add .github/workflows/build_image.yaml 2024-08-21 10:31:41 -05:00
Tobias Genannt
0c99ff8b56
Merge pull request #1225 from netbox-community/develop
Version 2.9.1
2024-05-07 18:29:09 +02:00
Tobias Genannt
1265d2277a Preparation for 2.9.1 2024-05-07 13:45:53 +02:00
Tobias Genannt
620ca96d64
Merge pull request #1224 from tobiasge/fix-sentry-sdk
Install Sentry Django integration correctly
2024-05-07 12:34:09 +02:00
Tobias Genannt
2561055265 Install Sentry Django integration correctly 2024-05-07 09:57:59 +02:00
Tobias Genannt
53ac2ff81b
Merge pull request #1223 from tobiasge/1222-fix-health-check
Fix #1222: Use /login/ as health check URL
2024-05-07 08:37:20 +02:00
Tobias Genannt
b6492b2e6b Fix #1222: Use /login/ as health check URL 2024-05-07 07:15:37 +02:00
Tobias Genannt
6d25a54d49
Merge pull request #1219 from netbox-community/develop
Version 2.9.0
2024-05-06 21:26:10 +02:00
Tobias Genannt
36f409a16b Preparation for 2.9.0 2024-05-06 19:04:09 +02:00
Tobias Genannt
9d247f5530
Merge pull request #1216 from netbox-community/renovate/django-storages-1.x
Update dependency django-storages to v1.14.3
2024-05-06 18:58:40 +02:00
Tobias Genannt
7a42faaabc
Merge pull request #1218 from netbox-community/renovate/sentry-sdk-2.x
Update dependency sentry-sdk to v2.1.1
2024-05-06 18:58:19 +02:00
Tobias Genannt
f5a3e3f955
Merge pull request #1215 from tobiasge/prepare-nb40
Prepare for NetBox 4.0
2024-05-06 18:57:57 +02:00
renovate[bot]
6307a58c4a
Update dependency sentry-sdk to v2.1.1 2024-05-06 12:35:54 +00:00
Tobias Genannt
1e78c386a5 Fixed regex for social-auth-core replacement 2024-05-06 09:56:49 +02:00
renovate[bot]
40f24105e6
Update dependency django-storages to v1.14.3 2024-05-04 23:02:30 +00:00
Tobias Genannt
1a4ef09a16
Merge branch 'develop' into prepare-nb40 2024-05-04 10:02:19 +02:00
Tobias Genannt
3d6b6c2a67
Merge pull request #1210 from netbox-community/renovate/github-super-linter-6.x
Update github/super-linter action to v6
2024-04-28 10:36:19 +02:00
Tobias Genannt
f1787b4775 Disabled new tests 2024-04-28 09:29:43 +02:00
Tobias Genannt
a7cb1a4651
Merge pull request #1211 from netbox-community/renovate/sentry-sdk-2.x
Update dependency sentry-sdk to v2
2024-04-28 09:24:15 +02:00
renovate[bot]
8fb42b3213
Update dependency sentry-sdk to v2 2024-04-26 10:16:25 +00:00
renovate[bot]
b7d99c9c69
Update github/super-linter action to v6 2024-04-23 19:44:05 +00:00
Christian Mäder
d52ef4445e
Merge pull request #1209 from cimnine/HSTS
Adds HSTS related parameters
2024-04-23 21:43:40 +02:00
Christian Mäder
e1335a1194 Adds SECURE_* parameters introduced in 3.7.6
See https://github.com/netbox-community/netbox/issues/15644
2024-04-23 16:40:40 +02:00
Tobias Genannt
c9d8f55ea1
Merge pull request #1208 from netbox-community/renovate/dulwich-0.x
Update dependency dulwich to v0.22.1
2024-04-23 16:22:10 +02:00
renovate[bot]
347b943b75
Update dependency dulwich to v0.22.1 2024-04-23 13:58:41 +00:00
Tobias Genannt
f15dec52ae
Merge pull request #1207 from netbox-community/renovate/dulwich-0.x
Update dependency dulwich to v0.22.0
2024-04-23 06:59:08 +02:00
renovate[bot]
e024427428
Update dependency dulwich to v0.22.0 2024-04-22 19:13:28 +00:00
Tobias Genannt
5f57cb2774
Merge pull request #1206 from tobiasge/cancel-old-runs
Cancel workflow runs for in progress PRs
2024-04-20 21:07:34 +02:00
Tobias Genannt
5873885edc Cancel workflow runs for in progress PRs 2024-04-19 21:53:06 +02:00
Tobias Genannt
e141d9f16d Prepare for Netbox 4.0 2024-04-17 14:09:24 +02:00
Tobias Genannt
eb59ace74c
Merge pull request #1199 from netbox-community/renovate/sentry-sdk-1.x
Update dependency sentry-sdk to v1.45.0
2024-04-10 23:53:57 +02:00
renovate[bot]
2ee4acba21
Update dependency sentry-sdk to v1.45.0 2024-04-10 14:59:14 +00:00
Tobias Genannt
2a582304b3
Merge pull request #1196 from netbox-community/renovate/django-auth-ldap-4.x
Update dependency django-auth-ldap to v4.8.0
2024-04-04 19:56:41 +02:00
Tobias Genannt
5309673f95
Merge pull request #1193 from kchandan/docker-version
Docker compose file version line obsolete issue fix
2024-04-04 19:02:29 +02:00
Tobias Genannt
3c07538719
Merge pull request #1195 from netbox-community/renovate/sentry-sdk-1.x
Update dependency sentry-sdk to v1.44.1
2024-04-04 15:40:34 +02:00
renovate[bot]
3df807faa0
Update dependency django-auth-ldap to v4.8.0 2024-04-04 13:21:43 +00:00
renovate[bot]
4c0ee77bd0
Update dependency sentry-sdk to v1.44.1 2024-04-03 10:47:45 +00:00
Chandan Kumar
6c01ada882 Removed version line from the yaml file as it is obsolete 2024-04-01 16:57:53 -04:00
Tobias Genannt
b6e5486b48
Merge pull request #1189 from netbox-community/renovate/sentry-sdk-1.x
Update dependency sentry-sdk to v1.44.0
2024-03-28 19:30:14 +01:00
renovate[bot]
46f628e91b
Update dependency sentry-sdk to v1.44.0 2024-03-28 17:06:50 +00:00
Tobias Genannt
9f009c5907
Merge pull request #1166 from tobiasge/sentry-sdk
Fix #1127: Added sentry-sdk to requirements
2024-03-27 14:44:32 +01:00
Tobias Genannt
73ce1f9b7a Fix #1127: Added sentry-sdk to requirements 2024-03-27 07:30:21 +01:00
Tobias Genannt
f443d4ac53
Merge pull request #1183 from tobiasge/avoid-duplicate-checks
Avoid duplicate checks for Renovate PRs
2024-03-27 06:52:23 +01:00
Tobias Genannt
1b9bb2a25e
Merge pull request #1181 from netbox-community/renovate/django-auth-ldap-4.x
Update dependency django-auth-ldap to v4.7.0
2024-03-27 06:50:43 +01:00
Tobias Genannt
d2d7948021 Avoid duplicate checks for Renovate PRs 2024-03-26 17:32:05 +01:00
renovate[bot]
31a4da297a
Update dependency django-auth-ldap to v4.7.0 2024-03-26 16:12:04 +00:00
Tobias Genannt
8e278c3c8e
Merge pull request #1167 from tobiasge/unit-ubuntu-update
Unit and Ubuntu update
2024-03-26 17:09:04 +01:00
Tobias Genannt
24eaba7f9b Use ARM64 self-hosted runner 2024-03-02 13:25:38 +01:00
Tobias Genannt
99b906c4f1 Update Ubuntu and Nginx Unit 2024-02-28 08:07:43 +01:00
Tobias Genannt
37733049da
Merge pull request #1135 from tbotnz/release
fix segfault
2024-02-22 09:26:49 +01:00
Tobias Genannt
4da3f75c14
Merge pull request #1138 from adlerweb/patch-1
docker-entrypoint.sh: clarify default token message
2024-02-22 08:18:27 +01:00
Florian Knodt
607ccd10bf docker-entrypoint.sh: clarify default token message
When a default admin API token is found, a warning is displayed. As it is only called "token", some users might not know what token is referred to. Also the message should give a hint or link to a documentation on how to remove it.
2024-02-22 07:10:06 +01:00
tbotnz
f27148634a fix segfault 2024-02-22 07:07:53 +01:00
Tobias Genannt
46edaa1d22
Merge pull request #1151 from netbox-community/renovate/psycopg-3.x
Update dependency psycopg to v3.1.18
2024-02-05 08:00:18 +01:00
renovate[bot]
064b713489
Update dependency psycopg to v3.1.18 2024-02-04 21:43:13 +00:00
Tobias Genannt
b8a7ffdb7b
Merge pull request #1134 from NeodymiumFerBore/feat/redis-sentinel-config
Add Redis Sentinel config as environment vars
2024-01-20 10:46:06 +01:00
Tobias Genannt
8450ba2f74
Merge pull request #1133 from kindlich/patch-1
Add env var for CENSUS_REPORTING_ENABLED
2024-01-20 10:38:04 +01:00
NdFeB
291ba760f1 Add Redis Sentinel config as environment vars 2024-01-16 14:28:59 +01:00
kindlich
2fbb5dd0b0
Add env var for CENSUS_REPORTING_ENABLED
See #999
2024-01-16 10:20:03 +01:00
Tobias Genannt
ea81db4789
Merge pull request #1129 from netbox-community/renovate/psycopg-3.x
Update dependency psycopg to v3.1.17
2024-01-08 08:15:13 +01:00
renovate[bot]
249e589096
Update dependency psycopg to v3.1.17 2024-01-07 16:16:19 +00:00
Tobias Genannt
f1ca9ab7eb
Merge pull request #1125 from netbox-community/develop
Release 2.8.0
2024-01-02 08:57:00 +01:00
Tobias Genannt
dfa1904a82 Preparation for 2.8.0 2024-01-01 10:33:59 +01:00
Tobias Genannt
b5c12a82d2
Merge pull request #1120 from netbox-community/renovate/dulwich-0.x
Update dependency dulwich to v0.21.7
2023-12-19 15:09:48 +01:00
renovate[bot]
7e1750d3a3
Update dependency dulwich to v0.21.7 2023-12-19 12:50:54 +00:00
Tobias Genannt
651bbc49ba
Merge pull request #1115 from netbox-community/renovate/psycopg-3.x
Update dependency psycopg to v3.1.16
2023-12-19 13:50:33 +01:00
Tobias Genannt
d72facf182
Merge pull request #1122 from netbox-community/renovate/actions-setup-python-5.x
Update actions/setup-python action to v5
2023-12-19 13:50:14 +01:00
renovate[bot]
d7866d5f6e
Update dependency psycopg to v3.1.16 2023-12-19 11:24:47 +00:00
renovate[bot]
33430fda08
Update actions/setup-python action to v5 2023-12-06 12:35:21 +00:00
Tobias Genannt
e020b46f6a
Merge pull request #1101 from netbox-community/renovate/python3-saml-1.x
Update dependency python3-saml to v1.16.0
2023-10-09 15:22:17 +02:00
renovate[bot]
51049781b4
Update dependency python3-saml to v1.16.0 2023-10-09 11:06:17 +00:00
Tobias Genannt
1e681f30b3
Merge pull request #1097 from netbox-community/renovate/django-auth-ldap-4.x
Update dependency django-auth-ldap to v4.6.0
2023-10-09 10:17:32 +02:00
renovate[bot]
4680e59a07
Update dependency django-auth-ldap to v4.6.0 2023-10-09 06:13:57 +00:00
Tobias Genannt
aaaa628585
Merge pull request #1100 from netbox-community/renovate/django-storages-1.x
Update dependency django-storages to v1.14.2
2023-10-09 08:13:44 +02:00
renovate[bot]
e8fa63d18b
Update dependency django-storages to v1.14.2 2023-10-09 03:36:20 +00:00
Tobias Genannt
17b9569094
Merge pull request #1095 from netbox-community/renovate/django-storages-1.x
Update dependency django-storages to v1.14.1
2023-09-30 09:22:57 +02:00
renovate[bot]
1a3ace957a
Update dependency django-storages to v1.14.1 2023-09-29 15:58:04 +00:00
Tobias Genannt
96799369fe
Merge pull request #1091 from netbox-community/renovate/psycopg-3.x
Update dependency psycopg to v3.1.12
2023-09-27 06:57:48 +02:00
renovate[bot]
f1de85d975
Update dependency psycopg to v3.1.12 2023-09-27 00:39:53 +00:00
Tobias Genannt
830d498094
Merge pull request #1083 from netbox-community/renovate/postgres-16.x
Update postgres Docker tag to v16
2023-09-23 18:58:51 +02:00
renovate[bot]
714a132566
Update postgres Docker tag to v16 2023-09-23 14:42:28 +00:00
Tobias Genannt
d0fbb37d66
Merge pull request #1090 from netbox-community/renovate/psycopg-3.x
Update dependency psycopg to v3.1.11
2023-09-23 16:42:15 +02:00
renovate[bot]
87159b56be
Update dependency psycopg to v3.1.11 2023-09-23 12:57:54 +00:00
Tobias Genannt
252ab33560
Merge pull request #1082 from netbox-community/renovate/docker.io-postgres-16.x
Update docker.io/postgres Docker tag to v16
2023-09-23 14:57:42 +02:00
renovate[bot]
0603f1ebe9
Update docker.io/postgres Docker tag to v16 2023-09-15 23:13:09 +00:00
Christian Mäder
164b01319c
Merge pull request #1074 from netbox-community/renovate/docker-login-action-3.x
Update docker/login-action action to v3
2023-09-12 21:30:03 +02:00
renovate[bot]
e6fedf16fe
Update docker/login-action action to v3 2023-09-12 18:03:05 +00:00
Christian Mäder
0594d2c3ae
Merge pull request #1076 from netbox-community/renovate/docker-setup-qemu-action-3.x
Update docker/setup-qemu-action action to v3
2023-09-12 20:02:51 +02:00
renovate[bot]
8b8447f5c6
Update docker/setup-qemu-action action to v3 2023-09-12 15:12:56 +00:00
Christian Mäder
f42e78ece2
Merge pull request #1075 from netbox-community/renovate/docker-setup-buildx-action-3.x
Update docker/setup-buildx-action action to v3
2023-09-12 16:20:00 +02:00
renovate[bot]
c473fcc44a
Update docker/setup-buildx-action action to v3 2023-09-12 09:21:44 +00:00
Tobias Genannt
bcafc4328c
Merge pull request #1067 from tobiasge/unit-update
Update Nginx unit to 1.31
2023-09-05 10:01:19 +02:00
Tobias Genannt
fe27ebc907
Merge pull request #1069 from netbox-community/renovate/actions-checkout-4.x
Update actions/checkout action to v4
2023-09-05 09:48:27 +02:00
renovate[bot]
364555eef6
Update actions/checkout action to v4 2023-09-05 05:38:37 +00:00
Tobias Genannt
451337750a
Merge pull request #1070 from netbox-community/renovate/django-storages-1.x
Update dependency django-storages to v1.14
2023-09-05 07:38:24 +02:00
renovate[bot]
bc6e4f81b0
Update dependency django-storages to v1.14 2023-09-05 01:09:06 +00:00
Tobias Genannt
e452004526 Update Nginx unit to 1.31 2023-09-03 09:07:26 +02:00
Tobias Genannt
caba1b335d
Merge pull request #1066 from netbox-community/renovate/dulwich-0.x
Update dependency dulwich to v0.21.6
2023-09-02 21:00:17 +02:00
renovate[bot]
c798e881b0
Update dependency dulwich to v0.21.6 2023-09-02 13:43:45 +00:00
Tobias Genannt
b47e85ab3f
Merge pull request #1062 from netbox-community/develop
Release 2.7.0
2023-08-30 23:22:57 +02:00
Tobias Genannt
28553202a4
Merge pull request #1039 from tobiasge/netbox-3.6
Prepare for Netbox 3.6
2023-08-30 21:34:45 +02:00
Tobias Genannt
69c5580a3e Fix #1061: Install openssh-client 2023-08-29 13:13:57 +02:00
Tobias Genannt
4d54bb172b
Merge pull request #1059 from NeodymiumFerBore/feat/remote-auth-backend-as-list
Map REMOTE_AUTH_BACKEND env var to list
2023-08-28 14:41:51 +02:00
Tobias Genannt
44d0f47fb5 Prepare for Netbox 3.6 2023-08-28 09:41:55 +02:00
NeodymiumFerBore
12af4233bd
Map REMOTE_AUTH_BACKEND env var to list 2023-08-25 11:26:36 +02:00
Tobias Genannt
f703bba5e1
Merge pull request #1043 from NeodymiumFerBore/fix/honor-default-config-value
Set REMOTE_AUTH_AUTO_CREATE_USER default to False
2023-08-16 08:49:48 +02:00
Tobias Genannt
dd0c0b795d
Merge pull request #1042 from toriningen/fix/1041-invalid-template
netbox.env: fixed unwanted string interpolation
2023-08-16 08:49:31 +02:00
Tobias Genannt
be7af2ea4c
Merge pull request #1045 from netbox-community/renovate/django-auth-ldap-4.x
Update dependency django-auth-ldap to v4.5.0
2023-08-09 08:19:05 +02:00
renovate[bot]
75690ac7dd
Update dependency django-auth-ldap to v4.5.0 2023-08-08 18:58:31 +00:00
NeodymiumFerBore
ec603633ea
Set REMOTE_AUTH_AUTO_CREATE_USER default to False 2023-08-04 23:49:44 +02:00
toriningen
c99172661c netbox.env: fixed unwanted string interpolation 2023-08-03 05:19:59 +00:00
Tobias Genannt
9bdd074ad7
Merge pull request #1034 from netbox-community/renovate/django-auth-ldap-4.x
Update dependency django-auth-ldap to v4.4.0
2023-07-23 11:52:19 +02:00
renovate[bot]
d69dacef09
Update dependency django-auth-ldap to v4.4.0 2023-07-22 19:52:18 +00:00
Tobias Genannt
ebc5900206
Merge pull request #1024 from florianschroen/2023-06-15_fix_volume_options
docker-compose.yml: fix volume mount options
2023-06-15 15:38:12 +02:00
Florian Schroen
8208dedb19 docker-compose.yml: fix volume mount options
`z` is valid only for bindmounts

When using with volumes a warning for each volume appears:

netbox$ docker compose up
[+] Building 0.0s (0/0)
WARN[0000] mount of type `volume` should not define `bind` option
WARN[0000] mount of type `volume` should not define `bind` option
WARN[0000] mount of type `volume` should not define `bind` option

This may appear only when using a docker-compose.override.yml
2023-06-15 12:14:05 +02:00
Tobias Genannt
0d748ed392
Merge pull request #1010 from tobiasge/image-update
Update Ubuntu und Nginx Unit
2023-05-11 13:01:21 +02:00
Tobias Genannt
23d5865e3d Update Ubuntu und Nginx Unit 2023-05-11 08:09:56 +02:00
Tobias Genannt
2037e42e45
Merge pull request #1009 from marcquark/job_retention2
rename JOBRESULT_RETENTION to JOB_RETENTION
2023-05-08 19:38:40 +02:00
Tobias Genannt
055538cc21 Fixed type in else 2023-05-08 17:44:09 +02:00
Marc Leuser
5408cf5af0 rename JOBRESULT_RETENTION to JOB_RETENTION 2023-05-07 21:23:10 +02:00
Tobias Genannt
22486fefb5
Merge pull request #1002 from netbox-community/develop
Prepare 2.6.1
2023-04-28 15:29:28 +02:00
Tobias Genannt
96bda7fa4f
Merge branch 'release' into develop 2023-04-28 13:15:19 +02:00
Tobias Genannt
c085287e64
Prepare 2.6.1 2023-04-28 13:13:06 +02:00
22 changed files with 163 additions and 78 deletions

31
.github/workflows/build_image.yaml vendored Normal file
View File

@ -0,0 +1,31 @@
name: ci
on:
push:
branches:
- 'release'
jobs:
docker:
runs-on: ubuntu-22.04
steps:
#-
# name: Set up QEMU
# uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to Docker Hub
uses: SeptBlast/docker-login@v1.1.2
with:
login-server: harbor.fisherhome.xyz
username: ${{ secrets.HARBOR_USERNAME }}
password: ${{ secrets.HARBOR_PASSWORD }}
- uses: actions/checkout@v3
- name: Build and push
run: |
docker login --username ${{ secrets.HARBOR_USERNAME }} --password ${{ secrets.HARBOR_PASSWORD }} harbor.fisherhome.xyz
docker build --no-cache ./ -t harbor.fisherhome.xyz/library/netbox:latest
docker push harbor.fisherhome.xyz/library/netbox:latest

View File

@ -5,33 +5,40 @@ on:
push:
branches-ignore:
- release
- renovate/**
pull_request:
branches-ignore:
- release
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
name: Checks syntax of our code
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
# Full git history is needed to get a proper
# list of changed files within `super-linter`
fetch-depth: 0
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: '3.9'
- name: Lint Code Base
uses: github/super-linter@v5
uses: github/super-linter@v6
env:
DEFAULT_BRANCH: develop
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SUPPRESS_POSSUM: true
LINTER_RULES_PATH: /
VALIDATE_ALL_CODEBASE: false
VALIDATE_CHECKOV: false
VALIDATE_DOCKERFILE: false
VALIDATE_GITLEAKS: false
VALIDATE_JSCPD: false
FILTER_REGEX_EXCLUDE: (.*/)?(LICENSE|configuration/.*)
EDITORCONFIG_FILE_NAME: .ecrc
DOCKERFILE_HADOLINT_FILE_NAME: .hadolint.yaml
@ -49,35 +56,36 @@ jobs:
- PRERELEASE=true ./build-latest.sh
- ./build.sh feature
- ./build.sh develop
platform:
- linux/amd64
- linux/arm64
os:
- ubuntu-latest
- self-hosted
fail-fast: false
env:
GH_ACTION: enable
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IMAGE_NAMES: docker.io/netboxcommunity/netbox
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
name: Builds new NetBox Docker Images
steps:
- id: git-checkout
name: Checkout
uses: actions/checkout@v3
- id: qemu-setup
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: actions/checkout@v4
- id: buildx-setup
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- id: arm-buildx-platform
name: Set BUILDX_PLATFORM to ARM64
if: matrix.os == 'self-hosted'
run: |
echo "BUILDX_PLATFORM=linux/arm64" >>"${GITHUB_ENV}"
- id: docker-build
name: Build the image for '${{ matrix.platform }}' with '${{ matrix.build_cmd }}'
name: Build the image for '${{ matrix.os }}' with '${{ matrix.build_cmd }}'
run: ${{ matrix.build_cmd }}
env:
BUILDX_PLATFORM: ${{ matrix.platform }}
BUILDX_BUILDER_NAME: ${{ steps.buildx-setup.outputs.name }}
- id: arm-time-limit
name: Set Netbox container start_period higher on ARM64
if: matrix.platform == 'linux/arm64'
if: matrix.os == 'self-hosted'
run: |
echo "NETBOX_START_PERIOD=240s" >>"${GITHUB_ENV}"
- id: docker-test

View File

@ -30,17 +30,17 @@ jobs:
steps:
- id: source-checkout
name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- id: set-netbox-docker-version
name: Get Version of NetBox Docker
run: echo "version=$(cat VERSION)" >>"$GITHUB_OUTPUT"
shell: bash
- id: qemu-setup
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- id: buildx-setup
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- id: docker-build
name: Build the image with '${{ matrix.build_cmd }}'
run: ${{ matrix.build_cmd }}
@ -51,7 +51,7 @@ jobs:
# docker.io
- id: docker-io-login
name: Login to docker.io
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: docker.io
username: ${{ secrets.dockerhub_username }}
@ -60,7 +60,7 @@ jobs:
# quay.io
- id: quay-io-login
name: Login to Quay.io
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.quayio_username }}
@ -69,7 +69,7 @@ jobs:
# ghcr.io
- id: ghcr-io-login
name: Login to GitHub Container Registry
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}

3
.gitignore vendored
View File

@ -1,6 +1,6 @@
*.sql.gz
.netbox
.initializers
.python-version
docker-compose.override.yml
*.pem
configuration/*
@ -11,5 +11,4 @@ configuration/ldap/*
!configuration/ldap/ldap_config.py
!configuration/logging.py
!configuration/plugins.py
prometheus.yml
super-linter.log

View File

@ -31,14 +31,12 @@ RUN export DEBIAN_FRONTEND=noninteractive \
ARG NETBOX_PATH
COPY ${NETBOX_PATH}/requirements.txt requirements-container.txt /
RUN \
# We compile 'psycopg2' in the build process
sed -i -e '/psycopg2-binary/d' /requirements.txt && \
# Gunicorn is not needed because we use Nginx Unit
sed -i -e '/gunicorn/d' /requirements.txt && \
# We need 'social-auth-core[all]' in the Docker image. But if we put it in our own requirements-container.txt
# we have potential version conflicts and the build will fail.
# That's why we just replace it in the original requirements.txt.
sed -i -e 's/social-auth-core\[openidconnect\]/social-auth-core\[all\]/g' /requirements.txt && \
sed -i -e 's/social-auth-core/social-auth-core\[all\]/g' /requirements.txt && \
/opt/netbox/venv/bin/pip install \
-r /requirements.txt \
-r /requirements-container.txt
@ -62,19 +60,20 @@ RUN export DEBIAN_FRONTEND=noninteractive \
libldap-common \
libpq5 \
libxmlsec1-openssl \
openssh-client \
openssl \
python3 \
python3-distutils \
tini \
&& curl -sL https://nginx.org/keys/nginx_signing.key \
> /etc/apt/trusted.gpg.d/nginx.asc && \
echo "deb https://packages.nginx.org/unit/ubuntu/ jammy unit" \
&& curl --silent --output /usr/share/keyrings/nginx-keyring.gpg \
https://unit.nginx.org/keys/nginx-keyring.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ mantic unit" \
> /etc/apt/sources.list.d/unit.list \
&& apt-get update -qq \
&& apt-get install \
--yes -qq --no-install-recommends \
unit=1.29.1-1~jammy \
unit-python3.10=1.29.1-1~jammy \
unit=1.32.0-1~mantic \
unit-python3.11=1.32.0-1~mantic \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /opt/netbox/venv /opt/netbox/venv

9
Dockerfile-Plugins Normal file
View File

@ -0,0 +1,9 @@
FROM netboxcommunity/netbox:latest
COPY ./plugin_requirements.txt /opt/netbox/
RUN /opt/netbox/venv/bin/pip install --no-warn-script-location -r /opt/netbox/plugin_requirements.txt
# These lines are only required if your plugin has its own static files.
COPY configuration/configuration.py /etc/netbox/config/configuration.py
COPY configuration/plugins.py /etc/netbox/config/plugins.py
RUN SECRET_KEY="dummydummydummydummydummydummydummydummydummydummy" /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py collectstatic --no-input

View File

@ -34,7 +34,6 @@ There is a more complete [_Getting Started_ guide on our wiki][wiki-getting-star
git clone -b release https://github.com/netbox-community/netbox-docker.git
cd netbox-docker
tee docker-compose.override.yml <<EOF
version: '3.4'
services:
netbox:
ports:

View File

@ -1 +1 @@
2.6.0
2.9.1

View File

@ -61,7 +61,7 @@ DOCKERFILE The name of Dockerfile to use.
${_GREEN}Default:${_CLEAR} Dockerfile
DOCKER_FROM The base image to use.
${_GREEN}Default:${_CLEAR} 'ubuntu:22.04'
${_GREEN}Default:${_CLEAR} 'ubuntu:23.10'
BUILDX_PLATFORMS
Specifies the platform(s) to build the image for.
@ -219,7 +219,7 @@ fi
# Determining the value for DOCKER_FROM
###
if [ -z "$DOCKER_FROM" ]; then
DOCKER_FROM="docker.io/ubuntu:22.04"
DOCKER_FROM="docker.io/ubuntu:23.10"
fi
###

View File

@ -86,6 +86,9 @@ REDIS = {
'tasks': {
'HOST': environ.get('REDIS_HOST', 'localhost'),
'PORT': _environ_get_and_map('REDIS_PORT', 6379, _AS_INT),
'SENTINELS': [tuple(uri.split(':')) for uri in _environ_get_and_map('REDIS_SENTINELS', '', _AS_LIST) if uri != ''],
'SENTINEL_SERVICE': environ.get('REDIS_SENTINEL_SERVICE', 'default'),
'SENTINEL_TIMEOUT': _environ_get_and_map('REDIS_SENTINEL_TIMEOUT', 10, _AS_INT),
'USERNAME': environ.get('REDIS_USERNAME', ''),
'PASSWORD': _read_secret('redis_password', environ.get('REDIS_PASSWORD', '')),
'DATABASE': _environ_get_and_map('REDIS_DATABASE', 0, _AS_INT),
@ -95,6 +98,8 @@ REDIS = {
'caching': {
'HOST': environ.get('REDIS_CACHE_HOST', environ.get('REDIS_HOST', 'localhost')),
'PORT': _environ_get_and_map('REDIS_CACHE_PORT', environ.get('REDIS_PORT', '6379'), _AS_INT),
'SENTINELS': [tuple(uri.split(':')) for uri in _environ_get_and_map('REDIS_CACHE_SENTINELS', '', _AS_LIST) if uri != ''],
'SENTINEL_SERVICE': environ.get('REDIS_CACHE_SENTINEL_SERVICE', environ.get('REDIS_SENTINEL_SERVICE', 'default')),
'USERNAME': environ.get('REDIS_CACHE_USERNAME', environ.get('REDIS_USERNAME', '')),
'PASSWORD': _read_secret('redis_cache_password', environ.get('REDIS_CACHE_PASSWORD', environ.get('REDIS_PASSWORD', ''))),
'DATABASE': _environ_get_and_map('REDIS_CACHE_DATABASE', '1', _AS_INT),
@ -141,8 +146,11 @@ if 'CHANGELOG_RETENTION' in environ:
CHANGELOG_RETENTION = _environ_get_and_map('CHANGELOG_RETENTION', None, _AS_INT)
# Maximum number of days to retain job results (scripts and reports). Set to 0 to retain job results in the database indefinitely. (Default: 90)
if 'JOBRESULT_RETENTION' in environ:
JOBRESULT_RETENTION = _environ_get_and_map('JOBRESULT_RETENTION', None, _AS_INT)
if 'JOB_RETENTION' in environ:
JOB_RETENTION = _environ_get_and_map('JOB_RETENTION', None, _AS_INT)
# JOBRESULT_RETENTION was renamed to JOB_RETENTION in the v3.5.0 release of NetBox. For backwards compatibility, map JOBRESULT_RETENTION to JOB_RETENTION
elif 'JOBRESULT_RETENTION' in environ:
JOB_RETENTION = _environ_get_and_map('JOBRESULT_RETENTION', None, _AS_INT)
# API Cross-Origin Resource Sharing (CORS) settings. If CORS_ORIGIN_ALLOW_ALL is set to True, all origins will be
# allowed. Otherwise, define a list of allowed origins using either CORS_ORIGIN_WHITELIST or
@ -180,6 +188,13 @@ EMAIL = {
if 'ENFORCE_GLOBAL_UNIQUE' in environ:
ENFORCE_GLOBAL_UNIQUE = _environ_get_and_map('ENFORCE_GLOBAL_UNIQUE', None, _AS_BOOL)
# By default, netbox sends census reporting data using a single HTTP request each time a worker starts.
# This data enables the project maintainers to estimate how many NetBox deployments exist and track the adoption of new versions over time.
# The only data reported by this function are the NetBox version, Python version, and a pseudorandom unique identifier.
# To opt out of census reporting, set CENSUS_REPORTING_ENABLED to False.
if 'CENSUS_REPORTING_ENABLED' in environ:
CENSUS_REPORTING_ENABLED = _environ_get_and_map('CENSUS_REPORTING_ENABLED', None, _AS_BOOL)
# Exempt certain models from the enforcement of view permissions. Models listed here will be viewable by all users and
# by anonymous users. List models in the form `<app>.<model>`. Add '*' to this list to exempt all models.
EXEMPT_VIEW_PERMISSIONS = _environ_get_and_map('EXEMPT_VIEW_PERMISSIONS', '', _AS_LIST)
@ -272,9 +287,9 @@ if 'RACK_ELEVATION_DEFAULT_UNIT_WIDTH' in environ:
# Remote authentication support
REMOTE_AUTH_ENABLED = _environ_get_and_map('REMOTE_AUTH_ENABLED', 'False', _AS_BOOL)
REMOTE_AUTH_BACKEND = environ.get('REMOTE_AUTH_BACKEND', 'netbox.authentication.RemoteUserBackend')
REMOTE_AUTH_BACKEND = _environ_get_and_map('REMOTE_AUTH_BACKEND', 'netbox.authentication.RemoteUserBackend', _AS_LIST)
REMOTE_AUTH_HEADER = environ.get('REMOTE_AUTH_HEADER', 'HTTP_REMOTE_USER')
REMOTE_AUTH_AUTO_CREATE_USER = _environ_get_and_map('REMOTE_AUTH_AUTO_CREATE_USER', 'True', _AS_BOOL)
REMOTE_AUTH_AUTO_CREATE_USER = _environ_get_and_map('REMOTE_AUTH_AUTO_CREATE_USER', 'False', _AS_BOOL)
REMOTE_AUTH_DEFAULT_GROUPS = _environ_get_and_map('REMOTE_AUTH_DEFAULT_GROUPS', '', _AS_LIST)
# REMOTE_AUTH_DEFAULT_PERMISSIONS = {}
@ -297,6 +312,23 @@ CSRF_TRUSTED_ORIGINS = _environ_get_and_map('CSRF_TRUSTED_ORIGINS', '', _AS_LIST
# The name to use for the session cookie.
SESSION_COOKIE_NAME = environ.get('SESSION_COOKIE_NAME', 'sessionid')
# If true, the `includeSubDomains` directive will be included in the HTTP Strict Transport Security (HSTS) header.
# This directive instructs the browser to apply the HSTS policy to all subdomains of the current domain.
SECURE_HSTS_INCLUDE_SUBDOMAINS = _environ_get_and_map('SECURE_HSTS_INCLUDE_SUBDOMAINS', 'False', _AS_BOOL)
# If true, the `preload` directive will be included in the HTTP Strict Transport Security (HSTS) header.
# This directive instructs the browser to preload the site in HTTPS. Browsers that use the HSTS preload list will force the
# site to be accessed via HTTPS even if the user types HTTP in the address bar.
SECURE_HSTS_PRELOAD = _environ_get_and_map('SECURE_HSTS_PRELOAD', 'False', _AS_BOOL)
# If set to a non-zero integer value, the SecurityMiddleware sets the HTTP Strict Transport Security (HSTS) header on all
# responses that do not already have it. This will instruct the browser that the website must be accessed via HTTPS,
# blocking any HTTP request.
SECURE_HSTS_SECONDS = _environ_get_and_map('SECURE_HSTS_SECONDS', 0, _AS_INT)
# If true, all non-HTTPS requests will be automatically redirected to use HTTPS.
SECURE_SSL_REDIRECT = _environ_get_and_map('SECURE_SSL_REDIRECT', 'False', _AS_BOOL)
# By default, NetBox will store session data in the database. Alternatively, a file path can be specified here to use
# local file storage instead. (This can be useful for enabling authentication on a standby instance with read-only
# database access.) Note that the user as which NetBox runs must have read and write permissions to this path.
@ -305,11 +337,3 @@ SESSION_FILE_PATH = environ.get('SESSION_FILE_PATH', environ.get('SESSIONS_ROOT'
# Time zone (default: UTC)
TIME_ZONE = environ.get('TIME_ZONE', 'UTC')
# Date/time formatting. See the following link for supported formats:
# https://docs.djangoproject.com/en/stable/ref/templates/builtins/#date
DATE_FORMAT = environ.get('DATE_FORMAT', 'N j, Y')
SHORT_DATE_FORMAT = environ.get('SHORT_DATE_FORMAT', 'Y-m-d')
TIME_FORMAT = environ.get('TIME_FORMAT', 'g:i a')
SHORT_TIME_FORMAT = environ.get('SHORT_TIME_FORMAT', 'H:i:s')
DATETIME_FORMAT = environ.get('DATETIME_FORMAT', 'N j, Y g:i a')
SHORT_DATETIME_FORMAT = environ.get('SHORT_DATETIME_FORMAT', 'Y-m-d H:i')

View File

@ -4,7 +4,7 @@
# To learn how to build images with your required plugins
# See https://github.com/netbox-community/netbox-docker/wiki/Using-Netbox-Plugins
# PLUGINS = ["netbox_bgp"]
PLUGINS = ["netbox_bgp","netbox_secrets","netbox_dns"],
# PLUGINS_CONFIG = {
# "netbox_bgp": {

View File

@ -0,0 +1,16 @@
version: '3.4' # This is NOT the version of NetBox! No need to adjust :)
services:
netbox:
image: netbox:latest-plugins
pull_policy: never
ports:
- 8000:8080
build:
context: .
dockerfile: Dockerfile-Plugins
netbox-worker:
image: netbox:latest-plugins
pull_policy: never
netbox-housekeeping:
image: netbox:latest-plugins
pull_policy: never

View File

@ -1,4 +1,3 @@
version: '3.4'
services:
netbox:
ports:

View File

@ -1,4 +1,3 @@
version: '3.4'
services:
netbox:
ports:

View File

@ -1,4 +1,3 @@
version: '3.4'
services:
netbox: &netbox
image: ${IMAGE-netboxcommunity/netbox:latest}
@ -12,7 +11,7 @@ services:
env_file: env/netbox.env
user: 'unit:root'
volumes:
- ./test-configuration/logging.py:/etc/netbox/config/logging.py:z,ro
- ./test-configuration/test_config.py:/etc/netbox/config/test_config.py:z,ro
healthcheck:
start_period: ${NETBOX_START_PERIOD-120s}
timeout: 3s
@ -39,7 +38,7 @@ services:
interval: 15s
test: "ps -aux | grep -v grep | grep -q housekeeping || exit 1"
postgres:
image: postgres:15-alpine
image: postgres:16-alpine
env_file: env/postgres.env
healthcheck:
test: "pg_isready -t 2 -d $$POSTGRES_DB -U $$POSTGRES_USER" ## $$ because of docker-compose

View File

@ -1,7 +1,6 @@
version: '3.4'
services:
netbox: &netbox
image: docker.io/netboxcommunity/netbox:${VERSION-v3.4-2.6.0}
image: docker.io/netboxcommunity/netbox:${VERSION-v4.0-2.9.1}
depends_on:
- postgres
- redis
@ -12,12 +11,12 @@ services:
start_period: 60s
timeout: 3s
interval: 15s
test: "curl -f http://localhost:8080/api/ || exit 1"
test: "curl -f http://localhost:8080/login/ || exit 1"
volumes:
- ./configuration:/etc/netbox/config:z,ro
- netbox-media-files:/opt/netbox/netbox/media:z,rw
- netbox-reports-files:/opt/netbox/netbox/reports:z,rw
- netbox-scripts-files:/opt/netbox/netbox/scripts:z,rw
- netbox-media-files:/opt/netbox/netbox/media:rw
- netbox-reports-files:/opt/netbox/netbox/reports:rw
- netbox-scripts-files:/opt/netbox/netbox/scripts:rw
netbox-worker:
<<: *netbox
depends_on:
@ -47,7 +46,7 @@ services:
# postgres
postgres:
image: docker.io/postgres:15-alpine
image: docker.io/postgres:16-alpine
env_file: env/postgres.env
volumes:
- netbox-postgres-data:/var/lib/postgresql/data

View File

@ -72,10 +72,9 @@ else
fi
./manage.py shell --interface python <<END
from django.contrib.auth.models import User
from users.models import Token
from users.models import Token, User
if not User.objects.filter(username='${SUPERUSER_NAME}'):
u=User.objects.create_superuser('${SUPERUSER_NAME}', '${SUPERUSER_EMAIL}', '${SUPERUSER_PASSWORD}')
u = User.objects.create_superuser('${SUPERUSER_NAME}', '${SUPERUSER_EMAIL}', '${SUPERUSER_PASSWORD}')
Token.objects.create(user=u, key='${SUPERUSER_API_TOKEN}')
END
@ -87,7 +86,7 @@ from users.models import Token
try:
old_default_token = Token.objects.get(key="0123456789abcdef0123456789abcdef01234567")
if old_default_token:
print("⚠️ Warning: You have the old default admin token in your database. This token is widely known; please remove it.")
print("⚠️ Warning: You have the old default admin API token in your database. This token is widely known; please remove it. Log in as your superuser and check API Tokens in your user menu.")
except Token.DoesNotExist:
pass
END

View File

@ -51,7 +51,7 @@ exec unitd \
--control unix:$UNIT_SOCKET \
--pid /opt/unit/unit.pid \
--log /dev/stdout \
--state /opt/unit/state/ \
--tmp /opt/unit/tmp/ \
--statedir /opt/unit/state/ \
--tmpdir /opt/unit/tmp/ \
--user unit \
--group root

16
env/netbox.env vendored
View File

@ -1,16 +1,16 @@
CORS_ORIGIN_ALLOW_ALL=True
DB_HOST=postgres
DB_HOST='10.0.100.171'
DB_NAME=netbox
DB_PASSWORD=J5brHrAXFLQSif0K
DB_PASSWORD=QHMKWXHkkDzNMaWt22
DB_USER=netbox
EMAIL_FROM=netbox@bar.com
EMAIL_FROM=netbox@fisherhome.xyz
EMAIL_PASSWORD=
EMAIL_PORT=25
EMAIL_SERVER=localhost
EMAIL_SERVER=postfix.lan.fisherhome.xyz
EMAIL_SSL_CERTFILE=
EMAIL_SSL_KEYFILE=
EMAIL_TIMEOUT=5
EMAIL_USERNAME=netbox
EMAIL_USERNAME=
# EMAIL_USE_SSL and EMAIL_USE_TLS are mutually exclusive, i.e. they can't both be `true`!
EMAIL_USE_SSL=false
EMAIL_USE_TLS=false
@ -26,9 +26,9 @@ REDIS_CACHE_SSL=false
REDIS_DATABASE=0
REDIS_HOST=redis
REDIS_INSECURE_SKIP_TLS_VERIFY=false
REDIS_PASSWORD=H733Kdjndks81
REDIS_PASSWORD=FDFD733Kdjndks81
REDIS_SSL=false
RELEASE_CHECK_URL=https://api.github.com/repos/netbox-community/netbox/releases
SECRET_KEY=r(m)9nLGnz$(_q3N4z1k(EFsMCjjjzx08x9VhNVcfd%6RF#r!6DE@+V5Zk2X
SECRET_KEY='r(m)9nLGnz$(_q3N4z1k(EFsMCjjjzx08x9VhNVcfd%6RF#r!6DE@+V5Zk2X'
SKIP_SUPERUSER=true
WEBHOOKS_ENABLED=true
WEBHOOKS_ENABLED=true

2
plugin_requirements.txt Normal file
View File

@ -0,0 +1,2 @@
netbox-secrets
netbox_dns

View File

@ -1,4 +1,5 @@
django-auth-ldap==4.3.0
django-storages[azure,boto3,dropbox,google,libcloud,sftp]==1.13.2
psycopg2==2.9.6
python3-saml==1.15.0
django-auth-ldap==4.8.0
django-storages[azure,boto3,dropbox,google,libcloud,sftp]==1.14.3
dulwich==0.22.1
python3-saml==1.16.0 --no-binary lxml
sentry-sdk[django]==2.1.1

View File

@ -2,3 +2,5 @@ LOGGING = {
'version': 1,
'disable_existing_loggers': True
}
DEFAULT_PERMISSIONS = {}