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.
151 lines
3.9 KiB
YAML
151 lines
3.9 KiB
YAML
services:
|
|
weknora:
|
|
image: wechatopenai/weknora-ui:v0.2.14
|
|
environment:
|
|
- MAX_FILE_SIZE_MB=50
|
|
depends_on:
|
|
app:
|
|
condition: service_healthy
|
|
expose:
|
|
- "80"
|
|
restart: unless-stopped
|
|
app:
|
|
image: wechatopenai/weknora-app:v0.2.14
|
|
environment:
|
|
- OTEL_EXPORTER_OTLP_ENDPOINT=jaeger:4317
|
|
- OTEL_SERVICE_NAME=WeKnora
|
|
- OTEL_TRACES_EXPORTER=otlp
|
|
- OTEL_METRICS_EXPORTER=none
|
|
- OTEL_LOGS_EXPORTER=none
|
|
- OTEL_PROPAGATORS=tracecontext,baggage
|
|
- QDRANT_HOST=qdrant
|
|
- QDRANT_PORT=6334
|
|
- QDRANT_COLLECTION=weknora_embeddings
|
|
- QDRANT_API_KEY=
|
|
- QDRANT_USE_TLS=false
|
|
- MINIO_ENDPOINT=minio:9000
|
|
- MINIO_ACCESS_KEY_ID=minioadmin
|
|
- MINIO_SECRET_ACCESS_KEY=minioadmin
|
|
- MINIO_BUCKET_NAME=weknora
|
|
- GIN_MODE=release
|
|
- DISABLE_REGISTRATION=false
|
|
- DB_DRIVER=postgres
|
|
- DB_HOST=weknora-postgres
|
|
- DB_PORT=5432
|
|
- DB_USER=postgres
|
|
- DB_PASSWORD=postgres123!@#
|
|
- DB_NAME=WeKnora
|
|
- TZ=$TZ
|
|
- RETRIEVE_DRIVER=postgres
|
|
- DOCREADER_ADDR=weknora-docreader:50051
|
|
- STORAGE_TYPE=minio
|
|
- LOCAL_STORAGE_BASE_DIR=/data/files
|
|
- AUTO_RECOVER_DIRTY=true
|
|
- OLLAMA_BASE_URL=http://host.docker.internal:11434
|
|
- STREAM_MANAGER_TYPE=redis
|
|
- REDIS_ADDR=weknora-redis:6379
|
|
- REDIS_PASSWORD=redis123!@#
|
|
- REDIS_DB=0
|
|
- REDIS_PREFIX="stream:"
|
|
- TENANT_AES_KEY=weknorarag-api-key-secret-secret
|
|
- CONCURRENCY_POOL_SIZE=5
|
|
- JWT_SECRET=weknora-jwt-secret
|
|
- MAX_FILE_SIZE_MB=50
|
|
depends_on:
|
|
weknora-redis:
|
|
condition: service_started
|
|
weknora-postgres:
|
|
condition: service_healthy
|
|
weknora-docreader:
|
|
condition: service_healthy
|
|
volumes:
|
|
- weknora-files:/data/files
|
|
restart: unless-stopped
|
|
weknora-docreader:
|
|
image: wechatopenai/weknora-docreader:v0.2.14
|
|
environment:
|
|
- MAX_FILE_SIZE_MB=50
|
|
- MINIO_ENDPOINT=minio:9000
|
|
- MINIO_ACCESS_KEY_ID=minioadmin
|
|
- MINIO_SECRET_ACCESS_KEY=minioadmin
|
|
- MINIO_BUCKET_NAME=weknora
|
|
restart: unless-stopped
|
|
weknora-postgres:
|
|
image: paradedb/paradedb:v0.18.9-pg17
|
|
environment:
|
|
- POSTGRES_USER=postgres
|
|
- POSTGRES_PASSWORD=postgres123!@#
|
|
- POSTGRES_DB=WeKnora
|
|
volumes:
|
|
- weknora-data:/var/lib/postgresql/data
|
|
restart: unless-stopped
|
|
weknora-redis:
|
|
image: redis:7.0-alpine
|
|
command:
|
|
- redis-server
|
|
- --requirepass redis123!@#
|
|
- --appendonly
|
|
- yes
|
|
restart: unless-stopped
|
|
minio:
|
|
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
|
|
command:
|
|
- server
|
|
- /data
|
|
- --console-address
|
|
- :9001
|
|
environment:
|
|
- MINIO_ROOT_USER=minioadmin
|
|
- MINIO_ROOT_PASSWORD=minioadmin
|
|
expose:
|
|
- "9000"
|
|
- "9001"
|
|
volumes:
|
|
- weknora-data:/data
|
|
restart: unless-stopped
|
|
jaeger:
|
|
image: jaegertracing/all-in-one:1.76.0
|
|
environment:
|
|
- COLLECTOR_OTLP_ENABLED=true
|
|
- COLLECTOR_ZIPKIN_HOST_PORT=:9411
|
|
expose:
|
|
- "6831"
|
|
- "6832"
|
|
- "5778"
|
|
- "16686"
|
|
- "4317"
|
|
- "4318"
|
|
- "14250"
|
|
- "14268"
|
|
- "9411"
|
|
volumes:
|
|
- weknora-jaeger:/var/lib/jaeger
|
|
restart: unless-stopped
|
|
neo4j:
|
|
image: neo4j:2025.10.1
|
|
environment:
|
|
- NEO4J_AUTH=neo4j/password
|
|
- NEO4J_apoc_export_file_enabled=true
|
|
- NEO4J_apoc_import_file_enabled=true
|
|
- NEO4J_apoc_import_file_use__neo4j__config=true
|
|
- NEO4JLABS_PLUGINS=["apoc"]
|
|
expose:
|
|
- "7474"
|
|
- "7687"
|
|
volumes:
|
|
- weknora-data:/data
|
|
restart: unless-stopped
|
|
qdrant:
|
|
image: qdrant/qdrant:v1.16.2
|
|
expose:
|
|
- "6333"
|
|
- "6334"
|
|
volumes:
|
|
- weknora-storage:/qdrant/storage
|
|
restart: unless-stopped
|
|
volumes:
|
|
weknora-files: {}
|
|
weknora-data: {}
|
|
weknora-jaeger: {}
|
|
weknora-storage: {}
|