render.yaml Blueprint가 서비스, 디스크, 환경 변수까지 전체 스택을 선언적으로 정의하므로, 한 번의 클릭으로 배포하고 인프라를 코드와 함께 버전 관리할 수 있습니다.
준비 사항
- Render 계정(무료 티어 가능)
- 원하는 model provider의 API key
Render Blueprint로 배포
Deploy to Render 이 링크를 클릭하면 다음이 실행됩니다.- 이 저장소 루트의
render.yamlBlueprint에서 새 Render 서비스를 만듭니다. SETUP_PASSWORD입력을 요청합니다.- Docker 이미지를 빌드하고 배포합니다.
https://<service-name>.onrender.com 형식입니다.
Blueprint 이해하기
Render Blueprint는 인프라를 정의하는 YAML 파일입니다. 이 저장소의render.yaml은 OpenClaw 실행에 필요한 모든 구성을 담고 있습니다.
| Feature | Purpose |
|---|---|
runtime: docker | 저장소의 Dockerfile로 빌드 |
healthCheckPath | Render가 /health를 감시하고 비정상 인스턴스를 재시작 |
sync: false | 배포 중 값 입력 요청(secret) |
generateValue: true | 암호학적으로 안전한 값 자동 생성 |
disk | 재배포 후에도 유지되는 영구 스토리지 |
플랜 선택
| Plan | Spin-down | Disk | Best for |
|---|---|---|---|
| Free | 15분 유휴 후 | 사용 불가 | 테스트, 데모 |
| Starter | 없음 | 1GB+ | 개인 사용, 소규모 팀 |
| Standard+ | 없음 | 1GB+ | 운영 환경, 여러 채널 |
starter입니다. 무료 티어를 쓰려면 포크한 저장소의 render.yaml에서 plan: free로 바꾸세요. 단, 영구 디스크가 없어서 배포할 때마다 설정이 초기화됩니다.
배포 후
설정 wizard 완료
https://<your-service>.onrender.com/setup으로 이동합니다.SETUP_PASSWORD를 입력합니다.- model provider를 고르고 API key를 붙여 넣습니다.
- 필요하면 메시징 채널(Telegram, Discord, Slack)을 설정합니다.
- Run setup을 클릭합니다.
Control UI 접근
웹 대시보드는https://<your-service>.onrender.com/openclaw에서 열 수 있습니다.
Render Dashboard 기능
Logs
실시간 로그는 Dashboard → your service → Logs에서 확인합니다. 다음 로그를 구분해 볼 수 있습니다.- Build logs(Docker 이미지 생성)
- Deploy logs(서비스 시작)
- Runtime logs(애플리케이션 출력)
Shell access
디버깅용 shell 세션은 Dashboard → your service → Shell에서 열 수 있습니다. persistent disk는/data에 마운트됩니다.
Environment variables
변수 수정은 Dashboard → your service → Environment에서 합니다. 변경하면 자동으로 재배포가 트리거됩니다.Auto-deploy
원본 OpenClaw 저장소를 그대로 사용하면 Render가 OpenClaw를 자동 배포하지는 않습니다. 업데이트하려면 대시보드에서 수동 Blueprint sync를 실행하세요.Custom domain
- Dashboard → your service → Settings → Custom Domains로 이동합니다.
- 도메인을 추가합니다.
- 안내에 따라 DNS를 설정합니다(
*.onrender.com으로 CNAME). - Render가 TLS 인증서를 자동 발급합니다.
스케일링
Render는 수평/수직 확장을 모두 지원합니다.- Vertical: plan을 올려 CPU/RAM 증설
- Horizontal: 인스턴스 수 증가(Standard 이상)
백업과 마이그레이션
설정과 workspace는 언제든지 내보낼 수 있습니다.문제 해결
서비스가 시작되지 않음
Render Dashboard의 deploy log를 확인하세요. 흔한 원인은 다음과 같습니다.SETUP_PASSWORD누락: Blueprint가 입력을 요청하지만 실제로 설정됐는지 확인 필요- 포트 불일치:
PORT=8080이 Dockerfile의 노출 포트와 일치하는지 확인
느린 cold start(무료 티어)
무료 티어 서비스는 15분 동안 유휴 상태이면 내려갑니다. 그다음 첫 요청은 컨테이너가 뜰 때까지 몇 초 걸릴 수 있습니다. 항상 켜진 환경이 필요하면 Starter plan으로 올리세요.재배포 후 데이터 손실
무료 티어에서 발생합니다. 영구 디스크가 없기 때문입니다. 유료 플랜으로 올리거나/setup/export로 설정을 정기적으로 내보내세요.
Health check 실패
Render는/health에서 30초 안에 200 응답을 기대합니다. 빌드는 성공했는데 배포가 실패하면 서비스 시작이 너무 오래 걸리는 것일 수 있습니다. 다음을 확인하세요.
- Build log에 오류가 없는지
docker build && docker run으로 로컬에서 컨테이너가 정상 실행되는지