infra: delete dead DO App Platform manifests

Per universe-wide policy, hanzo workloads ship on DOKS only. DO App Platform
was decommissioned February 2026 — all hanzo-apps/hanzo-platform/operator
specs here have been superseded by infra/k8s/. Removing the stale specs to
keep the only-one-way invariant.
This commit is contained in:
2026-06-07 12:41:37 -07:00
parent 59bd643328
commit b52fa408a8
5 changed files with 0 additions and 694 deletions
@@ -1,31 +0,0 @@
# DigitalOcean App Platform spec for the bootnode-operator.
#
# This builds and deploys the operator container to the lux-k8s cluster.
# The operator watches Cluster CRDs and reconciles blockchain node clusters.
#
# Deployment:
# doctl apps create --spec infra/do-app-platform/bootnode-operator.yaml
# doctl apps update <app-id> --spec infra/do-app-platform/bootnode-operator.yaml
name: bootnode-operator
region: sfo
services:
- name: operator
github:
repo: hanzoai/bootnode
branch: main
deploy_on_push: true
dockerfile_path: operator/Dockerfile
source_dir: operator
instance_count: 1
instance_size_slug: professional-xs
http_port: 8081
health_check:
http_path: /healthz
initial_delay_seconds: 10
period_seconds: 30
envs:
- key: RUST_LOG
value: info,bootnode_operator=debug
run_command: /usr/local/bin/bootnode-operator --namespace "" --log-level info
-143
View File
@@ -1,143 +0,0 @@
name: hanzo-apps
region: nyc
features:
- buildpack-stack=ubuntu-22
# Managed Databases (shared by all apps)
databases:
- engine: PG
name: postgres
num_nodes: 1
size: db-s-1vcpu-1gb
version: "16"
- engine: REDIS
name: redis
num_nodes: 1
size: db-s-1vcpu-1gb
version: "7"
# Domains
domains:
- domain: console.hanzo.ai
type: PRIMARY
- domain: chat.hanzo.ai
type: ALIAS
- domain: commerce.hanzo.ai
type: ALIAS
services:
# ==========================================================================
# Console (LLM Development Environment)
# ==========================================================================
- name: console
image:
registry_type: GHCR
registry: hanzoai
repository: console
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 3000
routes:
- path: /
preserve_path_prefix: true
envs:
- key: NODE_ENV
value: production
- key: DATABASE_URL
scope: RUN_TIME
value: ${postgres.DATABASE_URL}
- key: REDIS_HOST
scope: RUN_TIME
value: ${redis.HOSTNAME}
- key: REDIS_PORT
value: "25061"
- key: REDIS_AUTH
scope: RUN_TIME
value: ${redis.PASSWORD}
- key: NEXTAUTH_URL
value: https://console.hanzo.ai
- key: NEXTAUTH_SECRET
scope: RUN_TIME
type: SECRET
value: e21ae21c91df0875b5dc54ba98c3a2731a69c4284f0113ab93f1cb2919128abc
- key: SALT
value: "295f20f7c8375c04bc2c8383106f1cf855e5f9a7755144bd23e8c9530185c89b"
- key: ENCRYPTION_KEY
value: "295f20f7c8375c04bc2c8383106f1cf855e5f9a7755144bd23e8c9530185c89b"
- key: HOSTNAME
value: "0.0.0.0"
- key: PORT
value: "3000"
- key: HANZO_AUTO_CLICKHOUSE_MIGRATION_DISABLED
value: "true"
- key: NEXT_PUBLIC_LANGFUSE_CLOUD_REGION
value: US
health_check:
http_path: /api/public/health
initial_delay_seconds: 90
period_seconds: 30
timeout_seconds: 10
failure_threshold: 5
# ==========================================================================
# Chat (AI Chat Interface)
# ==========================================================================
- name: chat
image:
registry_type: GHCR
registry: hanzoai
repository: chat
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 3000
routes:
- path: /
preserve_path_prefix: true
envs:
- key: NODE_ENV
value: production
- key: DATABASE_URL
scope: RUN_TIME
value: ${postgres.DATABASE_URL}
- key: REDIS_URL
scope: RUN_TIME
value: rediss://${redis.USERNAME}:${redis.PASSWORD}@${redis.HOSTNAME}:${redis.PORT}
- key: NEXTAUTH_URL
value: https://chat.hanzo.ai
- key: NEXTAUTH_SECRET
scope: RUN_TIME
type: SECRET
value: e21ae21c91df0875b5dc54ba98c3a2731a69c4284f0113ab93f1cb2919128abc
health_check:
http_path: /
initial_delay_seconds: 60
period_seconds: 15
# ==========================================================================
# Commerce (Multi-tenant Commerce API)
# ==========================================================================
- name: commerce
image:
registry_type: GHCR
registry: hanzoai
repository: commerce
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 8000
routes:
- path: /
preserve_path_prefix: true
envs:
- key: DATABASE_URL
scope: RUN_TIME
value: ${postgres.DATABASE_URL}
- key: REDIS_URL
scope: RUN_TIME
value: rediss://${redis.USERNAME}:${redis.PASSWORD}@${redis.HOSTNAME}:${redis.PORT}
health_check:
http_path: /health
initial_delay_seconds: 30
period_seconds: 10
@@ -1,190 +0,0 @@
version: '3.8'
networks:
hanzo-network:
driver: overlay
attachable: true
platform-network:
external: true
volumes:
postgres_data:
redis_data:
traefik_certs:
services:
traefik:
image: traefik:v2.11
deploy:
mode: global
placement:
constraints:
- node.role == manager
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
delay: 5s
command:
- --api.dashboard=true
- --api.insecure=true
- --providers.docker=true
- --providers.docker.swarmMode=true
- --providers.docker.exposedbydefault=false
- --providers.docker.network=hanzo_hanzo-network
- --providers.file.directory=/etc/platform/traefik/dynamic
- --providers.file.watch=true
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --[email protected]
- --certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme.json
- --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web
- --entrypoints.web.http.redirections.entrypoint.to=websecure
- --entrypoints.web.http.redirections.entrypoint.scheme=https
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik_certs:/etc/traefik
- /etc/platform/traefik:/etc/platform/traefik:ro
networks:
- hanzo-network
- platform-network
postgres:
image: postgres:16-alpine
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
restart_policy:
condition: on-failure
environment:
POSTGRES_USER: hanzo
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
POSTGRES_DB: platform
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U hanzo"]
interval: 5s
timeout: 5s
retries: 5
networks:
- hanzo-network
redis:
image: redis:7-alpine
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
restart_policy:
condition: on-failure
command: redis-server --requirepass ${REDIS_PASSWORD:-changeme} --appendonly yes
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD:-changeme}", "ping"]
interval: 5s
timeout: 5s
retries: 5
networks:
- hanzo-network
# ==========================================================================
# Platform - Production (Scalable)
# ==========================================================================
platform:
image: hanzoai/platform:latest
deploy:
mode: replicated
replicas: 2
update_config:
parallelism: 1
delay: 10s
order: start-first
failure_action: rollback
rollback_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
labels:
- "traefik.enable=true"
- "traefik.http.routers.platform.rule=Host(`platform.hanzo.ai`)"
- "traefik.http.routers.platform.tls.certresolver=letsencrypt"
- "traefik.http.services.platform.loadbalancer.server.port=3000"
environment:
NODE_ENV: production
DATABASE_URL: postgresql://hanzo:${POSTGRES_PASSWORD:-changeme}@postgres:5432/platform
REDIS_URL: redis://:${REDIS_PASSWORD:-changeme}@redis:6379
REDIS_HOST: redis
REDIS_PORT: "6379"
REDIS_PASSWORD: ${REDIS_PASSWORD:-changeme}
NEXTAUTH_URL: https://platform.hanzo.ai
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:-changeme}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/platform:/etc/platform
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 90s
networks:
- hanzo-network
# ==========================================================================
# Platform - Staging
# ==========================================================================
platform-staging:
image: hanzoai/platform:latest
deploy:
mode: replicated
replicas: 1
update_config:
parallelism: 1
delay: 10s
order: start-first
failure_action: rollback
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
labels:
- "traefik.enable=true"
- "traefik.http.routers.platform-staging.rule=Host(`staging.platform.hanzo.ai`)"
- "traefik.http.routers.platform-staging.tls.certresolver=letsencrypt"
- "traefik.http.services.platform-staging.loadbalancer.server.port=3000"
environment:
NODE_ENV: production
DATABASE_URL: postgresql://hanzo:${POSTGRES_PASSWORD:-changeme}@postgres:5432/platform_staging
REDIS_URL: redis://:${REDIS_PASSWORD:-changeme}@redis:6379/1
REDIS_HOST: redis
REDIS_PORT: "6379"
REDIS_PASSWORD: ${REDIS_PASSWORD:-changeme}
REDIS_DB: "1"
NEXTAUTH_URL: https://staging.platform.hanzo.ai
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:-changeme}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/platform:/etc/platform
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 90s
networks:
- hanzo-network
-286
View File
@@ -1,286 +0,0 @@
name: hanzo-platform
region: nyc
features:
- buildpack-stack=ubuntu-22
# Managed Databases
databases:
- engine: PG
name: postgres
num_nodes: 1
size: db-s-1vcpu-1gb
version: "16"
- engine: REDIS
name: redis
num_nodes: 1
size: db-s-1vcpu-1gb
version: "7"
# Domain routing
domains:
- domain: platform.hanzo.ai
type: PRIMARY
- domain: console.hanzo.ai
type: ALIAS
- domain: iam.hanzo.ai
type: ALIAS
- domain: analytics.hanzo.ai
type: ALIAS
- domain: chat.hanzo.ai
type: ALIAS
- domain: api.hanzo.ai
type: ALIAS
- domain: commerce.hanzo.ai
type: ALIAS
ingress:
rules:
- component:
name: platform
match:
path:
prefix: /
cors:
allow_origins:
- prefix: https://
- component:
name: console
match:
path:
prefix: /
- component:
name: iam
match:
path:
prefix: /
- component:
name: analytics
match:
path:
prefix: /
- component:
name: chat
match:
path:
prefix: /
- component:
name: router
match:
path:
prefix: /
- component:
name: commerce
match:
path:
prefix: /
services:
# ==========================================================================
# Platform (PaaS UI)
# ==========================================================================
- name: platform
image:
registry_type: GHCR
registry: hanzoai
repository: platform
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 3000
envs:
- key: NODE_ENV
value: production
- key: DATABASE_URL
scope: RUN_TIME
value: ${postgres.DATABASE_URL}
- key: REDIS_URL
scope: RUN_TIME
value: ${redis.DATABASE_URL}
- key: NEXTAUTH_URL
value: https://platform.hanzo.ai
- key: NEXTAUTH_SECRET
scope: RUN_TIME
type: SECRET
value: EV[1:changeme]
health_check:
http_path: /
initial_delay_seconds: 30
period_seconds: 10
# ==========================================================================
# Console (LLM Development Environment)
# ==========================================================================
- name: console
image:
registry_type: GHCR
registry: hanzoai
repository: console
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 3000
envs:
- key: NODE_ENV
value: production
- key: DATABASE_URL
scope: RUN_TIME
value: ${postgres.DATABASE_URL}?schema=console
- key: REDIS_HOST
scope: RUN_TIME
value: ${redis.HOSTNAME}
- key: REDIS_PORT
scope: RUN_TIME
value: ${redis.PORT}
- key: REDIS_AUTH
scope: RUN_TIME
value: ${redis.PASSWORD}
- key: NEXTAUTH_URL
value: https://console.hanzo.ai
- key: NEXTAUTH_SECRET
scope: RUN_TIME
type: SECRET
value: EV[1:changeme]
- key: HOSTNAME
value: "0.0.0.0"
health_check:
http_path: /api/public/health
initial_delay_seconds: 60
period_seconds: 30
# ==========================================================================
# IAM (Identity & Access Management)
# ==========================================================================
- name: iam
image:
registry_type: GHCR
registry: hanzoai
repository: iam
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 8000
envs:
- key: runmode
value: prod
- key: driverName
value: postgres
- key: dataSourceName
scope: RUN_TIME
value: ${postgres.DATABASE_URL}
- key: redisEndpoint
scope: RUN_TIME
value: ${redis.HOSTNAME}:${redis.PORT}
- key: appname
value: Hanzo IAM
health_check:
http_path: /api/health
initial_delay_seconds: 30
period_seconds: 10
# ==========================================================================
# Analytics (Insights-based)
# ==========================================================================
- name: analytics
image:
registry_type: GHCR
registry: hanzoai
repository: analytics
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 8000
envs:
- key: DATABASE_URL
scope: RUN_TIME
value: ${postgres.DATABASE_URL}?schema=analytics
- key: REDIS_URL
scope: RUN_TIME
value: ${redis.DATABASE_URL}
- key: SECRET_KEY
scope: RUN_TIME
type: SECRET
value: EV[1:changeme]
- key: SITE_URL
value: https://analytics.hanzo.ai
health_check:
http_path: /_health
initial_delay_seconds: 60
period_seconds: 30
# ==========================================================================
# Chat (AI Chat Interface)
# ==========================================================================
- name: chat
image:
registry_type: GHCR
registry: hanzoai
repository: chat
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 3000
envs:
- key: NODE_ENV
value: production
- key: DATABASE_URL
scope: RUN_TIME
value: ${postgres.DATABASE_URL}?schema=chat
- key: REDIS_URL
scope: RUN_TIME
value: ${redis.DATABASE_URL}
health_check:
http_path: /
initial_delay_seconds: 30
period_seconds: 10
# ==========================================================================
# Router (LiteLLM API Gateway)
# ==========================================================================
- name: router
image:
registry_type: GHCR
registry: hanzoai
repository: router
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 4000
envs:
- key: DATABASE_URL
scope: RUN_TIME
value: ${postgres.DATABASE_URL}?schema=router
- key: REDIS_URL
scope: RUN_TIME
value: ${redis.DATABASE_URL}
- key: LITELLM_MASTER_KEY
scope: RUN_TIME
type: SECRET
value: EV[1:changeme]
health_check:
http_path: /health
initial_delay_seconds: 30
period_seconds: 10
# ==========================================================================
# Commerce (Multi-tenant Commerce API)
# ==========================================================================
- name: commerce
image:
registry_type: GHCR
registry: hanzoai
repository: commerce
tag: latest
instance_count: 1
instance_size_slug: professional-xs
http_port: 8000
envs:
- key: DATABASE_URL
scope: RUN_TIME
value: ${postgres.DATABASE_URL}?schema=commerce
- key: REDIS_URL
scope: RUN_TIME
value: ${redis.DATABASE_URL}
health_check:
http_path: /health
initial_delay_seconds: 30
period_seconds: 10
-44
View File
@@ -1,44 +0,0 @@
name: hanzo-platform
region: nyc
features:
- buildpack-stack=ubuntu-22
databases:
- engine: PG
name: db
num_nodes: 1
size: db-s-1vcpu-2gb
version: "16"
domains:
- domain: platform.hanzo.ai
type: PRIMARY
services:
- name: platform
image:
registry_type: DOCKER_HUB
registry: hanzoai
repository: platform
tag: latest
instance_count: 2
instance_size_slug: professional-xs
http_port: 3000
envs:
- key: NODE_ENV
value: production
- key: DATABASE_URL
scope: RUN_TIME
value: ${db.DATABASE_URL}
- key: NEXTAUTH_URL
value: https://platform.hanzo.ai
- key: NEXTAUTH_SECRET
scope: RUN_TIME
type: SECRET
value: e21ae21c91df0875b5dc54ba98c3a2731a69c4284f0113ab93f1cb2919128abc
- key: HOSTNAME
value: "0.0.0.0"
health_check:
http_path: /
initial_delay_seconds: 30
period_seconds: 10