One Server

문서 · 레퍼런스

CLI (oneend)

터미널과 CI에서 프로젝트를 다뤄요. 명령 164개를 CLI 코드(packages/cli/src/commands)에서 읽어 이 목록을 만들어요. 이 목록은 서버 코드에서 만들어져요. 새 기능이 생기면 여기에도 바로 나타나요.

명령줄 도구 (oneend)

Supabase CLI·Vercel CLI처럼 터미널과 CI에서 이 플랫폼을 다루는 도구예요. 같은 토큰으로 /api/v1을 불러요.

npm install -g oneend        또는 npx oneend <명령>
oneend login                 콘솔의 계정 → API · MCP 토큰에서 만든 토큰을 넣어요
oneend link                  이 폴더를 프로젝트에 연결 (.oneend/project.json)
oneend projects list|create        oneend status
oneend env ls|pull|push|set|rm     oneend deploy [--branch --commit | --dir --prod --prebuilt]
oneend deployments ls|inspect      oneend logs [--follow]     oneend rollback <id>
oneend functions ls|deploy|rm|invoke|download
oneend migration new|list|repair   oneend db push|pull
oneend gen types typescript
oneend branches list|create|merge|reset|delete
  • 토큰은 ~/.config/oneend/config.json에 본인만 읽을 수 있게(0600) 저장해요. CI에서는 ONEEND_TOKEN 환경 변수를 쓰세요.
  • 마이그레이션 파일은 oneend/migrations/<버전>_<이름>.sql이고, db push가 blackwall://migrations의 apply_migrations를 불러요.
  • --json을 붙이면 모든 명령이 JSON 한 덩어리로 답해요. 실패하면 0이 아닌 종료 코드를 돌려줘요.
  • deploy는 빌드가 끝날 때까지 로그를 보여 주고, 실패하면 종료 코드 1이에요.
  • 저장소가 없거나 --dir 또는 --upload를 주면 deploy는 폴더를 압축해 올리고 같은 빌드를 거쳐요(.gitignore와 .oneendignore를 따르고 node_modules와 .git은 빼요). --prebuilt는 빌드 없이 그대로, --prod는 프로덕션으로 배포해요.

명령 레퍼런스

설치

Node 22 이상에서 동작하고 의존성이 없어요.

npm install -g oneend
oneend login --token bwk_… --api-url https://end.blackall.ai
oneend link --project abcdefghijklmnopqrst

공통 옵션

모든 명령에서 쓸 수 있어요.

옵션값설명
--json결과를 JSON으로 출력해요 (스크립트용)
--help, -h도움말
--project, --project-ref<ref>연결된 프로젝트 대신 이 프로젝트에 (ONEEND_PROJECT_REF)
--api-url<url>API 주소 (ONEEND_API_URL, 기본 https://end.blackall.ai)
--token<토큰>저장된 토큰 대신 이 토큰으로 (ONEEND_TOKEN)

계정

사용법설명
oneend login토큰을 확인하고 저장해요
oneend logout저장된 토큰을 지워요
oneend whoami지금 토큰의 주인과 권한을 봐요

oneend login

토큰을 확인하고 저장해요

사용법

oneend login [--token <토큰>] [--api-url <url>]

토큰은 콘솔의 계정 → API · MCP 토큰(/account/tokens)에서 만들어요.
--token이 없으면 터미널에서 묻고, 터미널이 아니면 표준 입력에서 읽어요:
echo "$TOKEN" | oneend login
토큰은 ~/.config/oneend/config.json에 본인만 읽을 수 있게(0600) 저장해요.

옵션

이 명령만의 옵션은 없어요.

oneend logout

저장된 토큰을 지워요

사용법

oneend logout

토큰을 폐기하지는 않아요. 폐기는 콘솔의 /account/tokens에서 해요.

옵션

이 명령만의 옵션은 없어요.

oneend whoami

지금 토큰의 주인과 권한을 봐요

사용법

oneend whoami

옵션

이 명령만의 옵션은 없어요.

프로젝트

사용법설명
oneend projects list프로젝트 목록
oneend projects create프로젝트를 새로 만들어요
oneend projects transfer프로젝트를 다른 조직으로 옮겨요 (--to 없이는 옮길 수 있는 조직을 보여 줘요)
oneend projects pause프로젝트를 일시정지해요 (데이터는 그대로)
oneend projects resume일시정지한 프로젝트를 다시 시작해요
oneend link이 폴더를 프로젝트에 연결해요
oneend unlink이 폴더의 프로젝트 연결을 끊어요
oneend status로그인, 연결된 프로젝트, 마지막 배포, 마이그레이션을 한눈에
oneend billing한 달의 청구서: 항목별 금액과 정가, 청구액
oneend server-sizes서버 크기와 지역별 월 금액
oneend projects archive데이터베이스 보관 상태 (옮기는 날, 지우는 날)
oneend projects archive restore보관한 데이터베이스를 복원해요
oneend projects archive download보관 파일을 내려받을 주소를 만들어요 (1시간)

oneend projects list

프로젝트 목록

사용법

oneend projects list

옵션

이 명령만의 옵션은 없어요.

oneend projects create

프로젝트를 새로 만들어요

사용법

oneend projects create <이름> [--region <코드>] [--org <조직>] [--tier <크기>] [--repo <owner/name>] [--root <폴더>] [--branch <브랜치>] [--link] [--no-wait]

콘솔의 새 프로젝트 화면과 같아요(MCP create_project). 지역, 전용 서버 크기, GitHub 저장소를 한 번에 정해요.
--tier 는 oneend server-sizes 가 보여 주는 크기 코드(예: 4gb)이거나 default(요금제의 기본 크기)예요. 비우면 공용 서버에서 시작하고, 서버 요청이 거절돼도 프로젝트는 만들어져요.
--repo 는 GitHub App이 볼 수 있는 저장소예요. 프로젝트를 만든 뒤 바로 연결하고 첫 배포를 시작해서, --no-wait 가 아니면 빌드가 끝날 때까지 로그를 보여 줘요.
모노레포는 --root 로 앱 폴더를, --env-file 로 환경 변수를 같이 줘요.

인자 1개

옵션

옵션값설명
--region<코드>리전. 만든 뒤에는 바꿀 수 없어요 (비우면 기본 리전)
--org<조직>만들 조직의 이름이나 id (비우면 만들 수 있는 첫 조직)
--tier<크기>이 프로젝트만의 서버 크기 (예: 4gb, 또는 default). 비우면 공용 서버
--repo<owner/name>만들면서 연결하고 배포할 GitHub 저장소
--root<폴더>앱 폴더 (예: apps/web). 없으면 저장소 맨 위
--branch, -b<브랜치>프로덕션 브랜치. 없으면 저장소의 기본 브랜치
--app<앱 이름>앱 이름. 없으면 폴더 이름, 없으면 저장소 이름
--framework<이름>프레임워크. 없으면 자동으로 찾아요
--build-command<명령>빌드 명령 덮어쓰기
--install-command<명령>설치 명령 덮어쓰기
--output-directory<폴더>출력 폴더 덮어쓰기
--env-file<경로>저장소를 연결할 때 같이 저장할 .env 파일
--sensitive.env 의 값을 저장한 뒤 다시 보여 주지 않아요
--link만든 프로젝트를 이 폴더에 연결해요
--wait저장소를 연결했다면 빌드가 끝날 때까지 로그를 보여 줘요 (기본 켬, --no-wait로 끔)
--timeout<초>기다리는 최대 시간 (기본 1800초)

oneend projects transfer

프로젝트를 다른 조직으로 옮겨요 (--to 없이는 옮길 수 있는 조직을 보여 줘요)

사용법

oneend projects transfer [<ref>] [--to <조직 id 또는 이름>] [--yes]

지금 조직의 소유자이면서 받는 조직의 소유자나 관리자여야 하고, 받는 조직의 요금제에 프로젝트 자리가 있어야 해요. 옮긴 뒤 사용량은 받는 조직에 청구되고 이번 달 청구는 옮긴 시점에서 나뉘어요. 원래 조직 구성원에게 따로 준 접근은 사라져요. 주소, 키, 데이터, 배포는 그대로예요(콘솔의 프로젝트 옮기기, MCP transfer_project와 같아요).

인자 0~1개

옵션

옵션값설명
--to<조직 id 또는 이름>받을 조직. 비우면 옮길 수 있는 조직을 보여 줘요
--yes, -y묻지 않고 바로 해요

oneend projects pause

프로젝트를 일시정지해요 (데이터는 그대로)

사용법

oneend projects pause [--project <ref>]

사이트·API·함수가 503으로 응답하고 예약 작업과 새 배포가 멈춰요. oneend projects resume으로 바로 다시 켜요.

옵션

이 명령만의 옵션은 없어요.

oneend projects resume

일시정지한 프로젝트를 다시 시작해요

사용법

oneend projects resume [--project <ref>]

무료 요금제에서 3일 동안 쓰지 않아 멈춘 프로젝트도 이 명령(또는 새 배포)으로 다시 켜요.

옵션

이 명령만의 옵션은 없어요.

oneend status

로그인, 연결된 프로젝트, 마지막 배포, 마이그레이션을 한눈에

사용법

oneend status

옵션

이 명령만의 옵션은 없어요.

oneend billing

한 달의 청구서: 항목별 금액과 정가, 청구액

사용법

oneend billing [--period <YYYY-MM>]

옵션

옵션값설명
--period<YYYY-MM>청구 기간 (비우면 이번 달, UTC)

oneend server-sizes

서버 크기와 지역별 월 금액

사용법

oneend server-sizes [--region <코드>] [--currency KRW|USD]

통화를 비우면 조직의 결제 통화예요. 원화는 부가세 포함, 달러는 결제할 때 세금이 더해져요.
준비 중인 지역은 아직 고를 수 없어요.

옵션

옵션값설명
--region<코드>이 지역만 봐요 (비우면 모든 지역)
--currencyKRW|USD통화 (비우면 조직의 결제 통화)

oneend projects archive

데이터베이스 보관 상태 (옮기는 날, 지우는 날)

사용법

oneend projects archive [--project <ref>]

데이터베이스를 90일 동안 쓸 수 없으면 보관 저장소로 옮기고, 1년 동안 복원할 수 있어요. oneend projects archive restore로 복원해요.

옵션

이 명령만의 옵션은 없어요.

oneend projects archive restore

보관한 데이터베이스를 복원해요

사용법

oneend projects archive restore [--project <ref>]

보관할 때 그대로 다시 만들어요. 보통 몇 분 걸리고, 일시정지한 프로젝트는 복원하면서 다시 시작해요. 결제가 안 됐거나 무료 요금제면 복원할 수 없어요.

옵션

이 명령만의 옵션은 없어요.

oneend projects archive download

보관 파일을 내려받을 주소를 만들어요 (1시간)

사용법

oneend projects archive download --reason <이유> [--project <ref>]

pg_dump 형식이에요. pg_restore로 어느 PostgreSQL에든 복원할 수 있어요. 이유는 개인정보 접속기록에 남아요.

옵션

옵션값설명
--reason<이유>내려받는 이유 (접속기록에 남아요)

환경 변수

사용법설명
oneend env ls환경 변수 목록
oneend env pull환경 변수를 .env 파일로 내려받아요
oneend env push.env 파일의 변수를 저장해요
oneend env set변수 하나를 저장해요
oneend env rm변수를 지워요

oneend env ls

환경 변수 목록

사용법

oneend env ls [--target <production|preview>] [--app <앱 이름>]

민감한 값은 다시 볼 수 없고 뒤 네 자리만 보여요.
자동으로 들어가는 변수(SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY 등)도 들어가는 곳과 함께 보여요. SUPABASE_SERVICE_ROLE_KEY는 실행 중(서버·미들웨어·함수)에만 들어가요. DATABASE_URL·POSTGRES_URL·DIRECT_URL은 데이터베이스 비밀번호를 운영 배포에 넘길 때만 들어가요. MYSQL_*·WORDPRESS_DB_*는 MySQL 데이터베이스가 있을 때 들어가요. 같은 이름으로 저장하면 저장한 값을 써요.
--json에서는 자동으로 들어가는 변수가 "automatic": true로 끝에 붙어요.

옵션

옵션값설명
--target, -t, --environment<production|preview|development>어느 환경의 변수인지. 여러 번 쓰거나 쉼표로 여럿 (기본 preview). development는 oneend dev와 env pull용
--app<앱 이름>이 앱에만 넣는 변수 (같은 이름의 프로젝트 변수보다 먼저). 없으면 프로젝트의 모든 앱

oneend env pull

환경 변수를 .env 파일로 내려받아요

사용법

oneend env pull [파일] [--target <production|preview>]

기본 파일은 .env.local, 기본 환경은 preview예요. 파일은 본인만 읽을 수 있게(0600) 써요.
민감한 값은 내려받을 수 없어 이름만 주석으로 남겨요.
자동으로 들어가는 변수(SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY 등)도 써요. 서비스 역할 키는 이름만 남겨요.

인자 0~1개

옵션

옵션값설명
--target, -t, --environment<production|preview|development>어느 환경의 변수인지. 여러 번 쓰거나 쉼표로 여럿 (기본 preview). development는 oneend dev와 env pull용
--yes, -y묻지 않고 바로 해요

oneend env push

.env 파일의 변수를 저장해요

사용법

oneend env push [파일] [--target <production|preview>] [--app <앱 이름>] [--branch <git 브랜치>] [--sensitive]

기본 파일은 .env, 기본 환경은 preview예요. 같은 이름은 덮어써요. 플랫폼이 정하는 이름(PORT, HOST, HOSTNAME, HOME, BLACKWALL_…)의 줄은 건너뛰고 알려 줘요. 그 밖에는 전부 저장되거나 하나도 저장되지 않아요.

인자 0~1개

옵션

옵션값설명
--target, -t, --environment<production|preview|development>어느 환경의 변수인지. 여러 번 쓰거나 쉼표로 여럿 (기본 preview). development는 oneend dev와 env pull용
--app<앱 이름>이 앱에만 넣는 변수 (같은 이름의 프로젝트 변수보다 먼저). 없으면 프로젝트의 모든 앱
--branch<git 브랜치>이 브랜치의 미리보기에만 넣는 변수 (--target preview와 함께). --app과 함께 쓰면 그 앱의 그 브랜치에만
--sensitive민감한 값으로 저장해요 (다시 읽을 수 없음)
--dry-run보내지 않고 무엇을 보낼지만 보여 줘요

oneend env set

변수 하나를 저장해요

사용법

oneend env set <이름> [값] [--target <production|preview>] [--app <앱 이름>] [--branch <git 브랜치>] [--sensitive]

값을 비우면 터미널에서 묻거나 표준 입력에서 읽어요: printf %s "$SECRET" | oneend env set API_KEY --sensitive

인자 1~2개

옵션

옵션값설명
--target, -t, --environment<production|preview|development>어느 환경의 변수인지. 여러 번 쓰거나 쉼표로 여럿 (기본 preview). development는 oneend dev와 env pull용
--app<앱 이름>이 앱에만 넣는 변수 (같은 이름의 프로젝트 변수보다 먼저). 없으면 프로젝트의 모든 앱
--branch<git 브랜치>이 브랜치의 미리보기에만 넣는 변수 (--target preview와 함께). --app과 함께 쓰면 그 앱의 그 브랜치에만
--sensitive민감한 값으로 저장해요 (다시 읽을 수 없음)

oneend env rm

변수를 지워요

사용법

oneend env rm <이름> [--target <production|preview>] [--app <앱 이름>] [--branch <git 브랜치>] [--yes]

--target이 없으면 그 이름이 있는 모든 환경에서 지워요. --app이 있으면 그 앱에만, --branch가 있으면 그 브랜치에만 넣은 변수를 지워요.

인자 1개

옵션

옵션값설명
--target, -t, --environment<production|preview|development>어느 환경의 변수인지. 여러 번 쓰거나 쉼표로 여럿 (기본 preview). development는 oneend dev와 env pull용
--app<앱 이름>이 앱에만 넣는 변수 (같은 이름의 프로젝트 변수보다 먼저). 없으면 프로젝트의 모든 앱
--branch<git 브랜치>이 브랜치의 미리보기에만 넣는 변수 (--target preview와 함께). --app과 함께 쓰면 그 앱의 그 브랜치에만
--yes, -y묻지 않고 바로 해요

배포

사용법설명
oneend deploy커밋이나 이 폴더를 빌드해 배포하고, 끝날 때까지 로그를 보여 줘요
oneend deployments ls최근 배포
oneend deployments inspect배포 하나와 빌드 로그
oneend deployments redeploy같은 커밋을 다시 빌드해요
oneend deployments promote프리뷰를 프로덕션으로 다시 빌드하거나, 프로덕션 배포를 바로 올려요
oneend rollback프로덕션을 예전 배포로 되돌려요 (다시 빌드하지 않음)
oneend logs프로젝트 로그 (요청, 서버 출력, 함수, 빌드)
oneend deployments retention배포 보관 기간을 보거나 바꿔요
oneend deployments deleted최근 삭제한 배포 (30일 동안 되돌릴 수 있어요)
oneend deployments rm배포를 삭제해요 (30일 동안 되돌릴 수 있어요)
oneend deployments restore삭제한 배포를 되돌려요
oneend deployments branch-previews브랜치 미리보기를 보거나 켜고 꺼요
oneend server-memory서버 메모리를 보거나 바꿔요 (512·1024·2048·4096MB)
oneend concurrent-builds동시 빌드 수를 보거나 바꿔요 (1~20, none은 한도 없음)
oneend dev개발 명령을 개발 환경 변수와 함께 실행해요
oneend domains ls연결한 도메인 목록
oneend domains redirect도메인을 같은 프로젝트의 다른 도메인으로 넘겨요

oneend deploy

커밋이나 이 폴더를 빌드해 배포하고, 끝날 때까지 로그를 보여 줘요

사용법

oneend deploy [--branch <브랜치>] [--commit <해시>] [--app <저장소>] [--dir <폴더>] [--upload] [--prebuilt] [--prod] [--block-on-advisors] [--no-wait]

저장소에 push된 커밋을 빌드해요. --branch와 --commit이 없으면 이 폴더의 git에서 지금 브랜치와 HEAD를 써요.
프로덕션 브랜치면 프로덕션, 아니면 프리뷰로 배포돼요. 빌드가 실패하면 종료 코드 1.
저장소가 없거나 --dir·--upload·--prebuilt를 주면 폴더를 압축해 올려서 빌드해요.
.gitignore·.oneendignore를 따르고 node_modules와 .git은 빼요. --prod가 없으면 업로드는 프리뷰(--branch가 이름)예요.
--prebuilt는 이미 빌드한 폴더(예: --dir dist)를 빌드 없이 그대로 올려요.

옵션

옵션값설명
--branch, -b<브랜치>빌드할 브랜치 (업로드면 프리뷰의 이름)
--commit, -c<해시>빌드할 커밋 (40자리, 또는 이 폴더의 git이 아는 짧은 해시)
--app<이름>프로젝트에 저장소가 여럿일 때
--dir, -d<폴더>이 폴더를 올려 배포해요 (기본: 지금 폴더)
--upload저장소가 있어도 커밋 대신 이 폴더를 올려 배포해요
--prebuilt빌드하지 않고 올린 파일을 그대로 써요
--prod업로드를 프로덕션으로 배포해요 (소유자·관리자)
--message, -m<메모>업로드 배포에 남길 메모
--block-on-advisors데이터베이스 점검에 심각한 보안 문제가 있으면 프로덕션 배포를 하지 않아요
--wait빌드가 끝날 때까지 로그를 보여 줘요 (기본 켬, --no-wait로 끔)
--timeout<초>기다리는 최대 시간 (기본 1800초)

oneend deployments ls

최근 배포

사용법

oneend deployments ls [--limit <수>] [--before <dpl-id>]

옵션

옵션값설명
--limit, -n<수>몇 개 (기본 20, 최대 100)
--before<dpl-id>이 배포 다음부터 (더 오래된 쪽, 앞 쪽 끝에 나온 id)

oneend deployments inspect

배포 하나와 빌드 로그

사용법

oneend deployments inspect <id> [--wait] [--tail <줄>]

인자 1개

옵션

옵션값설명
--wait끝날 때까지 기다리며 로그를 보여 줘요
--timeout<초>기다리는 최대 시간 (기본 1800초)
--tail<줄>빌드 로그 끝 몇 줄 (기본 200)

oneend deployments redeploy

같은 커밋을 다시 빌드해요

사용법

oneend deployments redeploy <id> [--no-wait]

인자 1개

옵션

옵션값설명
--wait빌드가 끝날 때까지 로그를 보여 줘요 (기본 켬, --no-wait로 끔)
--timeout<초>기다리는 최대 시간 (기본 1800초)

oneend deployments promote

프리뷰를 프로덕션으로 다시 빌드하거나, 프로덕션 배포를 바로 올려요

사용법

oneend deployments promote <id> [--no-wait]

빌드가 끝난 프로덕션 배포를 주면 다시 빌드하지 않고 바로 올리고, 되돌리기로 생긴 프로덕션 보류를 풀어요. 지금 배포를 주면 보류만 풀려요.

인자 1개

옵션

옵션값설명
--wait빌드가 끝날 때까지 로그를 보여 줘요 (기본 켬, --no-wait로 끔)
--timeout<초>기다리는 최대 시간 (기본 1800초)

oneend rollback

프로덕션을 예전 배포로 되돌려요 (다시 빌드하지 않음)

사용법

oneend rollback <id> [--yes]

완료된 프로덕션 배포로만 되돌릴 수 있어요. 소유자·관리자만 할 수 있어요. 그 뒤 프로덕션은 보류돼요: 새 프로덕션 빌드는 oneend deployments promote <id>로 올리기 전까지 나가지 않아요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend logs

프로젝트 로그 (요청, 서버 출력, 함수, 빌드)

사용법

oneend logs [--source <출처>] [--level <수준>] [--search <말>] [--follow]

출처: site, server, api, auth, functions, build. 수준: info, warn, error. 오래된 줄이 위에 와요.

옵션

옵션값설명
--source, -s<출처>site | server | api | auth | functions | build
--level, -l<수준>info | warn | error
--search, -q<말>내용 검색
--deployment<id>배포 하나의 로그만
--limit, -n<수>몇 줄 (기본 100, 최대 500)
--follow, -f새 줄을 계속 보여 줘요 (Ctrl-C로 멈춤)

oneend deployments retention

배포 보관 기간을 보거나 바꿔요

사용법

oneend deployments retention [--canceled <일>|plan] [--error <일>|plan] [--preview <일>|plan] [--production <일>|plan]

기간이 지난 배포는 삭제되고, 30일 동안 oneend deployments restore로 되돌릴 수 있어요. 최근 배포 10개, 완료된 프로덕션 20개, 그 밖의 완료된 배포 20개, 서비스 중인 배포는 늘 남아요.
바꾸기는 프로젝트 관리자만 할 수 있어요.

옵션

옵션값설명
--canceled<일>|plan취소·건너뛴 배포를 남기는 날 수 (1~3650, plan이면 요금제 기본값)
--error<일>|plan실패한 배포를 남기는 날 수 (1~3650, plan이면 요금제 기본값)
--preview<일>|plan프리뷰 배포를 남기는 날 수 (1~3650, plan이면 요금제 기본값)
--production<일>|plan프로덕션 배포를 남기는 날 수 (1~3650, plan이면 요금제 기본값)

oneend deployments deleted

최근 삭제한 배포 (30일 동안 되돌릴 수 있어요)

사용법

oneend deployments deleted

옵션

이 명령만의 옵션은 없어요.

oneend deployments rm

배포를 삭제해요 (30일 동안 되돌릴 수 있어요)

사용법

oneend deployments rm <id> [--yes]

서비스 중이거나 빌드 중인 배포는 삭제할 수 없어요. 삭제한 배포 주소는 410으로 답하고, 30일 뒤 파일과 빌드 로그를 지워요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend deployments restore

삭제한 배포를 되돌려요

사용법

oneend deployments restore <id>

삭제한 지 30일이 지나지 않은 배포만 되돌릴 수 있어요.

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend deployments branch-previews

브랜치 미리보기를 보거나 켜고 꺼요

사용법

oneend deployments branch-previews [on|off]

off면 프로덕션 브랜치(보통 main)에 들어온 것만 빌드하고, 브랜치 푸시는 배포 기록에 건너뜀으로 남아요. redeploy, 직접 올린 배포, 배포 훅은 그대로 빌드해요.
조직 전체에 적용되고, 바꾸기는 소유자·관리자만 할 수 있어요.

인자 0~1개

옵션

이 명령만의 옵션은 없어요.

oneend server-memory

서버 메모리를 보거나 바꿔요 (512·1024·2048·4096MB)

사용법

oneend server-memory [512|1024|2048|4096]

1024MB보다 크면 CPU가 2개예요. 프로덕션과 브랜치 주소의 서버는 늘 켜져 있어서, 서버마다 한 달 요금이 나가요.
바꾸면 1분 안에 서버가 새 크기로 다시 시작해요. 소유자·관리자만 바꿀 수 있어요.

인자 0~1개

옵션

이 명령만의 옵션은 없어요.

oneend concurrent-builds

동시 빌드 수를 보거나 바꿔요 (1~20, none은 한도 없음)

사용법

oneend concurrent-builds [<수>|none]

넘는 빌드는 앞 빌드가 끝날 때까지 기다려요. 기다리는 시간은 청구하지 않아요. 소유자·관리자만 바꿀 수 있어요.

인자 0~1개

옵션

이 명령만의 옵션은 없어요.

oneend dev

개발 명령을 개발 환경 변수와 함께 실행해요

사용법

oneend dev [--app <이름>] [--dry-run]

명령은 콘솔의 빌드 · 개발 설정에 정한 개발 명령이고, 없으면 npm run dev예요.
루트 디렉터리를 정했으면 그 폴더에서 실행해요. 민감한 값은 내려받을 수 없어서 빠져요.

옵션

옵션값설명
--app<이름>저장소가 여럿일 때 어느 것인지 (list_apps의 name)
--dry-run실행하지 않고 무엇을 실행할지만 보여 줘요

oneend domains ls

연결한 도메인 목록

사용법

oneend domains ls

옵션

이 명령만의 옵션은 없어요.

oneend domains redirect

도메인을 같은 프로젝트의 다른 도메인으로 넘겨요

사용법

oneend domains redirect <도메인> <주소> [--status <코드>] | oneend domains redirect <도메인> --off

주소는 도메인이나 도메인/경로예요. 경로를 붙이면 방문한 경로가 그 뒤에 붙고 질의 문자열은 그대로 따라가요: oneend domains redirect vision.example.com example.com/vision 이면 vision.example.com/x?y=1 → example.com/vision/x?y=1, 첫 화면은 example.com/vision. 넘길 도메인은 이 프로젝트에 연결한, 리디렉트가 아닌 도메인이어야 해요.

인자 1~2개

옵션

옵션값설명
--status<코드>응답 코드: 308 (기본, 영구) · 307 · 301 · 302
--off리디렉트를 끄고 이 도메인에서 다시 사이트를 열어요

Git·앱

사용법설명
oneend git import저장소를 연결하고 첫 배포를 시작해요
oneend git checks검사를 One Server에서 실행 (켜기·끄기)
oneend apps ls이 프로젝트의 앱과 주소
oneend apps set앱 하나의 설정을 바꿔요 (--run-as)
oneend apps delete앱 하나를 지워요 (주소와 배포까지)
oneend apps settings앱 설정: 서버가 듣는 포트

oneend git import

저장소를 연결하고 첫 배포를 시작해요

사용법

oneend git import <owner/name> [--root <폴더>] [--app <앱 이름>] [--branch <브랜치>] [--no-wait]

GitHub App이 볼 수 있는 저장소를 이 프로젝트에 연결하고, 프로덕션 브랜치의 최신 커밋을 빌드해요(콘솔의 [연결하고 배포], MCP import_repository와 같아요).
모노레포는 앱 폴더마다 한 번씩 가져와요: oneend git import acme/mono --root apps/web, 그다음 --root apps/admin.
연결한 저장소에서 다른 폴더를 고르면 새 앱이 되고, 주소도 따로 받아요(oneend apps ls). 데이터베이스·키·프로젝트 환경 변수는 함께 써요.
설치는 저장소 맨 위(잠금 파일이 있는 곳)에서, 빌드는 앱 폴더에서 해요. 소유자·관리자만 할 수 있어요.

인자 1개

옵션

옵션값설명
--root<폴더>앱 폴더 (예: apps/web). 없으면 저장소 맨 위
--app<앱 이름>앱 이름. 없으면 폴더 이름, 없으면 저장소 이름
--branch, -b<브랜치>프로덕션 브랜치. 없으면 저장소의 기본 브랜치
--wait빌드가 끝날 때까지 로그를 보여 줘요 (기본 켬, --no-wait로 끔)
--timeout<초>기다리는 최대 시간 (기본 1800초)

oneend git checks

검사를 One Server에서 실행 (켜기·끄기)

사용법

oneend git checks [<owner/name> on|off]

연결한 GitHub 저장소의 GitHub Actions 검사를 One Server의 머신에서 실행해요(콘솔의 Git 연결 → 검사를 One Server에서 실행, MCP set_checks_on_server와 같아요).
인자 없이 부르면 저장소마다 상태를 보여 줘요. 켜면 저장소 변수 POOL_RUNNER를 저장하고, 작업이 아래 줄을 쓰면 One Server에서 돌아요:
runs-on: ${{ vars.POOL_RUNNER || 'ubuntu-latest' }}
끄면 변수를 지워 다음 작업부터 GitHub의 머신에서 돌아요. 바꾸는 건 소유자·관리자만 할 수 있어요.

인자 0~2개

옵션

이 명령만의 옵션은 없어요.

oneend apps ls

이 프로젝트의 앱과 주소

사용법

oneend apps ls

앱마다 저장소, 폴더(루트 디렉터리), 프로덕션 브랜치, 프로덕션 주소를 보여 줘요. 프로젝트의 사이트는 <ref>--site, 다른 앱은 <ref>--<앱> 주소를 받아요.

옵션

이 명령만의 옵션은 없어요.

oneend apps set

앱 하나의 설정을 바꿔요 (--run-as)

사용법

oneend apps set <앱 이름> --run-as <platform|image>

--run-as image: 이미지에 적힌 사용자(root 포함)로 gVisor 격리 환경에서 실행해요. WordPress 공식 이미지처럼 root로 시작해야 하는 Dockerfile 앱에만 쓰세요. root여도 다른 프로젝트에는 닿지 못해요. --run-as platform(기본): 일반 사용자(10001)로 실행해요.
바꾸면 다시 빌드하지 않고 1분 안에 서버가 다시 시작해요(콘솔의 빌드 설정, MCP update_app의 run_as와 같아요). 소유자·관리자만 바꿀 수 있어요.

인자 1개

옵션

옵션값설명
--run-as<platform|image>서버를 누구로 실행할지: platform(일반 사용자 10001) 또는 image(이미지의 사용자, gVisor)

oneend apps delete

앱 하나를 지워요 (주소와 배포까지)

사용법

oneend apps delete <앱 이름> [--yes]

주소는 바로 내려가고, 진행 중인 빌드는 취소되고, 배포는 복원 없이 지워져요. 저장소에 폴더가 남아 있어도 다시 빌드하지 않아요. 프로젝트의 기본 사이트, 도메인이 연결된 앱, 디스크가 있는 앱은 지우지 않고 먼저 할 일을 알려줘요(콘솔의 앱 설정, MCP delete_app과 같아요). 소유자·관리자만 지울 수 있어요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend apps settings

앱 설정: 서버가 듣는 포트

사용법

oneend apps settings <앱> --port <포트|auto>

auto면 이미지의 EXPOSE, 없으면 3000이에요. 바꾸면 1분 안에 서버가 다시 시작해요. 소유자·관리자만 바꿀 수 있어요.

인자 1개

옵션

옵션값설명
--port<포트|auto>1~65535, 또는 auto

볼륨

사용법설명
oneend volumes ls앱의 볼륨과 백업, 앱마다 서버가 듣는 포트
oneend volumes create앱의 프로덕션 서버에 볼륨을 붙여요
oneend volumes resize볼륨을 더 크게 해요 (줄일 수는 없어요)
oneend volumes rm볼륨과 그 파일·백업을 지워요 (되돌릴 수 없어요)
oneend volumes backup볼륨의 파일을 지금 백업해요 (30일 보관)
oneend volumes restore볼륨을 백업으로 되돌려요 (지금 파일은 먼저 7일 백업)

oneend volumes ls

앱의 볼륨과 백업, 앱마다 서버가 듣는 포트

사용법

oneend volumes ls

볼륨은 서버를 다시 시작하거나 새로 배포해도 남는 디스크예요. 프로덕션 서버에만 붙어요.

옵션

이 명령만의 옵션은 없어요.

oneend volumes create

앱의 프로덕션 서버에 볼륨을 붙여요

사용법

oneend volumes create <앱> <경로> [--size <GB>]

WordPress라면 경로는 /var/www/html이에요. 1분 안에 준비되고 서버가 다시 시작해요. 소유자·관리자만 할 수 있어요.

인자 2개

옵션

옵션값설명
--size<GB>크기 GB (기본 1, 1~500)

oneend volumes resize

볼륨을 더 크게 해요 (줄일 수는 없어요)

사용법

oneend volumes resize <id> <GB>

인자 2개

옵션

이 명령만의 옵션은 없어요.

oneend volumes rm

볼륨과 그 파일·백업을 지워요 (되돌릴 수 없어요)

사용법

oneend volumes rm <id> --confirm <경로>

되돌릴 수 없어서 --confirm에 볼륨 경로를 그대로 넣어야 해요(oneend volumes ls의 경로).

인자 1개

옵션

옵션값설명
--confirm<경로>볼륨 경로, 예: /var/www/html

oneend volumes backup

볼륨의 파일을 지금 백업해요 (30일 보관)

사용법

oneend volumes backup <id>

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend volumes restore

볼륨을 백업으로 되돌려요 (지금 파일은 먼저 7일 백업)

사용법

oneend volumes restore <id> <백업 id>

인자 2개

옵션

이 명령만의 옵션은 없어요.

파일 저장소

사용법설명
oneend storage ls버킷, 또는 버킷 안의 파일을 보여줘요
oneend storage upload내 컴퓨터의 파일을 버킷에 올려요
oneend storage download버킷의 파일을 내 컴퓨터로 받아요
oneend storage rm버킷의 파일을 지워요 (되돌릴 수 없어요)

oneend storage ls

버킷, 또는 버킷 안의 파일을 보여줘요

사용법

oneend storage ls [<버킷>[/<폴더>]]

버킷을 빼면 버킷 목록이에요. 폴더는 한 단계씩 보여줘요: oneend storage ls photos/2026

인자 0~1개

옵션

이 명령만의 옵션은 없어요.

oneend storage upload

내 컴퓨터의 파일을 버킷에 올려요

사용법

oneend storage upload <파일> <버킷>/<이름> [--replace]

같은 이름의 파일이 있으면 멈춰요. 바꾸려면 --replace를 붙이세요. 2MB보다 큰 파일도 올릴 수 있어요(플랜의 파일 한도까지).

인자 2개

옵션

옵션값설명
--replace같은 이름의 파일이 있으면 바꿔요
--content-type<종류>파일 종류, 예: image/png (기본은 확장자로 정해요)

oneend storage download

버킷의 파일을 내 컴퓨터로 받아요

사용법

oneend storage download <버킷>/<이름> [<파일>]

저장할 파일을 빼면 이름의 마지막 부분으로 현재 폴더에 저장해요. 같은 이름의 파일이 있으면 멈춰요. 바꾸려면 --replace를 붙이세요.

인자 1~2개

옵션

옵션값설명
--replace내 컴퓨터에 같은 이름의 파일이 있으면 바꿔요

oneend storage rm

버킷의 파일을 지워요 (되돌릴 수 없어요)

사용법

oneend storage rm <버킷>/<이름> --yes

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

전용 서버

사용법설명
oneend server전용 서버를 봐요 (크기, 위치, 대기 서버, 작업)
oneend server request전용 서버를 빌려요
oneend server resize전용 서버 크기를 바꿔요 (지금 또는 오늘 새벽)
oneend server standby대기 서버를 켜거나 꺼요 (auto면 자동 전환)
oneend server move전용 서버를 다른 위치로 옮겨요 (한 달에 한 번, 무료)
oneend server release전용 서버를 반납해요
oneend server restore-days되돌리기 기간을 7일 또는 28일로 정해요

oneend server

전용 서버를 봐요 (크기, 위치, 대기 서버, 작업)

사용법

oneend server [--project <ref>]

크기와 위치별 월 금액은 oneend server-sizes(MCP list_server_sizes)로 봐요.

옵션

이 명령만의 옵션은 없어요.

oneend server request

전용 서버를 빌려요

사용법

oneend server request <크기> [<위치>]

보통 10분 안에 준비되고, 데이터베이스와 앱을 옮긴 뒤 주소를 바꿔요. Pro부터, 소유자·관리자만 할 수 있어요.

인자 1~2개

옵션

이 명령만의 옵션은 없어요.

oneend server resize

전용 서버 크기를 바꿔요 (지금 또는 오늘 새벽)

사용법

oneend server resize <크기> [now|tonight]

tonight는 서버 위치 시간 새벽 3~5시예요. 대기 서버가 없으면 3~5분 동안 응답하지 않아요. 소유자·관리자만 할 수 있어요.

인자 1~2개

옵션

이 명령만의 옵션은 없어요.

oneend server standby

대기 서버를 켜거나 꺼요 (auto면 자동 전환)

사용법

oneend server standby on|off [auto]

대기 서버는 같은 위치·같은 크기이고, 데이터베이스를 계속 복제해요. auto면 주 서버가 60초 응답하지 않을 때 저절로 바꿔요. 소유자·관리자만 할 수 있어요.

인자 1~2개

옵션

이 명령만의 옵션은 없어요.

oneend server move

전용 서버를 다른 위치로 옮겨요 (한 달에 한 번, 무료)

사용법

oneend server move <위치>

주소를 바꾸는 순간 쓰기가 몇 초 멈춰요. 옛 서버는 7일 동안 남겨요. 소유자·관리자만 할 수 있어요.

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend server release

전용 서버를 반납해요

사용법

oneend server release <프로젝트>

마지막 백업을 받고 데이터베이스와 앱을 공용 서버로 옮긴 뒤 서버를 지워요. 옮기는 동안 쓰기가 멈춰요. 확인으로 프로젝트 ID(ref)를 그대로 주세요.

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend server restore-days

되돌리기 기간을 7일 또는 28일로 정해요

사용법

oneend server restore-days 7|28

28일은 전용 서버에서만 되고 월 추가 요금이 있어요. 소유자·관리자만 할 수 있어요.

인자 1개

옵션

이 명령만의 옵션은 없어요.

다른 서버에서 가져오기

사용법설명
oneend import sources연결한 원본 계정과 그 프로젝트, 지금까지의 가져오기
oneend import start가져오기를 시작해요
oneend import get가져오기 진행 상황
oneend import authSupabase 프로젝트의 로그인 설정을 이 프로젝트로 복사해요
oneend import storageSupabase 프로젝트의 버킷과 파일을 이 프로젝트로 복사해요

oneend import sources

연결한 원본 계정과 그 프로젝트, 지금까지의 가져오기

사용법

oneend import sources [--org <이름>]

다른 서버에서 가져오기(콘솔의 조직 메뉴, MCP import_sources와 같아요). 원본 계정(Supabase, Vercel, PostgreSQL)은 콘솔에서 한 번 연결해요.

옵션

옵션값설명
--org<이름>조직의 id나 이름. 없으면 첫 조직

oneend import start

가져오기를 시작해요

사용법

oneend import start (<가져오기 id> | --connection <id> --project <id>) [--org <이름>]

콘솔에서 나눈 가져오기, 또는 원본 계정의 프로젝트를 묶음마다 새 프로젝트로 가져와요(콘솔의 [가져오기 시작], MCP start_import와 같아요).
Supabase 원본은 세션 풀러 연결 문자열을 환경 변수 ONEEND_SOURCE_DB_URL로 넘겨요. 이번 실행에만 쓰고 지워요.
멈춘 가져오기를 다시 시작하면 끝난 곳은 건너뛰고 바뀐 것만 옮겨요. 상태는 oneend import get <id>로 봐요.

인자 0~1개

옵션

옵션값설명
--connection<id>원본 계정 (oneend import sources의 connection)
--project<id>원본 프로젝트
--org<이름>조직의 id나 이름. 없으면 첫 조직

oneend import get

가져오기 진행 상황

사용법

oneend import get <가져오기 id> [--org <이름>]

옮길 곳마다 단계별 상태를 보여 줘요(MCP get_import와 같아요).

인자 1개

옵션

옵션값설명
--org<이름>조직의 id나 이름. 없으면 첫 조직

oneend import auth

Supabase 프로젝트의 로그인 설정을 이 프로젝트로 복사해요

사용법

oneend import auth --connection <id> --from <ref> [--providers <이름>] [--dry-run] [--org <이름>]

연결한 Supabase 계정으로 켜 둔 소셜 제공자, 돌아갈 주소 목록, 비어 있으면 사이트 주소를 연결된 프로젝트로 복사해요(MCP copy_auth_from_import와 같아요).
시크릿은 Supabase에서 바로 읽어 저장하고 화면에 보이지 않아요. 먼저 --dry-run으로 확인하세요.
끝나면 콜백 주소를 각 제공자 콘솔에 등록하세요. 등록 전에는 로그인이 실패해요.

옵션

옵션값설명
--connection<id>원본 계정 (oneend import sources의 connection)
--from<ref>Supabase 프로젝트 ref (MCP의 project)
--providers<이름>복사할 제공자. 여러 번 쓰거나 쉼표로 여럿 (기본: 켜 둔 것 모두)
--dry-run바꾸지 않고 무엇을 복사할지만 보여 줘요
--org<이름>조직의 id나 이름. 없으면 첫 조직

oneend import storage

Supabase 프로젝트의 버킷과 파일을 이 프로젝트로 복사해요

사용법

oneend import storage --connection <id> --from <ref> [--buckets <이름>] [--rename <원래=새>] [--dry-run] [--org <이름>]

연결한 Supabase 계정으로 버킷과 파일을 연결된 프로젝트로 복사해요(MCP copy_storage_from_import와 같아요).
없는 버킷은 Supabase와 같은 공개 여부·한도로 만들고, 크기가 같은 파일이 이미 있으면 건너뛰어요. 끝날 때까지 이어서 불러요.
Supabase 키는 서버 안에서만 써요. 버킷의 접근 규칙은 옮기지 않아요. 먼저 --dry-run으로 확인하세요.

옵션

옵션값설명
--connection<id>원본 계정 (oneend import sources의 connection)
--from<ref>Supabase 프로젝트 ref (MCP의 project)
--buckets<이름>복사할 Supabase 버킷. 여러 번 쓰거나 쉼표로 여럿 (기본: 모두)
--rename<원래=새>버킷 이름 바꾸기. 없으면 소문자로, 공백은 -로
--dry-run바꾸지 않고 만들 버킷과 옮길 파일 수만 보여 줘요
--org<이름>조직의 id나 이름. 없으면 첫 조직

함수

사용법설명
oneend functions ls배포한 함수
oneend functions deploy함수를 배포해요 (파일 하나 또는 폴더, 같은 이름이면 통째로 교체)
oneend functions rm함수를 지워요
oneend functions download배포된 함수의 코드를 내려받아요
oneend functions invoke함수를 불러 봐요 (프로젝트의 비밀 키로)
oneend functions limits함수의 시간 한도를 보거나 바꿔요 (호출 하나, SQL 한 문장)
oneend functions egress함수의 외부 요청을 켜거나 꺼요 (fetch()로 공개 HTTPS 주소 부르기)
oneend secrets list함수 시크릿 이름 (값은 보여 주지 않아요)
oneend secrets set함수 시크릿을 저장해요 (같은 이름이면 덮어써요)
oneend secrets copy다른 프로젝트의 함수 시크릿을 이름으로 복사해요
oneend secrets unset함수 시크릿을 지워요

oneend functions ls

배포한 함수

사용법

oneend functions ls

옵션

이 명령만의 옵션은 없어요.

oneend functions deploy

함수를 배포해요 (파일 하나 또는 폴더, 같은 이름이면 통째로 교체)

사용법

oneend functions deploy <이름> [파일 또는 폴더] [--public | --private]

파일이 없으면 oneend/functions/<이름>/ 폴더, supabase/functions/<이름>/ 폴더, oneend/functions/<이름>.ts 순서로 찾아요.
폴더면 index.ts(또는 index.js)에서 시작하고, 다른 모듈과 package.json, deno.json도 보내요(.gitignore를 따르고 node_modules는 빼요). ../_shared/처럼 옆 폴더를 import하면 그 폴더도 보내요.
npm:·jsr:·URL import와 deno.json의 imports는 배포할 때 받아서 함께 묶어요.
함수는 프로덕션 비밀을 읽을 수 있어 소유자·관리자만 배포할 수 있어요.

인자 1~2개

옵션

옵션값설명
--public키 없이 부를 수 있게 해요 (결제사 웹훅 등). --no-public은 비공개
--private비공개로 둬요: 이 프로젝트의 키(공개 키·사용자 토큰·비밀 키)가 있어야 부를 수 있음 (새 함수의 기본)

oneend functions rm

함수를 지워요

사용법

oneend functions rm <이름> [--yes]

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend functions download

배포된 함수의 코드를 내려받아요

사용법

oneend functions download <이름> [파일]

파일이 없으면 표준 출력으로 써요.

인자 1~2개

옵션

이 명령만의 옵션은 없어요.

oneend functions invoke

함수를 불러 봐요 (프로젝트의 비밀 키로)

사용법

oneend functions invoke <이름> [--data <JSON>] [--method <POST>] [--header <이름: 값>]

인자 1개

옵션

옵션값설명
--data, -d<본문>보낼 본문 (JSON이면 content-type도 JSON). @파일로 파일 내용
--method, -X<메서드>기본 POST
--header, -H<이름: 값>더 보낼 헤더 (여러 번)

oneend functions limits

함수의 시간 한도를 보거나 바꿔요 (호출 하나, SQL 한 문장)

사용법

oneend functions limits <이름> [--timeout <초>] [--sql-timeout <초>]

기본은 호출 하나에 150초(Supabase 엣지 함수와 같음), SQL 한 문장에 8초예요. 이 서버의 최대는 timeout_cap_seconds예요.
default를 주면 기본값으로 돌아가요. 플래그가 없으면 지금 한도를 보여 줘요. 다음 호출부터 적용되고, 한도를 넘긴 호출은 504로 끊겨요.

인자 1개

옵션

옵션값설명
--timeout<초>호출 하나에 쓸 수 있는 초 (default면 기본 150초)
--sql-timeout<초>SQL 한 문장에 쓸 수 있는 초 (default면 기본 8초)

oneend functions egress

함수의 외부 요청을 켜거나 꺼요 (fetch()로 공개 HTTPS 주소 부르기)

사용법

oneend functions egress [on | off]

기본은 꺼져 있어요. 꺼져 있으면 함수는 이 프로젝트의 데이터베이스와 API에만 닿아요.
켜면 서버가 대신 요청하고 모두 함수 로그에 남아요. 내부 주소는 막아요. 함수 코드가 데이터를 밖으로 보낼 수 있게 되니 필요할 때만 켜세요.
인자가 없으면 지금 상태를 보여 줘요. 30초 안에 적용돼요. 소유자·관리자만 바꿀 수 있어요.

인자 0~1개

옵션

이 명령만의 옵션은 없어요.

oneend secrets list

함수 시크릿 이름 (값은 보여 주지 않아요)

사용법

oneend secrets list

옵션

이 명령만의 옵션은 없어요.

oneend secrets set

함수 시크릿을 저장해요 (같은 이름이면 덮어써요)

사용법

oneend secrets set <이름=값>... [--env-file <파일>]

함수만 보는 값이에요. 사이트 빌드에는 들어가지 않고, 함수는 다음 호출부터 process.env로 읽어요. 저장한 값은 다시 볼 수 없어요.
값 없이 이름 하나만 주면 표준 입력에서 읽어요(셸 기록에 남지 않게): printf %s "$KEY" | oneend secrets set RESEND_API_KEY
전부 저장되거나 하나도 저장되지 않아요. 소유자·관리자만 할 수 있어요.

인자 0~100개

옵션

옵션값설명
--env-file<파일>.env 파일의 변수를 모두 시크릿으로 저장해요

oneend secrets copy

다른 프로젝트의 함수 시크릿을 이름으로 복사해요

사용법

oneend secrets copy --from <ref> <이름>... [--overwrite]

값은 서버 안에서만 옮겨지고 화면에는 이름만 나와요. 다른 프로젝트에 이미 넣은 키를 다시 붙여 넣지 않아도 돼요.
이 프로젝트에 이미 있는 이름은 건너뛰어요. 바꾸려면 --overwrite를 붙여요. 원본에 없는 이름은 따로 알려 주고 나머지는 복사해요.
한 번에 50개까지예요. 두 프로젝트 모두에서 소유자·관리자여야 해요.

인자 1~50개

옵션

옵션값설명
--from<ref>복사해 올 프로젝트 (oneend projects list의 ref)
--overwrite이 프로젝트에 같은 이름이 있으면 바꿔요

oneend secrets unset

함수 시크릿을 지워요

사용법

oneend secrets unset <이름>... [--yes]

인자 1~100개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

GPU

사용법설명
oneend gpuGPU 요금과 이 프로젝트의 GPU 작업·서버
oneend gpu jobs createGPU를 빌려 명령을 끝까지 실행해요 (유료)
oneend gpu jobs getGPU 작업 하나의 상태와 출력 끝부분
oneend gpu jobs cancelGPU 작업을 멈춰요
oneend gpu servers create모델을 띄워 둘 GPU 서버를 만들어요 (유료)
oneend gpu servers stopGPU 서버를 지금 멈춰요
oneend gpu servers rmGPU 서버를 지워요
oneend gpu volumes create모델과 데이터를 남겨 둘 GPU 저장소를 만들어요 (유료)
oneend gpu volumes rmGPU 저장소와 그 안의 파일을 지워요

oneend gpu

GPU 요금과 이 프로젝트의 GPU 작업·서버

사용법

oneend gpu

GPU는 초 단위로 빌려요. Pro 이상 요금제에서 쓸 수 있어요.

옵션

이 명령만의 옵션은 없어요.

oneend gpu jobs create

GPU를 빌려 명령을 끝까지 실행해요 (유료)

사용법

oneend gpu jobs create <이미지> "<명령>" [--gpu rtx4090] [--region auto] [--volume <이름>] [--name <이름>] [--env-file .env] [--max-minutes 60] [--yes]

명령이 끝나거나 --max-minutes가 지나면 GPU를 돌려줘요. 빌린 순간부터 돌려줄 때까지 초 단위로 청구돼요(이미지 받는 시간 포함).
결과는 GPU 저장소나 외부에 올려야 남아요. 이미지에 curl, wget, python3 중 하나가 있어야 시작과 끝을 알 수 있어요.

인자 2개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요
--gpu<rtx4090|l40s|a100|h100>GPU 장비 (기본 rtx4090)
--region<auto|asia|us|eu>빌릴 지역 (기본 auto, asia는 일본·인도)
--volume<이름>/workspace에 붙일 GPU 저장소. 그 저장소의 데이터센터에서 빌려요
--name<이름>작업 이름
--env-file<파일>환경 변수 파일 (.env 형식). 암호화해 저장해요
--max-minutes<분>최대 실행 시간 (기본 60, 최대 10080)

oneend gpu jobs get

GPU 작업 하나의 상태와 출력 끝부분

사용법

oneend gpu jobs get <작업 id>

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend gpu jobs cancel

GPU 작업을 멈춰요

사용법

oneend gpu jobs cancel <작업 id>

시작 전이면 시작하지 않고, 실행 중이면 GPU를 돌려줘요. 돌려줄 때까지 쓴 시간은 청구돼요.

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend gpu servers create

모델을 띄워 둘 GPU 서버를 만들어요 (유료)

사용법

oneend gpu servers create <이름> <이미지> [--gpu l40s] [--region auto] [--volume <이름>] [--command "<명령>"] [--port 8000] [--idle-minutes 15] [--env-file .env] [--yes]

첫 요청 때 켜지고(켜지는 동안 503), --idle-minutes 동안 요청이 없으면 꺼져요. 0이면 계속 켜 둬요.
주소는 secret 키로 불러요. 켜기 시작한 순간부터 꺼질 때까지 초 단위로 청구돼요(이미지 받는 시간 포함).

인자 2개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요
--gpu<rtx4090|l40s|a100|h100>GPU 장비 (기본 rtx4090)
--region<auto|asia|us|eu>빌릴 지역 (기본 auto, asia는 일본·인도)
--volume<이름>/workspace에 붙일 GPU 저장소. 그 저장소의 데이터센터에서 빌려요
--command<명령>비우면 이미지의 기본 명령
--port<포트>서버가 듣는 포트 (기본 8000)
--idle-minutes<분>요청 없이 이만큼 지나면 꺼요 (기본 15, 0은 계속 켜 둠)
--env-file<파일>환경 변수 파일 (.env 형식). 암호화해 저장해요

oneend gpu servers stop

GPU 서버를 지금 멈춰요

사용법

oneend gpu servers stop <이름>

곧 꺼져요. 꺼질 때까지 쓴 시간은 청구돼요. 다음 요청 때 다시 켜져요.

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend gpu servers rm

GPU 서버를 지워요

사용법

oneend gpu servers rm <이름> [--yes]

켜져 있으면 먼저 끄고 지워요. 되돌릴 수 없어요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend gpu volumes create

모델과 데이터를 남겨 둘 GPU 저장소를 만들어요 (유료)

사용법

oneend gpu volumes create <이름> --datacenter <데이터센터> [--size 50] [--yes]

작업이나 서버에 --volume으로 주면 /workspace에 붙어요. 그 작업과 서버는 이 데이터센터에서만 GPU를 빌려요.
쓰지 않아도 지울 때까지 1GB·월 요금이 청구돼요. 한국에서 가까운 곳은 AP-JP-1(일본)이에요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요
--datacenter<데이터센터>데이터센터, 예: AP-JP-1 (목록은 oneend gpu --json)
--size<GB>크기 GB (기본 50, 10~4000)

oneend gpu volumes rm

GPU 저장소와 그 안의 파일을 지워요

사용법

oneend gpu volumes rm <이름> [--yes]

쓰는 작업이나 서버가 있으면 지우지 않아요. 되돌릴 수 없어요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

네트워크

사용법설명
oneend network프로젝트의 받는 주소와 고정 아웃바운드 IP
oneend network static-ip고정 아웃바운드 IP를 켜거나 꺼요 (유료)

oneend network

프로젝트의 받는 주소와 고정 아웃바운드 IP

사용법

oneend network

받는 주소는 커스텀 도메인의 A 레코드에 써요.
나가는 주소는 고정 아웃바운드 IP(유료, Pro 이상)를 켜야 고정돼요. 켜지 않으면 공유 주소라 예고 없이 바뀔 수 있어요.

옵션

이 명령만의 옵션은 없어요.

oneend network static-ip

고정 아웃바운드 IP를 켜거나 꺼요 (유료)

사용법

oneend network static-ip <on|off> [--yes]

월 요금을 쓴 기간만큼 내요. Pro 이상 요금제에서 소유자·관리자·결제 담당자만 할 수 있어요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

데이터베이스

사용법설명
oneend migration new빈 마이그레이션 파일을 만들어요
oneend migration list로컬 마이그레이션과 원격 적용 기록을 나란히
oneend migration repair원격 적용 기록을 고쳐요 (실행하지 않음)
oneend db push적용하지 않은 마이그레이션을 순서대로 적용해요
oneend db pull지금 스키마를 마이그레이션 파일로 내려받아요
oneend gen types typescriptsupabase-js용 TypeScript 타입을 만들어요
oneend db schemas프로젝트가 만든 스키마와 노출 여부
oneend db schemas expose스키마를 데이터 API에 노출해요
oneend db schemas hide스키마를 데이터 API에서 숨겨요
oneend db move전용 데이터베이스로 옮기기 상태
oneend db move now전용 데이터베이스로 옮기기를 요청해요
oneend db disk전용 디스크
oneend db disk request전용 디스크로 옮기기를 요청해요
oneend db disk shrink전용 디스크를 줄여요
oneend branches list데이터베이스 브랜치 목록
oneend branches create프로젝트의 스키마로 데이터베이스 브랜치를 만들어요
oneend branches merge브랜치의 마이그레이션을 프로젝트에 적용해요
oneend branches reset브랜치를 프로젝트의 스키마로 다시 만들어요
oneend branches delete브랜치와 그 데이터베이스를 지워요

oneend migration new

빈 마이그레이션 파일을 만들어요

사용법

oneend migration new <이름>

oneend/migrations/<YYYYMMDDHHMMSS>_<이름>.sql을 만들어요. 표준 입력으로 내용을 넘길 수도 있어요.

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend migration list

로컬 마이그레이션과 원격 적용 기록을 나란히

사용법

oneend migration list

옵션

이 명령만의 옵션은 없어요.

oneend migration repair

원격 적용 기록을 고쳐요 (실행하지 않음)

사용법

oneend migration repair <버전...> --status <applied|reverted>

applied: 로컬 파일을 실행하지 않고 적용한 것으로 기록해요.
reverted: 기록만 지워요. 그 마이그레이션이 만든 것은 그대로예요.

인자 1개 이상

옵션

옵션값설명
--status<applied|reverted>어느 쪽으로 고칠지

oneend db push

적용하지 않은 마이그레이션을 순서대로 적용해요

사용법

oneend db push [--dry-run] [--include-all] [--yes]

파일 하나가 트랜잭션 하나예요. 실패하면 그것만 되돌리고 멈춰요(종료 코드 1). 기록은 oneend_migrations 표에 남아요.
supabase/migrations의 파일을 oneend/migrations에 그대로 복사해도 돼요. public., auth.uid(), to authenticated 같은 Supabase 이름은 이 프로젝트의 이름으로 바꿔 실행해요(Supabase 이름 변환).

옵션

옵션값설명
--dry-run적용하지 않고 무엇이 적용될지만 보여 줘요
--include-all원격의 마지막 버전보다 앞선 로컬 마이그레이션도 적용해요
--yes, -y묻지 않고 바로 해요

oneend db pull

지금 스키마를 마이그레이션 파일로 내려받아요

사용법

oneend db pull [이름] [--no-record]

표·제약·인덱스·함수·뷰·트리거·RLS 규칙을 SQL로 받아 oneend/migrations/<버전>_<이름>.sql(기본 remote_schema)로 써요.
그 파일은 적용한 것으로 기록돼서 db push가 다시 실행하지 않아요(--no-record로 끔).

인자 0~1개

옵션

옵션값설명
--record적용한 것으로 기록해요 (기본 켬)

oneend gen types typescript

supabase-js용 TypeScript 타입을 만들어요

사용법

oneend gen types typescript [--schema public] [--output <파일>]

표준 출력으로 써요: oneend gen types typescript > src/database.types.ts

옵션

옵션값설명
--schema, -s<스키마>기본 public. 프로젝트가 만든 스키마(oneend db schemas)도 돼요
--output, -o<파일>표준 출력 대신 이 파일에

oneend db schemas

프로젝트가 만든 스키마와 노출 여부

사용법

oneend db schemas

노출한 스키마는 데이터 API가 Accept-Profile·Content-Profile 헤더(supabase-js의 db: { schema })로 답해요. public은 늘 노출돼요.

옵션

이 명령만의 옵션은 없어요.

oneend db schemas expose

스키마를 데이터 API에 노출해요

사용법

oneend db schemas expose <이름...>

접근 규칙(RLS)과 권한은 public과 같게 적용돼요. 소유자·관리자만 할 수 있어요.

인자 1개 이상

옵션

이 명령만의 옵션은 없어요.

oneend db schemas hide

스키마를 데이터 API에서 숨겨요

사용법

oneend db schemas hide <이름...>

스키마와 데이터는 그대로예요. 데이터 API만 그 스키마에 PGRST106(406)으로 답해요.

인자 1개 이상

옵션

이 명령만의 옵션은 없어요.

oneend db move

전용 데이터베이스로 옮기기 상태

사용법

oneend db move

Vault와 큰 데이터베이스는 전용 데이터베이스에서만 쓸 수 있어요. 옮기려면 oneend db move now.

옵션

이 명령만의 옵션은 없어요.

oneend db move now

전용 데이터베이스로 옮기기를 요청해요

사용법

oneend db move now [--yes]

콘솔의 "지금 옮기기"와 같아요. 차례가 오면 옮기고, 옮기는 동안 쓰기는 멈추고 읽기는 돼요. 옮기기 직전 상태를 백업해 두고, 실패하면 원래 자리에 그대로 있어요. Pro 요금제부터, 소유자·관리자만 할 수 있어요.

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend db disk

전용 디스크

사용법

oneend db disk

데이터베이스가 커진 프로젝트는 이 프로젝트만 쓰는 디스크와 Postgres로 옮겨요. 크기, 쓴 공간, 한 달 비용, 줄이기 제안을 보여 줘요.

옵션

이 명령만의 옵션은 없어요.

oneend db disk request

전용 디스크로 옮기기를 요청해요

사용법

oneend db disk request [--yes]

콘솔의 "전용 디스크로 옮기기"와 같아요. 디스크 크기만큼 청구되고, 옮기는 동안 쓰기는 실패하고 읽기는 돼요. Enterprise는 언제든, 다른 유료 요금제는 기준을 넘으면 요청할 수 있어요. 소유자·관리자만 할 수 있어요.

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend db disk shrink

전용 디스크를 줄여요

사용법

oneend db disk shrink [--yes]

콘솔의 "디스크 줄이기"와 같아요. 더 작은 디스크를 만들어 옮기고 원래 디스크를 지워요. 7일 동안 25% 아래로 쓴 디스크만 줄일 수 있어요. 옮기는 동안 쓰기가 실패하고 읽기는 돼요. 소유자·관리자만 할 수 있어요.

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend branches list

데이터베이스 브랜치 목록

사용법

oneend branches list

옵션

이 명령만의 옵션은 없어요.

oneend branches create

프로젝트의 스키마로 데이터베이스 브랜치를 만들어요

사용법

oneend branches create [이름] [--git-branch <브랜치>] [--no-seed] [--with-data]

프로젝트의 마이그레이션을 다시 실행하고 시드를 넣어요. --with-data를 주면 그 대신 프로젝트의 데이터를 512MB까지 복사해요(파일 제외). --git-branch를 주면 그 브랜치의 미리보기 배포가 이 데이터베이스를 써요.

인자 0~1개

옵션

옵션값설명
--git-branch<브랜치>연결할 git 브랜치
--no-seed시드를 넣지 않아요
--with-data프로젝트의 데이터도 복사해요

oneend branches merge

브랜치의 마이그레이션을 프로젝트에 적용해요

사용법

oneend branches merge <이름> [--yes]

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend branches reset

브랜치를 프로젝트의 스키마로 다시 만들어요

사용법

oneend branches reset <이름> [--yes]

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend branches delete

브랜치와 그 데이터베이스를 지워요

사용법

oneend branches delete <이름> [--yes]

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

엣지

사용법설명
oneend edge-config ls엣지 설정 목록
oneend edge-config set엣지 설정에 값을 저장해요
oneend edge-config rm엣지 설정에서 키를 지워요
oneend edge-config history엣지 설정 변경 기록
oneend kv lsKV 키 목록
oneend kv getKV 값 하나
oneend kv setKV에 값을 저장해요
oneend kv rmKV 키를 지워요
oneend rollout status점진적 배포 상태
oneend rollout advance점진적 배포를 다음 단계로
oneend rollout promote점진적 배포를 모두에게
oneend rollout abort점진적 배포를 중단하고 되돌려요
oneend analytics웹 분석 요약

oneend edge-config ls

엣지 설정 목록

사용법

oneend edge-config ls

옵션

이 명령만의 옵션은 없어요.

oneend edge-config set

엣지 설정에 값을 저장해요

사용법

oneend edge-config set <키> <값>

값은 JSON으로 읽히면 JSON(true, 3, {"enabled": true, "percent": 20}), 아니면 글자로 저장해요. 몇 초 안에 모든 서버에 적용돼요.

인자 2개

옵션

이 명령만의 옵션은 없어요.

oneend edge-config rm

엣지 설정에서 키를 지워요

사용법

oneend edge-config rm <키>...

인자 1개 이상

옵션

이 명령만의 옵션은 없어요.

oneend edge-config history

엣지 설정 변경 기록

사용법

oneend edge-config history

옵션

이 명령만의 옵션은 없어요.

oneend kv ls

KV 키 목록

사용법

oneend kv ls [접두어]

인자 0~1개

옵션

이 명령만의 옵션은 없어요.

oneend kv get

KV 값 하나

사용법

oneend kv get <키>

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend kv set

KV에 값을 저장해요

사용법

oneend kv set <키> <값> [--ttl <초>]

인자 2개

옵션

옵션값설명
--ttl<초>만료까지 초

oneend kv rm

KV 키를 지워요

사용법

oneend kv rm <키>

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend rollout status

점진적 배포 상태

사용법

oneend rollout status

옵션

이 명령만의 옵션은 없어요.

oneend rollout advance

점진적 배포를 다음 단계로

사용법

oneend rollout advance

옵션

이 명령만의 옵션은 없어요.

oneend rollout promote

점진적 배포를 모두에게

사용법

oneend rollout promote

옵션

이 명령만의 옵션은 없어요.

oneend rollout abort

점진적 배포를 중단하고 되돌려요

사용법

oneend rollout abort [--reason <이유>]

옵션

옵션값설명
--reason<이유>기록에 남길 이유

oneend analytics

웹 분석 요약

사용법

oneend analytics [--days <1|7|30|90>]

옵션

옵션값설명
--days<일>기간 (기본 7)

알림 채널·로그인·인증 메일

사용법설명
oneend auth providers ls로그인 제공자 목록
oneend auth providers set로그인 제공자를 설정하고 켜요 (custom:<이름>은 주소까지)
oneend auth providers rm로그인 제공자 설정을 지워요
oneend channels알림 채널 목록 (Slack·카카오워크·웹훅·메일)
oneend channels add알림 채널을 추가해요
oneend channels test채널 하나에 시험 메시지를 보내요
oneend channels rm알림 채널을 지워요
oneend auth smtpSMTP 설정 (인증 메일을 보내는 서버)
oneend auth smtp setSMTP 설정을 저장해요
oneend auth smtp testSMTP 서버로 시험 메일을 보내요
oneend auth smtp rmSMTP 설정을 지워요
oneend auth templates이메일 템플릿 목록
oneend auth templates get이메일 템플릿 하나를 봐요
oneend auth templates set이메일 템플릿을 저장해요
oneend auth templates preview이메일 템플릿을 예시 값으로 미리 봐요
oneend auth templates reset이메일 템플릿을 기본 문구로 되돌려요

oneend auth providers ls

로그인 제공자 목록

사용법

oneend auth providers ls

옵션

이 명령만의 옵션은 없어요.

oneend auth providers set

로그인 제공자를 설정하고 켜요 (custom:<이름>은 주소까지)

사용법

oneend auth providers set <제공자> --client-id <값> [--client-secret <값>] [--provider-type <값>] [--issuer <주소>] [--authorize-url <주소>] [--token-url <주소>] [--userinfo-url <주소>] [--jwks-uri <주소>] [--scopes <값>] [--claim-map <값>]

기본 제공자(google, kakao 등)는 클라이언트 ID와 시크릿만 있으면 돼요.
custom:<이름>은 직접 등록하는 OAuth 2.0 / OpenID Connect 제공자예요(Supabase와 같은 이름). 인가·토큰 주소가 필요하고, OpenID Connect라면 --issuer만 줘도 돼요.
--provider-type oidc면 id_token을 issuer의 키(--jwks-uri, 비우면 issuer에서 찾아요)로 확인해서 읽어요. oauth2(기본)면 --claim-map으로 읽어요.
--claim-map(--claims)은 응답의 어느 필드가 id·email·email_verified·name·avatar·phone인지 JSON으로 적어요. 예: {"id":"id","email":"kakao_account.email"}
시크릿을 빼면 저장된 값을 그대로 둬요. 앱에서는 supabase.auth.signInWithOAuth({ provider: 'custom:<이름>' })로 로그인해요.

인자 1개

옵션

옵션값설명
--client-id<값>제공자 앱의 클라이언트 ID
--client-secret<값>제공자 앱의 클라이언트 시크릿 (빼면 저장된 것을 그대로 둬요)
--label<이름>화면에 보일 이름 (custom:만)
--issuer<주소>OpenID Connect issuer: 비운 주소를 채워요 (custom:만)
--authorize-url<주소>인가 주소 (custom:만)
--token-url<주소>토큰 주소 (custom:만)
--userinfo-url<주소>사용자 정보 주소, 없으면 id_token을 읽어요 (custom:만)
--scopes<값>로그인마다 요청할 scope (custom:만)
--claim-map<값>응답 필드 매핑, JSON (custom:만)
--claims<값>--claim-map과 같아요 (custom:만)
--provider-type<값>oidc 또는 oauth2: id_token을 확인할지, 매핑으로 읽을지 (custom:만)
--discovery-url<주소>issuer의 설정 문서가 표준 경로에 없을 때 (custom:만)
--jwks-uri<주소>id_token 서명 키 주소, 비우면 issuer에서 찾아요 (custom:만)
--email-optional이메일 주소 없는 사용자도 로그인하게 해요 (custom:만)
--token-auth<값>body 또는 basic: 클라이언트 자격 증명을 보내는 방법 (custom:만)
--no-pkcePKCE를 보내지 않아요 (거부하는 제공자만, custom:만)
--disabled저장만 하고 켜지 않아요

oneend auth providers rm

로그인 제공자 설정을 지워요

사용법

oneend auth providers rm <제공자> [--yes]

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend channels

알림 채널 목록 (Slack·카카오워크·웹훅·메일)

사용법

oneend channels

옵션

이 명령만의 옵션은 없어요.

oneend channels add

알림 채널을 추가해요

사용법

oneend channels add --kind <slack|kakaowork|webhook|email> --name <이름> (--url <주소> | --email <주소>…) [--notices deployments,usage]

메일 채널은 --email을 여러 번(또는 쉼표로) 넣어 10개까지 받아요. 주소마다 확인 메일을 보내고, 확인한 주소에만 알림을 보내요.
usage에는 사용량 한도 경고와 트래픽 급증 알림이 들어 있어요. 소유자·관리자만 할 수 있어요.

옵션

옵션값설명
--kind<kind>slack, kakaowork, webhook, email
--name<이름>채널 이름
--url<주소>Slack·카카오워크·웹훅 주소
--email, --emails<주소>메일 채널의 받는 주소 (여러 번)
--notices<종류>deployments, domains, usage, billing (비우면 전부)

oneend channels test

채널 하나에 시험 메시지를 보내요

사용법

oneend channels test <id>

메일 채널이면 확인된 주소에만 보내고, 확인을 기다리는 주소에는 확인 메일을 다시 보내요.

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend channels rm

알림 채널을 지워요

사용법

oneend channels rm <id> [--yes]

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend auth smtp

SMTP 설정 (인증 메일을 보내는 서버)

사용법

oneend auth smtp

옵션

이 명령만의 옵션은 없어요.

oneend auth smtp set

SMTP 설정을 저장해요

사용법

oneend auth smtp set --sender-email <주소> --host <서버> --username <이름> [--password <비밀번호>] [--port 587] [--sender-name <이름>]

비밀번호는 --password 대신 ONEEND_SMTP_PASSWORD 환경 변수로 줄 수 있어요(셸 기록에 남지 않아요). 비우면 저장된 비밀번호를 그대로 써요.
저장한 뒤 oneend auth smtp test로 확인하세요.

옵션

옵션값설명
--sender-email<주소>보내는 메일 주소 (Sender email)
--sender-name<이름>보내는 사람 이름 (Sender name)
--host<서버>SMTP 서버 주소 (Host)
--port<포트>25, 465, 587, 2465, 2525 (기본 587)
--username<이름>SMTP 사용자 이름 (Username)
--password<비밀번호>SMTP 비밀번호 (Password)
--minimum-interval<초>같은 주소로 다시 보내기까지 최소 간격 (기본 60)
--rate-limit-per-hour<수>한 시간에 보낼 수 있는 메일 수 (기본 100)
--disable설정은 두고 플랫폼 주소로 보내요
--enable다시 이 서버로 보내요

oneend auth smtp test

SMTP 서버로 시험 메일을 보내요

사용법

oneend auth smtp test [--to <주소>]

플랫폼 주소로 대신 보내지 않아서, 실패하면 그 서버의 오류가 그대로 나와요. --to를 빼면 내 주소로 보내요.

옵션

옵션값설명
--to<주소>받을 주소

oneend auth smtp rm

SMTP 설정을 지워요

사용법

oneend auth smtp rm [--yes]

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend auth templates

이메일 템플릿 목록

사용법

oneend auth templates

옵션

이 명령만의 옵션은 없어요.

oneend auth templates get

이메일 템플릿 하나를 봐요

사용법

oneend auth templates get <type>

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend auth templates set

이메일 템플릿을 저장해요

사용법

oneend auth templates set <type> --subject <제목> --body-file <파일.html>

Supabase에서 쓰던 템플릿을 그대로 쓸 수 있어요: {{ .ConfirmationURL }}, {{ .Token }}, {{ .TokenHash }}, {{ .SiteURL }}, {{ .Email }}, {{ .NewEmail }}, {{ .RedirectTo }}, {{ .Data.<key> }}.

인자 1개

옵션

옵션값설명
--subject<제목>제목 (한 줄)
--body<HTML>본문 HTML
--body-file<파일>본문 HTML을 읽을 파일

oneend auth templates preview

이메일 템플릿을 예시 값으로 미리 봐요

사용법

oneend auth templates preview <type> [--subject <제목> --body-file <파일.html>]

--subject나 --body를 주면 저장하지 않고 그 내용을, 빼면 저장된 템플릿이나 기본 문구를 보여 줘요.

인자 1개

옵션

옵션값설명
--subject<제목>제목 (한 줄)
--body<HTML>본문 HTML
--body-file<파일>본문 HTML을 읽을 파일

oneend auth templates reset

이메일 템플릿을 기본 문구로 되돌려요

사용법

oneend auth templates reset <type> [--yes]

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

플랫폼 서버 (운영자)

사용법설명
oneend platform overview플랫폼 전체 상황과 손볼 것을 봐요 (운영자)
oneend platform find주소·id·ref·도메인·이름으로 고객을 찾아요 (운영자)
oneend platform pricing고객 서버 판매 스위치와 크기별 원가·가격을 봐요 (운영자)
oneend platform pricing set고객 서버 판매 스위치를 바꿔요 (운영자)
oneend platform sizes고객 서버 크기 목록을 봐요 (운영자)
oneend platform sizes set고객 서버 크기를 만들거나 바꿔요 (운영자)
oneend platform servers우리 서버의 크기·사용률·월 원가를 봐요 (운영자)
oneend platform servers cpu서비스 서버의 CPU를 몇 번, 얼마나 오래 썼는지 봐요 (운영자)
oneend platform servers change서버 하나의 변경을 요청해요 (운영자)
oneend platform servers show서버 변경 요청 하나의 상태와 기록을 봐요 (운영자)
oneend platform servers cancel시작하지 않은 서버 변경 요청을 취소해요 (운영자)
oneend platform variablesGitHub 저장소의 Actions 변수를 봐요 (운영자)
oneend platform variables setGitHub 저장소의 Actions 변수 하나를 저장해요 (운영자)
oneend platform variables rmGitHub 저장소의 Actions 변수 하나를 지워요 (운영자)
oneend platform operators운영자 목록을 봐요 (운영자)
oneend platform operators add운영자를 넣어요 (운영자)
oneend platform operators rm운영자를 빼요 (운영자)
oneend platform runs우리 저장소의 최근 워크플로 실행을 봐요 (운영자)
oneend platform runs cancel끝나지 않은 워크플로 실행을 취소해요 (운영자)
oneend platform runs rerun끝난 워크플로 실행을 다시 돌려요 (운영자)
oneend platform checksOne Server가 직접 돌리는 저장소 검사를 봐요 (운영자)
oneend platform merge-when-green풀 리퀘스트를 통과하면 병합 대기에 넣거나 빼요 (운영자)
oneend platform ci-machines검사와 배포를 돌리는 기계를 봐요 (운영자)
oneend platform ci-machines restart검사 기계 하나를 다시 켜요 (운영자)
oneend platform ci-machines renew검사 기계의 GitHub 러너를 다시 등록해요 (운영자)
oneend platform support열린 지원 세션을 봐요 (운영자)
oneend platform support start고객 대신 일하려고 지원 세션을 열어요 (운영자)
oneend platform support end지원 세션을 끝내요 (운영자)

oneend platform overview

플랫폼 전체 상황과 손볼 것을 봐요 (운영자)

사용법

oneend platform overview

조직·프로젝트 수, 고객 서버와 그 작업, 전용 디스크·서버 요청, 최근 24시간 배포, 검사 기계를 한 번에 보여 줘요. 아무것도 바꾸지 않아요.

옵션

이 명령만의 옵션은 없어요.

oneend platform find

주소·id·ref·도메인·이름으로 고객을 찾아요 (운영자)

사용법

oneend platform find <검색어>

조직마다 소유자, 요금제, 상태와 프로젝트마다 상태, 마지막 배포, 도메인, 고객 서버, 진행 중인 전용 요청을 보여 줘요.

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend platform pricing

고객 서버 판매 스위치와 크기별 원가·가격을 봐요 (운영자)

사용법

oneend platform pricing

옵션

이 명령만의 옵션은 없어요.

oneend platform pricing set

고객 서버 판매 스위치를 바꿔요 (운영자)

사용법

oneend platform pricing set [--customer-hosts on|off] [--server-sizes-listed on|off] [--customer-host-regions <지역,...>] [--krw-per-usd <수>] ...

준 항목만 바뀌고 바로 적용돼요. 감사 기록에 무엇에서 무엇으로 바꿨는지 남아요. 예: oneend platform pricing set --customer-hosts on --server-sizes-listed on

옵션

옵션값설명
--customer-hostson|off고객이 자기 서버를 빌릴 수 있어요
--server-sizes-listedon|off서버 크기와 가격을 고객에게 보여 줘요
--region-rateson|off지역별 사용량 요금을 적용해요
--build-machine-planson|off향상·터보 빌드 기계를 Pro 이상에만 열어요
--customer-host-regions<지역,...>서버를 빌려줄 지역 코드, 쉼표로 여럿
--krw-per-usd<수>마진 검사와 원 가격에 쓰는 환율 (원/달러)
--customer-host-grace-days<수>결제가 끊긴 뒤 읽기 전용으로 두는 날 수 (1~30)
--customer-host-create-minutes<수>새 기계가 답하지 않으면 다시 만드는 분 (3~60)
--customer-host-max-attempts<수>만들기를 다시 해 보는 횟수 (1~10)
--customer-host-disk-gb<수>새 서버의 디스크 GB (10~2000)
--customer-host-move-days<수>지역 옮기기 사이의 날 수 (1~365)
--customer-host-retired-days<수>옮긴 뒤 옛 서버를 두는 날 수 (0~30)

oneend platform sizes

고객 서버 크기 목록을 봐요 (운영자)

사용법

oneend platform sizes

옵션

이 명령만의 옵션은 없어요.

oneend platform sizes set

고객 서버 크기를 만들거나 바꿔요 (운영자)

사용법

oneend platform sizes set <크기> [--machine <기계>] [--listed on|off] [--plan <요금제>|none] [--margin-floor <비율>] [--allow-loss] [--region <지역>:cost=<달러>:usd=<달러>:krw=<원>] [--cost-source <출처>]

크기 이름은 메모리예요(1gb는 e2-micro). 새 크기는 --listed on을 주지 않으면 숨겨진 채로 만들어져요.
예: oneend platform sizes set 1gb --machine e2-micro --region kr-seoul-1:cost=7.6:usd=35
원가보다 싸게 팔려면 --allow-loss가 필요해요. krw를 비우면 usd × 환율을 1,000원 단위로 올려요.

인자 1개

옵션

옵션값설명
--machine<기계>구글 기계 (새 크기에는 꼭)
--listedon|off고객에게 보이고 빌릴 수 있어요
--plan<요금제>이 크기가 들어 있는 요금제 (none이면 빼요)
--margin-floor<비율>가격이 넘어야 하는 마진 (0.3은 30%)
--allow-loss원가보다 싸게 파는 것을 허용해요
--region<지역>:cost=<달러>:usd=<달러>:krw=<원>지역마다 기계 원가와 가격 (여러 번)
--cost-source<출처>원가를 어디서 쟀는지
--yes, -y묻지 않고 바로 해요

oneend platform servers

우리 서버의 크기·사용률·월 원가를 봐요 (운영자)

사용법

oneend platform servers

옵션

이 명령만의 옵션은 없어요.

oneend platform servers cpu

서비스 서버의 CPU를 몇 번, 얼마나 오래 썼는지 봐요 (운영자)

사용법

oneend platform servers cpu [--hours <시간>] [--step <분>] [--all]

분 단위 기록에서 읽어요. 기본은 최근 24시간을 5분 단위로, 80% 이상이었던 구간만 보여요. --all이면 모든 구간을 보여요. 기록은 48시간만 남아요.

옵션

옵션값설명
--hours<시간>몇 시간 전부터 (1~48, 기본 24)
--step<분>구간 길이 (1~60분, 기본 5)
--all80% 미만인 구간도 모두 보기

oneend platform servers change

서버 하나의 변경을 요청해요 (운영자)

사용법

oneend platform servers change --server main|build|standby|backup|vm|runner|pool|network|build-image --action <동작> [--to <크기>] [--when now|tonight] [--instance <이름>] [--zone <zone>] [--repo <owner/name>] [--location <지역>] [--region <지역>] [--reason <이유>]

서비스 서버 크기: --server main --action resize --to e2-standard-4 (모든 사이트가 3~5분 멈춰서 확인을 받아요. 기본 시각은 오늘 새벽 03:00~05:00).
빌드 서버: --server build --action on|off|resize · 대기 서버: --server standby --action on|off · 백업 사본: --server backup --action replica [--location us-west1|none]
기계 하나: --server vm --action start|stop|resize --instance oneserver-runner · 상시 검사 기계 끄기: --server runner --action retire (다섯 저장소 RUNNER 변수를 먼저 지우고 확인한 뒤 끔)
검사 실행 묶음 정리: --server pool --action reset (켜져 있지만 검사를 돌리지 않는 기계를 모두 끔) · 검사 기계 이미지 굽기: --server pool --action bake · Cloud NAT: --server network --action nat [--region us-west1] (라우터와 NAT가 없으면 만듦)
빌드 기계 이미지 굽기: --server build-image --action bake (임시 기계에 설치해 이미지로 만들고 지움. 새 빌드 기계가 그 이미지로 빨리 켜져요)

옵션

옵션값설명
--server<서버>main, build, standby, backup, vm, runner, pool, network, build-image
--action<동작>resize, on, off, replica, start, stop, retire, reset, nat, bake
--region<지역>network nat의 지역 (기본 us-west1)
--to<크기>resize의 새 크기 (e2-standard-2, e2-standard-4, e2-standard-8)
--whennow|tonight지금, 또는 오늘 새벽 03:00~05:00 (한국 시간)
--instance<이름>vm의 기계 이름
--zone<zone>vm의 zone (비우면 그 기계의 기본)
--repo<owner/name>runner retire에서 RUNNER를 지울 저장소 (비우면 다섯 곳)
--location<지역>backup replica의 지역 (기본 us-west1)
--no-downtime멈춤 없이 (지금은 거절돼요: 사이트를 받는 두 번째 서버가 없어요)
--reason<이유>감사 기록에 남길 이유
--yes, -y묻지 않고 바로 해요

oneend platform servers show

서버 변경 요청 하나의 상태와 기록을 봐요 (운영자)

사용법

oneend platform servers show <요청 id>

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend platform servers cancel

시작하지 않은 서버 변경 요청을 취소해요 (운영자)

사용법

oneend platform servers cancel <요청 id>

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend platform variables

GitHub 저장소의 Actions 변수를 봐요 (운영자)

사용법

oneend platform variables <owner/name>

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend platform variables set

GitHub 저장소의 Actions 변수 하나를 저장해요 (운영자)

사용법

oneend platform variables set <owner/name> <이름> <값>

인자 3개

옵션

이 명령만의 옵션은 없어요.

oneend platform variables rm

GitHub 저장소의 Actions 변수 하나를 지워요 (운영자)

사용법

oneend platform variables rm <owner/name> <이름>

예: RUNNER를 지우면 그 저장소의 검사는 GitHub 기계(ubuntu-latest)에서 돌아요.

인자 2개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend platform operators

운영자 목록을 봐요 (운영자)

사용법

oneend platform operators

옵션

이 명령만의 옵션은 없어요.

oneend platform operators add

운영자를 넣어요 (운영자)

사용법

oneend platform operators add <주소>

인자 1개

옵션

이 명령만의 옵션은 없어요.

oneend platform operators rm

운영자를 빼요 (운영자)

사용법

oneend platform operators rm <주소>

서버 환경(BLACKWALL_OPERATOR_EMAILS)에 있는 주소와 자기 주소는 뺄 수 없어요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend platform runs

우리 저장소의 최근 워크플로 실행을 봐요 (운영자)

사용법

oneend platform runs [--workflow checks.yml|deploy.yml|ops.yml|static-egress.yml] [--limit <n>]

15분 넘게 기계를 기다리는 실행은 "(멈춤)"으로 보여요.

옵션

옵션값설명
--workflow<파일>한 워크플로만 (checks.yml, deploy.yml, ops.yml, static-egress.yml)
--limit<n>워크플로마다 몇 개 (1~20, 기본 5)

oneend platform runs cancel

끝나지 않은 워크플로 실행을 취소해요 (운영자)

사용법

oneend platform runs cancel <id>

배포 중인 실행을 취소하면 그 배포가 반쯤 된 채로 남을 수 있어요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend platform runs rerun

끝난 워크플로 실행을 다시 돌려요 (운영자)

사용법

oneend platform runs rerun <id> [--failed-only]

인자 1개

옵션

옵션값설명
--failed-only실패한 작업만 다시

oneend platform checks

One Server가 직접 돌리는 저장소 검사를 봐요 (운영자)

사용법

oneend platform checks [--limit <n>]

GitHub Actions 없이 우리 기계에서 도는 검사예요(BLACKWALL_OWN_CI). 통과하면 병합 대기도 함께 보여요.

옵션

옵션값설명
--limit<n>몇 개 (1~50, 기본 20)

oneend platform merge-when-green

풀 리퀘스트를 통과하면 병합 대기에 넣거나 빼요 (운영자)

사용법

oneend platform merge-when-green <pr> on|off

대기 중인 풀 리퀘스트를 main 위에 함께 검사하고, 통과하면 넣은 순서대로 병합해요. main과 충돌하면 충돌한 파일 이름과 함께 돌려보내요.

인자 2개

옵션

이 명령만의 옵션은 없어요.

oneend platform ci-machines

검사와 배포를 돌리는 기계를 봐요 (운영자)

사용법

oneend platform ci-machines

상시 배포 기계(oneserver-runner), 검사 실행 묶음(oneserver-pool-N), 우리 검사의 도쿄 대기 컨트롤러(oneserver-ci-standby)예요.

옵션

이 명령만의 옵션은 없어요.

oneend platform ci-machines restart

검사 기계 하나를 다시 켜요 (운영자)

사용법

oneend platform ci-machines restart <name>

그 기계에서 돌던 작업은 끊겨요. oneserver-runner, oneserver-pool-<번호>, oneserver-ci-standby만 돼요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend platform ci-machines renew

검사 기계의 GitHub 러너를 다시 등록해요 (운영자)

사용법

oneend platform ci-machines renew <name>

플랫폼의 GitHub App 토큰으로 등록해요(개인 토큰 없이). 기계가 다시 켜져 돌던 작업은 끊겨요.

인자 1개

옵션

옵션값설명
--yes, -y묻지 않고 바로 해요

oneend platform support

열린 지원 세션을 봐요 (운영자)

사용법

oneend platform support [--all]

옵션

옵션값설명
--all끝난 세션도 최근 50개까지

oneend platform support start

고객 대신 일하려고 지원 세션을 열어요 (운영자)

사용법

oneend platform support start <프로젝트 ID|조직 id|고객 이메일> --reason <사유> [--minutes <분>]

고객 조직에 소유자로 들어가요. 연 동안 그 조직의 프로젝트에 다른 모든 명령을 고객과 같은 권한으로 쓸 수 있어요(--project <ref>).
사유와 시작·끝은 고객의 감사 기록에 남아요. 기본 60분, 최대 480분이고 시간이 되면 저절로 끝나요.

인자 1개

옵션

옵션값설명
--reason<사유>왜 들어가는지 (필수, 고객의 감사 기록에 남아요)
--minutes<분>몇 분 동안 (5~480, 비우면 60)

oneend platform support end

지원 세션을 끝내요 (운영자)

사용법

oneend platform support end <세션 id|프로젝트 ID|조직 id|고객 이메일>

인자 1개

옵션

이 명령만의 옵션은 없어요.

다른 이름

손에 익은 철자로 입력해도 같은 명령이 실행돼요.

입력실행되는 명령
oneend projects lsoneend projects list
oneend env listoneend env ls
oneend env addoneend env set
oneend env removeoneend env rm
oneend deployments listoneend deployments ls
oneend deployments getoneend deployments inspect
oneend deployments deleteoneend deployments rm
oneend deployments removeoneend deployments rm
oneend functions listoneend functions ls
oneend functions deleteoneend functions rm
oneend secrets lsoneend secrets list
oneend secrets rmoneend secrets unset
oneend auth providers listoneend auth providers ls
oneend auth providers removeoneend auth providers rm
oneend migration lsoneend migration list
oneend migrations newoneend migration new
oneend migrations listoneend migration list
oneend migrations repaironeend migration repair
oneend gen types tsoneend gen types typescript
oneend edge-config listoneend edge-config ls
oneend kv listoneend kv ls
oneend domains listoneend domains ls
oneend kv deloneend kv rm
oneend branches lsoneend branches list
oneend branches rmoneend branches delete
oneend channels lsoneend channels
oneend channels listoneend channels
oneend channels removeoneend channels rm
oneend auth smtp removeoneend auth smtp rm
oneend gpu servers deleteoneend gpu servers rm
oneend gpu servers removeoneend gpu servers rm

종료 코드

상태 코드설명
0성공
1실패 (서버가 거절, 빌드 실패, 마이그레이션 실패, 연결 실패)
2명령을 잘못 씀 (모르는 옵션, 값이 모자람, --yes 필요)

환경 변수

이름설명
ONEEND_TOKEN저장된 토큰 대신 쓰는 토큰 (CI용)
ONEEND_API_URLAPI 주소
ONEEND_PROJECT_REF연결 파일 대신 쓰는 프로젝트
ONEEND_CONFIG_DIR설정 폴더 (기본 ~/.config/oneend)