mirror of
https://github.com/hanzo-apps/templates.git
synced 2026-11-02 20:18:23 +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.
78 lines
2.7 KiB
YAML
78 lines
2.7 KiB
YAML
services:
|
|
museum:
|
|
image: ghcr.io/ente-io/server:latest
|
|
environment:
|
|
- ENTE_HTTP_USE_TLS=${ENTE_HTTP_USE_TLS:-false}
|
|
- ENTE_APPS_PUBLIC_ALBUMS=${SERVICE_URL_WEB_3002}
|
|
- ENTE_APPS_CAST=${SERVICE_URL_WEB_3004}
|
|
- ENTE_APPS_ACCOUNTS=${SERVICE_URL_WEB_3001}
|
|
- ENTE_PHOTOS_ORIGIN=${SERVICE_URL_WEB}
|
|
- ENTE_DB_HOST=${ENTE_DB_HOST:-postgres}
|
|
- ENTE_DB_PORT=${ENTE_DB_PORT:-5432}
|
|
- ENTE_DB_NAME=${ENTE_DB_NAME:-ente_db}
|
|
- ENTE_DB_USER=${SERVICE_USER_POSTGRES:-pguser}
|
|
- ENTE_DB_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- 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_S3_B2_EU_CEN_ARE_LOCAL_BUCKETS=${PRIMARY_STORAGE_ARE_LOCAL_BUCKETS:-false}
|
|
- ENTE_S3_B2_EU_CEN_USE_PATH_STYLE_URLS=${PRIMARY_STORAGE_USE_PATH_STYLE_URLS:-true}
|
|
- ENTE_S3_B2_EU_CEN_KEY=${S3_STORAGE_KEY:?}
|
|
- ENTE_S3_B2_EU_CEN_SECRET=${S3_STORAGE_SECRET:?}
|
|
- ENTE_S3_B2_EU_CEN_ENDPOINT=${S3_STORAGE_ENDPOINT:?}
|
|
- ENTE_S3_B2_EU_CEN_REGION=${S3_STORAGE_REGION:-us-east-1}
|
|
- ENTE_S3_B2_EU_CEN_BUCKET=${S3_STORAGE_BUCKET:?}
|
|
- ENTE_SMTP_HOST=${ENTE_SMTP_HOST}
|
|
- ENTE_SMTP_PORT=${ENTE_SMTP_PORT}
|
|
- 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}
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
volumes:
|
|
- museum-data:/data
|
|
- museum-config:/config
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- wget
|
|
- -qO-
|
|
- http://127.0.0.1:8080/ping
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
web:
|
|
image: ghcr.io/ente-io/web
|
|
environment:
|
|
- ENTE_API_ORIGIN=${SERVICE_URL_MUSEUM}
|
|
- ENTE_ALBUMS_ORIGIN=${SERVICE_URL_WEB_3002}
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- curl
|
|
- --fail
|
|
- http://127.0.0.1:3000
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
postgres:
|
|
image: postgres:15
|
|
environment:
|
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES:-pguser}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- POSTGRES_DB=${SERVICE_DB_NAME:-ente_db}
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|