AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
환경을 한 번 정의하고 적합한 클라우드에 자원을 배치해 계획·정책·비용을 검토한 뒤 OpenTofu로 배포합니다
Describe an environment once, place each resource on the cloud that fits it, review plan, policies and cost, then deploy with OpenTofu. Open source.
개발 도구TypeScript · PLpgSQLGitHub @orkstage온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Open source multicloud control plane. Describe an environment once, place each resource on the cloud, account and region that fits it, review plan and cost, and deploy with OpenTofu. AGPL core with Enterprise features in ee/.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗OrkStage is an open source multicloud control plane for platform teams that run many copies of the same application stack: one per customer, team or stage. An instance is a complete environment (API, workers, Postgres, cache, queue, object storage, ingress, DNS), and every resource in it is placed on its own, so one instance can run its API on AWS, its database on Azure and its storage on OCI.
primary and data. Each instance
binds every slot to a cloud target and region, so the same template runs on one AWS account or
across providers.tofu plan per resource. Deletions or replacements in production wait for approval.ork CLI that
turns existing Terraform, CloudFormation, Kubernetes or Compose projects into templates.| Area | State |
|---|---|
| AWS | Real. Provisioned with OpenTofu, locally against MiniStack or in your account through a cross account role. |
| Azure, Google Cloud, OCI, DigitalOcean, Vultr, CoreWeave, Magalu Cloud | Preview. Adapters and OpenTofu modules covered by tests and tofu validate, not yet proven on live accounts. Off by default behind a feature flag per provider (PROVIDER_<NAME>). |
| Vercel, Render, Supabase | Preview. Platform adapters through their APIs, same flags. |
| Simulation provider | Imitates any provider without an account, for demos, tests and rehearsals. Simulated resources are labeled everywhere. |
ork CLI | Preview. Releases for Linux, macOS and Windows with install scripts (curl -fsSL https://orkstage.io/install.sh | sh); signed once the signing certificates are configured. |
| Enterprise features | Audit export is available with a license key; the rest is planned. See docs/OPEN_CORE.md. |
What is still open is in docs/ROADMAP.md.
flowchart LR
subgraph clients["Clients"]
console["Console (Next.js)"]
cli["ork CLI"]
ci["CI pipelines"]
end
console --> api["Control API (NestJS)"]
cli --> api
ci --> api
api --> pg[("Postgres: desired and known state")]
api --> redis[("Redis: queues and slots")]
redis --> worker["Worker: deployments, health, notifications"]
worker --> pg
worker --> runner["OpenTofu runner (throwaway containers)"]
runner --> aws["AWS or MiniStack"]
worker --> others["Other providers (preview) and the simulation provider"]
The API records intent and enqueues work; it never calls a cloud itself. The worker compiles the template into a resolved plan (placement, capabilities, connectivity, policies, cost), runs the dependency graph through provider adapters, and keeps checking health and drift afterwards. Details: docs/ARCHITECTURE.md.
A template, shortened from the built in multicloud-reference:
apiVersion: platform/v1
kind: EnvironmentTemplate
metadata: { name: multicloud-reference, version: 1.0.0 }
spec:
placements:
- { name: primary, providers: [aws, mock] }
- { name: data, providers: [aws, azure, mock] }
resources:
- { id: network, type: network }
- { id: api, type: compute.container-service, implementation: ecs-fargate,
image: catalog://sample-api, replicas: 2, port: 8080, public: true }
- { id: database, type: database.postgresql, placement: data, size: small,
backup: { enabled: true, retentionDays: 7 } }
- { id: ingress, type: ingress, routes: [{ service: api }] }
connectivity:
- { from: api, to: database, protocol: postgres, port: 5432, mode: private-preferred }
The whole platform runs from the orkstage-dev
workspace, which brings this repository together with the console and the OpenTofu modules.
Requirements: Git, Docker with Compose v2 and about 6 GB of free memory. No cloud account needed.
git clone --recurse-submodules https://github.com/orkstage/orkstage-dev.git
cd orkstage-dev
docker compose --profile platform --profile aws-emulator up -d --build --wait
| Service | URL |
|---|---|
| Console | http://localhost:3000 |
| Control API and OpenAPI UI | http://localhost:4000/api/docs |
| MiniStack (local AWS) | http://localhost:4566 |
| Mailpit (emails) | http://localhost:8025 |
Sign in with the development login as [email protected] (platform owner),
[email protected] (operator) or [email protected] (customer owner of the Acme
tenant). Open Acme Staging (local AWS), check Plan & cost, deploy, and watch OpenTofu create
a VPC, an ALB, RDS Postgres, Valkey, SQS and ECS services in MiniStack.
Stop with docker compose --profile platform --profile aws-emulator down (add -v to delete the
data). This stack runs in development mode with the Docker socket mounted; it is for local
evaluation only. The quickstart guide walks
through the first deployment, and Connect AWS
covers real accounts.
Requirements: Node 24+, pnpm 12, Docker.
cp .env.example .env
pnpm install
pnpm local:up # Postgres, Redis and Mailpit in Docker
pnpm build
pnpm db:deploy && pnpm db:seed
pnpm dev # API on :4000 and the worker
pnpm local:aws adds MiniStack. pnpm test and pnpm typecheck run across the workspace.
To work on the console or the modules at the same time, use the orkstage-dev workspace.
The optional adapter contract test against the emulator runs with
MINISTACK_E2E=1 pnpm --filter @orkstage/cloud-aws test.
OrkStage is split into focused repositories under the orkstage
organization. This one is the core.
| Repository | What it contains | License |
|---|---|---|
orkstage | Control API, worker, shared packages | AGPL-3.0 |
orkstage-console | Web console (Next.js) | AGPL-3.0 |
orkstage-cli | ork CLI and the scan engine (Rust, WebAssembly) | AGPL-3.0 |
orkstage-modules | OpenTofu modules and the runner image | Apache-2.0 |
orkstage-site | orkstage.io and the documentation | MIT, content CC BY 4.0 |
orkstage-dev | Meta repository: Docker Compose plus pinned submodules | MIT |
How they depend on each other: docs/POLYREPO.md.
apps/api/ Control API: auth, tenancy, CASL, templates, instances, deployments
apps/worker/ Deployment workflow, health monitor, drift checks, notifications
packages/ domain, templates, provisioning, cloud-core, cloud-aws, cloud-mock, iac,
authorization, contracts, runtime, database, licensing
infra/local/ Docker Compose for local development (with the MiniStack profile)
infra/docker/ Platform image
infra/aws/ CloudFormation for the deployment role in a customer account
docs/ Architecture, API map, database, runbooks, ADRs, roadmap
Issues and pull requests are welcome. Read CONTRIBUTING.md for the development setup and checks, and the code of conduct. Questions go to Discussions; conversation happens on Slack.
Do not open public issues for vulnerabilities. Report them privately through GitHub Security Advisories or to [email protected]. See the security policy.
OrkStage is open core. Everything in this repository is licensed under the
GNU AGPL-3.0. Enterprise features live in a private repository mounted at
apps/api/src/ee (a git submodule that clones skip: the build without it is the Community edition),
under the OrkStage Enterprise License, and the official images activate them
with a license key (ORKSTAGE_LICENSE_KEY). Without a key you run the full Community edition. The
licensing model and the feature split are in docs/OPEN_CORE.md.
"OrkStage" and the OrkStage logo are trademarks; see the trademark policy. Contributions are accepted under the OrkStage CLA.