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.
75 lines
2.0 KiB
YAML
75 lines
2.0 KiB
YAML
services:
|
|
firefly:
|
|
image: fireflyiii/core:latest
|
|
environment:
|
|
- APP_KEY=$SERVICE_BASE64_APPKEY
|
|
- DB_HOST=mysql
|
|
- DB_PORT=3306
|
|
- DB_CONNECTION=mysql
|
|
- DB_DATABASE=${MYSQL_DATABASE:-firefly}
|
|
- DB_USERNAME=$SERVICE_USER_MYSQL
|
|
- DB_PASSWORD=$SERVICE_PASSWORD_MYSQL
|
|
- STATIC_CRON_TOKEN=$SERVICE_BASE64_CRONTOKEN
|
|
- TRUSTED_PROXIES=*
|
|
volumes:
|
|
- firefly-upload:/var/www/html/storage/upload
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- curl
|
|
- -f
|
|
- http://127.0.0.1:8080
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|
|
depends_on:
|
|
mysql:
|
|
condition: service_healthy
|
|
mysql:
|
|
image: mariadb:11
|
|
environment:
|
|
- MYSQL_USER=${SERVICE_USER_MYSQL}
|
|
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE:-firefly}
|
|
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- mariadb-admin
|
|
- ping
|
|
- -h
|
|
- 127.0.0.1
|
|
- -uroot
|
|
- -p${SERVICE_PASSWORD_MYSQLROOT}
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|
|
volumes:
|
|
- firefly-mysql-data:/var/lib/mysql
|
|
cron:
|
|
image: alpine
|
|
entrypoint:
|
|
- /entrypoint.sh
|
|
volumes:
|
|
- type: bind
|
|
source: ./entrypoint.sh
|
|
target: /entrypoint.sh
|
|
content: |
|
|
#!/bin/sh
|
|
# Substitute the environment variable into the cron command
|
|
CRON_COMMAND="0 3 * * * wget -qO- http://firefly:8080/api/v1/cron/${STATIC_CRON_TOKEN}"
|
|
# Add the cron command to the crontab
|
|
echo "$CRON_COMMAND" | crontab -
|
|
# Start the cron daemon in the foreground with logging to stdout
|
|
crond -f -L /dev/stdout
|
|
environment:
|
|
- STATIC_CRON_TOKEN=$SERVICE_BASE64_CRONTOKEN
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- ls /entrypoint.sh || exit 1
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|