-
-
Notifications
You must be signed in to change notification settings - Fork 18
Closed
Description
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
On Unraid, the REDIS_PASSWORD is mandatory. Setting it to the default value 'none', causes an entry in the configuration.py with both tasks and caching having a setting:
PASSWORD': 'none',
This causes the app not to connect to Redis and failing.
Expected Behavior
Expect this environment variable to be optional and if not set, then no Redis PASSWORD entries to be generated in the configuration.py file.
Steps To Reproduce
- Create a new instance of Netbox in Unraid.
- Try and leave the REDIS_PASSWORD variable empty result in an error as it is required.
- Setting it to the default value of 'none' caused the app to fail to connect to Redis.
Environment
- OS:Unraid 7.0.1
- How docker service was installed: Enable function in SettingsCPU architecture
x86-64
Docker creation
Installed from Community ApplicationsContainer logs
[migrations] started
[migrations] no migrations found
usermod: no changes
───────────────────────────────────────
██╗ ███████╗██╗ ██████╗
██║ ██╔════╝██║██╔═══██╗
██║ ███████╗██║██║ ██║
██║ ╚════██║██║██║ ██║
███████╗███████║██║╚██████╔╝
╚══════╝╚══════╝╚═╝ ╚═════╝
Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID: 99
User GID: 100
───────────────────────────────────────
Linuxserver.io version: v4.3.0-ls274
Build-date: 2025-05-01T17:21:25+00:00
───────────────────────────────────────
[custom-init] No custom files found, skipping...
Operations to perform:
Apply all migrations: account, auth, circuits, contenttypes, core, dcim, django_rq, extras, ipam, sessions, social_django, taggit, tenancy, users, virtualization, vpn, wireless
Running migrations:
No migrations to apply.
145 objects imported automatically (use -v 2 for details).
Superuser creation skipped. Already exists.
[uWSGI] getting INI configuration from uwsgi.ini
[uwsgi-static] added mapping for /static => static
*** Starting uWSGI 2.0.25.1 (64bit) on [Sun May 4 13:23:28 2025] ***
compiled with version: 13.2.1 20240309 on 17 May 2024 06:11:37
os: Linux-6.6.78-Unraid #2 SMP PREEMPT_DYNAMIC Thu Feb 20 13:33:15 PST 2025
nodename: 092e1280d3c7
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 20
current working directory: /app/netbox/netbox
detected binary path: /usr/sbin/uwsgi
your processes number limit is 127073
your memory page size is 4096 bytes
detected max file descriptor number: 40960
building mime-types dictionary from file /etc/mime.types...1390 entry found
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address :8000 fd 3
Python version: 3.12.10 (main, Apr 9 2025, 07:23:41) [GCC 13.2.1 20240309]
PEP 405 virtualenv detected: /lsiopy
Set PythonHome to /lsiopy
Connection to localhost (127.0.0.1) 8000 port [tcp/*] succeeded!
Python main interpreter initialized at 0x14e3603c6c70
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 203184 bytes (198 KB) for 1 cores
*** Operational MODE: single process ***
running "exec:python3 ./manage.py collectstatic --noinput" (pre app)...
[ls.io-init] done.
0 static files copied to '/app/netbox/netbox/static', 502 unmodified.
running "exec:python3 ./manage.py remove_stale_contenttypes --no-input" (pre app)...
Traceback (most recent call last):
File "/lsiopy/lib/python3.12/site-packages/django_redis/cache.py", line 29, in _decorator
return method(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django_redis/cache.py", line 99, in _get
return self.client.get(key, default=default, version=version, client=client)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django_redis/client/default.py", line 260, in get
raise ConnectionInterrupted(connection=client) from e
django_redis.exceptions.ConnectionInterrupted: Redis AuthenticationError: AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/netbox/netbox/./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/lsiopy/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/lsiopy/lib/python3.12/site-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/lsiopy/lib/python3.12/site-packages/django/core/management/base.py", line 416, in run_from_argv
self.execute(*args, **cmd_options)
File "/lsiopy/lib/python3.12/site-packages/django/core/management/base.py", line 460, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py", line 102, in handle
ct.delete()
File "/lsiopy/lib/python3.12/site-packages/django/db/models/base.py", line 1281, in delete
return collector.delete()
^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django/db/models/deletion.py", line 458, in delete
signals.pre_delete.send(
File "/lsiopy/lib/python3.12/site-packages/django/dispatch/dispatcher.py", line 189, in send
response = receiver(signal=self, sender=sender, **named)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/netbox/netbox/core/signals.py", line 120, in handle_deleted_object
validators = get_config().PROTECTION_RULES.get(model_name, [])
^^^^^^^^^^^^
File "/app/netbox/netbox/netbox/config/__init__.py", line 28, in get_config
_thread_locals.config = Config()
^^^^^^^^
File "/app/netbox/netbox/netbox/config/__init__.py", line 48, in __init__
self._populate_from_cache()
File "/app/netbox/netbox/netbox/config/__init__.py", line 71, in _populate_from_cache
self.config = cache.get('config') or {}
^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django_redis/cache.py", line 92, in get
value = self._get(key, default, version, client)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django_redis/cache.py", line 36, in _decorator
raise e.__cause__
File "/lsiopy/lib/python3.12/site-packages/django_redis/client/default.py", line 258, in get
value = client.get(key)
^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/commands/core.py", line 1829, in get
return self.execute_command("GET", name, keys=[name])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/client.py", line 621, in execute_command
return self._execute_command(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/client.py", line 627, in _execute_command
conn = self.connection or pool.get_connection()
^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/utils.py", line 188, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 1520, in get_connection
connection.connect()
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 379, in connect
self.connect_check_health(check_health=True)
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 397, in connect_check_health
self.on_connect_check_health(check_health=check_health)
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 469, in on_connect_check_health
auth_response = self.read_response()
^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 644, in read_response
response = self._parser.read_response(disable_decoding=disable_decoding)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/_parsers/resp2.py", line 15, in read_response
result = self._read_response(disable_decoding=disable_decoding)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/_parsers/resp2.py", line 38, in _read_response
raise error
redis.exceptions.AuthenticationError: AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?
command "python3 ./manage.py remove_stale_contenttypes --no-input" exited with non-zero code: 1
Sun May 4 13:23:34 2025 - FATAL hook failed, destroying instance
SIGINT/SIGTERM received...killing workers...
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x14e3603c6c70 pid: 190 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 190)
spawned uWSGI worker 1 (pid: 220, cores: 1)
[uwsgi-daemons] spawning "python3 ./manage.py rqworker" (uid: 99 gid: 100)
Traceback (most recent call last):
File "/lsiopy/lib/python3.12/site-packages/django_redis/cache.py", line 29, in _decorator
return method(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django_redis/cache.py", line 99, in _get
return self.client.get(key, default=default, version=version, client=client)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django_redis/client/default.py", line 260, in get
raise ConnectionInterrupted(connection=client) from e
django_redis.exceptions.ConnectionInterrupted: Redis AuthenticationError: AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/netbox/netbox/./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/lsiopy/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/lsiopy/lib/python3.12/site-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/lsiopy/lib/python3.12/site-packages/django/core/management/base.py", line 416, in run_from_argv
self.execute(*args, **cmd_options)
File "/lsiopy/lib/python3.12/site-packages/django/core/management/base.py", line 460, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/netbox/netbox/core/management/commands/rqworker.py", line 26, in handle
job.enqueue_once(**kwargs)
File "/usr/lib/python3.12/contextlib.py", line 81, in inner
return func(*args, **kwds)
^^^^^^^^^^^^^^^^^^^
File "/app/netbox/netbox/netbox/jobs.py", line 156, in enqueue_once
return cls.enqueue(instance=instance, schedule_at=schedule_at, interval=interval, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/netbox/netbox/netbox/jobs.py", line 126, in enqueue
return Job.enqueue(cls.handle, name=name, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/netbox/netbox/core/models/jobs.py", line 241, in enqueue
rq_queue_name = get_queue_for_model(object_type.model if object_type else None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/netbox/netbox/utilities/rqworker.py", line 18, in get_queue_for_model
return get_config().QUEUE_MAPPINGS.get(model, RQ_QUEUE_DEFAULT)
^^^^^^^^^^^^
File "/app/netbox/netbox/netbox/config/__init__.py", line 28, in get_config
_thread_locals.config = Config()
^^^^^^^^
File "/app/netbox/netbox/netbox/config/__init__.py", line 48, in __init__
self._populate_from_cache()
File "/app/netbox/netbox/netbox/config/__init__.py", line 71, in _populate_from_cache
self.config = cache.get('config') or {}
^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django_redis/cache.py", line 92, in get
value = self._get(key, default, version, client)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/django_redis/cache.py", line 36, in _decorator
raise e.__cause__
File "/lsiopy/lib/python3.12/site-packages/django_redis/client/default.py", line 258, in get
value = client.get(key)
^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/commands/core.py", line 1829, in get
return self.execute_command("GET", name, keys=[name])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/client.py", line 621, in execute_command
return self._execute_command(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/client.py", line 627, in _execute_command
conn = self.connection or pool.get_connection()
^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/utils.py", line 188, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 1520, in get_connection
connection.connect()
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 379, in connect
self.connect_check_health(check_health=True)
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 397, in connect_check_health
self.on_connect_check_health(check_health=check_health)
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 469, in on_connect_check_health
auth_response = self.read_response()
^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/connection.py", line 644, in read_response
response = self._parser.read_response(disable_decoding=disable_decoding)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/_parsers/resp2.py", line 15, in read_response
result = self._read_response(disable_decoding=disable_decoding)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lsiopy/lib/python3.12/site-packages/redis/_parsers/resp2.py", line 38, in _read_response
raise error
redis.exceptions.AuthenticationError: AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?
daemon "python3 ./manage.py rqworker" (pid: 221) annihilatedMetadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Done