mirror of
https://github.com/hanzoai/templates-blueprints.git
synced 2026-10-30 14:55:00 +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.
91 lines
2.4 KiB
YAML
91 lines
2.4 KiB
YAML
services:
|
|
directus:
|
|
image: directus/directus:12.1.1
|
|
ports:
|
|
- 8055
|
|
volumes:
|
|
- directus_uploads:/directus/uploads
|
|
- directus_extensions:/directus/extensions
|
|
depends_on:
|
|
database:
|
|
condition: service_healthy
|
|
cache:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget --spider -q http://127.0.0.1:8055/server/ping || exit 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_interval: 5s
|
|
start_period: 30s
|
|
environment:
|
|
SECRET: ${DIRECTUS_SECRET}
|
|
|
|
DB_CLIENT: "pg"
|
|
DB_HOST: "database"
|
|
DB_PORT: "5432"
|
|
DB_DATABASE: ${DB_NAME}
|
|
DB_USER: ${DB_USER}
|
|
DB_PASSWORD: ${DB_PASSWORD}
|
|
|
|
CACHE_ENABLED: "true"
|
|
CACHE_AUTO_PURGE: "true"
|
|
CACHE_STORE: "redis"
|
|
REDIS: "redis://cache:6379"
|
|
|
|
WEBSOCKETS_ENABLED: "true"
|
|
PUBLIC_URL: ${PUBLIC_URL}
|
|
LICENSE_KEY: ${LICENSE_KEY}
|
|
|
|
# After first successful login, remove ADMIN_EMAIL and ADMIN_PASSWORD below.
|
|
ADMIN_EMAIL: ${ADMIN_EMAIL}
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
|
|
|
|
STORAGE_LOCATIONS: "local"
|
|
STORAGE_LOCAL_DRIVER: "local"
|
|
STORAGE_LOCAL_ROOT: "/directus/uploads"
|
|
|
|
# S3-compatible storage — uncomment and set S3_* env vars in template.toml.
|
|
# STORAGE_LOCATIONS: "s3"
|
|
# STORAGE_S3_DRIVER: "s3"
|
|
# STORAGE_S3_KEY: ${S3_ACCESS_KEY}
|
|
# STORAGE_S3_SECRET: ${S3_SECRET_KEY}
|
|
# STORAGE_S3_BUCKET: ${S3_BUCKET}
|
|
# STORAGE_S3_REGION: ${S3_REGION}
|
|
# STORAGE_S3_ENDPOINT: ${S3_ENDPOINT}
|
|
# STORAGE_S3_ROOT: ${S3_ROOT}
|
|
# STORAGE_S3_FORCE_PATH_STYLE: ${S3_FORCE_PATH_STYLE}
|
|
# STORAGE_S3_ACL: "private"
|
|
|
|
database:
|
|
image: postgis/postgis:13-master
|
|
volumes:
|
|
- directus_database:/var/lib/postgresql/data
|
|
|
|
environment:
|
|
POSTGRES_USER: ${DB_USER}
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
POSTGRES_DB: ${DB_NAME}
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready --host=localhost --username=$$POSTGRES_USER"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_interval: 5s
|
|
start_period: 30s
|
|
|
|
cache:
|
|
image: redis:6
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "[ $$(redis-cli ping) = 'PONG' ]"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_interval: 5s
|
|
start_period: 30s
|
|
|
|
volumes:
|
|
directus_uploads:
|
|
directus_extensions:
|
|
directus_database:
|