runlot
Reference

CLI

runlot — the CLI for deploying apps and managing PostgreSQL. Covers every command and option. Command syntax and options are taken from runlot --help.

The reference source for this page is the CLI help in web/apps/cli/src/index.ts. The content is generated from that source when the documentation is built.

Install

npm i -g runlot
runlot login

runlot --help prints every command; runlot <command> --help prints only that command group.

Login

  runlot login                     브라우저로 로그인합니다 (GitHub 등)
  runlot login <이름>              로컬 개발용 로그인 (개발 서버에서만)
  runlot whoami                    현재 사용자

Running runlot login authenticates your account in the browser. Credentials are stored in ~/.runlot/credentials.json, per control plane address.

Common options

  --org <slug>     조직 (runlot.json 의 "org" 보다 우선)
  --api <url>      API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)

The --org and --project options take precedence over the settings in runlot.json. --api specifies the address of the control plane to connect to.

org — organization management

  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 필요)

Options

  --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 — project management

  runlot project create <name>     프로젝트를 만듭니다 (--org 필요)
  runlot project list              프로젝트 목록 (--org 필요)

Options

  --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 — deployment

  runlot deploy [dir]              번들을 만들어 배포합니다

Options

  --org <slug>     조직 (runlot.json 의 "org" 보다 우선)
  --project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
  --api <url>      API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)

pg — database

  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>    접속 토큰을 폐기합니다

Options

  --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 — file storage

  runlot storage [status] [dir]    저장 용량과 사용 한도 (--json으로 원본 출력)
  runlot storage delete [dir]      스토리지를 해제합니다 (admin)

Options

  --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 — application user 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)

Options

  --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 — deployment access control

  runlot access [dir]              누가 이 배포를 볼 수 있는지 (--json)
  runlot access set <mode> [dir]   public | org | password (--password, admin)
  runlot access bypass --new|--revoke  CI 용 우회 시크릿 (Runlot-Access-Bypass 헤더, admin)

Options

  --org <slug>     조직 (runlot.json 의 "org" 보다 우선)
  --project <name> 프로젝트 (runlot.json 의 "name" 보다 우선)
  --api <url>      API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)
  --json           서버 응답 JSON 을 그대로 출력합니다 (목록 명령 전부·usage·

secret — secrets

  runlot secret set <NAME> [값]    시크릿을 저장합니다 (값 생략 시 stdin 에서 읽습니다)
  runlot secret list [dir]         시크릿 이름·버전 목록 (값은 보여 주지 않습니다)
  runlot secret delete <NAME> [d]  시크릿을 삭제합니다

  `secret set` 은 디렉토리 인자를 받지 않습니다 (둘째 인자는 값입니다).
  다른 디렉토리의 프로젝트는 --org/--project 로 지정합니다.

Options

  --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 — custom domains

  runlot domain add <host> [dir]   커스텀 도메인을 연결합니다 (CNAME·TXT 안내를 보여 줍니다)
  runlot domain list [dir]         연결된 도메인과 상태
  runlot domain verify <h> [dir]   DNS 설정을 확인합니다 (자동 확인은 1분마다 실행)
  runlot domain rm <host> [dir]    도메인 연결을 끊습니다

Options

  --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 zones

  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>         존을 지웁니다

Options

  --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 — domain purchase and renewal

  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 <이름>  다른 등록기관으로 옮길 코드를 받습니다

Options

  --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 — logs

  runlot logs [dir]                Worker 로그를 실시간으로 보여 줍니다 (Ctrl-C 로 종료)

Options

  --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 — usage

  runlot usage [dir]               시간대별 사용량 (--json 으로 원본 출력)

Options

  --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 — local port forwarding

  runlot port-forward [dir]        로그인 세션으로 인증하고 로컬 포트를 데이터베이스에 연결합니다
                                   (--port 15432, --listen 127.0.0.1, Ctrl-C 로 종료)

Options

  --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 — restore a previous version

  runlot rollback <version> [dir]  이전 버전으로 되돌립니다

Options

  --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 — deployment history

  runlot versions [dir]            배포 이력

Options

  --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·이메일·로그인 이름 중 하나입니다. 둘 이상에 걸리면 거절합니다.

Options

  --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)

email

  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)

Options

  --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 를 어떻게 옮겼는지)

Options

  --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>            공개키를 지웁니다

Options

  --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>    토큰을 폐기합니다

Options

  --org <slug>     조직 (runlot.json 의 "org" 보다 우선)
  --api <url>      API 서버 주소 (기본 https://dash.runlot.io, 로컬은 RUNLOT_API_URL)

On this page