mirror of
https://github.com/hanzo-apps/templates.git
synced 2026-10-30 14:48:30 +00:00
Aggregates five OSS one-click/self-hosting catalogs into the Dokploy blueprint
shape the Hanzo PaaS consumes (meta.json array + blueprints/<id>/{template.toml,
docker-compose.yml,meta.json,logo}):
Dokploy 500 (MIT, verbatim) · Coolify 174 (Apache-2.0) · CapRover 161
(Apache-2.0) · CasaOS 85 (Apache-2.0) · Runtipi 110 (GPL-3.0)
Deduped by app identity; each source + app keeps its upstream license
(ATTRIBUTION.md). Deterministic aggregators + a hard validator (every
template.toml parses with the platform's toml lib, every compose parses as YAML,
meta.json is the expected array, and an over-HTTP fetch probe exercises all
1030) — 0 hard failures. Served natively by hanzoai/static on DOKS (no CDN/Pages/
Vercel); CI builds on the hanzo-build-linux-amd64 arc pool; operator App CR in
crs/ serves it at templates.hanzo.ai.
107 lines
3.0 KiB
TOML
107 lines
3.0 KiB
TOML
[variables]
|
|
main_domain = "${domain}"
|
|
huly_secret = "${base64:64}"
|
|
|
|
[config]
|
|
env = [
|
|
"HULY_VERSION=v0.6.468",
|
|
"DOCKER_NAME=huly",
|
|
"HOST_ADDRESS=${main_domain}",
|
|
"SECURE=",
|
|
"HTTP_PORT=80",
|
|
"HTTP_BIND=",
|
|
"TITLE=Huly",
|
|
"DEFAULT_LANGUAGE=en",
|
|
"LAST_NAME_FIRST=true",
|
|
"SECRET=${huly_secret}",
|
|
]
|
|
|
|
[[config.domains]]
|
|
serviceName = "nginx"
|
|
port = 80
|
|
host = "${main_domain}"
|
|
|
|
[[config.mounts]]
|
|
filePath = "/volumes/nginx/.huly.nginx"
|
|
content = """
|
|
server {
|
|
listen 80;
|
|
server_name _;
|
|
location / {
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_pass http://front:8080;
|
|
}
|
|
|
|
location /_accounts {
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
rewrite ^/_accounts(/.*)$ $1 break;
|
|
proxy_pass http://account:3000/;
|
|
}
|
|
|
|
location /_collaborator {
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
rewrite ^/_collaborator(/.*)$ $1 break;
|
|
proxy_pass http://collaborator:3078/;
|
|
}
|
|
|
|
location /_transactor {
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
rewrite ^/_transactor(/.*)$ $1 break;
|
|
proxy_pass http://transactor:3333/;
|
|
}
|
|
|
|
location ~ ^/eyJ {
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
proxy_pass http://transactor:3333;
|
|
}
|
|
|
|
location /_rekoni {
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
rewrite ^/_rekoni(/.*)$ $1 break;
|
|
proxy_pass http://rekoni:4004/;
|
|
}
|
|
|
|
location /_stats {
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
rewrite ^/_stats(/.*)$ $1 break;
|
|
proxy_pass http://stats:4900/;
|
|
}
|
|
}
|
|
"""
|