참조
CLI
runlot — 앱 배포와 PostgreSQL 관리를 위한 CLI. 모든 명령과 옵션을 안내합니다. 명령 구문과 옵션은 runlot --help에서 가져옵니다.
이 페이지의 기준 소스는
web/apps/cli/src/index.ts의 CLI 도움말입니다. 문서를 빌드할 때 해당 소스에서 내용을 생성합니다.설치
npm i -g runlot
runlot loginrunlot --help는 모든 명령을, runlot <명령> --help는 해당 명령 그룹만 출력합니다.
로그인
runlot login 브라우저로 로그인합니다 (GitHub 등)
runlot login <이름> 로컬 개발용 로그인 (개발 서버에서만)
runlot whoami 현재 사용자runlot login을 실행하면 브라우저에서 계정을 인증합니다. 자격 증명은 컨트롤 플레인 주소별로 ~/.runlot/credentials.json에 저장됩니다.
공통 옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)--org와 --project 옵션은 runlot.json의 설정보다 우선합니다. --api에는 연결할 컨트롤 플레인의 주소를 지정합니다.
org — 조직 관리
runlot org create <slug> [name] 조직을 만듭니다 (name 생략 시 slug 사용)
runlot org list 참여 중인 조직 목록
runlot org members 조직 멤버 (--org 필요)
runlot org add-member <p>:<s> 기존 사용자를 조직에 추가합니다 (--role, --org 필요)
runlot org set-role <uid> <역할> 멤버 역할을 바꿉니다 (--org 필요)
runlot org remove-member <uid> 멤버를 조직에서 제외합니다 (--org 필요)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)
--role <r> admin | member | viewer (member invite·org add-member)project — 프로젝트 관리
runlot project create <name> 프로젝트를 만듭니다 (--org 필요)
runlot project list 프로젝트 목록 (--org 필요)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)deploy — 배포
runlot deploy [dir] 번들을 만들어 배포합니다옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)pg — 데이터베이스
runlot pg connect [dir] 접속 정보를 보여 줍니다 (비밀번호 포함)
runlot pg execute [dir] SQL 을 실행합니다 (-c <sql> 또는 -f <파일>)
runlot pg migrate [dir] migrations/NNNN_*.sql 을 적용합니다
runlot pg shell [dir] [-- ...] psql 로 접속합니다 (-- 뒤는 psql 에 그대로 전달)
runlot pg export [dir] 진단용 덤프를 만듭니다 (백업 아님)
runlot pg generations [dir] 백업 목록 (--json 으로 원본 출력)
runlot pg restore <e>/<s> [dir] 그 백업으로 되돌립니다 (latest 가능, admin)
runlot pg delete [dir] 데이터베이스를 삭제합니다 (admin)
runlot pg abort <opId> [dir] 진행 중인 작업을 중단합니다 (admin)
runlot pg token [dir] 유효 기간이 있는 접속 토큰을 발급합니다 (--ttl, --json)
runlot pg token list [dir] 발급된 접속 토큰 목록
runlot pg token revoke <user> 접속 토큰을 폐기합니다옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-c, --command 실행할 SQL (pg execute)
-f, --file 실행할 SQL 파일 (pg execute)
--migrations <d> 마이그레이션 디렉토리 (기본 <dir>/migrations)
--ca-dir <path> 로컬 CA 디렉토리 (지정하면 verify-full로 TLS 검증)
(기본 $RUNLOT_CA_DIR)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)
--ttl <기간> pg token 의 유효 기간 (기본 1h, 예: 30m·12h·7d)storage — 파일 저장소
runlot storage [status] [dir] 저장 용량과 사용 한도 (--json으로 원본 출력)
runlot storage delete [dir] 스토리지를 해제합니다 (admin)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·auth — 애플리케이션 사용자 인증
runlot auth [status] [dir] 설정·프로바이더·콜백 URL (--json 으로 원본 출력)
runlot auth provider set <p> 소셜 로그인을 등록합니다 (--client-id, --client-secret, admin)
runlot auth provider rm <p> 소셜 로그인 제공자 설정을 삭제합니다 (admin)
runlot auth set <키> <값> allow-signup·require-verified on|off, session-days <n>,
brand-name·brand-color·brand-logo <값>
runlot auth delete [dir] 인증 기능을 비활성화합니다 (가입자 테이블은 DB에 남습니다, admin)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)
--client-id <id> auth provider set 의 프로바이더 공개 id
--client-secret <값> auth provider set 의 클라이언트 시크릿 (없으면 입력을 요청합니다)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·access — 배포 접근 제어
runlot access [dir] 누가 이 배포를 볼 수 있는지 (--json)
runlot access set <mode> [dir] public | org | password (--password, admin)
runlot access bypass --new|--revoke CI 용 우회 시크릿 (Runlot-Access-Bypass 헤더, admin)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·secret — 시크릿
runlot secret set <NAME> [값] 시크릿을 저장합니다 (값 생략 시 stdin 에서 읽습니다)
runlot secret list [dir] 시크릿 이름·버전 목록 (값은 보여 주지 않습니다)
runlot secret delete <NAME> [d] 시크릿을 삭제합니다
`secret set` 은 디렉토리 인자를 받지 않습니다 (둘째 인자는 값입니다).
다른 디렉토리의 프로젝트는 --org/--project 로 지정합니다.옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)domain — 커스텀 도메인
runlot domain add <host> [dir] 커스텀 도메인을 연결합니다 (CNAME·TXT 안내를 보여 줍니다)
runlot domain list [dir] 연결된 도메인과 상태
runlot domain verify <h> [dir] DNS 설정을 확인합니다 (자동 확인은 1분마다 실행)
runlot domain rm <host> [dir] 도메인 연결을 끊습니다옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)dns — DNS 존
runlot dns zones runlot에서 관리하는 DNS 존 목록 (--org 필요)
runlot dns create <zone> 존을 만듭니다 (--org 필요)
runlot dns records <zone> 존의 레코드 목록
runlot dns set <z> <n> <t> <값…> 레코드를 만들거나 바꿉니다 (--ttl, 값 전체를 적습니다)
runlot dns rm <zone> <n> <t> 레코드를 지웁니다
runlot dns delete <zone> 존을 지웁니다옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)
--ttl <기간> pg token 의 유효 기간 (기본 1h, 예: 30m·12h·7d)domains — 도메인 구매 및 갱신
runlot domains check <이름...> 등록 가능 여부와 가격을 확인합니다 (--org 필요)
runlot domains buy <이름> 도메인을 구매합니다 (--years, --contact-json, -y)
runlot domains list 가진 도메인 목록
runlot domains show <이름> 도메인 상세 정보와 최근 작업 이력
runlot domains import <이름> 이미 보유한 도메인을 관리 목록에 추가합니다
runlot domains renew <이름> 갱신합니다 (--years)
runlot domains lock|unlock <이름> 이전 잠금을 켜거나 끕니다
runlot domains auth-code <이름> 다른 등록기관으로 옮길 코드를 받습니다옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)
--years <n> domains buy·renew의 등록·갱신 기간(년) (1~10, 기본 1)
--contact-json <f> domains buy 의 등록자 연락처 JSON 파일 (없으면 입력을 요청합니다)logs — 로그
runlot logs [dir] Worker 로그를 실시간으로 보여 줍니다 (Ctrl-C 로 종료)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
--tail <n> logs 가 처음에 받을 줄 수 (기본 200, 최대 2000)
--no-follow 최근 로그만 출력하고 종료합니다 (기본은 실시간 출력)usage — 사용량
runlot usage [dir] 시간대별 사용량 (--json 으로 원본 출력)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)
--hours <n> usage 가 볼 시간 범위 (기본 24, 최대 720)port-forward — 로컬 포트 포워딩
runlot port-forward [dir] 로그인 세션으로 인증하고 로컬 포트를 데이터베이스에 연결합니다
(--port 15432, --listen 127.0.0.1, Ctrl-C 로 종료)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
--ca-dir <path> 로컬 CA 디렉토리 (지정하면 verify-full로 TLS 검증)
(기본 $RUNLOT_CA_DIR)
--port <n> port-forward 가 열 로컬 포트 (기본 15432)
--listen <addr> port-forward가 연결을 받을 로컬 주소 (기본 127.0.0.1)rollback — 이전 버전으로 복원
runlot rollback <version> [dir] 이전 버전으로 되돌립니다옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)versions — 배포 이력
runlot versions [dir] 배포 이력옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)member
runlot member [ls] 조직 멤버 목록 (--org 필요, --json)
runlot member invite <이메일> 이메일로 초대합니다 (--role, 기본 member, admin)
runlot member role <멤버> <역할> 멤버 역할을 바꿉니다 (admin)
runlot member rm <멤버> 멤버를 조직에서 제외합니다 (admin)
runlot member leave 이 조직에서 나갑니다
runlot member invites 대기·만료된 초대 목록 (admin, --json)
runlot member uninvite <이메일> 그 주소의 초대를 철회합니다 (admin)
<멤버> 는 uuid·이메일·로그인 이름 중 하나입니다. 둘 이상에 걸리면 거절합니다.옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·
pg generations·pg token)
--role <r> admin | member | viewer (member invite·org add-member) runlot email [status] [dir] 메일 주소와 보낸·받은 통 (--json으로 원본 출력)
runlot email log [dir] 주고받은 메일 (--direction in|out, --cursor, --limit, --json)
runlot email raw <mailId> [dir] 메일 원문 (.eml) 을 표준 출력으로
runlot email delete [dir] 이메일을 끕니다 (admin)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
-y, --yes 확인 프롬프트를 건너뜁니다 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
email delete·auth delete·auth provider rm·member rm·member leave·
member uninvite)
--json 서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·repo
runlot repo create <name> [dir] 이 프로젝트에 저장소를 만들고 origin 을 등록합니다 (--public)
runlot repo [list] 이 프로젝트의 저장소 목록 (--json)
runlot repo rename <옛> <새> 이름을 바꿉니다 (admin)
runlot repo visibility <n> <v> public | private (admin)
runlot repo delete <name> 저장소를 지웁니다 (admin)
runlot repo history <name> push 이력 (누가 어느 ref 를 어떻게 옮겼는지)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)key
runlot key add [경로] SSH 공개키를 등록합니다 (생략 시 기본 키를 찾습니다)
runlot key [list] 등록한 공개키 목록
runlot key rm <keyId> 공개키를 지웁니다옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)token
runlot token create <이름> git HTTPS 용 토큰을 발급합니다 (--read-only, --ttl)
runlot token [list] 발급한 토큰 목록
runlot token revoke <tokenId> 토큰을 폐기합니다옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--api <url> API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)