diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 41d4d40..43a56c3 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -55,7 +55,7 @@ jobs: - ./build-latest.sh - PRERELEASE=true ./build-latest.sh - ./build.sh feature - - ./build.sh develop + - ./build.sh main os: - ubuntu-latest - self-hosted diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b90bf15..8f1656d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: - ./build-latest.sh - PRERELEASE=true ./build-latest.sh - ./build.sh feature - - ./build.sh develop + - ./build.sh main platform: - linux/amd64,linux/arm64 fail-fast: false diff --git a/Dockerfile b/Dockerfile index 1c17caa..0611f72 100644 --- a/Dockerfile +++ b/Dockerfile @@ -71,8 +71,8 @@ RUN export DEBIAN_FRONTEND=noninteractive \ && apt-get update -qq \ && apt-get install \ --yes -qq --no-install-recommends \ - unit=1.33.0-1~noble \ - unit-python3.12=1.33.0-1~noble \ + unit=1.34.0-1~noble \ + unit-python3.12=1.34.0-1~noble \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /opt/netbox/venv /opt/netbox/venv diff --git a/VERSION b/VERSION index b502146..fd2a018 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.2 +3.1.0 diff --git a/build.sh b/build.sh index df85df7..a7ac817 100755 --- a/build.sh +++ b/build.sh @@ -39,9 +39,8 @@ SKIP_GIT If defined, git is not invoked and \${NETBOX_PATH} will not be alter TAG The version part of the image tag. ${_GREEN}Default:${_CLEAR} - When =master: latest - When =develop: snapshot - Else: same as + When =main: snapshot + Else: same as IMAGE_NAMES The names used for the image including the registry Used for tagging the image. @@ -104,24 +103,21 @@ GH_ACTION If defined, special 'echo' statements are enabled that set the ${_GREEN}Default:${_CLEAR} undefined CHECK_ONLY Only checks if the build is needed and sets the GH Action output. + ${_GREEN}Default:${_CLEAR} undefined ${_BOLD}Examples:${_CLEAR} -${0} master - This will fetch the latest 'master' branch, build a Docker Image and tag it - 'netboxcommunity/netbox:latest'. - -${0} develop - This will fetch the latest 'develop' branch, build a Docker Image and tag it +${0} main + This will fetch the latest 'main' branch, build a Docker Image and tag it 'netboxcommunity/netbox:snapshot'. -${0} v2.6.6 - This will fetch the 'v2.6.6' tag, build a Docker Image and tag it - 'netboxcommunity/netbox:v2.6.6' and 'netboxcommunity/netbox:v2.6'. +${0} v4.2.0 + This will fetch the 'v4.2.0' tag, build a Docker Image and tag it + 'netboxcommunity/netbox:v4.2.0' and 'netboxcommunity/netbox:v4.2'. -${0} develop-2.7 - This will fetch the 'develop-2.7' branch, build a Docker Image and tag it - 'netboxcommunity/netbox:develop-2.7'. +${0} feature + This will fetch the 'feature' branch, build a Docker Image and tag it + 'netboxcommunity/netbox:feature'. SRC_ORG=cimnine ${0} feature-x This will fetch the 'feature-x' branch from https://github.com/cimnine/netbox.git, @@ -259,10 +255,7 @@ DOCKER_REGISTRY="${DOCKER_REGISTRY-docker.io}" DOCKER_ORG="${DOCKER_ORG-netboxcommunity}" DOCKER_REPO="${DOCKER_REPO-netbox}" case "${NETBOX_BRANCH}" in -master) - TAG="${TAG-latest}" - ;; -develop) +main) TAG="${TAG-snapshot}" ;; *) @@ -278,7 +271,7 @@ TARGET_DOCKER_TAG_PROJECT="${TARGET_DOCKER_TAG}-${PROJECT_VERSION}" ### # composing the additional DOCKER_SHORT_TAG, -# i.e. "v2.6.1" becomes "v2.6", +# i.e. "v4.2.0" becomes "v4.2", # which is only relevant for version tags # Also let "latest" follow the highest version ### diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 98a6c19..8e89790 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -9,9 +9,9 @@ services: redis-cache: condition: service_healthy env_file: env/netbox.env - user: 'unit:root' + user: "unit:root" volumes: - - ./test-configuration/test_config.py:/etc/netbox/config/test_config.py:z,ro + - ./test-configuration/test_config.py:/etc/netbox/config/test_config.py:z,ro healthcheck: test: curl -f http://localhost:8080/login/ || exit 1 start_period: ${NETBOX_START_PERIOD-120s} @@ -20,9 +20,9 @@ services: netbox-worker: <<: *netbox command: - - /opt/netbox/venv/bin/python - - /opt/netbox/netbox/manage.py - - rqworker + - /opt/netbox/venv/bin/python + - /opt/netbox/netbox/manage.py + - rqworker healthcheck: test: ps -aux | grep -v grep | grep -q rqworker || exit 1 start_period: 40s @@ -31,7 +31,7 @@ services: netbox-housekeeping: <<: *netbox command: - - /opt/netbox/housekeeping.sh + - /opt/netbox/housekeeping.sh healthcheck: test: ps -aux | grep -v grep | grep -q housekeeping || exit 1 start_period: 40s @@ -39,7 +39,7 @@ services: interval: 15s postgres: - image: docker.io/postgres:16-alpine + image: docker.io/postgres:17-alpine env_file: env/postgres.env healthcheck: test: pg_isready -q -t 2 -d $$POSTGRES_DB -U $$POSTGRES_USER ## $$ because of docker-compose @@ -51,12 +51,12 @@ services: redis: &redis image: docker.io/valkey/valkey:8.0-alpine command: - - sh - - -c # this is to evaluate the $REDIS_PASSWORD from the env - - valkey-server --save "" --appendonly no --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose + - sh + - -c # this is to evaluate the $REDIS_PASSWORD from the env + - valkey-server --save "" --appendonly no --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose env_file: env/redis.env healthcheck: - test: "[ $$(valkey-cli --pass \"$${REDIS_PASSWORD}\" ping) = 'PONG' ]" + test: '[ $$(valkey-cli --pass "$${REDIS_PASSWORD}" ping) = ''PONG'' ]' start_period: 5s timeout: 3s interval: 1s diff --git a/docker-compose.yml b/docker-compose.yml index a00825c..c91c7b7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: netbox: &netbox - image: docker.io/netboxcommunity/netbox:${VERSION-v4.1-3.0.2} + image: docker.io/netboxcommunity/netbox:${VERSION-v4.2-3.1.0} depends_on: - postgres - redis @@ -46,7 +46,7 @@ services: # postgres postgres: - image: docker.io/postgres:16-alpine + image: docker.io/postgres:17-alpine healthcheck: test: pg_isready -q -t 2 -d $$POSTGRES_DB -U $$POSTGRES_USER start_period: 20s diff --git a/docker/nginx-unit.json b/docker/nginx-unit.json index fc33a2c..76415f5 100644 --- a/docker/nginx-unit.json +++ b/docker/nginx-unit.json @@ -1,16 +1,20 @@ { "listeners": { - "0.0.0.0:8080": { - "pass": "routes/main" + "*:8080": { + "pass": "routes/main", + "forwarded": { + "client_ip": "X-Forwarded-For", + "protocol": "X-Forwarded-Proto", + "source": ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] + } }, - "[::]:8080": { - "pass": "routes/main" - }, - "0.0.0.0:8081": { - "pass": "routes/status" - }, - "[::]:8081": { - "pass": "routes/status" + "*:8081": { + "pass": "routes/status", + "forwarded": { + "client_ip": "X-Forwarded-For", + "protocol": "X-Forwarded-Proto", + "source": ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] + } } }, "routes": { diff --git a/requirements-container.txt b/requirements-container.txt index 6dfd152..9641dd4 100644 --- a/requirements-container.txt +++ b/requirements-container.txt @@ -1,5 +1,5 @@ -django-auth-ldap==4.8.0 +django-auth-ldap==5.1.0 django-storages[azure,boto3,dropbox,google,libcloud,sftp]==1.14.4 -dulwich==0.22.1 +dulwich==0.22.7 python3-saml==1.16.0 --no-binary lxml,xmlsec -sentry-sdk[django]==2.14.0 +sentry-sdk[django]==2.19.2 diff --git a/test-configuration/test_config.py b/test-configuration/test_config.py index 09bd5dc..884defd 100644 --- a/test-configuration/test_config.py +++ b/test-configuration/test_config.py @@ -4,4 +4,3 @@ LOGGING = { } DEFAULT_PERMISSIONS = {} -LOGIN_REQUIRED = False