참조
CLI
runlot — Worker 와 Postgres 를 한 번에 배포하는 CLI. 모든 명령과 옵션의 목록이며, 문장은 runlot --help 가 찍는 것과 같습니다.
정본은
web/apps/cli/src/index.ts 의 usage 표 입니다. 이 페이지는 빌드할 때 그 코드에서 만들어집니다.설치
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> cp-public 주소 (기본 http://127.0.0.1:8080)--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> cp-public 주소 (기본 http://127.0.0.1:8080)
--json 서버 응답 JSON 을 그대로 출력해요 (목록 명령 전부·usage·
pg generations·pg token)
--role <r> admin | member | viewer (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> cp-public 주소 (기본 http://127.0.0.1:8080)
--json 서버 응답 JSON 을 그대로 출력해요 (목록 명령 전부·usage·
pg generations·pg token)add — 쓸 것을 켜기
runlot add <pg|auth|storage>… [dir] 쓸 것을 켜요 (여러 개를 한 번에)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> cp-public 주소 (기본 http://127.0.0.1:8080)deploy — 배포
runlot deploy [dir] 번들을 만들어 배포해요옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> cp-public 주소 (기본 http://127.0.0.1:8080)pg — 데이터베이스
runlot pg create [dir] 데이터베이스를 만들고 접속 정보를 보여 줘요
runlot pg bind [dir] runlot.json 에 데이터베이스 사용을 기록해요
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> cp-public 주소 (기본 http://127.0.0.1:8080)
-c, --command 실행할 SQL (pg execute)
-f, --file 실행할 SQL 파일 (pg execute)
--migrations <d> 마이그레이션 디렉토리 (기본 <dir>/migrations)
--ca-dir <path> 로컬 CA 디렉토리 (주면 TLS 검증을 verify-full 로 올려요)
(기본 $RUNLOT_CA_DIR)
-y, --yes 확인 프롬프트를 건너뛰어요 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
auth delete·auth provider rm)
--json 서버 응답 JSON 을 그대로 출력해요 (목록 명령 전부·usage·
pg generations·pg token)
--ttl <기간> pg token 의 유효 기간 (기본 1h, 예: 30m·12h·7d)storage — 파일 저장소
runlot storage create [dir] 오브젝트 스토리지를 켜요 (Worker 에서 env.storage)
runlot storage [status] [dir] 사용량과 상한 (--json 으로 원본 출력)
runlot storage delete [dir] 스토리지를 해제해요 (admin)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> cp-public 주소 (기본 http://127.0.0.1:8080)
-y, --yes 확인 프롬프트를 건너뛰어요 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
auth delete·auth provider rm)
--json 서버 응답 JSON 을 그대로 출력해요 (목록 명령 전부·usage·auth — 앱의 로그인
runlot auth create [dir] 앱의 로그인을 켜요 (Worker 에서 env.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> cp-public 주소 (기본 http://127.0.0.1:8080)
-y, --yes 확인 프롬프트를 건너뛰어요 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
auth delete·auth provider rm)
--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> cp-public 주소 (기본 http://127.0.0.1:8080)
--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> cp-public 주소 (기본 http://127.0.0.1:8080)
-y, --yes 확인 프롬프트를 건너뛰어요 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
auth delete·auth provider rm)
--json 서버 응답 JSON 을 그대로 출력해요 (목록 명령 전부·usage·
pg generations·pg token)domain — 커스텀 도메인
runlot domain add <host> [dir] 커스텀 도메인을 연결해요 (CNAME·TXT 안내를 보여 줘요)
runlot domain list [dir] 연결된 도메인과 상태
runlot domain verify <h> [dir] 지금 확인해요 (1 분마다 저절로도 확인해요)
runlot domain rm <host> [dir] 도메인 연결을 끊어요옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> cp-public 주소 (기본 http://127.0.0.1:8080)
-y, --yes 확인 프롬프트를 건너뛰어요 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
auth delete·auth provider rm)
--json 서버 응답 JSON 을 그대로 출력해요 (목록 명령 전부·usage·
pg generations·pg token)dns — DNS 존
runlot dns zones 우리 네임서버가 답하는 존 목록 (--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> cp-public 주소 (기본 http://127.0.0.1:8080)
-y, --yes 확인 프롬프트를 건너뛰어요 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
auth delete·auth provider rm)
--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> cp-public 주소 (기본 http://127.0.0.1:8080)
-y, --yes 확인 프롬프트를 건너뛰어요 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
auth delete·auth provider rm)
--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> cp-public 주소 (기본 http://127.0.0.1:8080)
--tail <n> logs 가 처음에 받을 줄 수 (기본 200, 최대 2000)
--no-follow logs 를 최근 줄까지만 보고 끝내요 (기본은 실시간으로 이어 가요)usage — 사용량
runlot usage [dir] 시간대별 사용량 (--json 으로 원본 출력)옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> cp-public 주소 (기본 http://127.0.0.1:8080)
--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> cp-public 주소 (기본 http://127.0.0.1:8080)
--ca-dir <path> 로컬 CA 디렉토리 (주면 TLS 검증을 verify-full 로 올려요)
(기본 $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> cp-public 주소 (기본 http://127.0.0.1:8080)
-y, --yes 확인 프롬프트를 건너뛰어요 (rollback·secret delete·domain rm·
dns rm·dns delete·pg restore·pg delete·domains buy·storage delete·
auth delete·auth provider rm)versions — 배포 이력
runlot versions [dir] 배포 이력옵션
--org <slug> 조직 (runlot.json 의 "org" 보다 우선)
--project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
--api <url> cp-public 주소 (기본 http://127.0.0.1:8080)
--json 서버 응답 JSON 을 그대로 출력해요 (목록 명령 전부·usage·
pg generations·pg token)