치지직(Chzzk) 스트리밍 플랫폼과 연동된 자동 룰렛 시스템입니다. 도네이션을 받으면 자동으로 룰렛이 돌아가며, 웹 관리자 페이지에서 설정을 쉽게 관리할 수 있습니다.
- 🎁 치지직 도네이션 자동 감지 및 룰렛 실행
- ⚙️ 웹 기반 설정 관리 (꽝 갯수, 상품 목록, 도네이션 금액)
- 🎨 물리 엔진 기반 실제감 있는 구슬 떨어뜨리기 애니메이션(해당 애니메이션 코드의 저작권은 https://github.com/lazygyu/roulette에 있습니다.)
- 💾 SQLite 데이터베이스로 설정 영구 저장
- 🐳 Docker로 간편한 설치 및 실행
- Docker 설치 (Docker Desktop 권장)
- Docker Compose 설치 (Docker Desktop에 포함됨)
- 치지직(Chzzk) 계정 및 인증 토큰
git clone <repository-url>
cd AutoRoulette.env.example 파일을 복사하여 .env 파일을 생성합니다:
cp .env.example .env.env 파일을 열어서 치지직 인증 토큰과 채널 ID를 입력합니다:
NID_AUT=your_actual_nid_aut_token
NID_SES=your_actual_nid_ses_token
CHANNEL_ID=your_channel_id_here- 브라우저에서 치지직 로그인
- 개발자 도구 열기 (F12 또는 우클릭 > 검사)
- Application 탭 > Cookies >
https://chzzk.naver.com선택 NID_AUT와NID_SES쿠키의 Value 복사.env파일에 붙여넣기
- 브라우저에서 룰렛을 실행할 치지직 채널 페이지로 이동
- 주소창의 URL에서 채널 ID 복사
- 예:
https://chzzk.naver.com/live/abc123def456→abc123def456
- 예:
.env파일의CHANNEL_ID에 붙여넣기
docker-compose up -d처음 실행 시 이미지 빌드에 몇 분 정도 소요됩니다.
서비스가 시작되면 다음 URL로 접속할 수 있습니다:
- 룰렛 화면: http://localhost:1235/
- 관리자 설정 페이지: http://localhost:3000/admin
- 백엔드 API: http://localhost:3000
- 브라우저에서 http://localhost:3000/admin 접속
- 설정 페이지에서 다음 항목 수정:
- 꽝 갯수: 룰렛에 포함될 꽝의 개수
- 상품 목록: 당첨 가능한 상품들 (추가/삭제 가능)
- 도네이션 금액: 룰렛을 실행할 최소 도네이션 금액 (원 단위)
- 저장 버튼 클릭
- 다음 룰렛부터 새 설정이 적용됩니다
설정 조회:
curl http://localhost:3000/settings설정 수정:
curl -X PUT http://localhost:3000/settings \
-H "Content-Type: application/json" \
-d '{
"dudCount": 50,
"prizes": ["노래", "대사", "춤", "게임권"],
"donationAmount": 10000
}'Docker 없이 로컬에서 개발하려면:
cd roulette-backend
pnpm install
pnpm run start:devcd roulette
yarn install
yarn dev# 서비스 시작
docker-compose up -d
# 서비스 중지
docker-compose down
# 로그 확인
docker-compose logs -f
# 서비스 재시작
docker-compose restart
# 이미지 재빌드
docker-compose up -d --build
# 모든 컨테이너 및 볼륨 삭제 (데이터 초기화)
docker-compose down -vAutoRoulette/
├── roulette-backend/ # NestJS 백엔드
│ ├── src/
│ │ ├── settings/ # 설정 관리 모듈
│ │ ├── app.module.ts
│ │ └── main.ts
│ ├── public/ # 관리자 웹 페이지
│ │ └── index.html
│ ├── Dockerfile
│ └── package.json
├── roulette/ # 프론트엔드 (룰렛 UI)
│ ├── src/
│ ├── Dockerfile
│ ├── nginx.conf
│ └── package.json
├── docker-compose.yml # Docker Compose 설정
├── .env.example # 환경변수 템플릿
└── README.md
- backend: 3000번 포트에서 실행
- frontend: 1235번 포트에서 실행
- volumes: 데이터베이스 영구 저장
포트를 변경하려면 docker-compose.yml의 ports 섹션을 수정하세요:
ports:
- "원하는포트:3000" # 백엔드
- "원하는포트:1235" # 프론트엔드# Docker 데몬이 실행 중인지 확인
docker ps
# Docker Desktop을 재시작# 사용 중인 포트 확인
netstat -ano | findstr :3000
netstat -ano | findstr :1235
# docker-compose.yml에서 포트 번호 변경# 볼륨 확인
docker volume ls
# 컨테이너 재시작
docker-compose restart backend.env파일의 토큰이 올바른지 확인- 토큰이 만료되지 않았는지 확인
- 백엔드 로그 확인:
docker-compose logs -f backend
MIT
이슈와 PR을 환영합니다!
문제가 발생하면 이슈를 등록해주세요.