From 536537553b1d6045d5ab7fc095ebef8800772f70 Mon Sep 17 00:00:00 2001 From: Levi van Noort <73097785+levivannoort@users.noreply.github.com> Date: Wed, 19 Nov 2025 17:04:01 +0100 Subject: [PATCH 1/4] chore: change version mailcatcher to updated maildev 2.2.1 --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index b72f12a116..5d64b02e3b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1082,7 +1082,7 @@ services: # GraphQl Explorer - A nice UI for exploring GraphQL API maildev: # used mainly for dev tests - image: appwrite/mailcatcher:1.0.0 + image: appwrite/mailcatcher:1.1.1 container_name: appwrite-mailcatcher <<: *x-logging ports: From 26f506b7ba031fb045e7dcbe26e8aafe1f29e291 Mon Sep 17 00:00:00 2001 From: Levi van Noort <73097785+levivannoort@users.noreply.github.com> Date: Wed, 19 Nov 2025 17:25:28 +0100 Subject: [PATCH 2/4] feat: provider locahost domain host for mail, redis and mysql --- docker-compose.yml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 5d64b02e3b..060497000c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1089,6 +1089,19 @@ services: - "9503:1080" networks: - appwrite + - gateway + labels: + - "traefik.enable=true" + - "traefik.constraint-label-stack=appwrite" + - "traefik.docker.network=gateway" + - "traefik.http.services.appwrite_maildev.loadbalancer.server.port=1080" + - "traefik.http.routers.appwrite_maildev_http.entrypoints=appwrite_web" + - "traefik.http.routers.appwrite_maildev_http.rule=Host(`mail.localhost`)" + - "traefik.http.routers.appwrite_maildev_http.service=appwrite_maildev" + - "traefik.http.routers.appwrite_maildev_https.entrypoints=appwrite_websecure" + - "traefik.http.routers.appwrite_maildev_https.rule=Host(`mail.localhost`)" + - "traefik.http.routers.appwrite_maildev_https.service=appwrite_maildev" + - "traefik.http.routers.appwrite_maildev_https.tls=true" request-catcher-webhook: # used mainly for dev tests (mock HTTP webhook) image: appwrite/requestcatcher:1.0.0 @@ -1117,14 +1130,40 @@ services: - 9506:8080 networks: - appwrite + - gateway + labels: + - "traefik.enable=true" + - "traefik.constraint-label-stack=appwrite" + - "traefik.docker.network=gateway" + - "traefik.http.services.appwrite_adminer.loadbalancer.server.port=8080" + - "traefik.http.routers.appwrite_adminer_http.entrypoints=appwrite_web" + - "traefik.http.routers.appwrite_adminer_http.rule=Host(`mysql.localhost`)" + - "traefik.http.routers.appwrite_adminer_http.service=appwrite_adminer" + - "traefik.http.routers.appwrite_adminer_https.entrypoints=appwrite_websecure" + - "traefik.http.routers.appwrite_adminer_https.rule=Host(`mysql.localhost`)" + - "traefik.http.routers.appwrite_adminer_https.service=appwrite_adminer" + - "traefik.http.routers.appwrite_adminer_https.tls=true" redis-insight: image: redis/redisinsight:latest restart: unless-stopped networks: - appwrite + - gateway environment: - REDIS_HOSTS=redis + labels: + - "traefik.enable=true" + - "traefik.constraint-label-stack=appwrite" + - "traefik.docker.network=gateway" + - "traefik.http.services.appwrite_redisinsight.loadbalancer.server.port=5540" + - "traefik.http.routers.appwrite_redisinsight_http.entrypoints=appwrite_web" + - "traefik.http.routers.appwrite_redisinsight_http.rule=Host(`redis.localhost`)" + - "traefik.http.routers.appwrite_redisinsight_http.service=appwrite_redisinsight" + - "traefik.http.routers.appwrite_redisinsight_https.entrypoints=appwrite_websecure" + - "traefik.http.routers.appwrite_redisinsight_https.rule=Host(`redis.localhost`)" + - "traefik.http.routers.appwrite_redisinsight_https.service=appwrite_redisinsight" + - "traefik.http.routers.appwrite_redisinsight_https.tls=true" ports: - "8081:5540" From a0a1cda2e583cf0b6773e196cced7a005fadceea Mon Sep 17 00:00:00 2001 From: Levi van Noort <73097785+levivannoort@users.noreply.github.com> Date: Thu, 20 Nov 2025 10:51:09 +0100 Subject: [PATCH 3/4] chore: change to include adminir auto-login --- docker-compose.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 060497000c..427782b08f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1131,6 +1131,16 @@ services: networks: - appwrite - gateway + environment: + - ADMINER_DESIGN=pepa-linha + - ADMINER_DEFAULT_SERVER=mariadb + - ADMINER_DEFAULT_USERNAME=root + - ADMINER_DEFAULT_PASSWORD=rootsecretpassword + - ADMINER_DEFAULT_DB=appwrite + configs: + - source: adminer-index.php + target: /var/www/html/index.php + mode: 0755 labels: - "traefik.enable=true" - "traefik.constraint-label-stack=appwrite" @@ -1188,6 +1198,26 @@ networks: runtimes: name: runtimes +configs: + redisinsight-connections.json: + content: | + [ + ] + + adminer-index.php: + content: | + $$_ENV['ADMINER_DEFAULT_SERVER'], + 'driver' => 'server', /* seems to autodetect the driver from server settings */ + 'username' => $$_ENV['ADMINER_DEFAULT_USERNAME'], + 'password' => $$_ENV['ADMINER_DEFAULT_PASSWORD'], + 'db' => $$_ENV['ADMINER_DEFAULT_DB'], + ]; + } + include './adminer.php'; + volumes: appwrite-mariadb: appwrite-redis: From 57758296f56d96c1c791a5230e1f8fa524163296 Mon Sep 17 00:00:00 2001 From: Levi van Noort <73097785+levivannoort@users.noreply.github.com> Date: Thu, 20 Nov 2025 11:00:58 +0100 Subject: [PATCH 4/4] chore: include redis-insights auto-configuration --- docker-compose.yml | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 427782b08f..9575904616 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1161,7 +1161,11 @@ services: - appwrite - gateway environment: - - REDIS_HOSTS=redis + - RI_PRE_SETUP_DATABASES_PATH=/mnt/connections.json + configs: + - source: redisinsight-connections.json + target: /mnt/connections.json + mode: 0755 labels: - "traefik.enable=true" - "traefik.constraint-label-stack=appwrite" @@ -1202,6 +1206,41 @@ configs: redisinsight-connections.json: content: | [ + { + "compressor": "NONE", + "id": "104dc90a-21ef-4d5e-8912-b30baabb152f", + "host": "redis", + "port": 6379, + "name": "redis:6379", + "db": 0, + "username": "default", + "password": null, + "connectionType": "STANDALONE", + "nameFromProvider": null, + "provider": "REDIS", + "lastConnection": "2025-10-16T09:22:02.591Z", + "modules": [ + { + "name": "ReJSON", + "version": 20808, + "semanticVersion": "2.8.8" + }, + { + "name": "search", + "version": 21015, + "semanticVersion": "2.10.15" + } + ], + "tls": false, + "tlsServername": null, + "verifyServerCert": null, + "caCert": null, + "clientCert": null, + "ssh": false, + "sshOptions": null, + "forceStandalone": false, + "tags": [] + } ] adminer-index.php: