1diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py
2index d5a7bfaec..68754a8c5 100644
3--- a/netbox/netbox/settings.py
4+++ b/netbox/netbox/settings.py
5@@ -222,6 +222,7 @@ TASKS_REDIS_PASSWORD = TASKS_REDIS.get('PASSWORD', '')
6 TASKS_REDIS_DATABASE = TASKS_REDIS.get('DATABASE', 0)
7 TASKS_REDIS_SSL = TASKS_REDIS.get('SSL', False)
8 TASKS_REDIS_SKIP_TLS_VERIFY = TASKS_REDIS.get('INSECURE_SKIP_TLS_VERIFY', False)
9+TASKS_REDIS_URL = TASKS_REDIS.get('URL')
10
11 # Caching
12 if 'caching' not in REDIS:
13@@ -236,11 +237,12 @@ CACHING_REDIS_SENTINELS = REDIS['caching'].get('SENTINELS', [])
14 CACHING_REDIS_SENTINEL_SERVICE = REDIS['caching'].get('SENTINEL_SERVICE', 'default')
15 CACHING_REDIS_PROTO = 'rediss' if REDIS['caching'].get('SSL', False) else 'redis'
16 CACHING_REDIS_SKIP_TLS_VERIFY = REDIS['caching'].get('INSECURE_SKIP_TLS_VERIFY', False)
17+CACHING_REDIS_URL = REDIS['caching'].get('URL', f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}')
18
19 CACHES = {
20 'default': {
21 'BACKEND': 'django_redis.cache.RedisCache',
22- 'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}',
23+ 'LOCATION': CACHING_REDIS_URL,
24 'OPTIONS': {
25 'CLIENT_CLASS': 'django_redis.client.DefaultClient',
26 'PASSWORD': CACHING_REDIS_PASSWORD,
27@@ -383,7 +385,7 @@ USE_X_FORWARDED_HOST = True
28 X_FRAME_OPTIONS = 'SAMEORIGIN'
29
30 # Static files (CSS, JavaScript, Images)
31-STATIC_ROOT = BASE_DIR + '/static'
32+STATIC_ROOT = getattr(configuration, 'STATIC_ROOT', os.path.join(BASE_DIR, 'static')).rstrip('/')
33 STATIC_URL = f'/{BASE_PATH}static/'
34 STATICFILES_DIRS = (
35 os.path.join(BASE_DIR, 'project-static', 'dist'),
36@@ -562,6 +564,14 @@ if TASKS_REDIS_USING_SENTINEL:
37 'socket_connect_timeout': TASKS_REDIS_SENTINEL_TIMEOUT
38 },
39 }
40+elif TASKS_REDIS_URL:
41+ RQ_PARAMS = {
42+ 'URL': TASKS_REDIS_URL,
43+ 'PASSWORD': TASKS_REDIS_PASSWORD,
44+ 'SSL': TASKS_REDIS_SSL,
45+ 'SSL_CERT_REQS': None if TASKS_REDIS_SKIP_TLS_VERIFY else 'required',
46+ 'DEFAULT_TIMEOUT': RQ_DEFAULT_TIMEOUT,
47+ }
48 else:
49 RQ_PARAMS = {
50 'HOST': TASKS_REDIS_HOST,