收起左侧

把广播站搬进 NAS !一键部署 VoiceHub,打造专属校园音乐点歌台

3
回复
1026
查看
[ 复制链接 ]

171

主题

16

回帖

0

牛值

江湖新锐

社区上线纪念勋章fnOS1.0上线纪念勋章EVO2产品纪念

2026-3-20 10:04:20 显示全部楼层 阅读模式

VoiceHub:

一个使用 Nuxt 4 全栈框架开发的现代化校园广播站点歌管理系统。系统提供完整的点歌、投票、排期管理、通知推送、数据分析、权限控制和数据库管理功能,支持多角色权限管理和灵活的系统配置。

主要功能:

  1. 智能点歌系统(核心)
  • • 多平台音乐搜索:支持**云音乐、QQ 音乐、哔哩哔哩内容检索,可指定期望播出时段;
  • • **云音乐深度集成:扫码登录后可同步歌单 / 最近播放、一键投稿,支持播客电台内容投稿;
  • • 投稿限额:按时间段 / 用户角色配置投稿额度,控制系统负载;
  • • 智能去重:识别重复歌曲,避免重复播放;
  • • 播放与下载:内置播放器(支持音质切换、进度控制),管理员可批量下载歌曲(多音质可选);
  • • 重播申请:用户可申请重播已播放歌曲,支持记录查看 / 撤回。
  1. 用户与权限管理
  • • 多角色权限:普通用户、管理员、超级管理员分级管控;
  • • 用户分类:按年级 / 班级管理用户,支持黑名单(歌曲 / 艺术家)自动过滤不当内容;
  • • 安全机制:JWT 认证、验证码验证、密码 bcrypt 加密。
  1. 排期管理
  • • 可视化排期:拖拽式界面管理歌曲排期与顺序;
  • • 排期草稿:支持分步编辑、草稿发布,不影响公开展示;
  • • 多时段配置:灵活设置播出时段,支持学期关联、排期打印(自定义纸张 / PDF 导出);
  • • 公开展示:按日期分组展示正式排期,方便师生查看。
  1. 通知与数据管理
  • • 实时通知:歌曲选中 / 投票 / **,支持自定义通知偏好、批量推送、第三方账号绑定;
  • • 数据安全:数据库备份 / 恢复 / 重置、文件导入导出,自带数据库自检修复机制;
  • • 操作审计:关键操作记录可追溯。

安装

Docker Compose

services:
  voicehub:
    image: ghcr.io/laoshuikaixue/voicehub:latest
    container_name: voicehub
    ports:
      - 3000:3000
    environment:
      - DATABASE_URL=postgresql://user:password@postgres:5432/voicehub
      - JWT_SECRET=your-jwt-secret-here
      - NODE_ENV=production
    depends_on:
      postgres:
        condition: service_healthy
    restart: unless-stopped

  postgres:
    image: postgres:15-alpine
    container_name: postgres
    ports:
      - 5432:5432
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=voicehub
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U user -d voicehub']
      interval: 5s
      timeout: 5s
      retries: 5
    restart: unless-stopped

参数说明(更多参数建议去看文档)

:::tips
DATABASE_URL(环境变量):数据库连接地址

JWT_SECRET(环境变量):JWT 认证密钥,随机生成字符串

NODE_ENV(环境变量,可选):应用运行环境

3000(端口):Web 页面访问端口

5432(端口,可选):数据库访问端口,项目内部连接可以不映射

POSTGRES_USER(环境变量): 数据库用户名

POSTGRES_PASSWORD(环境变量): 数据库密码

POSTGRES_DB(环境变量): 自动创建的初始数据库名

:::

使用

浏览器中输入 http://NAS的IP:3000 就能看到界面

TIP:为了截图展示清晰,下面网页做了缩放看起来可能有点奇怪,实际体验效果会好很多

右上角,点击登录

输入默认管理员密码(admin/admin123)

进入后台管理界面,功能是真的丰富(下面就简单走个流程,说实话我也不是太会用)

创建用户,支持通过 Excel 表格批量导入

通知管理,可以向用户发送通知参与活动

TIP:设置以后,用户访问就能看到消息提醒

播出时段,设置好之后排期可以更加方便

投稿管理,可以限制投稿开放时间和投稿数量

学期管理,添加新学期方便后面点歌、排期及统计数据

站点配置,可以自定义点歌页面的风格

数据库,支持备份和恢复系统数据

来到用户访问页面,就能点歌了

支持**云音乐,QQ 音乐和哔哩哔哩

登录**云账号,可以获取最近播放和歌单里面的音乐进行投稿

歌曲列表能看到全部人的投稿,还可以点赞提高热度

回到管理后台,能看到用户投稿的动态

数据分析,了解用户点赞的热门歌曲

歌曲管理,可以将投稿的歌曲下载到本地

排期管理,设置音乐播放时段和日期

来到用户访问界面,就能看到发布的播出排期

值得一提的是,音乐可以**

点开详情,还能看到在线歌词

如果用户投稿入选了,也会有对应的消息提醒

总结

VoiceHub 是一款“UI 界面好看,功能丰富,简单易上手”的校园点歌系统,虽说是针对校园场景,但其实也可以用在家庭、小店、社区活动等地方。不过它毕竟不是播放系统,所以需要人为手动操作才能播放歌曲。总的来说,VoiceHub 这款应用挺不错值得推荐,至于有没有应用场景就看个人需求了。

综合推荐:⭐⭐⭐⭐(不错的点歌系统,场景稍微有点局限)

使用体验:⭐⭐⭐⭐⭐(UI 界面好看,功能丰富)

部署难易:⭐⭐⭐(中规中矩)︎

收藏
送赞
分享
不定时分享 NAS 教程

0

主题

2

回帖

0

牛值

江湖小虾

2026-4-1 21:05:25 显示全部楼层

配置文件中,哪些地方需要改成自己nas地址或者信息。

4

主题

30

回帖

0

牛值

江湖小虾

2026-4-2 19:03:23 显示全部楼层

❌ 数据库同步完全失败。请检查数据库连接或手动运行 pnpm exec drizzle-kit push 以解决歧义。我的为啥不能用

[GET] "/api/songs/public": 500 Failed query: select "id", "createdAt", "updatedAt", "enablePlayTimeSelection", "siteTitle", "siteLogoUrl", "schoolLogoHomeUrl", "schoolLogoPrintUrl", "siteDescription", "submissionGuidelines", "icpNumber", "gonganNumber", "enableSubmissionLimit", "dailySubmissionLimit", "weeklySubmissionLimit", "monthlySubmissionLimit", "showBlacklistKeywords", "hideStudentInfo", "smtpEnabled", "smtpHost", "smtpPort", "smtpSecure", "smtpUsername", "smtpPassword", "smtpFromEmail", "smtpFromName", "enableRequestTimeLimitation", "forceBlockAllRequests", "enableReplayRequests", "enableCollaborativeSubmission", "enableSubmissionRemarks" from "SystemSettings" limit $1params: 1

1

主题

8

回帖

0

牛值

系统先锋体验团🛩️

fnOS1.0上线纪念勋章飞牛百度网盘玩家

2026-4-17 15:27:10 显示全部楼层
为啥切换几次登录之后就提示,你的ip登录已被限制访问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则