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.
88 lines
2.5 KiB
YAML
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
|