Stormkit
앱을 배포하고 필요한 구성 요소 — Postgres 데이터베이스, 최종 사용자 인증(end-user authentication), 트랜잭션 메일러(transactional mailer), 스케줄링된 작업(scheduled jobs) 및 분석 기능(analytics) — 을 사용자가 소유한 인프라에 구축하세요.
curl -sSL https://www.stormkit.io/install.sh | sh
이것이 자체 서버에서 작동하는 Stormkit입니다: 배포를 위한 git push, 브랜치별 미리보기 URL(preview URL per branch), 자동 TLS가 적용된 사용자 지정 도메인(custom domains)을 제공합니다.
Stormkit
얻게 되는 기능
에이전트가 실행하게 하세요
Stormkit은 전체 플랫폼을 MCP를 통해 노출하므로, 코딩 에이전트(coding agent)가 대시보드를 열지 않고도 서버 프로비저닝, 배포, 게시 및 문제가 발생했을 때 로그 읽기를 할 수 있습니다.
curl -sSL https://www.stormkit.io/install.sh | sh -s -- --agent
--agent 설치는 비대면(hands-off) 방식입니다: SSH 키만 제공하면 인스턴스를 프로비저닝하고, 소유자 계정을 생성하며, MCP 준비가 된 API 키를 발급합니다.
사용자의 앱도 그 반대편에 있을 수 있습니다. OAuth 2.1 서버는 호스팅하는 앱을 인증 서버(authorization server)로 변환하여, Claude나 ChatGPT 같은 MCP 클라이언트가 공유 토큰을 거치는 대신 사용자의 최종 사용자로서 연결할 수 있게 합니다.
클라우드 또는 자체 호스팅
Stormkit Cloud는 관리형 옵션입니다 — 배포, 미리보기, 도메인, 메일러, 트리거 및 분석 기능을 제공하며 운영할 것이 없습니다.
**자체 호스팅(Self-hosted)**은 자체 인프라에서 실행되며 전체 플랫폼이 존재하는 곳입니다: 데이터베이스, Stormkit Auth, OAuth 2.1 서버 및 장기 실행 애플리케이션 런타임은 자체 호스팅만 가능합니다. Docker 이미지:
ghcr.io/stormkit-io/workerserver:latest
ghcr.io/stormkit-io/hosting:latest
PostgreSQL 데이터베이스와 Redis 인스턴스가 추가로 필요합니다.
셀프 호스팅 가이드를 참조하세요.
문서 (Documentation)
www.stormkit.io/docs — 또는 이 리포지토리의 docs/ 폴더에서 읽을 수 있습니다.
라이선스 (License)
오픈 코어(Open core). src/ce/에 있는 커뮤니티 에디션(Community Edition)은 AGPL-3.0입니다. src/ee/의 엔터프라이즈 에디션(Enterprise Edition) 구성 요소는 상업적으로 라이선스가 부여됩니다. LICENSE를 참조하세요.
기여 (Contributing)
버그 보고 및 풀 리퀘스트(pull requests)를 환영합니다. CONTRIBUTING.md와 아래의 로컬 개발 설정을 참고하세요.
로컬 개발 (Local Development)
Stormkit을 로컬에서 실행하려면:
필수 조건 (Prerequisites)
- Go 1.21+
- Node.js 22+
- PostgreSQL 14+
- Redis 7+
- Mise
- Docker
go와 node는 다중 언어 도구 버전 관리자인 Mise를 사용하여 설치할 수 있습니다.
mise trust && mise install
서비스 실행 (Running the services)
git clone https://github.com/stormkit-io/stormkit-io.git
cd stormkit-io
...
서비스를 시작한 후:
- 랜딩 페이지는
https://localhost:5500에서 사용할 수 있습니다.
- 애플리케이션은
https://localhost:5400에서 사용할 수 있습니다.
- API는
http://api.localhost:8888에서 사용할 수 있습니다.
프로젝트 구조 (Project Structure)
stormkit-io/
├── src/
│ ├── ce/ # 커뮤니티 에디션 (Community Edition) (AGPL-3.0)
...
구성 요소 개요 (Component Overview)
- 커뮤니티 에디션 (
src/ce/): AGPL-3.0 하의 오픈 소스 구성 요소
- 엔터프라이즈 에디션 (
src/ee/): 라이선스가 필요한 상업적 기능
- 공유 라이브러리 (
src/lib/): 두 에디션에서 사용되는 공통 유틸리티
- 프론트엔드 (
src/ui/): React 기반 웹 인터페이스
테스트 (Testing)
테스트를 실행하려면 sktest라는 이름의 테스트 데이터베이스가 있는 PostgreSQL과 Redis가 실행 중이어야 합니다.
설정 (Setup)
docker compose up -d db redis
...
테스트 실행
목(Mocks) 생성하기
src/lib (또는 다른 패키지)에서 인터페이스를 추가하거나 변경할 때, mockery를 사용하여 testify 목을 생성하며, 이를 통해 테스트가 가짜 객체(fakes)를 주입할 수 있게 됩니다.
권장 명령어 (저장소 루트에서 실행):
mockery --case=underscore --dir ./ --tags=alibaba,imageopt --all --output=./src/mocks
참고 사항:
- 바이너리를 전역으로 설치하고 싶지 않다면
go run을 통해 mockery를 실행할 수 있습니다:
go run github.com/vektra/mockery/v2@latest --case=underscore --dir ./ --tags=alibaba,imageopt --all --output=./src/mocks
- testify용 expecter 헬퍼가 필요한 경우, 명령어에
--with-expecter를 추가하세요.
- 저장소의 명명 규칙과 일치하도록 파일 생성 시
--case=underscore를 사용합니다.
- 목을 재생성한 후에는
gofmt/go vet 및 go test ./...를 실행하고, 업데이트된 파일을 src/mocks 아래에 커밋하세요.
문제 해결 (Troubleshooting)
자세한 문제 해결 단계는 전용 문제 해결 가이드를 참조하십시오.