Skip to content

Latest commit

Β 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎰 AutoRoulette

μΉ˜μ§€μ§(Chzzk) 슀트리밍 ν”Œλž«νΌκ³Ό μ—°λ™λœ μžλ™ λ£°λ › μ‹œμŠ€ν…œμž…λ‹ˆλ‹€. λ„λ„€μ΄μ…˜μ„ λ°›μœΌλ©΄ μžλ™μœΌλ‘œ 룰렛이 λŒμ•„κ°€λ©°, μ›Ή κ΄€λ¦¬μž νŽ˜μ΄μ§€μ—μ„œ 섀정을 μ‰½κ²Œ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.

✨ μ£Όμš” κΈ°λŠ₯

  • 🎁 μΉ˜μ§€μ§ λ„λ„€μ΄μ…˜ μžλ™ 감지 및 λ£°λ › μ‹€ν–‰
  • βš™οΈ μ›Ή 기반 μ„€μ • 관리 (꽝 갯수, μƒν’ˆ λͺ©λ‘, λ„λ„€μ΄μ…˜ κΈˆμ•‘)
  • 🎨 물리 μ—”μ§„ 기반 μ‹€μ œκ° μžˆλŠ” ꡬ슬 λ–¨μ–΄λœ¨λ¦¬κΈ° μ• λ‹ˆλ©”μ΄μ…˜(ν•΄λ‹Ή μ• λ‹ˆλ©”μ΄μ…˜ μ½”λ“œμ˜ μ €μž‘κΆŒμ€ https://github.com/lazygyu/roulette에 μžˆμŠ΅λ‹ˆλ‹€.)
  • πŸ’Ύ SQLite λ°μ΄ν„°λ² μ΄μŠ€λ‘œ μ„€μ • 영ꡬ μ €μž₯
  • 🐳 Docker둜 κ°„νŽΈν•œ μ„€μΉ˜ 및 μ‹€ν–‰

πŸ“‹ 사전 μš”κ΅¬μ‚¬ν•­

  • Docker μ„€μΉ˜ (Docker Desktop ꢌμž₯)
  • Docker Compose μ„€μΉ˜ (Docker Desktop에 포함됨)
  • μΉ˜μ§€μ§(Chzzk) 계정 및 인증 토큰

πŸš€ λΉ λ₯Έ μ‹œμž‘

1. ν”„λ‘œμ νŠΈ 클둠(GITμ—μ„œ Download ZIP으둜 λŒ€μ²΄ κ°€λŠ₯)

git clone <repository-url>
cd AutoRoulette

2. ν™˜κ²½ λ³€μˆ˜ μ„€μ •

.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

μΉ˜μ§€μ§ 토큰 μ–»λŠ” 방법

  1. λΈŒλΌμš°μ €μ—μ„œ μΉ˜μ§€μ§ 둜그인
  2. 개발자 도ꡬ μ—΄κΈ° (F12 λ˜λŠ” 우클릭 > 검사)
  3. Application νƒ­ > Cookies > https://chzzk.naver.com 선택
  4. NID_AUT와 NID_SES μΏ ν‚€μ˜ Value 볡사
  5. .env νŒŒμΌμ— λΆ™μ—¬λ„£κΈ°

채널 ID μ–»λŠ” 방법

  1. λΈŒλΌμš°μ €μ—μ„œ 룰렛을 μ‹€ν–‰ν•  μΉ˜μ§€μ§ 채널 νŽ˜μ΄μ§€λ‘œ 이동
  2. μ£Όμ†Œμ°½μ˜ URLμ—μ„œ 채널 ID 볡사
    • 예: https://chzzk.naver.com/live/abc123def456 β†’ abc123def456
  3. .env 파일의 CHANNEL_ID에 λΆ™μ—¬λ„£κΈ°

3. Docker둜 μ‹€ν–‰

docker-compose up -d

처음 μ‹€ν–‰ μ‹œ 이미지 λΉŒλ“œμ— λͺ‡ λΆ„ 정도 μ†Œμš”λ©λ‹ˆλ‹€.

4. 접속

μ„œλΉ„μŠ€κ°€ μ‹œμž‘λ˜λ©΄ λ‹€μŒ URL둜 접속할 수 μžˆμŠ΅λ‹ˆλ‹€:

βš™οΈ μ„€μ • 관리

μ›Ή κ΄€λ¦¬μž νŽ˜μ΄μ§€ μ‚¬μš©

  1. λΈŒλΌμš°μ €μ—μ„œ http://localhost:3000/admin 접속
  2. μ„€μ • νŽ˜μ΄μ§€μ—μ„œ λ‹€μŒ ν•­λͺ© μˆ˜μ •:
    • 꽝 갯수: 룰렛에 포함될 꽝의 개수
    • μƒν’ˆ λͺ©λ‘: 당첨 κ°€λŠ₯ν•œ μƒν’ˆλ“€ (μΆ”κ°€/μ‚­μ œ κ°€λŠ₯)
    • λ„λ„€μ΄μ…˜ κΈˆμ•‘: 룰렛을 μ‹€ν–‰ν•  μ΅œμ†Œ λ„λ„€μ΄μ…˜ κΈˆμ•‘ (원 λ‹¨μœ„)
  3. μ €μž₯ λ²„νŠΌ 클릭
  4. λ‹€μŒ λ£°λ ›λΆ€ν„° μƒˆ 섀정이 μ μš©λ©λ‹ˆλ‹€

API둜 μ„€μ • 관리 (선택사항)

μ„€μ • 쑰회:

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:dev

ν”„λ‘ νŠΈμ—”λ“œ μ‹€ν–‰

cd roulette
yarn install
yarn dev

πŸ“¦ Docker λͺ…λ Ήμ–΄

# μ„œλΉ„μŠ€ μ‹œμž‘
docker-compose up -d

# μ„œλΉ„μŠ€ 쀑지
docker-compose down

# 둜그 확인
docker-compose logs -f

# μ„œλΉ„μŠ€ μž¬μ‹œμž‘
docker-compose restart

# 이미지 μž¬λΉŒλ“œ
docker-compose up -d --build

# λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆ 및 λ³Όλ₯¨ μ‚­μ œ (데이터 μ΄ˆκΈ°ν™”)
docker-compose down -v

πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

AutoRoulette/
β”œβ”€β”€ 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

πŸ”§ μ„€μ • 파일

docker-compose.yml

  • backend: 3000번 ν¬νŠΈμ—μ„œ μ‹€ν–‰
  • frontend: 1235번 ν¬νŠΈμ—μ„œ μ‹€ν–‰
  • volumes: λ°μ΄ν„°λ² μ΄μŠ€ 영ꡬ μ €μž₯

포트λ₯Ό λ³€κ²½ν•˜λ €λ©΄ docker-compose.yml의 ports μ„Ήμ…˜μ„ μˆ˜μ •ν•˜μ„Έμš”:

ports:
  - "μ›ν•˜λŠ”ν¬νŠΈ:3000"  # λ°±μ—”λ“œ
  - "μ›ν•˜λŠ”ν¬νŠΈ:1235"  # ν”„λ‘ νŠΈμ—”λ“œ

πŸ› 문제 ν•΄κ²°

Docker 싀행이 μ•ˆ 될 λ•Œ

# Docker 데λͺ¬μ΄ μ‹€ν–‰ 쀑인지 확인
docker ps

# Docker Desktop을 μž¬μ‹œμž‘

ν¬νŠΈκ°€ 이미 μ‚¬μš© 쀑일 λ•Œ

# μ‚¬μš© 쀑인 포트 확인
netstat -ano | findstr :3000
netstat -ano | findstr :1235

# docker-compose.ymlμ—μ„œ 포트 번호 λ³€κ²½

섀정이 μ €μž₯λ˜μ§€ μ•Šμ„ λ•Œ

# λ³Όλ₯¨ 확인
docker volume ls

# μ»¨ν…Œμ΄λ„ˆ μž¬μ‹œμž‘
docker-compose restart backend

μΉ˜μ§€μ§ 연결이 μ•ˆ 될 λ•Œ

  1. .env 파일의 토큰이 μ˜¬λ°”λ₯Έμ§€ 확인
  2. 토큰이 λ§Œλ£Œλ˜μ§€ μ•Šμ•˜λŠ”μ§€ 확인
  3. λ°±μ—”λ“œ 둜그 확인: docker-compose logs -f backend

πŸ“ λΌμ΄μ„ΌμŠ€

MIT

🀝 κΈ°μ—¬

μ΄μŠˆμ™€ PR을 ν™˜μ˜ν•©λ‹ˆλ‹€!

πŸ“§ 문의

λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ 이슈λ₯Ό λ“±λ‘ν•΄μ£Όμ„Έμš”.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages