NAS 整活天花板丨部署点歌平台,瞬间梦回校园
哈喽,艾瑞巴蒂我是生活爱好者。
“明天你是否会想起,昨天你写的日记,明天你是否还惦记,曾经最爱哭的你.......” 漫步在校园中,耳边想起熟悉的音乐。当毕业了,回到母校还能听到校园的歌声,瞬间记忆拉回到学生时代。
今天给大家带来一个有趣的项目:voicehub,校园点歌平台。
下图是部署后的效果。

一、NAS部署
本文使用设备:威联通NAS
进入NAS,打开ContainerStation,将下方代码进行复制粘贴。
version: '3.8' # 指定 Docker Compose 文件版本,3.8 支持大多数现代功能
services:
# VoiceHub 应用服务
voicehub:
image: ghcr.io/laoshuikaixue/voicehub:latest # VoiceHub 官方镜像
container_name: voicehub # 容器名称,方便管理
ports:
- "3066:3000" # 将 NAS 主机 3037 端口映射到容器 3000 端口
environment:
DATABASE_URL: postgresql://user:password@postgres:5432/voicehub # 数据库连接字符串
JWT_SECRET: your-jwt-secret-here # JWT 密钥,用于身份认证
NODE_ENV: production # Node.js 运行环境
depends_on:
- postgres # 依赖 postgres 服务先启动
restart: unless-stopped # 容器异常停止时自动重启,除非手动停止
# PostgreSQL 数据库服务
postgres:
image: docker.1ms.run/postgres:15-alpine # 官方 PostgreSQL 轻量版镜像
container_name: postgres # 容器名称
ports:
- "5473:5432" # 将 NAS 主机 5432 端口映射到容器 5432 端口
environment:
POSTGRES_USER: user # 数据库用户名
POSTGRES_PASSWORD: password # 数据库密码
POSTGRES_DB: voicehub # 默认创建的数据库名称
volumes:
- /share/Container/postgres_data:/var/lib/postgresql/data # 数据持久化卷,存放在 NAS 共享文件夹
healthcheck:
test: ["CMD-SHELL", "pg_isready -U user -d voicehub"] # 健康检查命令,确保数据库启动完成
interval: 5s # 每 5 秒检查一次
timeout: 5s # 健康检查超时时间
retries: 5 # 检查失败 5 次后标记为不健康
restart: unless-stopped # 容器异常停止时自动重启

等待应用程序的创建。

二、体验广播站点歌系统
在浏览器中输入NAS的ip+端口号可以访问到系统。

该系统的账号和密码分别为:admin/admin123,广播站后台系统功能较多,笔者简单为大家展示下。

需要先创建活跃学期。

对歌曲播出的时段进行设置。

投稿时间段进行设置。

支持下载到本地

接着歌曲排期管理进行设置。

来到用户点歌的界面,可以搜索歌曲进行点歌。

点歌的界面还可以看到歌曲的排期。

