diff --git a/roles/docker/defaults/main.yml b/roles/docker/defaults/main.yml index 22db394..ed73752 100644 --- a/roles/docker/defaults/main.yml +++ b/roles/docker/defaults/main.yml @@ -225,6 +225,7 @@ services: pre_deploy_tasks: true version: "4.0.4" nginx_version: 1.27.4-alpine + redis_version: 7.4.2-alpine mongodb_version: 7-jammy allowed_sender_domain: true diff --git a/roles/docker/templates/compose-files/fedi_dk_nodebb.yml.j2 b/roles/docker/templates/compose-files/fedi_dk_nodebb.yml.j2 index d81c331..893229e 100644 --- a/roles/docker/templates/compose-files/fedi_dk_nodebb.yml.j2 +++ b/roles/docker/templates/compose-files/fedi_dk_nodebb.yml.j2 @@ -13,6 +13,19 @@ services: VIRTUAL_PORT: 80 LETSENCRYPT_HOST: {{ services.fedi_dk_nodebb.domain }} LETSENCRYPT_EMAIL: {{ letsencrypt_email }} + depends_on: + - app + + redis: + image: redis:{{ services.fedi_dk_nodebb.redis_version }} + restart: unless-stopped + tmpfs: + - /var/lib/redis + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 3s + retries: 5 mongodb: image: mongo:{{ services.fedi_dk_nodebb.mongodb_version }} @@ -23,6 +36,12 @@ services: environment: MONGO_INITDB_ROOT_USERNAME: nodebb MONGO_INITDB_ROOT_PASSWORD: {{ fedi_dk_nodebb_secrets.mongodb_password }} + healthcheck: + test: ["CMD", "mongosh", "--quiet", "127.0.0.1/test", "--eval", "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'"] + interval: 10s + timeout: 10s + retries: 5 + start_period: 40s app: image: ghcr.io/nodebb/nodebb:{{ services.fedi_dk_nodebb.version }} @@ -30,7 +49,7 @@ services: networks: default: aliases: - - nodebb_app + - app.nodebb postfix: volumes: - "./build:/usr/src/app/build:rw" @@ -38,7 +57,10 @@ services: - "./config:/opt/config:rw" - "./setup.json:/usr/src/app/setup.json:ro" depends_on: - - mongodb + redis: + condition: service_healthy + mongodb: + condition: service_healthy networks: postfix: diff --git a/roles/docker/templates/fedi_dk_nodebb/config.json.j2 b/roles/docker/templates/fedi_dk_nodebb/config.json.j2 index 978029b..27e45c0 100644 --- a/roles/docker/templates/fedi_dk_nodebb/config.json.j2 +++ b/roles/docker/templates/fedi_dk_nodebb/config.json.j2 @@ -10,5 +10,10 @@ "password": "{{ fedi_dk_nodebb_secrets.mongodb_password }}", "database": "admin", "uri": "" + }, + "redis": { + "host": "redis", + "port": "6379", + "database": 0 } } \ No newline at end of file diff --git a/roles/docker/templates/fedi_dk_nodebb/nginx/http.conf.j2 b/roles/docker/templates/fedi_dk_nodebb/nginx/http.conf.j2 index 8e69b9f..4ccdc4c 100644 --- a/roles/docker/templates/fedi_dk_nodebb/nginx/http.conf.j2 +++ b/roles/docker/templates/fedi_dk_nodebb/nginx/http.conf.j2 @@ -6,7 +6,7 @@ map $http_upgrade $connection_upgrade { } upstream workers { - server nodebb_app:4567; + server app.nodebb:4567; } server {