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
3.9 KiB
YAML

services:
museum:
image: ghcr.io/ente-io/server:613c6a96390d7a624cf30b946955705d632423cc
environment:
- ENTE_DB_HOST=postgres
- ENTE_DB_PORT=5432
- ENTE_DB_NAME=${POSTGRES_DB:-ente_db}
- ENTE_DB_USER=${SERVICE_USER_POSTGRES}
- ENTE_DB_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- ENTE_HTTP_USE_TLS=${ENTE_HTTP_USE_TLS:-false}
- ENTE_S3_ARE_LOCAL_BUCKETS=false
- ENTE_S3_USE_PATH_STYLE_URLS=true
- ENTE_S3_B2_EU_CEN_KEY=${SERVICE_USER_MINIO}
- ENTE_S3_B2_EU_CEN_SECRET=${SERVICE_PASSWORD_MINIO}
- ENTE_S3_B2_EU_CEN_ENDPOINT=${SERVICE_FQDN_MINIO_9000}
- ENTE_S3_B2_EU_CEN_REGION=eu-central-2
- ENTE_S3_B2_EU_CEN_BUCKET=b2-eu-cen
- ENTE_KEY_ENCRYPTION=${SERVICE_REALBASE64_ENCRYPTION}
- ENTE_KEY_HASH=${SERVICE_REALBASE64_64_HASH}
- ENTE_JWT_SECRET=${SERVICE_REALBASE64_JWT}
- ENTE_INTERNAL_ADMIN=${ENTE_INTERNAL_ADMIN:-1580559962386438}
- ENTE_INTERNAL_DISABLE_REGISTRATION=${ENTE_INTERNAL_DISABLE_REGISTRATION:-false}
- ENTE_SMTP_HOST=${ENTE_SMTP_HOST:-smtp.gmail.com}
- ENTE_SMTP_PORT=${ENTE_SMTP_PORT:-587}
- ENTE_SMTP_USERNAME=${ENTE_SMTP_USERNAME}
- ENTE_SMTP_PASSWORD=${ENTE_SMTP_PASSWORD}
- ENTE_SMTP_EMAIL=${ENTE_SMTP_EMAIL}
- ENTE_SMTP_SENDER_NAME=${ENTE_SMTP_SENDER_NAME}
- ENTE_SMTP_ENCRYPTION=${ENTE_SMTP_ENCRYPTION:-tls}
volumes:
- museum-data:/data
- museum-config:/config
depends_on:
postgres:
condition: service_healthy
minio:
condition: service_started
healthcheck:
test:
- CMD
- wget
- --spider
- http://127.0.0.1:8080/ping
interval: 30s
timeout: 10s
retries: 3
web:
image: ghcr.io/ente-io/web:ca03165f5e7f2a50105e6e40019c17ae6cdd934f
environment:
- ENTE_API_ORIGIN=${SERVICE_URL_MUSEUM}
healthcheck:
test:
- CMD
- curl
- --fail
- http://localhost:3000
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
postgres:
image: postgres:15-alpine
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-ente_db}
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test:
- CMD-SHELL
- pg_isready -U ${SERVICE_USER_POSTGRES} -d ${POSTGRES_DB:-ente_db}
interval: 10s
timeout: 5s
retries: 5
minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z
command: server /data --console-address ":9001"
environment:
- MINIO_SERVER_URL=$MINIO_SERVER_URL
- MINIO_BROWSER_REDIRECT_URL=$MINIO_BROWSER_REDIRECT_URL
- MINIO_ROOT_USER=$SERVICE_USER_MINIO
- MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO
volumes:
- minio-data:/data
healthcheck:
test:
- CMD
- mc
- ready
- local
interval: 5s
timeout: 20s
retries: 10
minio-init:
image: minio/mc:RELEASE.2025-08-13T08-35-41Z
depends_on:
minio:
condition: service_started
restart: on-failure
exclude_from_hc: true
environment:
- MINIO_ROOT_USER=${SERVICE_USER_MINIO}
- MINIO_ROOT_PASSWORD=${SERVICE_PASSWORD_MINIO}
- MINIO_CORS_URLS=$SERVICE_URL_MUSEUM,$SERVICE_URL_WEB
entrypoint: |-
/bin/sh -c "
echo \"MINIO_CORS_URLS: \$${MINIO_CORS_URLS}\";
sleep 5;
until mc alias set minio http://minio:9000 \$${MINIO_ROOT_USER} \$${MINIO_ROOT_PASSWORD}; do
echo 'Waiting for MinIO...';
sleep 2;
done;
mc admin config set minio api cors_allow_origin='$MINIO_CORS_URLS' || true;
mc mb minio/b2-eu-cen --ignore-existing;
mc mb minio/wasabi-eu-central-2-v3 --ignore-existing;
mc mb minio/scw-eu-fr-v3 --ignore-existing;
echo 'MinIO buckets and CORS configured';
"