Merge pull request #850 from ZeroWing-Automator/canary

feat: add 6 new templates (KeyDB, VictoriaMetrics, Gel, Matomo, Flarum, Leantime)
This commit is contained in:
Mauricio Siu
2026-07-08 10:49:07 -06:00
committed by GitHub
20 changed files with 276 additions and 0 deletions

View File

@@ -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: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,18 @@
{
"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"
]
}

View File

@@ -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}"

View File

@@ -0,0 +1,18 @@
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
- GEL_SERVER_HTTP_ENDPOINT_SECURITY=optional
- GEL_SERVER_ADMIN_UI=enabled
volumes:
- gel-data:/var/lib/gel/data
volumes:
gel-data: {}

BIN
blueprints/gel/gel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

18
blueprints/gel/meta.json Normal file
View File

@@ -0,0 +1,18 @@
{
"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"
]
}

View File

@@ -0,0 +1,15 @@
[variables]
main_domain = "${domain}"
gel_password = "${password:24}"
gel_security = "strict"
[config]
[[config.domains]]
serviceName = "gel"
port = 5656
host = "${main_domain}"
path = "/ui"
[config.env]
GEL_SERVER_PASSWORD = "${gel_password}"
GEL_SERVER_SECURITY = "${gel_security}"

View File

@@ -0,0 +1,11 @@
version: "3.8"
services:
keydb:
image: eqalpha/keydb:latest
restart: unless-stopped
command: keydb-server /etc/keydb/keydb.conf --server-threads 2 --requirepass ${KEYDB_PASSWORD}
volumes:
- keydb-data:/data
volumes:
keydb-data: {}

BIN
blueprints/keydb/keydb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,18 @@
{
"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"
]
}

View File

@@ -0,0 +1,6 @@
[variables]
keydb_password = "${password:16}"
[config]
[config.env]
KEYDB_PASSWORD = "${keydb_password}"

View File

@@ -0,0 +1,36 @@
version: "3.8"
services:
leantime:
image: leantime/leantime:latest
restart: unless-stopped
ports:
- 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}
- 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=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- db-data:/var/lib/mysql
volumes:
leantime-files: {}
leantime-public: {}
db-data: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,18 @@
{
"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"
]
}

View File

@@ -0,0 +1,21 @@
[variables]
main_domain = "${domain}"
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 = 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}"
MYSQL_ROOT_PASSWORD = "${db_root_password}"

View File

@@ -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: {}

View File

@@ -0,0 +1,18 @@
{
"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"
]
}

View File

@@ -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}"

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB