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.
85 lines
2.8 KiB
YAML
85 lines
2.8 KiB
YAML
services:
|
|
superset:
|
|
image: amancevice/superset:6.0.0
|
|
environment:
|
|
- SECRET_KEY=${SERVICE_BASE64_64_SUPERSETSECRETKEY}
|
|
- MAPBOX_API_KEY=${MAPBOX_API_KEY}
|
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- POSTGRES_DB=${POSTGRES_DB:-superset-db}
|
|
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
|
volumes:
|
|
- type: bind
|
|
source: ./superset/superset_config.py
|
|
target: /etc/superset/superset_config.py
|
|
content: |
|
|
"""
|
|
For more configuration options, see:
|
|
- https://superset.apache.org/docs/configuration/configuring-superset
|
|
"""
|
|
|
|
import os
|
|
|
|
SECRET_KEY = os.getenv("SECRET_KEY")
|
|
MAPBOX_API_KEY = os.getenv("MAPBOX_API_KEY", "")
|
|
|
|
CACHE_CONFIG = {
|
|
"CACHE_TYPE": "RedisCache",
|
|
"CACHE_DEFAULT_TIMEOUT": 300,
|
|
"CACHE_KEY_PREFIX": "superset_",
|
|
"CACHE_REDIS_HOST": "redis",
|
|
"CACHE_REDIS_PORT": 6379,
|
|
"CACHE_REDIS_DB": 1,
|
|
"CACHE_REDIS_URL": f"redis://:{os.getenv('REDIS_PASSWORD')}@redis:6379/1",
|
|
}
|
|
|
|
FILTER_STATE_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_filter_"}
|
|
EXPLORE_FORM_DATA_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_explore_form_"}
|
|
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = True
|
|
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{os.getenv('POSTGRES_USER')}:{os.getenv('POSTGRES_PASSWORD')}@postgres:5432/{os.getenv('POSTGRES_DB')}"
|
|
|
|
# Uncomment if you want to load example data (using "superset load_examples") at the
|
|
# same location as your metadata postgresql instance. Otherwise, the default sqlite
|
|
# will be used, which will not persist in volume when restarting superset by default.
|
|
#SQLALCHEMY_EXAMPLES_URI = SQLALCHEMY_DATABASE_URI
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- curl
|
|
- -f
|
|
- http://127.0.0.1:8088/health
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|
|
postgres:
|
|
image: postgres:18
|
|
environment:
|
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- POSTGRES_DB=${POSTGRES_DB:-superset-db}
|
|
volumes:
|
|
- superset_postgres_data:/var/lib/postgresql
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|
|
redis:
|
|
image: redis:8
|
|
volumes:
|
|
- superset_redis_data:/data
|
|
command: redis-server --requirepass ${SERVICE_PASSWORD_REDIS}
|
|
healthcheck:
|
|
test: redis-cli ping
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|