mirror of
https://github.com/hanzoai/bootnode.git
synced 2026-10-25 02:31:30 +00:00
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:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user