Skip to content
Proud to collaborate with Microsoft for Startups

apphost.addon.apply ​

Ensure Nostr Buzz (WebSocket relay + Redis + MinIO) on a claimed AppHost site: Redis, MinIO, and relay are created if missing and updated on re-apply. This is not native Chat Relay, not Orkestia AppData conversations, and not DPWAI Chat Relay REST/SSE. Postgres is the site's AppData instance (not Neon, not in-cluster). Forces the Machine always-on. Does not steal the CloudFront site host.

Apply Nostr Buzz (WebSocket relay), not native Chat Relay, on a claimed AppHost site.

Overview ​

PropertyValue
Workflow typeDag
LibraryApp-apphost
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
site_uuiduuidYes—Claimed AppHost site (the project)
addonstringYes—Addon name. v1 ships buzz only
skustringNosmallShared size class small
custom_hostnamestringNo—Optional customer subdomain CNAMEd to buzz-<slug>.orkestia.dev
workflow_run_idstringNo—Engine-stamped parent run id when this runs as a DAG step (buzz.space.enable/delete)

Output Schema ​

FieldTypeRequiredDefaultDescription
site_uuiduuidNo——
addonstringNo——
skustringNo——
custom_hostnamestringNo——
sitejsonNo——
provisionjsonNo——
credentialjsonNo——
relay_keyjsonNo——
materializejsonNo——
secrets_keyjsonNo——
secrets_materialjsonNo——
owner_keysjsonNo——
planjsonNo——
webjsonNo——
foundationjsonNo——
appdata_secretjsonNo——
relay_secretjsonNo——
redisjsonNo——
miniojsonNo——
relayjsonNo——
addon_ingressjsonNo——
policyjsonNo——
wait_relayjsonNo——
wait_redisjsonNo——
wait_miniojsonNo——
wait_minio_pvcjsonNo——
wait_git_pvcjsonNo——
pvc_okjsonNo——
deploymentsjsonNo——
checkjsonNo——
ackjsonNo——
failure_reasonstringNo—Engine-stamped failure reason
failure_typestringNo—Stable failure classification
failed_actionstringNo—Action that failed
failed_at_statestringNo—State when the workflow failed
failed_stepjsonNo—Failed DAG step envelope
failed_layerjsonNo—Failed DAG layer envelope
errorstringNo—Engine-stamped exception message
error_typestringNo—Engine-stamped exception class name
compensation_triggerjsonNo——
comp_queuejsonNo——
comp_current_layerjsonNo——
comp_retry_countjsonNo——

DAG Layers ​

#LayerStepsCompensation
1resolveapphost.database.prepareapphost.web.ack
2provisionappdata.instance.provisionapphost.web.ack
3credentialappdata.credential.ensure-appapphost.web.ack
4relay_keyidentity.key.ensure, identity.key.ensureapphost.web.ack
5materializeidentity.key.materialize, identity.key.materializeapphost.web.ack
6owner_keysidentity.key.queryapphost.web.ack
7prepareapphost.addon.prepareapphost.web.ack
8foundationk8s.manifest.syncapphost.web.ack
9secretskubernetes.secret.ensure, kubernetes.secret.ensureapphost.web.ack
10ingressk8s.manifest.syncapphost.web.ack
11redisk8s.manifest.syncapphost.web.ack
12miniok8s.manifest.syncapphost.web.ack
13relayk8s.manifest.syncapphost.web.ack
14edgek8s.manifest.sync, k8s.manifest.syncapphost.web.ack
15waitkubernetes.deployment.wait_for_available, kubernetes.deployment.wait_for_available, kubernetes.deployment.wait_for_availableapphost.web.ack
16volumeskubernetes.pvc.wait_for_bound, kubernetes.pvc.wait_for_boundapphost.web.ack
17volumes_okapphost.addon.pvc-bound-checkapphost.web.ack
18observekubernetes.deployment.listapphost.web.ack
19verifyapphost.addon.ensure-check—

Execution Flow ​

Compensation ​

When any layer fails, its compensation steps run in reverse order to roll back the work completed so far.

Sub-workflows ​

Sub-workflowStep name
apphost.database.preparesite
appdata.instance.provisionprovision
appdata.credential.ensure-appcredential
identity.key.ensurerelay_key
identity.key.materializematerialize
identity.key.queryowner_keys
apphost.addon.prepareplan
k8s.manifest.syncfoundation
kubernetes.secret.ensureappdata_secret
kubernetes.deployment.wait_for_availablewait_relay
kubernetes.pvc.wait_for_boundwait_minio_pvc
apphost.addon.pvc-bound-checkpvc_ok
kubernetes.deployment.listdeployments
apphost.addon.ensure-checkcheck
apphost.web.ackack

Outcomes ​

OutcomeTypeDescriptionState Data Keys
appliedSUCCESSAddon applied on the shared AppHost poolsite, provision, credential, relay_key, materialize, owner_keys, plan, redis, minio, relay
failedFAILUREApphost workflow failedfailure_reason

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "apphost.addon.apply",
  "initial_data": {
    "site_uuid": "value",
    "addon": "value"
  }
}