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

88 lines
2.5 KiB
YAML

services:
affine:
image: ghcr.io/toeverything/affine:stable
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
volumes:
- affine-config:/root/.affine/config
- affine-storage:/root/.affine/storage
logging:
driver: json-file
options:
max-size: 1000m
environment:
- AFFINE_CONFIG_PATH=/root/.affine/config
- REDIS_SERVER_HOST=redis
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-affine}
- NODE_ENV=production
- AFFINE_SERVER_HOST=$SERVICE_URL_AFFINE
- AFFINE_SERVER_EXTERNAL_URL=$SERVICE_URL_AFFINE
- MAILER_HOST=${MAILER_HOST}
- MAILER_PORT=${MAILER_PORT}
- MAILER_USER=${MAILER_USER}
- MAILER_PASSWORD=${MAILER_PASSWORD}
- MAILER_SENDER=${MAILER_SENDER}
- COPILOT_FAL_API_KEY=${COPILOT_FAL_API_KEY}
- COPILOT_PERPLEXITY_API_KEY=${COPILOT_PERPLEXITY_API_KEY}
- COPILOT_OPENAI_API_KEY=${COPILOT_OPENAI_API_KEY}
healthcheck:
test:
- CMD-SHELL
- bash -c ':> /dev/tcp/127.0.0.1/3010' || exit 1
interval: 5s
timeout: 20s
retries: 3
affine_migration:
exclude_from_hc: true
image: ghcr.io/toeverything/affine:${AFFINE_REVISION:-stable}
restart: on-failure
volumes:
- affine-storage:/root/.affine/storage
- affine-config:/root/.affine/config
command:
- sh
- -c
- node ./scripts/self-host-predeploy.js
environment:
- REDIS_SERVER_HOST=redis
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-affine}
- AFFINE_INDEXER_ENABLED=false
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
redis:
image: redis
volumes:
- affine-redis-data:/data
healthcheck:
test:
- CMD
- redis-cli
- --raw
- incr
- ping
interval: 10s
timeout: 5s
retries: 5
postgres:
image: pgvector/pgvector:pg16
volumes:
- affine-postgres-data:/var/lib/postgresql/data
healthcheck:
test:
- CMD-SHELL
- pg_isready -U affine
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-affine}
- PGDATA=/var/lib/postgresql/data/pgdata