CLI

CLI 명령어 Reference

DisHost CLI의 모든 명령어 사용법과 실제 활용 시나리오를 가이드합니다.

DisHost CLI를 사용하면 터미널 하나로 봇의 생성부터 실시간 로그 추적, 소스 코드 동기화까지 신속하게 처리할 수 있습니다.


실제 시나리오별 활용 가이드 (Real-world Workflows)

1. Git 저장소를 연동하여 새로운 봇 만들기 (deploy)

GitHub 저장소에 있는 소스 코드를 가져와 DisHost 서버에 새로운 봇 인스턴스를 구축하고 연동합니다.

# 1. 봇 코드가 포함된 로컬 폴더로 이동
cd my-discord-bot

# 2. 배포 명령 실행
dishost deploy
  • 동작 흐름: CLI가 현재 폴더의 언어(JavaScript/Python)와 Git 원격지 주소를 자동 진단합니다. 이후 봇의 이름과 .env.example에 기재된 환경 변수를 프롬프트로 입력받아 서버에 생성합니다. 생성이 완료되면 현재 폴더가 새 봇의 ID와 자동으로 링크됩니다.

2. 로컬 코드 실시간 덮어쓰기 배포 (push)

Git 커밋 및 Push를 거치지 않고, 로컬의 소스 변경 사항을 즉시 원격 서버에 반영(핫 디플로이)합니다.

# 1. 변경된 로컬 파일들이 올바른지 확인 후 실행
dishost push
  • 동작 흐름: node_modules, .git, .env 등 불필요한 대용량 파일/설정은 생략하고 압축하여 서버에 업로드한 후, 프터로닥틸 컨테이너 내부에서 압축을 풀어 기존 코드를 덮어씌웁니다.

3. 미사용 파일 삭제 및 안전한 클린 배포 (push --clean)

로컬에서 필요 없어진 레거시 파일들을 삭제했을 때, 원격 서버에서도 깔끔하게 소스 폴더를 비우고 다시 맞춤 배포합니다.

# 1. 원격을 깨끗이 정리하고 배포
dishost push --clean # 또는 dishost push -c
  • 보호 규칙: .env(환경 설정)와 node_modules(패키지 폴더)는 안전하게 보존된 상태에서 소스 코드만 청소한 후 동기화됩니다. 데이터 손실이나 패키지 전체 재설치 대기 시간 없이 안전하게 배포할 수 있습니다.

명령어 명세

dishost login

DisHost 계정에 로그인하여 터미널 세션 인증을 완료합니다.

dishost login

dishost logout

로컬 세션 및 저장된 API 키를 안전하게 초기화합니다.

dishost logout

dishost list

계정에 연결된 모든 봇 목록과 실시간 구동 상태 및 메모리 사용량(현재 점유 / 한도)을 확인합니다.

dishost list
  • 출력 예시:
    ┌──────────┬────────────────────────┬─────────────┬──────┬───────────────┬────────┬──────┐
    │ ID       │ Name                   │ Status      │ Lang │ Mem           │ Renew  │ Auto │
    ├──────────┼────────────────────────┼─────────────┼──────┼───────────────┼────────┼──────┤
    │ cmrag6pg…│ ticket-bot             │ ● running   │ js   │ 18MB / 128MB  │ 3d     │ -    │
    └──────────┴────────────────────────┴─────────────┴──────┴───────────────┴────────┴──────┘
  • 상태 아이콘:
    • ● running (초록색): 봇이 실행 중이거나 부팅 중(Starting)인 상태
    • ⟳ stopping (노란색): 봇이 중지 과정을 거치고 있는 상태
    • ○ stopped (노란색): 정상 중지(오프라인) 상태
    • ○ expired (빨간색): 연장 기간이 만료되어 정지된 상태

dishost status <봇이름>

컨테이너의 CPU, 메모리, 디스크의 정확한 실시간 자원 상태 수치를 출력합니다.

dishost status my-bot

dishost logs <봇이름> [--follow]

서버 콘솔의 표준 출력(logs) 데이터를 읽어옵니다. -f 또는 --follow 옵션을 통해 WebSocket에 직접 연결하여 실시간 감시 대기(Tail)를 할 수 있습니다.

# 단발성 최근 콘솔 로그 확인
dishost logs my-bot

# 실시간 감시 (종료: Ctrl + C)
dishost logs my-bot --follow

dishost env list <봇이름>

서버에 설정된 가동용 환경변수 리스트를 나열합니다. 보안 상 노출되면 안 되는 민감 정보는 자동 블라인드(****) 처리됩니다.

dishost env list my-bot

dishost pull [봇이름]

원격 웹 패널이나 서버에 주입된 최종 환경변수 설정을 로컬 작업 디렉토리의 .env 파일로 덮어씌워 갱신(동기화)합니다.

dishost pull my-bot

현재 터미널 작업 디렉토리를 DisHost 상의 특정 봇 ID와 매핑시킵니다. 연결을 완료하면 명령어 실행 시 이름을 기입하지 않고 즉시 배포할 수 있습니다.

dishost link my-bot

dishost start <봇이름> / stop / restart

봇 서버 인스턴스의 구동 전원을 터미널에서 즉시 제어합니다.

dishost start my-bot
dishost stop my-bot
dishost restart my-bot

dishost delete <봇이름>

컨테이너 가동을 멈추고 서버 및 DB의 호스팅 등록을 제거하여 봇 슬롯을 반환합니다.

dishost delete my-bot

dishost doctor

현재 작업 리포지토리의 패키지 구성 상태, 가동 스크립트 존재성, Git 원격 연결 현황 등을 진단하여 정상 배포 가능 상태인지 체크리스트로 보여줍니다.

dishost doctor

dishost init

대화형 질의를 거쳐 디렉토리 내에 맞춤 배포 규칙 설정용 dishost.yml을 신속하게 생성해 줍니다.

dishost init