diff --git a/api/compose/django/entrypoint.sh b/api/compose/django/entrypoint.sh
index 7e789968ba601f901bd73ca56a2728af1abd1d2d..ac85f1164320d4a5f18c542a6aa44e0c4ef9511e 100755
--- a/api/compose/django/entrypoint.sh
+++ b/api/compose/django/entrypoint.sh
@@ -4,16 +4,19 @@ set -e
 # Since docker-compose relies heavily on environment variables itself for configuration, we'd have to define multiple
 # environment variables just to support cookiecutter out of the box. That makes no sense, so this little entrypoint
 # does all this for us.
-export CACHE_URL=redis://redis:6379/0
+export CACHE_URL=${CACHE_URL:="redis://redis:6379/0"}
 
-# the official postgres image uses 'postgres' as default user if not set explictly.
-if [ -z "$POSTGRES_ENV_POSTGRES_USER" ]; then
+if [ -z "$DATABASE_URL" ]; then
+  # the official postgres image uses 'postgres' as default user if not set explictly.
+  if [ -z "$POSTGRES_ENV_POSTGRES_USER" ]; then
     export POSTGRES_ENV_POSTGRES_USER=postgres
+  fi
+  export DATABASE_URL=postgres://$POSTGRES_ENV_POSTGRES_USER:$POSTGRES_ENV_POSTGRES_PASSWORD@postgres:5432/$POSTGRES_ENV_POSTGRES_USER
 fi
 
-export DATABASE_URL=postgres://$POSTGRES_ENV_POSTGRES_USER:$POSTGRES_ENV_POSTGRES_PASSWORD@postgres:5432/$POSTGRES_ENV_POSTGRES_USER
-
-export CELERY_BROKER_URL=$CACHE_URL
+if [ -z "$CELERY_BROKER_URL" ]; then
+  export CELERY_BROKER_URL=$CACHE_URL
+fi
 
 # we copy the frontend files, if any so we can serve them from the outside
 if [ -d "frontend" ]; then