From 355833ea32c6b33f19f3bf81f7ca8f1894280ca8 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:23:17 +0500 Subject: [PATCH 01/24] Create template.toml --- blueprints/keydb/template.toml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 blueprints/keydb/template.toml diff --git a/blueprints/keydb/template.toml b/blueprints/keydb/template.toml new file mode 100644 index 00000000..9905c300 --- /dev/null +++ b/blueprints/keydb/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" +keydb_password = "${password:16}" + +[config] +[[config.domains]] +serviceName = "keydb" +port = 6379 +host = "${main_domain}" + +[config.env] +KEYDB_PASSWORD = "${keydb_password}" From 7de03e424693e48a7ee76bba55823c8173738a75 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:23:55 +0500 Subject: [PATCH 02/24] Create docker-compose.yml --- blueprints/keydb/docker-compose.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 blueprints/keydb/docker-compose.yml diff --git a/blueprints/keydb/docker-compose.yml b/blueprints/keydb/docker-compose.yml new file mode 100644 index 00000000..2519c36c --- /dev/null +++ b/blueprints/keydb/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.8" +services: + keydb: + image: eqalpha/keydb:latest + restart: unless-stopped + ports: + - 6379 + command: keydb-server /etc/keydb/keydb.conf --server-threads 2 --requirepass ${KEYDB_PASSWORD} + volumes: + - keydb-data:/data + +volumes: + keydb-data: {} From 644cdfcb772f3d55422fd8105a7da9976d2b44d8 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:28:29 +0500 Subject: [PATCH 03/24] Update meta.json --- meta.json | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/meta.json b/meta.json index 3ae0cb5e..1a3cf69d 100644 --- a/meta.json +++ b/meta.json @@ -6779,5 +6779,23 @@ "saml", "multi-tenant" ] - } + }, + { + "id": "keydb", + "name": "KeyDB", + "version": "latest", + "description": "KeyDB is a high-performance fork of Redis with multithreading, active replication, and flash storage support.", + "logo": "keydb.png", + "links": { + "github": "https://github.com/Snapchat/KeyDB", + "website": "https://docs.keydb.dev/", + "docs": "https://docs.keydb.dev/docs/" + }, + "tags": [ + "database", + "cache", + "redis", + "key-value" + ] +} ] From a06feb6a9949ccaed82f8bfea626011617cd9ac9 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:34:00 +0500 Subject: [PATCH 04/24] Create template.toml --- blueprints/victoriametrics/template.toml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 blueprints/victoriametrics/template.toml diff --git a/blueprints/victoriametrics/template.toml b/blueprints/victoriametrics/template.toml new file mode 100644 index 00000000..3cad0bd4 --- /dev/null +++ b/blueprints/victoriametrics/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" +retention_period = "90d" + +[config] +[[config.domains]] +serviceName = "victoriametrics" +port = 8428 +host = "${main_domain}" + +[config.env] +RETENTION_PERIOD = "${retention_period}" From e97aec01962a5c0886a5cde3f26bb9d4326e7fe0 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:34:27 +0500 Subject: [PATCH 05/24] Create docker-compose.yml --- blueprints/victoriametrics/docker-compose.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 blueprints/victoriametrics/docker-compose.yml diff --git a/blueprints/victoriametrics/docker-compose.yml b/blueprints/victoriametrics/docker-compose.yml new file mode 100644 index 00000000..22c90e90 --- /dev/null +++ b/blueprints/victoriametrics/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.8" +services: + victoriametrics: + image: victoriametrics/victoria-metrics:v1.108.1 + restart: unless-stopped + ports: + - 8428 + command: + - "--storageDataPath=/storage" + - "--retentionPeriod=${RETENTION_PERIOD}" + - "--httpListenAddr=:8428" + volumes: + - vm-data:/storage + +volumes: + vm-data: {} From 71ea46881f74d4f314bd5dc177588684af72851c Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:39:18 +0500 Subject: [PATCH 06/24] Update meta.json --- meta.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/meta.json b/meta.json index 1a3cf69d..ed50d782 100644 --- a/meta.json +++ b/meta.json @@ -6797,5 +6797,23 @@ "redis", "key-value" ] +}, +{ + "id": "victoriametrics", + "name": "VictoriaMetrics", + "version": "v1.108.1", + "description": "VictoriaMetrics is a fast, cost-effective, and scalable monitoring solution and time series database. It is a drop-in replacement for Prometheus.", + "logo": "victoriametrics.png", + "links": { + "github": "https://github.com/VictoriaMetrics/VictoriaMetrics", + "website": "https://victoriametrics.com/", + "docs": "https://docs.victoriametrics.com/" + }, + "tags": [ + "monitoring", + "metrics", + "time-series", + "prometheus" + ] } ] From 377009a5fa5aaaa8abb20893b737ac207715cb91 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:42:10 +0500 Subject: [PATCH 07/24] Create template.toml --- blueprints/gel/template.toml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 blueprints/gel/template.toml diff --git a/blueprints/gel/template.toml b/blueprints/gel/template.toml new file mode 100644 index 00000000..2861e762 --- /dev/null +++ b/blueprints/gel/template.toml @@ -0,0 +1,16 @@ +version: "3.8" +services: + gel: + image: geldata/gel:6 + restart: unless-stopped + ports: + - 5656 + environment: + - GEL_SERVER_SECURITY=${GEL_SERVER_SECURITY} + - GEL_SERVER_PASSWORD=${GEL_SERVER_PASSWORD} + - GEL_SERVER_TLS_CERT_MODE=generate_self_signed + volumes: + - gel-data:/var/lib/gel/data + +volumes: + gel-data: {} From 525220a0b4b5333b1bf9d6a963ca6d6ce41de9bf Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:42:55 +0500 Subject: [PATCH 08/24] Create docker-compose.yml --- blueprints/gel/docker-compose.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 blueprints/gel/docker-compose.yml diff --git a/blueprints/gel/docker-compose.yml b/blueprints/gel/docker-compose.yml new file mode 100644 index 00000000..2861e762 --- /dev/null +++ b/blueprints/gel/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.8" +services: + gel: + image: geldata/gel:6 + restart: unless-stopped + ports: + - 5656 + environment: + - GEL_SERVER_SECURITY=${GEL_SERVER_SECURITY} + - GEL_SERVER_PASSWORD=${GEL_SERVER_PASSWORD} + - GEL_SERVER_TLS_CERT_MODE=generate_self_signed + volumes: + - gel-data:/var/lib/gel/data + +volumes: + gel-data: {} From b7985463d85452a6e979a57a5fbb677b14fe6d45 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:43:13 +0500 Subject: [PATCH 09/24] Update template.toml --- blueprints/gel/template.toml | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/blueprints/gel/template.toml b/blueprints/gel/template.toml index 2861e762..6a8f65fb 100644 --- a/blueprints/gel/template.toml +++ b/blueprints/gel/template.toml @@ -1,16 +1,14 @@ -version: "3.8" -services: - gel: - image: geldata/gel:6 - restart: unless-stopped - ports: - - 5656 - environment: - - GEL_SERVER_SECURITY=${GEL_SERVER_SECURITY} - - GEL_SERVER_PASSWORD=${GEL_SERVER_PASSWORD} - - GEL_SERVER_TLS_CERT_MODE=generate_self_signed - volumes: - - gel-data:/var/lib/gel/data +[variables] +main_domain = "${domain}" +gel_password = "${password:24}" +gel_security = "strict" -volumes: - gel-data: {} +[config] +[[config.domains]] +serviceName = "gel" +port = 5656 +host = "${main_domain}" + +[config.env] +GEL_SERVER_PASSWORD = "${gel_password}" +GEL_SERVER_SECURITY = "${gel_security}" From a0abb8fcfee17593737e6f43a80b9b11a1ac6bc9 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:44:27 +0500 Subject: [PATCH 10/24] Update meta.json --- meta.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/meta.json b/meta.json index ed50d782..76684062 100644 --- a/meta.json +++ b/meta.json @@ -6815,5 +6815,23 @@ "time-series", "prometheus" ] +}, + { + "id": "gel", + "name": "Gel", + "version": "6", + "description": "Gel is a next-generation graph-relational database (formerly EdgeDB) with a built-in migration system, expressive query language, and first-class TypeScript/Python support.", + "logo": "gel.png", + "links": { + "github": "https://github.com/geldata/gel", + "website": "https://www.geldata.com/", + "docs": "https://docs.geldata.com/" + }, + "tags": [ + "database", + "graph-database", + "edgedb", + "typescript" + ] } ] From 930a4ef6d8a1ad5992e51132c137519d02730a9c Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Mon, 4 May 2026 21:52:29 -0400 Subject: [PATCH 11/24] Add files via upload --- blueprints/keydb/keydb.png | Bin 0 -> 1539 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 blueprints/keydb/keydb.png diff --git a/blueprints/keydb/keydb.png b/blueprints/keydb/keydb.png new file mode 100644 index 0000000000000000000000000000000000000000..ab538704a8a1262467adbb2f0fd57840c26cbd44 GIT binary patch literal 1539 zcmeAS@N?(olHy`uVBq!ia0y~yU|a&i985rwk9xeEE}1Hj_`R1SSvWb zX`nG@+e^kdC!T+uH}6C3_vgt~Ov@i^qMzmT@+7)FJJxPpX3p^DTq?UthwKD}GKZ!c zjGRfsjB`6N{@0#+?X}(UyY1yK3-3F*dUs25+}zW2N?7P&PM6d?GAwP$tzvlosdDdf z^#gi&*=t|&hA-vr*#U}Vy_5Mm!!gTe~DWM4fmGbo> literal 0 HcmV?d00001 From 79754e3cb4f7eccc7a3d589821254002908b9ca8 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Mon, 4 May 2026 21:53:08 -0400 Subject: [PATCH 12/24] Add files via upload --- blueprints/victoriametrics/victoriametrics.png | Bin 0 -> 4595 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 blueprints/victoriametrics/victoriametrics.png diff --git a/blueprints/victoriametrics/victoriametrics.png b/blueprints/victoriametrics/victoriametrics.png new file mode 100644 index 0000000000000000000000000000000000000000..bf9f8e33df0ceaa1d3114612fa4e0859b2708b7a GIT binary patch literal 4595 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 DYdMIW literal 0 HcmV?d00001 From 4c49e4362ad6841d45c4edd6c1f4ea596baac697 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Mon, 4 May 2026 21:53:35 -0400 Subject: [PATCH 13/24] Add files via upload --- blueprints/gel/gel.png | Bin 0 -> 5886 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 blueprints/gel/gel.png diff --git a/blueprints/gel/gel.png b/blueprints/gel/gel.png new file mode 100644 index 0000000000000000000000000000000000000000..8a0144267998685d6d63e7a959d17e7c5141d9a3 GIT binary patch literal 5886 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 z z22uXPGuWjEAk2p83anG&y`lMk{?$HOKEJY`p0cVms(r_>&z~JMH6^fOjr{wN{{gEu BQAYp( literal 0 HcmV?d00001 From 756ebc7f31496022f35d559664f91d968db66194 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 15:12:39 +0500 Subject: [PATCH 14/24] Create template.toml --- blueprints/matomo/template.toml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 blueprints/matomo/template.toml diff --git a/blueprints/matomo/template.toml b/blueprints/matomo/template.toml new file mode 100644 index 00000000..cd432fe4 --- /dev/null +++ b/blueprints/matomo/template.toml @@ -0,0 +1,18 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" +db_root_password = "${password:16}" +db_user = "matomo" +db_name = "matomo" + +[config] +[[config.domains]] +serviceName = "matomo" +port = 80 +host = "${main_domain}" + +[config.env] +MATOMO_DB_USER = "${db_user}" +MATOMO_DB_PASSWORD = "${db_password}" +MATOMO_DB_NAME = "${db_name}" +MYSQL_ROOT_PASSWORD = "${db_root_password}" From 4e52a303ba5ff8b116644063dacfd352c179fedc Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 15:14:07 +0500 Subject: [PATCH 15/24] Create docker-compose.yml --- blueprints/matomo/docker-compose.yml | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 blueprints/matomo/docker-compose.yml diff --git a/blueprints/matomo/docker-compose.yml b/blueprints/matomo/docker-compose.yml new file mode 100644 index 00000000..65e11717 --- /dev/null +++ b/blueprints/matomo/docker-compose.yml @@ -0,0 +1,34 @@ +version: "3.8" +services: + matomo: + image: matomo:5-apache + restart: unless-stopped + ports: + - 80 + environment: + - MATOMO_DATABASE_HOST=db + - MATOMO_DATABASE_ADAPTER=mysql + - MATOMO_DATABASE_TABLES_PREFIX=matomo_ + - MATOMO_DATABASE_USERNAME=${MATOMO_DB_USER} + - MATOMO_DATABASE_PASSWORD=${MATOMO_DB_PASSWORD} + - MATOMO_DATABASE_DBNAME=${MATOMO_DB_NAME} + volumes: + - matomo-data:/var/www/html + depends_on: + - db + + db: + image: mariadb:11 + restart: unless-stopped + command: --max-allowed-packet=64MB + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MATOMO_DB_NAME} + - MYSQL_USER=${MATOMO_DB_USER} + - MYSQL_PASSWORD=${MATOMO_DB_PASSWORD} + volumes: + - db-data:/var/lib/mysql + +volumes: + matomo-data: {} + db-data: {} From 98699c61788f1436a1053e6264d67d03521dfb78 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 15:16:31 +0500 Subject: [PATCH 16/24] Create template.toml --- blueprints/flarum/template.toml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 blueprints/flarum/template.toml diff --git a/blueprints/flarum/template.toml b/blueprints/flarum/template.toml new file mode 100644 index 00000000..541dbd07 --- /dev/null +++ b/blueprints/flarum/template.toml @@ -0,0 +1,19 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" +db_root_password = "${password:16}" +db_user = "flarum" +db_name = "flarum" + +[config] +[[config.domains]] +serviceName = "flarum" +port = 8000 +host = "${main_domain}" + +[config.env] +FLARUM_DOMAIN = "${main_domain}" +DB_NAME = "${db_name}" +DB_USER = "${db_user}" +DB_PASSWORD = "${db_password}" +MYSQL_ROOT_PASSWORD = "${db_root_password}" From 2fceaafddac4165d63073c2457b7e1e3c60db2e3 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 15:17:04 +0500 Subject: [PATCH 17/24] Create docker-compose.yml --- blueprints/flarum/docker-compose.yml | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 blueprints/flarum/docker-compose.yml diff --git a/blueprints/flarum/docker-compose.yml b/blueprints/flarum/docker-compose.yml new file mode 100644 index 00000000..62595ec9 --- /dev/null +++ b/blueprints/flarum/docker-compose.yml @@ -0,0 +1,32 @@ +version: "3.8" +services: + flarum: + image: crazymax/flarum:latest + restart: unless-stopped + ports: + - 8000 + environment: + - FLARUM_BASE_URL=https://${FLARUM_DOMAIN} + - DB_HOST=db + - DB_NAME=${DB_NAME} + - DB_USER=${DB_USER} + - DB_PASSWORD=${DB_PASSWORD} + volumes: + - flarum-data:/data + depends_on: + - db + + db: + image: mariadb:11 + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${DB_NAME} + - MYSQL_USER=${DB_USER} + - MYSQL_PASSWORD=${DB_PASSWORD} + volumes: + - db-data:/var/lib/mysql + +volumes: + flarum-data: {} + db-data: {} From a1b9db513a1ca83c5d30d373ce6e5be9fe0c20bd Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 15:18:38 +0500 Subject: [PATCH 18/24] Create template.toml --- blueprints/leantime/template.toml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 blueprints/leantime/template.toml diff --git a/blueprints/leantime/template.toml b/blueprints/leantime/template.toml new file mode 100644 index 00000000..93150ab2 --- /dev/null +++ b/blueprints/leantime/template.toml @@ -0,0 +1,18 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" +db_root_password = "${password:16}" +db_user = "leantime" +db_name = "leantime" + +[config] +[[config.domains]] +serviceName = "leantime" +port = 80 +host = "${main_domain}" + +[config.env] +LEAN_DB_USER = "${db_user}" +LEAN_DB_PASSWORD = "${db_password}" +LEAN_DB_DATABASE = "${db_name}" +MYSQL_ROOT_PASSWORD = "${db_root_password}" From 3f0ffc02439df3b81a638ee91f089b748dde6229 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 15:19:06 +0500 Subject: [PATCH 19/24] Create docker-compose.yml --- blueprints/leantime/docker-compose.yml | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 blueprints/leantime/docker-compose.yml diff --git a/blueprints/leantime/docker-compose.yml b/blueprints/leantime/docker-compose.yml new file mode 100644 index 00000000..85776ddb --- /dev/null +++ b/blueprints/leantime/docker-compose.yml @@ -0,0 +1,34 @@ +version: "3.8" +services: + leantime: + image: leantime/leantime:latest + restart: unless-stopped + ports: + - 80 + environment: + - LEAN_DB_HOST=db + - LEAN_DB_USER=${LEAN_DB_USER} + - LEAN_DB_PASSWORD=${LEAN_DB_PASSWORD} + - LEAN_DB_DATABASE=${LEAN_DB_DATABASE} + volumes: + - leantime-files:/var/www/html/userfiles + - leantime-public:/var/www/html/public/userfiles + depends_on: + - db + + db: + image: mariadb:11 + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${LEAN_DB_DATABASE} + - MYSQL_USER=${LEAN_DB_USER} + - MYSQL_PASSWORD=${LEAN_DB_PASSWORD} + command: --character-set-server=utf8 --collation-server=utf8_unicode_ci + volumes: + - db-data:/var/lib/mysql + +volumes: + leantime-files: {} + leantime-public: {} + db-data: {} From 49de63093fd9b50c271356994308923bd46456a6 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 15:23:46 +0500 Subject: [PATCH 20/24] Update meta.json --- meta.json | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/meta.json b/meta.json index 76684062..a147efc2 100644 --- a/meta.json +++ b/meta.json @@ -6833,5 +6833,58 @@ "edgedb", "typescript" ] +}, + { + "id": "matomo", + "name": "Matomo", + "version": "5", + "description": "Matomo is the leading open-source web analytics platform that gives you full ownership of your data. A privacy-focused alternative to Google Analytics.", + "logo": "matomo.png", + "links": { + "github": "https://github.com/matomo-org/matomo", + "website": "https://matomo.org/", + "docs": "https://matomo.org/guides/" + }, + "tags": [ + "analytics", + "privacy", + "self-hosted" + ] +}, +{ + "id": "flarum", + "name": "Flarum", + "version": "latest", + "description": "Flarum is a delightfully simple, modern forum software. It is fast, free, and easy to use with a clean and extensible architecture.", + "logo": "flarum.png", + "links": { + "github": "https://github.com/flarum/flarum", + "website": "https://flarum.org/", + "docs": "https://docs.flarum.org/" + }, + "tags": [ + "forum", + "community", + "discussion", + "php" + ] +}, +{ + "id": "leantime", + "name": "Leantime", + "version": "latest", + "description": "Leantime is an open-source project management system for small teams and startups, built with PHP and MySQL.", + "logo": "leantime.png", + "links": { + "github": "https://github.com/Leantime/leantime", + "website": "https://leantime.io/", + "docs": "https://docs.leantime.io/" + }, + "tags": [ + "project-management", + "productivity", + "self-hosted", + "php" + ] } ] From 84df565923ff65365c9b9ebf222a9ac34c4a9e2b Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:35:17 -0400 Subject: [PATCH 21/24] Add files via upload --- blueprints/matomo/matomo.png | Bin 0 -> 1543 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 blueprints/matomo/matomo.png diff --git a/blueprints/matomo/matomo.png b/blueprints/matomo/matomo.png new file mode 100644 index 0000000000000000000000000000000000000000..6efce01e88c1ef397af6d1332f11287a56236e3f GIT binary patch literal 1543 zcmeAS@N?(olHy`uVBq!ia0y~yU|a&i985rwk9xDDk8I6rwn=fo{Wb61z%= z>;&3!4jEM+urITT->kmp{;qr=Ir)A^yq>j!#e*s~$#+og{+vEQzxUaOsL+bH&bv3>DP z`Xn@jBWRnTvDu@unY}>y^}e(77}5(zfOlzLXkZItI$HWcBKgcch61bUv@RSG{`?@! c!0`Y7-x}G2+cJWifCW5*r>mdKI;Vst0M$kB(f|Me literal 0 HcmV?d00001 From cc2b18a85acc724bf52de70152d001f553cad684 Mon Sep 17 00:00:00 2001 From: ZeroWing-Automator Date: Tue, 5 May 2026 06:35:55 -0400 Subject: [PATCH 22/24] Add files via upload --- blueprints/flarum/flarum.png | Bin 0 -> 15980 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 blueprints/flarum/flarum.png diff --git a/blueprints/flarum/flarum.png b/blueprints/flarum/flarum.png new file mode 100644 index 0000000000000000000000000000000000000000..2c273b2aa42411690595d42d49fe4e9b1cf868fb GIT binary patch literal 15980 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 Date: Tue, 5 May 2026 06:36:21 -0400 Subject: [PATCH 23/24] Add files via upload --- blueprints/leantime/leantime.png | Bin 0 -> 1542 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 blueprints/leantime/leantime.png diff --git a/blueprints/leantime/leantime.png b/blueprints/leantime/leantime.png new file mode 100644 index 0000000000000000000000000000000000000000..d1bcb447f588fa0a7031d6e9adc376211c43f9fe GIT binary patch literal 1542 zcmeAS@N?(olHy`uVBq!ia0y~yU|a&i985rwk9xE9ET_kC!Pvw6VHth{hHmq&EllX=Mv^%Hl_j65dspTX|#|C`JV>lDfynr<+1Cb6q@ z$W9pLP#Ok0(`#Se={vozbmsGY=jJ(d7k@D_w^nd`)4;NkS?CC#hrsaTB+j&Lkha{O z{H^8w_dC~b3h!uro%GzC-Tt}E-ZREx!_mjk=#)$DxhZ|`>Q33s>H%LsKEHR#sG8yX zr$qLX@k literal 0 HcmV?d00001 From d6bf8ac34c2acfeb32cb12a411f47454a7b74430 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Wed, 8 Jul 2026 03:03:58 -0600 Subject: [PATCH 24/24] =?UTF-8?q?fix:=20gel=20HTTP=20endpoint=20+=20admin?= =?UTF-8?q?=20UI,=20keydb=20as=20headless=20DB,=20leantime=20port/env;=20d?= =?UTF-8?q?rop=20matomo=20=E2=80=94=20superseded=20by=20#765?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - gel: allow plain HTTP for the reverse proxy (GEL_SERVER_HTTP_ENDPOINT_SECURITY=optional), enable admin UI and point the domain at /ui - keydb: remove HTTP domain and published port — pure Redis-protocol DB reachable via internal network - leantime: image serves on 8080 (non-root nginx), add required LEAN_APP_URL and LEAN_SESSION_PASSWORD, use utf8mb4 - matomo: removed from this PR, already fixed in #765 Co-Authored-By: Claude Fable 5 --- blueprints/gel/docker-compose.yml | 2 ++ blueprints/gel/template.toml | 1 + blueprints/keydb/docker-compose.yml | 2 -- blueprints/keydb/template.toml | 6 ----- blueprints/leantime/docker-compose.yml | 6 +++-- blueprints/leantime/template.toml | 5 +++- blueprints/matomo/docker-compose.yml | 34 ------------------------- blueprints/matomo/matomo.png | Bin 1543 -> 0 bytes blueprints/matomo/meta.json | 17 ------------- blueprints/matomo/template.toml | 18 ------------- 10 files changed, 11 insertions(+), 80 deletions(-) delete mode 100644 blueprints/matomo/docker-compose.yml delete mode 100644 blueprints/matomo/matomo.png delete mode 100644 blueprints/matomo/meta.json delete mode 100644 blueprints/matomo/template.toml diff --git a/blueprints/gel/docker-compose.yml b/blueprints/gel/docker-compose.yml index 2861e762..24890911 100644 --- a/blueprints/gel/docker-compose.yml +++ b/blueprints/gel/docker-compose.yml @@ -9,6 +9,8 @@ services: - GEL_SERVER_SECURITY=${GEL_SERVER_SECURITY} - GEL_SERVER_PASSWORD=${GEL_SERVER_PASSWORD} - GEL_SERVER_TLS_CERT_MODE=generate_self_signed + - GEL_SERVER_HTTP_ENDPOINT_SECURITY=optional + - GEL_SERVER_ADMIN_UI=enabled volumes: - gel-data:/var/lib/gel/data diff --git a/blueprints/gel/template.toml b/blueprints/gel/template.toml index 6a8f65fb..fc06305a 100644 --- a/blueprints/gel/template.toml +++ b/blueprints/gel/template.toml @@ -8,6 +8,7 @@ gel_security = "strict" serviceName = "gel" port = 5656 host = "${main_domain}" +path = "/ui" [config.env] GEL_SERVER_PASSWORD = "${gel_password}" diff --git a/blueprints/keydb/docker-compose.yml b/blueprints/keydb/docker-compose.yml index 2519c36c..031b4592 100644 --- a/blueprints/keydb/docker-compose.yml +++ b/blueprints/keydb/docker-compose.yml @@ -3,8 +3,6 @@ services: keydb: image: eqalpha/keydb:latest restart: unless-stopped - ports: - - 6379 command: keydb-server /etc/keydb/keydb.conf --server-threads 2 --requirepass ${KEYDB_PASSWORD} volumes: - keydb-data:/data diff --git a/blueprints/keydb/template.toml b/blueprints/keydb/template.toml index 9905c300..014ef47d 100644 --- a/blueprints/keydb/template.toml +++ b/blueprints/keydb/template.toml @@ -1,12 +1,6 @@ [variables] -main_domain = "${domain}" keydb_password = "${password:16}" [config] -[[config.domains]] -serviceName = "keydb" -port = 6379 -host = "${main_domain}" - [config.env] KEYDB_PASSWORD = "${keydb_password}" diff --git a/blueprints/leantime/docker-compose.yml b/blueprints/leantime/docker-compose.yml index 85776ddb..813748b5 100644 --- a/blueprints/leantime/docker-compose.yml +++ b/blueprints/leantime/docker-compose.yml @@ -4,8 +4,10 @@ services: image: leantime/leantime:latest restart: unless-stopped ports: - - 80 + - 8080 environment: + - LEAN_APP_URL=${LEAN_APP_URL} + - LEAN_SESSION_PASSWORD=${LEAN_SESSION_PASSWORD} - LEAN_DB_HOST=db - LEAN_DB_USER=${LEAN_DB_USER} - LEAN_DB_PASSWORD=${LEAN_DB_PASSWORD} @@ -24,7 +26,7 @@ services: - MYSQL_DATABASE=${LEAN_DB_DATABASE} - MYSQL_USER=${LEAN_DB_USER} - MYSQL_PASSWORD=${LEAN_DB_PASSWORD} - command: --character-set-server=utf8 --collation-server=utf8_unicode_ci + command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci volumes: - db-data:/var/lib/mysql diff --git a/blueprints/leantime/template.toml b/blueprints/leantime/template.toml index 93150ab2..3b5c26af 100644 --- a/blueprints/leantime/template.toml +++ b/blueprints/leantime/template.toml @@ -4,14 +4,17 @@ db_password = "${password:16}" db_root_password = "${password:16}" db_user = "leantime" db_name = "leantime" +session_password = "${password:32}" [config] [[config.domains]] serviceName = "leantime" -port = 80 +port = 8080 host = "${main_domain}" [config.env] +LEAN_APP_URL = "http://${main_domain}" +LEAN_SESSION_PASSWORD = "${session_password}" LEAN_DB_USER = "${db_user}" LEAN_DB_PASSWORD = "${db_password}" LEAN_DB_DATABASE = "${db_name}" diff --git a/blueprints/matomo/docker-compose.yml b/blueprints/matomo/docker-compose.yml deleted file mode 100644 index 65e11717..00000000 --- a/blueprints/matomo/docker-compose.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: "3.8" -services: - matomo: - image: matomo:5-apache - restart: unless-stopped - ports: - - 80 - environment: - - MATOMO_DATABASE_HOST=db - - MATOMO_DATABASE_ADAPTER=mysql - - MATOMO_DATABASE_TABLES_PREFIX=matomo_ - - MATOMO_DATABASE_USERNAME=${MATOMO_DB_USER} - - MATOMO_DATABASE_PASSWORD=${MATOMO_DB_PASSWORD} - - MATOMO_DATABASE_DBNAME=${MATOMO_DB_NAME} - volumes: - - matomo-data:/var/www/html - depends_on: - - db - - db: - image: mariadb:11 - restart: unless-stopped - command: --max-allowed-packet=64MB - environment: - - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - - MYSQL_DATABASE=${MATOMO_DB_NAME} - - MYSQL_USER=${MATOMO_DB_USER} - - MYSQL_PASSWORD=${MATOMO_DB_PASSWORD} - volumes: - - db-data:/var/lib/mysql - -volumes: - matomo-data: {} - db-data: {} diff --git a/blueprints/matomo/matomo.png b/blueprints/matomo/matomo.png deleted file mode 100644 index 6efce01e88c1ef397af6d1332f11287a56236e3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1543 zcmeAS@N?(olHy`uVBq!ia0y~yU|a&i985rwk9xDDk8I6rwn=fo{Wb61z%= z>;&3!4jEM+urITT->kmp{;qr=Ir)A^yq>j!#e*s~$#+og{+vEQzxUaOsL+bH&bv3>DP z`Xn@jBWRnTvDu@unY}>y^}e(77}5(zfOlzLXkZItI$HWcBKgcch61bUv@RSG{`?@! c!0`Y7-x}G2+cJWifCW5*r>mdKI;Vst0M$kB(f|Me diff --git a/blueprints/matomo/meta.json b/blueprints/matomo/meta.json deleted file mode 100644 index 0b94cfe5..00000000 --- a/blueprints/matomo/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id": "matomo", - "name": "Matomo", - "version": "5", - "description": "Matomo is the leading open-source web analytics platform that gives you full ownership of your data. A privacy-focused alternative to Google Analytics.", - "logo": "matomo.png", - "links": { - "github": "https://github.com/matomo-org/matomo", - "website": "https://matomo.org/", - "docs": "https://matomo.org/guides/" - }, - "tags": [ - "analytics", - "privacy", - "self-hosted" - ] -} diff --git a/blueprints/matomo/template.toml b/blueprints/matomo/template.toml deleted file mode 100644 index cd432fe4..00000000 --- a/blueprints/matomo/template.toml +++ /dev/null @@ -1,18 +0,0 @@ -[variables] -main_domain = "${domain}" -db_password = "${password:16}" -db_root_password = "${password:16}" -db_user = "matomo" -db_name = "matomo" - -[config] -[[config.domains]] -serviceName = "matomo" -port = 80 -host = "${main_domain}" - -[config.env] -MATOMO_DB_USER = "${db_user}" -MATOMO_DB_PASSWORD = "${db_password}" -MATOMO_DB_NAME = "${db_name}" -MYSQL_ROOT_PASSWORD = "${db_root_password}"