From d27ea30b26855053c0e8bdbca9c6a3c047694872 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Thu, 20 Dec 2018 17:36:32 +0100
Subject: [PATCH] Fix #640: support connecting with to a password protected
 redis server

---
 api/config/settings/common.py       | 5 ++---
 changes/changelog.d/640.enhancement | 2 ++
 deploy/env.prod.sample              | 5 ++++-
 dev.yml                             | 2 +-
 4 files changed, 9 insertions(+), 5 deletions(-)
 create mode 100644 changes/changelog.d/640.enhancement

diff --git a/api/config/settings/common.py b/api/config/settings/common.py
index 16efef69..51230bfd 100644
--- a/api/config/settings/common.py
+++ b/api/config/settings/common.py
@@ -13,7 +13,7 @@ from __future__ import absolute_import, unicode_literals
 import datetime
 import logging
 
-from urllib.parse import urlparse, urlsplit
+from urllib.parse import urlsplit
 
 import environ
 from celery.schedules import crontab
@@ -420,11 +420,10 @@ CACHES = {
 
 CACHES["default"]["BACKEND"] = "django_redis.cache.RedisCache"
 
-cache_url = urlparse(CACHES["default"]["LOCATION"])
 CHANNEL_LAYERS = {
     "default": {
         "BACKEND": "channels_redis.core.RedisChannelLayer",
-        "CONFIG": {"hosts": [(cache_url.hostname, cache_url.port)]},
+        "CONFIG": {"hosts": [CACHES["default"]["LOCATION"]]},
     }
 }
 
diff --git a/changes/changelog.d/640.enhancement b/changes/changelog.d/640.enhancement
new file mode 100644
index 00000000..cfff3e12
--- /dev/null
+++ b/changes/changelog.d/640.enhancement
@@ -0,0 +1,2 @@
+Officially support connecting to a password protected redis server, with
+the redis://:password@localhost:6379/0 scheme (#640)
diff --git a/deploy/env.prod.sample b/deploy/env.prod.sample
index fe4fe555..b5f602d4 100644
--- a/deploy/env.prod.sample
+++ b/deploy/env.prod.sample
@@ -70,7 +70,10 @@ REVERSE_PROXY_TYPE=nginx
 # Cache configuration
 # Examples:
 #  CACHE_URL=redis://<host>:<port>/<database>
-#  CACHE_URL=redis://localhost:6379/0
+#  CACHE_URL=redis://localhost:6379/0c
+#  With a password:
+#  CACHE_URL=redis://:password@localhost:6379/0
+#  (the extra semicolon is important)
 # Use the next one if you followed Debian installation guide
 # CACHE_URL=redis://127.0.0.1:6379/0
 
diff --git a/dev.yml b/dev.yml
index 39f891a3..37abba0c 100644
--- a/dev.yml
+++ b/dev.yml
@@ -99,7 +99,7 @@ services:
       - "FUNKWHALE_FRONT_PORT=${VUE_PORT-8080}"
       - "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME- }"
       - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
-    links:
+    depends_on:
       - api
       - front
     volumes:
-- 
GitLab