feat: Docker support + .env-driven PORT/HOST config
직접 실행과 Docker compose 가 같은 .env 한 파일로 PORT/HOST/SESSION_SECRET 등을 공유합니다. 컨테이너는 node:22-bookworm-slim 기반에 ffmpeg + 번들된 yt-dlp 포함, data 볼륨 마운트로 영속화합니다. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
33
README.md
33
README.md
@@ -6,8 +6,9 @@
|
||||
처음 한 번은 `setup` 으로 의존성 + yt-dlp 바이너리 + 빌드까지 한 번에 끝낼 수 있어요:
|
||||
|
||||
```bash
|
||||
npm run setup # npm install + ./bin/yt-dlp 다운로드 + tsc
|
||||
npm start # 기본 http://127.0.0.1:3000 (PORT=3000, HOST=127.0.0.1)
|
||||
cp .env.example .env # 포트/호스트 등 환경변수 편집
|
||||
npm run setup # npm install + ./bin/yt-dlp 다운로드 + tsc
|
||||
npm start # .env 의 HOST:PORT 로 바인딩
|
||||
```
|
||||
|
||||
수동으로 단계별로 하고 싶다면:
|
||||
@@ -18,11 +19,29 @@ npm run build
|
||||
npm start
|
||||
```
|
||||
|
||||
- 외부 노출이 필요하면 `HOST=0.0.0.0 npm start`
|
||||
- 관리자 비밀번호는 `account.json` 의 `password` 값 (초기값 `admin`, 운영 시 반드시 변경)
|
||||
- 세션 비밀은 `SESSION_SECRET` 환경변수로 덮어쓰기 권장
|
||||
- 업로드 용량 한도: 기본 무제한. 제한하려면 `UPLOAD_MAX_BYTES=<바이트>` 설정
|
||||
- 대용량 업로드용 HTTP 요청 타임아웃: 기본 무제한(0). 필요시 `HTTP_REQUEST_TIMEOUT_MS=<밀리초>`
|
||||
설정은 전부 `.env` 한 파일로 모았습니다 (`.env.example` 참고). 직접 실행과 Docker compose 양쪽에서 같은 파일을 씁니다.
|
||||
|
||||
- `HOST` — 바인딩 주소. 외부 노출이 필요하면 `0.0.0.0`, 로컬 전용이면 `127.0.0.1`. Docker 안에서는 반드시 `0.0.0.0`.
|
||||
- `PORT` — 바인딩 포트 (기본 `3000`). 바꾸면 compose 의 호스트 포트도 자동으로 따라갑니다.
|
||||
- `SESSION_SECRET` — 운영 시 반드시 충분히 긴 랜덤 문자열로 교체.
|
||||
- `UPLOAD_MAX_BYTES` — 업로드 용량 한도(바이트). 비우면 무제한.
|
||||
- `HTTP_REQUEST_TIMEOUT_MS` — 대용량 업로드용 HTTP 요청 타임아웃(밀리초). `0`/미설정이면 무제한.
|
||||
- 관리자 비밀번호는 `account.json` 의 `password` 값 (초기값 `admin`, 운영 시 반드시 변경).
|
||||
|
||||
## Docker
|
||||
|
||||
컨테이너로 띄울 거면 `Dockerfile` + `docker-compose.yml` 그대로 쓰면 됩니다. ffmpeg, yt-dlp 도 이미지에 포함됩니다.
|
||||
|
||||
```bash
|
||||
cp .env.example .env # 처음 한 번. HOST=0.0.0.0 인지 확인.
|
||||
docker compose up -d --build
|
||||
curl http://localhost:3000/ # PORT 바꿨으면 그 포트로
|
||||
# LAN 의 다른 기기에서: http://<호스트IP>:<PORT>/
|
||||
```
|
||||
|
||||
핵심: 컨테이너 안에서는 반드시 `HOST=0.0.0.0` 이어야 외부 접근됩니다. compose 가 `.env` 의 `PORT` 를 읽어 호스트 포트 매핑 (`${PORT:-3000}:${PORT:-3000}`) 까지 자동으로 따라갑니다.
|
||||
|
||||
데이터는 `./data` 가 `/app/data` 에 마운트되어 영속화됩니다 (`folders/`, `jobs/`, `tmp/`).
|
||||
|
||||
## 외부 의존
|
||||
|
||||
|
||||
Reference in New Issue
Block a user