Files
zeekay cf4d0b027e templates.hanzo.ai: 1030-blueprint one-click deploy catalog
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.
2026-07-24 01:46:23 -07:00

120 lines
2.5 KiB
TOML

[variables]
# Generate unique domains for each service
api_domain = "${domain}"
dashboard_domain = "${domain}"
landing_domain = "${domain}"
wiki_domain = "${domain}"
minio_domain = "${domain}"
# Database credentials
postgres_password = "${password:32}"
# Security
jwt_secret = "${password:64}"
# Minio credentials
minio_root_user = "plunk"
minio_root_password = "${password:32}"
[config]
isolated = true
# API Domain
[[config.domains]]
serviceName = "plunk"
port = 80
host = "${api_domain}"
path = "/"
# Dashboard Domain
[[config.domains]]
serviceName = "plunk"
port = 80
host = "${dashboard_domain}"
path = "/"
# Landing Page Domain
[[config.domains]]
serviceName = "plunk"
port = 80
host = "${landing_domain}"
path = "/"
# Documentation Domain
[[config.domains]]
serviceName = "plunk"
port = 80
host = "${wiki_domain}"
path = "/"
# Minio Console Domain (optional)
[[config.domains]]
serviceName = "minio"
port = 9001
host = "${minio_domain}"
path = "/"
[config.env]
# Database
DB_PASSWORD = "${postgres_password}"
# Redis
REDIS_URL = "redis://redis:6379"
# Security
JWT_SECRET = "${jwt_secret}"
# Nginx configuration
NGINX_PORT = "80"
# Domain configuration (subdomain-based routing)
API_DOMAIN = "${api_domain}"
DASHBOARD_DOMAIN = "${dashboard_domain}"
LANDING_DOMAIN = "${landing_domain}"
WIKI_DOMAIN = "${wiki_domain}"
USE_HTTPS = "true"
# AWS SES (Required - users must configure these for email to work)
AWS_SES_REGION = "us-east-1"
AWS_SES_ACCESS_KEY_ID = "<your-aws-ses-access-key-id>"
AWS_SES_SECRET_ACCESS_KEY = "<your-aws-ses-secret-access-key>"
SES_CONFIGURATION_SET = "<your-ses-configuration-set>"
# S3-compatible storage (Minio)
MINIO_ROOT_USER = "${minio_root_user}"
MINIO_ROOT_PASSWORD = "${minio_root_password}"
S3_ENDPOINT = "http://minio:9000"
S3_ACCESS_KEY_ID = "${minio_root_user}"
S3_ACCESS_KEY_SECRET = "${minio_root_password}"
S3_BUCKET = "uploads"
S3_PUBLIC_URL = "https://${minio_domain}/uploads"
S3_FORCE_PATH_STYLE = "true"
# Minio ports
MINIO_API_PORT = "9000"
MINIO_CONSOLE_PORT = "9001"
# SMTP Server ports
PORT_SECURE = "465"
PORT_SUBMISSION = "587"
# Notifications (ntfy.sh)
NTFY_URL = "http://ntfy/plunk-notifications"
# Optional: OAuth (leave empty if not using)
GITHUB_OAUTH_CLIENT = ""
GITHUB_OAUTH_SECRET = ""
GOOGLE_OAUTH_CLIENT = ""
GOOGLE_OAUTH_SECRET = ""
# Optional: Stripe (leave empty if not using)
STRIPE_SK = ""
STRIPE_WEBHOOK_SECRET = ""
STRIPE_PRICE_ONBOARDING = ""
STRIPE_PRICE_EMAIL_USAGE = ""
STRIPE_METER_EVENT_NAME = "emails"
# Internal
PLUNK_API_KEY = ""
PLUNK_FROM_ADDRESS = ""
SMTP_DOMAIN = ""