Files
zeekay cf4d0b027e templates.hanzo.ai: 1030-blueprint one-click deploy catalog
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.
2026-07-24 01:46:23 -07:00

134 lines
4.9 KiB
YAML

services:
postgres:
image: pgvector/pgvector:pg17
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- postgres_data:/var/lib/postgresql/data
valkey:
image: valkey/valkey:8.1
restart: always
command: ["valkey-server", "--requirepass", "${VALKEY_PASSWORD}"]
volumes:
- valkey_data:/data
minio:
image: minio/minio:RELEASE.2025-04-08T15-41-24Z
restart: always
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
MINIO_BROWSER: "on"
MINIO_DOMAIN: minio
MINIO_ADDRESS: ":9000"
MINIO_CONSOLE_ADDRESS: ":9001"
volumes:
- minio_data:/data
entrypoint: sh
command: -c 'mkdir -p /data/colanode-avatars /data/colanode-files && minio server /data --address ":9000" --console-address ":9001"'
server:
image: ghcr.io/colanode/server:latest
restart: always
depends_on:
- postgres
- valkey
- minio
environment:
# ---------------------------------------------------------------
# General Node/Server Config
# ---------------------------------------------------------------
NODE_ENV: production
PORT: 3000
# The server requires a name and avatar URL which will be displayed in the desktop app login screen.
SERVER_NAME: ${SERVER_NAME}
SERVER_AVATAR: ${SERVER_AVATAR}
# Possible values for SERVER_MODE: 'standalone', 'cluster'
SERVER_MODE: "standalone"
# ---------------------------------------------------------------
# Account Configuration
# ---------------------------------------------------------------
# Possible values for ACCOUNT_VERIFICATION_TYPE: 'automatic', 'manual', 'email'
ACCOUNT_VERIFICATION_TYPE: "automatic"
ACCOUNT_OTP_TIMEOUT: "600" # in seconds
ACCOUNT_ALLOW_GOOGLE_LOGIN: "false"
# ---------------------------------------------------------------
# User Configuration
# ---------------------------------------------------------------
USER_STORAGE_LIMIT: "10737418240" # 10 GB
USER_MAX_FILE_SIZE: "104857600" # 100 MB
# ---------------------------------------------------------------
# PostgreSQL Configuration
# ---------------------------------------------------------------
# The server expects a PostgreSQL database with the pgvector extension installed.
POSTGRES_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}"
# Optional variables for SSL connection to the database
# POSTGRES_SSL_REJECT_UNAUTHORIZED: 'false'
# POSTGRES_SSL_CA: ''
# POSTGRES_SSL_KEY: ''
# POSTGRES_SSL_CERT: ''
# ---------------------------------------------------------------
# Redis Configuration
# ---------------------------------------------------------------
REDIS_URL: "redis://:${VALKEY_PASSWORD}@valkey:6379/0"
REDIS_DB: "0"
# Optional variables:
REDIS_JOBS_QUEUE_NAME: "jobs"
REDIS_JOBS_QUEUE_PREFIX: "colanode"
REDIS_EVENTS_CHANNEL: "events"
# ---------------------------------------------------------------
# S3 Configuration for Avatars
# ---------------------------------------------------------------
S3_AVATARS_ENDPOINT: "http://minio:9000"
S3_AVATARS_ACCESS_KEY: ${MINIO_ROOT_USER}
S3_AVATARS_SECRET_KEY: ${MINIO_ROOT_PASSWORD}
S3_AVATARS_BUCKET_NAME: "colanode-avatars"
S3_AVATARS_REGION: "us-east-1"
S3_AVATARS_FORCE_PATH_STYLE: "true"
# ---------------------------------------------------------------
# S3 Configuration for Files
# ---------------------------------------------------------------
STORAGE_S3_ENDPOINT: "http://minio:9000"
STORAGE_S3_ACCESS_KEY: ${MINIO_ROOT_USER}
STORAGE_S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD}
STORAGE_S3_BUCKET: "colanode-files"
STORAGE_S3_REGION: "us-east-1"
STORAGE_S3_FORCE_PATH_STYLE: "true"
# ---------------------------------------------------------------
# SMTP configuration
# ---------------------------------------------------------------
SMTP_ENABLED: ${SMTP_ENABLED}
SMTP_HOST: ${SMTP_HOST}
SMTP_PORT: ${SMTP_PORT}
SMTP_USER: ${SMTP_USER}
SMTP_PASSWORD: ${SMTP_PASSWORD}
SMTP_EMAIL_FROM: ${SMTP_EMAIL_FROM}
SMTP_EMAIL_FROM_NAME: ${SMTP_EMAIL_FROM_NAME}
# ---------------------------------------------------------------
# AI Configuration
# ---------------------------------------------------------------
# The AI integration is in experimental mode yet and we don't
# recommend using it.
# ---------------------------------------------------------------
AI_ENABLED: "false"
# ---------------------------------------------------------------
volumes:
postgres_data:
valkey_data:
minio_data: