-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Current Behavior
After migrating to Netbox-docker version 2.9.0 and Netbox 4.0, dark mode not being kept when refreshing the page.
From the netbox 4.0.0 release notes:
Bug Fixes (from Beta2)
#15630 - Ensure consistent toggling between light & dark UI modes
From previous working setup of Docker version 3.7.7 and netbox-docker 2.8.0 and upgraded using the following
docker compose down
git pull
docker compose build --no-cache
docker compose up --detach
It would appear that the docker version is using Beta2 and not the final production 4.0.0 version?
Expected Behavior
I expect that the dark mode setting is kept between screen refresh.
The public demo at https://demo.netbox.dev/ does not have this issue, so it appears to be only an issue with the docker version.
Docker Compose Version
Docker Compose version v2.26.1-desktop.1
Docker Version
Client:
Cloud integration: v1.0.35+desktop.13
Version: 26.0.0
API version: 1.45
Go version: go1.21.8
Git commit: 2ae903e
Built: Wed Mar 20 15:18:56 2024
OS/Arch: windows/amd64
Context: default
Server: Docker Desktop 4.29.0 (145265)
Engine:
Version: 26.0.0
API version: 1.45 (minimum version 1.24)
Go version: go1.21.8
Git commit: 8b79278
Built: Wed Mar 20 15:18:01 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.28
GitCommit: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
The git Revision
The git Status
On branch release
Your branch is up to date with 'origin/release'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: configuration/plugins.py
modified: env/netbox.env
Untracked files:
(use "git add <file>..." to include in what will be committed)
Dockerfile-Plugins
plugin_requirements.txt
ssl/
no changes added to commit (use "git add" and/or "git commit -a")
Startup Command
docker compose up --detach
NetBox Logs
netbox-1 | ÔÜÖ´©Å Applying database migrations
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/configuration.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/extra.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/jinjas_filters.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/logging.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/plugins.py'
netbox-1 | Operations to perform:
netbox-1 | Apply all migrations: account, auth, circuits, contenttypes, core, dcim, django_rq, extras, ipam, netbox_dns, sessions, social_django, taggit, tenancy, users, virtualization, vpn, wireless
netbox-1 | Running migrations:
netbox-1 | Applying dcim.0186_location_facility... OK
netbox-1 | Applying dcim.0187_alter_device_vc_position... OK
netbox-1 | Applying extras.0108_convert_reports_to_scripts... OK
netbox-1 | Applying extras.0109_script_model... OK
netbox-1 | Applying extras.0110_remove_eventrule_action_parameters... OK
netbox-1 | Applying extras.0111_rename_content_types... OK
netbox-1 | Applying extras.0112_tag_update_object_types... OK
netbox-1 | Applying extras.0113_customfield_rename_object_type... OK
netbox-1 | Applying extras.0114_customfield_add_comments... OK
netbox-1 | Applying extras.0115_convert_dashboard_widgets... OK
netbox-1 | Applying netbox_dns.0002_contact_description_registrar_description... OK
netbox-1 | Applying netbox_dns.0003_default_view... OK
netbox-1 | Applying netbox_dns.0004_create_and_assign_default_view... OK
netbox-1 | Applying netbox_dns.0005_alter_zone_view_not_null... OK
netbox-1 | Applying tenancy.0015_contactassignment_rename_content_type... OK
netbox-1 | Applying users.0005_alter_user_table... OK
netbox-1 | Applying users.0006_custom_group_model... OK
netbox-1 | Applying users.0007_objectpermission_update_object_types... OK
netbox-1 | Applying users.0008_flip_objectpermission_assignments... OK
netbox-1 | Applying vpn.0005_rename_indexes... OK
netbox-1 | ÔÜÖ´©Å Running trace_paths
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/configuration.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/extra.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/jinjas_filters.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/logging.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/plugins.py'
netbox-1 | Found no missing console port paths; skipping
netbox-1 | Found no missing console server port paths; skipping
netbox-1 | Found no missing interface paths; skipping
netbox-1 | Found no missing power feed paths; skipping
netbox-1 | Found no missing power outlet paths; skipping
netbox-1 | Found no missing power port paths; skipping
netbox-1 | Finished.
netbox-1 | ÔÜÖ´©Å Removing stale content types
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/configuration.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/extra.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/jinjas_filters.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/logging.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/plugins.py'
netbox-1 | ÔÜÖ´©Å Removing expired user sessions
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/configuration.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/extra.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/jinjas_filters.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/logging.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/plugins.py'
netbox-1 | ÔÜÖ´©Å Building search index (lazy)
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/configuration.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/extra.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/jinjas_filters.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/logging.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/plugins.py'
netbox-1 | Reindexing 81 models.
netbox-1 | Indexing models
netbox-1 | netbox_dns.record... Skipping (found 18176 existing).
netbox-1 | netbox_dns.view... Skipping (found 2 existing).
netbox-1 | netbox_dns.nameserver... Skipping (found 33 existing).
netbox-1 | netbox_dns.zone... Skipping (found 65 existing).
netbox-1 | netbox_dns.contact... No objects found.
netbox-1 | netbox_dns.registrar... No objects found.
netbox-1 | core.datasource... No objects found.
netbox-1 | core.datafile... No objects found.
netbox-1 | circuits.circuit... Skipping (found 1143 existing).
netbox-1 | circuits.circuittermination... Skipping (found 1321 existing).
netbox-1 | circuits.circuittype... Skipping (found 36 existing).
netbox-1 | circuits.provider... Skipping (found 12 existing).
netbox-1 | circuits.providernetwork... Skipping (found 12 existing).
netbox-1 | dcim.cable... Skipping (found 105 existing).
netbox-1 | dcim.consoleport... Skipping (found 1420 existing).
netbox-1 | dcim.consoleserverport... No objects found.
netbox-1 | dcim.device... Skipping (found 2733 existing).
netbox-1 | dcim.devicebay... Skipping (found 28 existing).
netbox-1 | dcim.devicerole... Skipping (found 54 existing).
netbox-1 | dcim.devicetype... Skipping (found 7060 existing).
netbox-1 | dcim.frontport... Skipping (found 2376 existing).
netbox-1 | dcim.interface... Skipping (found 40585 existing).
netbox-1 | dcim.inventoryitem... No objects found.
netbox-1 | dcim.location... Skipping (found 306 existing).
netbox-1 | dcim.manufacturer... Skipping (found 269 existing).
netbox-1 | dcim.module... Skipping (found 8 existing).
netbox-1 | dcim.modulebay... Skipping (found 125 existing).
netbox-1 | dcim.moduletype... Skipping (found 2033 existing).
netbox-1 | dcim.platform... Skipping (found 92 existing).
netbox-1 | dcim.powerfeed... Skipping (found 59 existing).
netbox-1 | dcim.poweroutlet... Skipping (found 580 existing).
netbox-1 | dcim.powerpanel... Skipping (found 4 existing).
netbox-1 | dcim.powerport... Skipping (found 2920 existing).
netbox-1 | dcim.rack... Skipping (found 90 existing).
netbox-1 | dcim.rackreservation... No objects found.
netbox-1 | dcim.rackrole... Skipping (found 16 existing).
netbox-1 | dcim.rearport... Skipping (found 2412 existing).
netbox-1 | dcim.region... Skipping (found 97 existing).
netbox-1 | dcim.site... Skipping (found 1734 existing).
netbox-1 | dcim.sitegroup... Skipping (found 144 existing).
netbox-1 | dcim.virtualchassis... Skipping (found 4 existing).
netbox-1 | dcim.virtualdevicecontext... No objects found.
netbox-1 | ipam.aggregate... Skipping (found 171 existing).
netbox-1 | ipam.asn... Skipping (found 24 existing).
netbox-1 | ipam.asnrange... Skipping (found 1 existing).
netbox-1 | ipam.fhrpgroup... Skipping (found 4 existing).
netbox-1 | ipam.ipaddress... Skipping (found 7549 existing).
netbox-1 | ipam.iprange... No objects found.
netbox-1 | ipam.prefix... Skipping (found 5976 existing).
netbox-1 | ipam.rir... Skipping (found 18 existing).
netbox-1 | ipam.role... Skipping (found 160 existing).
netbox-1 | ipam.routetarget... No objects found.
netbox-1 | ipam.service... Skipping (found 24 existing).
netbox-1 | ipam.servicetemplate... Skipping (found 4 existing).
netbox-1 | ipam.vlan... Skipping (found 384 existing).
netbox-1 | ipam.vlangroup... Skipping (found 24 existing).
netbox-1 | ipam.vrf... Skipping (found 48 existing).
netbox-1 | extras.customfield... 30 entries cached.
netbox-1 | extras.journalentry... No objects found.
netbox-1 | extras.webhook... No objects found.
netbox-1 | tenancy.contact... Skipping (found 1395 existing).
netbox-1 | tenancy.contactgroup... Skipping (found 24 existing).
netbox-1 | tenancy.contactrole... Skipping (found 12 existing).
netbox-1 | tenancy.tenant... Skipping (found 44 existing).
netbox-1 | tenancy.tenantgroup... Skipping (found 7 existing).
netbox-1 | virtualization.cluster... Skipping (found 12 existing).
netbox-1 | virtualization.clustergroup... Skipping (found 8 existing).
netbox-1 | virtualization.clustertype... Skipping (found 14 existing).
netbox-1 | virtualization.virtualmachine... Skipping (found 257 existing).
netbox-1 | virtualization.vminterface... Skipping (found 800 existing).
netbox-1 | virtualization.virtualdisk... Skipping (found 836 existing).
netbox-1 | vpn.tunnel... No objects found.
netbox-1 | vpn.ikeproposal... No objects found.
netbox-1 | vpn.ikepolicy... No objects found.
netbox-1 | vpn.ipsecproposal... No objects found.
netbox-1 | vpn.ipsecpolicy... No objects found.
netbox-1 | vpn.ipsecprofile... No objects found.
netbox-1 | vpn.l2vpn... Skipping (found 84 existing).
netbox-1 | wireless.wirelesslan... No objects found.
netbox-1 | wireless.wirelesslangroup... No objects found.
netbox-1 | wireless.wirelesslink... No objects found.
netbox-1 | Completed. Total entries: 103964
netbox-1 | Ôå®´©Å Skip creating the superuser
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/configuration.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/extra.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/jinjas_filters.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/logging.py'
netbox-1 | ƒº¼ loaded config '/etc/netbox/config/plugins.py'
netbox-1 |  Initialisation is done.
netbox-1 | 2024/05/07 11:08:31 [warn] 7#7 Unit is running unprivileged, then it cannot use arbitrary user and group.
netbox-1 | ÔÅ│ Waiting for control socket to be created... (1/10)
netbox-1 | 2024/05/07 11:08:31 [info] 7#7 unit 1.32.0 started
netbox-1 | 2024/05/07 11:08:31 [info] 290#290 discovery started
netbox-1 | 2024/05/07 11:08:31 [notice] 290#290 module: python 3.11.6 "/usr/lib/unit/modules/python3.11.unit.so"
netbox-1 | 2024/05/07 11:08:31 [info] 7#7 controller started
netbox-1 | 2024/05/07 11:08:31 [notice] 7#7 process 290 exited with code 0
netbox-1 | 2024/05/07 11:08:31 [info] 292#292 router started
netbox-1 | 2024/05/07 11:08:31 [info] 292#292 OpenSSL 3.0.10 1 Aug 2023, 300000a0
netbox-1 | ÔÜÖ´©Å Applying configuration from /etc/unit/nginx-unit.json
netbox-1 | 2024/05/07 11:08:32 [info] 295#295 "netbox" prototype started
netbox-1 | 2024/05/07 11:08:32 [info] 296#296 "netbox" application started
netbox-1 |  Unit configuration loaded successfully
netbox-1 | 2024/05/07 11:08:35 [notice] 7#7 process 288 exited with code 0
netbox-1 | 2024/05/07 11:08:35 [info] 334#334 "netbox" application started
netbox-1 | ::1 - - [07/May/2024:11:08:43 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:08:53 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:09:08 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:09:23 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:09:44 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:09:56 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:10:11 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:10:26 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:10:41 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:10:56 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:11:11 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:11:27 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:11:42 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:11:57 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:12:12 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:12:27 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:12:42 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:12:57 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:13:12 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:13:27 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:13:42 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:13:57 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:14:12 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:14:27 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:14:42 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:14:57 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:15:12 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:15:27 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:15:42 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:15:57 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:16:12 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:16:27 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:16:42 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
netbox-1 | ::1 - - [07/May/2024:11:16:57 +0000] "GET /api/ HTTP/1.1" 200 549 "-" "curl/8.2.1"
Content of docker-compose.override.yml
services:
netbox:
image: netbox:latest-plugins
ports:
- "8000:8080"
# If you want the Nginx unit status page visible from the
# outside of the container add the following port mapping:
# - "8001:8081"
healthcheck:
# Time for which the health check can fail after the container is started.
# This depends mostly on the performance of your database. On the first start,
# when all tables need to be created the start_period should be higher than on
# subsequent starts. For the first start after major version upgrades of NetBox
# the start_period might also need to be set higher.
# Default value in our docker-compose.yml is 60s
start_period: 120s
environment:
# SKIP_SUPERUSER: "false"
# SUPERUSER_API_TOKEN: ""
# SUPERUSER_EMAIL: ""
# SUPERUSER_NAME: ""
# SUPERUSER_PASSWORD: ""
REMOTE_AUTH_ENABLED: "True"
REMOTE_AUTH_BACKEND: "netbox.authentication.LDAPBackend"
# AUTH_LDAP_SERVER_URI: "ldap://10.8.6.204"
AUTH_LDAP_SERVER_URI: "ldap://uk.company.biz"
AUTH_LDAP_BIND_DN: "CN=SVC_Netbox,OU=Service Accounts,OU=Central Services,DC=uk,DC=company,DC=biz"
AUTH_LDAP_BIND_PASSWORD: "password"
AUTH_LDAP_USER_SEARCH_BASEDN: "OU=365 Synced,OU=Users IT,OU=UK,OU=Companies,DC=uk,DC=company,dc=biz"
AUTH_LDAP_GROUP_SEARCH_BASEDN: "OU=Security Groups,OU=Central Services,DC=uk,DC=company,dc=biz"
AUTH_LDAP_REQUIRE_GROUP_DN: "CN=G - Netbox Logon,OU=Security Groups,OU=Central Services,DC=uk,DC=company,dc=biz"
AUTH_LDAP_GROUP_TYPE: "NestedGroupOfNamesType"
# AUTH_LDAP_IS_ADMIN_DN: "CN=G - Netbox Admins,OU=Security Groups,OU=Central Services,DC=uk,DC=company,dc=biz"
# AUTH_LDAP_IS_SUPERUSER_DN: "CN=G - Netbox Superusers,OU=Security Groups,OU=Central Services,DC=uk,DC=company,dc=biz"
# LDAP_IGNORE_CERT_ERRORS: "false"
build:
context: .
dockerfile: Dockerfile-Plugins
restart: unless-stopped
netbox-worker:
image: netbox:latest-plugins
build:
context: .
dockerfile: Dockerfile-Plugins
restart: unless-stopped
netbox-housekeeping:
image: netbox:latest-plugins
build:
context: .
dockerfile: Dockerfile-Plugins
restart: unless-stopped
postgres:
restart: unless-stopped
redis:
restart: unless-stopped
redis-cache:
restart: unless-stopped
tls:
image: caddy:2-alpine
depends_on:
- netbox
volumes:
- ./ssl/wildcard.pem:/etc/ssl/private/wildcard.crt:ro,z
- ./ssl/wildcard-key.pem:/etc/ssl/private/wildcard.key:ro,z
- ./ssl/Caddyfile:/etc/caddy/Caddyfile:ro
ports:
- 80:80 # Allows for http redirection
- 443:443
restart: unless-stopped