# 시작 설정

> Portal의 Startup 탭에서 서버의 Docker 이미지, 설치 명령, 시작 명령을 설정하는 방법.

Portal의 **Startup** 탭은 서버가 어떻게 빌드되고 실행되는지를 제어해요. 세 가지 핵심 설정이 있어요: **Docker 이미지**(런타임 버전), **설치 명령**(의존성 설정), **시작 명령**(애플리케이션을 실행하는 명령). 이를 올바르게 설정하는 것이 서버가 정상적으로 작동하는 데 필수예요.

## 배울 내용

- 올바른 Docker 이미지(런타임 버전)를 고르는 방법
- 설치 명령과 시작 명령의 차이
- Node.js와 Python의 일반적인 예시
- Startup 탭으로 대화형 셸에 접근하는 방법

---

## Docker 이미지

Daki는 각 서버를 Docker 컨테이너 안에서 실행해요. **Docker 이미지**는 그 컨테이너 안에서 어떤 프로그래밍 언어 버전을 쓸 수 있는지 결정해요.

Startup 탭에는 이미지를 선택하는 드롭다운이 있어요. 항상 애플리케이션이 요구하는 것과 맞춰 주세요.

| 런타임 | 이미지 예시 |
| :--- | :--- |
| Node.js | Node.js 22, Node.js 24, Node.js 26 (이전 버전은 EOL 표시) |
| Python | Python 3.11~3.15 (이전 버전은 EOL 표시) |
| Java | Java 17, Java 21 |
| 기타 | Rust, C#, Lua 등 (유료 플랜) |

> **주의:** 잘못된 런타임 버전을 고르면 시작에 실패해요. 프로젝트에 Node.js 22 기능이 필요하다면 Node.js 18을 선택하지 마세요.

Node.js와 Python 이미지는 **Daki Yolks**예요. 보안 수정이 나올 때마다 자동으로 다시 빌드되며, 서버를 재시작하면 최신 이미지를 받아요. **EOL**로 표시된 이미지는 더 이상 보안 업데이트를 받지 못해요. [Eggs & Docker 이미지](https://daki.cc/ko/wiki/guides/eggs-and-images#daki-yolks-security-patched-images)를 참고하세요.

---

## 설치 명령

**설치 명령**은 서버를 설정하거나 재설치할 때 한 번 실행돼요. 의존성을 설치하고 환경을 준비하도록 설계되어 있어요.

| 런타임 | 일반적인 설치 명령 |
| :--- | :--- |
| Node.js | `npm install` |
| Python | `pip install -r requirements.txt` |

의존성이 자동으로 설치되도록 이 항목을 설정하세요. 프로젝트에 맞게 이 명령을 자유롭게 바꿀 수 있어요 — 예를 들어 다른 패키지 관리자를 쓴다면(예: `yarn install` 또는 `pnpm install`).

---

## 시작 명령

**시작 명령**은 서버가 시작될 때마다 실행돼요. 실제로 애플리케이션을 실행하는 명령이에요.

| 애플리케이션 종류 | 시작 명령 |
| :--- | :--- |
| Node.js — 단일 진입 파일 | `node index.js` |
| Node.js — npm start 스크립트 | `npm start` |
| Python — 단일 진입 파일 | `python main.py` |
| Python — 모듈로 실행 | `python -m mypackage` |

프로젝트 구조, 진입점, 애플리케이션에 필요한 플래그나 인수에 맞게 시작 명령을 자유롭게 바꿀 수 있어요.

**중요:** 파일 이름은 대소문자를 구분해요. 시작 명령의 파일 이름이 파일 관리자에 표시된 이름과 정확히 일치하는지 확인하세요.

---

## 대화형 셸 접근

디버깅, 파일 확인, 일회성 명령 실행 등을 위해 컨테이너와 직접 상호작용하며 명령을 수동으로 실행하고 싶다면, **시작 명령**을 임시로 `bash`로 설정할 수 있어요.

1. **Startup** 탭으로 이동하세요.
2. **시작 명령**을 `bash`로 바꾸세요.
3. 서버를 재시작하세요.
4. **Console** 탭을 여세요 — 이제 셸 명령을 직접 입력할 수 있어요.

> **주의:** 시작 명령이 `bash`로 설정되어 있는 동안에는 애플리케이션이 자동으로 시작되지 **않아요**. 작업이 끝나면 원래 시작 명령으로 되돌리세요. 자세한 내용은 [콘솔 & 전원 작업](https://daki.cc/ko/wiki/guides/console)을 참고하세요.

---

## egg(프로그래밍 언어) 변경하기

**egg**는 전체 프로그래밍 언어와 프레임워크를 정의해요. 한 언어에서 다른 언어로 바꾸려면(예: Node.js → Python) Startup 탭이 아니라 **Settings** 탭을 사용하세요. egg를 바꾸면 재설치가 실행되므로, 미리 백업해 두기를 강력히 권장해요. [서버 설정](https://daki.cc/ko/wiki/guides/server-settings)을 참고하세요.

---

## 팁

- Startup 탭에서 설정을 바꾼 뒤에는 변경 사항이 적용되도록 서버를 재시작하세요.
- 서버가 시작하자마자 충돌하면, Console 탭의 출력에서 대부분 그 이유를 확인할 수 있어요.
- 시작 명령의 파일 이름을 파일 관리자에 표시된 이름과 다시 한번 대조하세요.

---

## 다음 단계

- [환경 변수](https://daki.cc/ko/wiki/guides/environment-variables) — 봇 토큰과 기타 시크릿을 위한 `.env` 파일을 설정하세요.
- [콘솔 & 전원 작업](https://daki.cc/ko/wiki/guides/console) — 서버를 시작하고 출력을 확인하세요.
- [서버 설정](https://daki.cc/ko/wiki/guides/server-settings) — 서버를 재설치하거나 egg를 바꾸세요.

---
Source: https://daki.cc/ko/wiki/guides/startup-settings
