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.
96 lines
3.4 KiB
YAML
96 lines
3.4 KiB
YAML
services:
|
|
airflow-db:
|
|
image: bitnami/postgresql:${POSTGRESQL_VERSION}
|
|
environment:
|
|
POSTGRESQL_DATABASE: ${POSTGRESQL_NAME}
|
|
POSTGRESQL_USERNAME: ${POSTGRESQL_USER}
|
|
POSTGRESQL_PASSWORD: ${POSTGRESQL_PASSWORD}
|
|
volumes:
|
|
- airflow-postgresql-persistance:/bitnami
|
|
restart: always
|
|
airflow-redis:
|
|
image: bitnamilegacy/redis:${REDIS_VERSION}
|
|
environment:
|
|
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
|
volumes:
|
|
- airflow-redis-persistance:/bitnami
|
|
restart: always
|
|
airflow:
|
|
image: bitnamilegacy/airflow:${AIRFLOW_VERSION}
|
|
environment:
|
|
AIRFLOW_EXECUTOR: CeleryExecutor
|
|
AIRFLOW_DATABASE_HOST: airflow-db
|
|
AIRFLOW_DATABASE_NAME: ${POSTGRESQL_NAME}
|
|
AIRFLOW_DATABASE_USERNAME: ${POSTGRESQL_USER}
|
|
AIRFLOW_DATABASE_PASSWORD: ${POSTGRESQL_PASSWORD}
|
|
REDIS_HOST: airflow-redis
|
|
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
|
AIRFLOW_WEBSERVER_HOST: airflow
|
|
AIRFLOW_BASE_URL: https://airflow.${ROOT_DOMAIN}/
|
|
AIRFLOW_SECRET_KEY: ${AIRFLOW_SECRET_KEY}
|
|
AIRFLOW_LOAD_EXAMPLES: ${AIRFLOW_EXAMPLES}
|
|
AIRFLOW_USERNAME: ${AIRFLOW_USER}
|
|
AIRFLOW_PASSWORD: ${AIRFLOW_PASSWORD}
|
|
AIRFLOW_EMAIL: ${AIRFLOW_EMAIL}
|
|
AIRFLOW__SMTP__SMTP_HOST: ${SMTP_HOST}
|
|
AIRFLOW__SMTP__SMTP_PORT: ${SMTP_PORT}
|
|
AIRFLOW__SMTP__SMTP_STARTTLS: ${SMTP_STARTTLS}
|
|
AIRFLOW__SMTP__SMTP_SSL: ${SMTP_SSL}
|
|
AIRFLOW__SMTP__SMTP_USER: ${SMTP_USER}
|
|
AIRFLOW__SMTP__SMTP_PASSWORD: ${SMTP_PASSWORD}
|
|
AIRFLOW__SMTP__SMTP_MAIL_FROM: ${SMTP_MAIL_FROM}
|
|
volumes:
|
|
- ${AIRFLOW_DAG_PATH}:/opt/bitnami/airflow/dags
|
|
- ${AIRFLOW_PY_REQUIREMENTS}:/bitnami/python/requirements.txt
|
|
depends_on:
|
|
- airflow-db
|
|
- airflow-redis
|
|
expose:
|
|
- "8080"
|
|
restart: always
|
|
airflow-worker:
|
|
image: bitnamilegacy/airflow-worker:${AIRFLOW_WORKER_VERSION}
|
|
environment:
|
|
AIRFLOW_EXECUTOR: CeleryExecutor
|
|
AIRFLOW_DATABASE_HOST: airflow-db
|
|
AIRFLOW_DATABASE_NAME: ${POSTGRESQL_NAME}
|
|
AIRFLOW_DATABASE_USERNAME: ${POSTGRESQL_USER}
|
|
AIRFLOW_DATABASE_PASSWORD: ${POSTGRESQL_PASSWORD}
|
|
REDIS_HOST: airflow-redis
|
|
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
|
AIRFLOW_WEBSERVER_HOST: airflow
|
|
AIRFLOW_BASE_URL: https://airflow.${ROOT_DOMAIN}/
|
|
AIRFLOW_SECRET_KEY: ${AIRFLOW_SECRET_KEY}
|
|
AIRFLOW_LOAD_EXAMPLES: ${AIRFLOW_EXAMPLES}
|
|
volumes:
|
|
- airflow-data:/opt/bitnami/airflow/data
|
|
- ${AIRFLOW_DAG_PATH}:/opt/bitnami/airflow/dags
|
|
- ${AIRFLOW_PY_REQUIREMENTS}:/bitnami/python/requirements.txt
|
|
depends_on:
|
|
- airflow
|
|
restart: always
|
|
airflow-scheduler:
|
|
image: bitnamilegacy/airflow-scheduler:${AIRFLOW_SCHEDULER_VERSION}
|
|
environment:
|
|
AIRFLOW_EXECUTOR: CeleryExecutor
|
|
AIRFLOW_DATABASE_HOST: airflow-db
|
|
AIRFLOW_DATABASE_NAME: ${POSTGRESQL_NAME}
|
|
AIRFLOW_DATABASE_USERNAME: ${POSTGRESQL_USER}
|
|
AIRFLOW_DATABASE_PASSWORD: ${POSTGRESQL_PASSWORD}
|
|
REDIS_HOST: airflow-redis
|
|
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
|
AIRFLOW_WEBSERVER_HOST: airflow
|
|
AIRFLOW_BASE_URL: https://airflow.${ROOT_DOMAIN}/
|
|
AIRFLOW_SECRET_KEY: ${AIRFLOW_SECRET_KEY}
|
|
AIRFLOW_LOAD_EXAMPLES: ${AIRFLOW_EXAMPLES}
|
|
volumes:
|
|
- ${AIRFLOW_DAG_PATH}:/opt/bitnami/airflow/dags
|
|
- ${AIRFLOW_PY_REQUIREMENTS}:/bitnami/python/requirements.txt
|
|
depends_on:
|
|
- airflow
|
|
restart: always
|
|
volumes:
|
|
airflow-postgresql-persistance: {}
|
|
airflow-redis-persistance: {}
|
|
airflow-data: {}
|