Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 Yinkan MusicBot - 智能音樂機器人部署指南

由 Serelix Studio 開發的跨平台音樂機器人,結合智慧推薦、情境感知與即時歌詞顯示,打造沉浸式的聆聽體驗。

License: MIT Node.js Discord.js Docker


🎯 專案特色

Yinkan 是一款 智慧化音樂播放與管理機器人,可在 Discord 中提供動態播放、即時歌詞與 AI 推薦功能。

✨ 核心概念

  • 🎶 智慧推薦:根據播放歷史與使用情境動態生成播放清單。
  • 🎛️ 多平台整合:支援 Discord 與多音源串流(YouTube、Spotify、SoundCloud)。
  • 🎤 即時歌詞顯示:自動同步當前播放曲目的時間軸歌詞。
  • 🤖 自動化管理:提供 /slash 指令控制播放、清單與隊列管理。
  • 🛡️ 稳定可靠:支援 Docker、Railway、Render 等多雲部署架構。

⚙️ 環境需求

項目 最低需求 建議版本
Node.js 18.x 20.x
NPM / PNPM 任意 建議 PNPM
Discord Token 必填 -
FFmpeg 必須 最新版本

🧩 環境變數設定

變數名 說明 是否必填
DISCORD_TOKEN Discord Bot Token
CLIENT_ID Discord Application Client ID
NODE_ENV productiondevelopment 建議
GUILD_ID 測試伺服器 ID(開發期) 選填
cp .env.example .env
# 編輯 .env 填入上述變數

🌐 部署方式

1️⃣ Railway(推薦)

優點:自動部署、免費額度、操作簡單

npm i -g @railway/cli
railway login
railway init
railway up

Railway 專案頁 → Variables → 新增:

  • DISCORD_TOKEN
  • CLIENT_ID
  • NODE_ENV=production

2️⃣ Render(免費層)

優點:免命令行,支援自動更新 缺點:閒置會休眠

步驟:

  1. Push 專案至 GitHub

  2. Render 建立新 Web Service

  3. 設定:

    • Build: npm install
    • Start: node index.js
  4. 新增環境變數


3️⃣ Fly.io(有免費額度)

fly auth login
fly launch
fly deploy
fly secrets set DISCORD_TOKEN=xxxxx CLIENT_ID=xxxxx NODE_ENV=production

適合長期運作的 Discord Bot(支援 Auto-Restart 與多區節點)。


4️⃣ Heroku(付費)

heroku login
heroku create your-bot-name
git push heroku main
heroku config:set DISCORD_TOKEN=xxxxx CLIENT_ID=xxxxx NODE_ENV=production

5️⃣ DigitalOcean App Platform(付費)

  1. 連接 GitHub
  2. 指定 Node.js 環境
  3. 設定 Build 與 Start 指令
  4. 新增環境變數
  5. 可使用 .do/app.yaml 自動化設定

🐳 Docker 部署

建立映像

docker build -t yinkan-music-bot .

執行容器

docker run -d --name yinkan-bot \
  -e DISCORD_TOKEN=xxxxx \
  -e CLIENT_ID=xxxxx \
  -e NODE_ENV=production \
  yinkan-music-bot

Docker Compose

version: "3.8"
services:
  bot:
    build: .
    container_name: yinkan-bot
    restart: unless-stopped
    environment:
      - DISCORD_TOKEN=${DISCORD_TOKEN}
      - CLIENT_ID=${CLIENT_ID}
      - NODE_ENV=production
docker compose up -d
docker compose logs -f

🎯 Slash 指令註冊

開發期可用 Guild 註冊 即時同步指令。

node scripts/register-commands.js --guild $GUILD_ID
# 或全域註冊(需等待發佈)
node scripts/register-commands.js --global

🔍 疑難排解

問題 可能原因 解法
Bot 無法上線 Token 錯誤、權限不足 重新檢查 .env 並重新邀請
無法播放音樂 缺少 FFmpeg 安裝 FFmpeg 或確認 PATH
指令沒出現 未註冊 / 未授權 scope 確保包含 applications.commands scope
無法連接語音頻道 權限不足或 Intents 錯誤 開啟 Voice 權限與必要 Intents

查看日誌:

docker compose logs -f yinkan-bot
# 或 Railway / Render 的後台 Logs

🔧 效能與最佳化

  • 使用 Alpine 映像縮小體積
  • 自動清除暫存、鎖定依賴版本
  • 將伺服器部署於主要用戶所在區域
  • 若使用遠端音源,可配置 CDN 或 Cache

📊 維運與監控

  • 啟用 Auto-Restart / Health Check
  • 結構化日誌輸出(JSON 或簡易格式)
  • 可定期自動重啟或檢查 Token 有效性

💰 成本一覽

平台 免費額度 付費方案起點
Railway $5/月信用額度 $20/月起
Render 750 小時/月 $7/月起
Fly.io 免費層含 2 CPU 小時 按用量計費
DigitalOcean $5/月起
Heroku 依 Dyno 類型

🔐 安全建議

  1. 不要將 Token 寫入 Git
  2. 一律使用環境變數或 Secret 管理
  3. 定期輪替 Token
  4. 最小化權限配置
  5. 啟用 2FA

🆘 支援與聯繫

🐛 問題回報與建議

👥 社群交流


🤝 如何貢獻

  1. 🍴 Fork 專案
  2. 🌿 建立功能分支git checkout -b feature/amazing-feature
  3. 提交變更git commit -m 'Add amazing feature'
  4. ⬆️ 推送分支git push origin feature/amazing-feature
  5. ➡️ 開啟 Pull Request

📈 專案統計

GitHub stars GitHub forks GitHub issues GitHub pull requests


Yinkan by Serelix Studio — 智慧音樂機器人平台 🎧 讓節奏流動,讓音樂更智慧。

About

Sonair is an intelligent, context-aware music bot that blends recommendation, emotion recognition, and real-time lyric display into one seamless experience. Built for listeners who crave immersion, it transforms ordinary playback into an adaptive, expressive sound journey.

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages