diff --git a/README.md b/README.md index 1daffbd..7591363 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,12 @@ Functions as a cache and temporary link between the application and the file sys - Needs to be accessible over the default port `6379` - Takes an optional volume at **/data** to make your configuration changes permanent. +### Redis on a custom port +For some architectures it might be required to run Redis JSON on a nonstandard port. To for example change the Redis port to **6380**, set the following values: +- Set the environment variable `REDIS_PORT=6380` to the *tubearchivist* service. +- For the *archivist-redis* service, change the ports to `6380:6380` +- Additionally set the following value to the *archivist-redis* service: `command: --port 6380 --loadmodule /usr/lib/redis/modules/rejson.so` + ### Updating Tube Archivist You will see the current version number of **Tube Archivist** in the footer of the interface so you can compare it with the latest release to make sure you are running the *latest and greatest*. * There can be breaking changes between updates, particularly as the application grows, new environment variables or settings might be required for you to set in the your docker-compose file. Any breaking changes will be marked in the **release notes**. diff --git a/tubearchivist/home/src/helper.py b/tubearchivist/home/src/helper.py index 17b39ee..1a67340 100644 --- a/tubearchivist/home/src/helper.py +++ b/tubearchivist/home/src/helper.py @@ -84,9 +84,15 @@ class RedisArchivist: """collection of methods to interact with redis""" REDIS_HOST = os.environ.get("REDIS_HOST") + REDIS_PORT = os.environ.get("REDIS_PORT") + + if not REDIS_PORT: + REDIS_PORT = 6379 def __init__(self): - self.redis_connection = redis.Redis(host=self.REDIS_HOST) + self.redis_connection = redis.Redis( + host=self.REDIS_HOST, port=self.REDIS_PORT + ) def set_message(self, key, message, expire=True): """write new message to redis""" @@ -157,10 +163,14 @@ class RedisQueue: """dynamically interact with the download queue in redis""" REDIS_HOST = os.environ.get("REDIS_HOST") + REDIS_PORT = os.environ.get("REDIS_PORT") + + if not REDIS_PORT: + REDIS_PORT = 6379 def __init__(self, key): self.key = key - self.conn = redis.Redis(host=self.REDIS_HOST) + self.conn = redis.Redis(host=self.REDIS_HOST, port=self.REDIS_PORT) def get_all(self): """return all elements in list""" diff --git a/tubearchivist/home/tasks.py b/tubearchivist/home/tasks.py index 9cdb07b..a56c1ad 100644 --- a/tubearchivist/home/tasks.py +++ b/tubearchivist/home/tasks.py @@ -14,10 +14,14 @@ from home.src.index_management import backup_all_indexes, restore_from_backup from home.src.reindex import ManualImport, reindex_old_documents CONFIG = AppConfig().config -REDIS_HOST = CONFIG["application"]["REDIS_HOST"] +REDIS_HOST = os.environ.get("REDIS_HOST") +REDIS_PORT = os.environ.get("REDIS_PORT") + +if not REDIS_PORT: + REDIS_PORT = 6379 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "home.settings") -app = Celery("tasks", broker="redis://" + REDIS_HOST) +app = Celery("tasks", broker=f"redis://{REDIS_HOST}:{REDIS_PORT}") app.config_from_object("django.conf:settings", namespace="CELERY") app.autodiscover_tasks()