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.
65 lines
1.8 KiB
YAML
65 lines
1.8 KiB
YAML
services:
|
|
postgres:
|
|
image: ghcr.io/instantdb/postgresql:postgresql-16-pg-hint-plan
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_USER: ${POSTGRES_USER}
|
|
POSTGRES_DB: ${POSTGRES_DB}
|
|
volumes:
|
|
- backend-db:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD", "pg_isready", "-U", "${POSTGRES_USER}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
command:
|
|
- "postgres"
|
|
- "-c"
|
|
- "wal_level=logical"
|
|
- "-c"
|
|
- "max_replication_slots=4"
|
|
- "-c"
|
|
- "max_wal_senders=4"
|
|
- "-c"
|
|
- "shared_preload_libraries=pg_hint_plan"
|
|
- "-c"
|
|
- "random_page_cost=1.1"
|
|
server:
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
image: hari1367709/instantdb-server:latest
|
|
restart: unless-stopped
|
|
working_dir: /app
|
|
environment:
|
|
DATABASE_URL: "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}"
|
|
NREPL_BIND_ADDRESS: "0.0.0.0"
|
|
PORT: "8888"
|
|
HOST: "0.0.0.0"
|
|
# AWS Credentials for KMS (required for InstantDB)
|
|
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
|
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
|
AWS_REGION: ${AWS_REGION:-us-east-1}
|
|
# Force unbuffered output for logs
|
|
PYTHONUNBUFFERED: "1"
|
|
NODE_ENV: "production"
|
|
command: ["java", "-Djava.awt.headless=true", "-server", "-jar", "target/instant-standalone.jar"]
|
|
ports:
|
|
- "8888"
|
|
- "6005"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -f http://localhost:8888/health || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
volumes:
|
|
backend-db:
|
|
|