axhub.yaml 레퍼런스

ax-hub-backend deploy manifest domain 기준 canonical manifest schema

axhub.yaml은 repository에 commit하는 배포 계약이에요. Backend resolver는 axhub.yaml을 먼저 읽고, 없을 때만 legacy apphub.yaml을 fallback으로 읽어요. 둘 다 있으면 axhub.yaml이 이겨요.

최소 예시

axhub.yaml
version: axhub/v1
name: hello-axhub
runtime:
  port: 3000
  health_path: /
build:
  strategy: auto
  framework: node
  deploy_method: docker
  dockerfile: Dockerfile
env:
  required:
    - name: DATABASE_URL
      scope: runtime
  optional:
    - name: NEXT_PUBLIC_API_URL
      scope: build
ci:
  commands:
    - npm test
  timeout: 300

모든 field는 optional이에요. 비어 있는 값은 DB 설정 또는 resolver 기본값으로 떨어져요.

파일과 우선순위

항목현재 계약
canonical filenameaxhub.yaml
legacy fallbackapphub.yaml (migration dual-read only)
max size8 KiB
prioritymanifest > DB AppSpecData > resolver default
deploy resolutionmanifest → Dockerfile → Compose → Railpack auto-detection

최상위 필드

필드타입설명
versionstring현재 문서화 값은 axhub/v1. unknown 값은 forward-compatible하게 받아들일 수 있지만 known fields 검증은 유지돼요.
namestring표시용 label. 저장된 앱 이름과 강제 동기화하지 않아요.
runtimeobjectport와 health probe path.
buildobjectbuild/deploy method와 command hints.
envobject필요한 env 이름과 scope. 값은 절대 manifest에 저장하지 않아요.
ciobjectbuild 전 CI command와 timeout.

runtime

필드타입제한
portinteger1~65535. 비어 있으면 Dockerfile EXPOSE 또는 adapter 기본값.
health_pathstringliveness/readiness probe path. 비어 있으면 / fallback.

build

필드설명
strategy`autopinned`
framework`nodepython
installstringframework preset용 install command.
buildstringframework preset용 build command.
startstringruntime start command.
dockerfilepath기본 Dockerfile 대신 사용할 Dockerfile path.
deploy_method`dockercompose`
compose_filepathcompose mode에서 사용할 compose file. 기본 docker-compose.yml.

deploy_method는 앱 DB에서도 immutable이에요. 바꾸려면 보통 새 앱으로 재생성해야 해요.

env

Manifest에는 env 이름과 scope만 적어요. 값은 axhub env set/update로 저장해요.

env:
  required:
    - name: DATABASE_URL
      scope: runtime
    - name: NEXT_PUBLIC_API_URL
      scope: build
  optional:
    - name: SENTRY_DSN
      scope: both
scope주입 위치
buildbuild arg로만 전달
runtimepod env로만 전달
bothbuild와 runtime 양쪽에 필요

이름은 비어 있거나 줄바꿈/= 문자를 포함할 수 없어요.

ci

필드제한
commands최대 10개
timeout1~600초

CI command는 build 전에 실행되고, 실패하면 deploy가 멈춰요.