马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如果想亲手搭建一个属于自己的视频网站平台客户端,但又苦于不知如何下手,或者觉得B站那样的巨无霸系统离个人开发者太过遥远。不妨看看这个开源项目——Teriteri,它几乎复刻了我们熟悉的Bilibili PC端的核心体验,从流畅的视频播放、飞驰的弹幕,到互动社区与即时聊天,一应俱全。 简介 Teriteri是一款用SpringBoot + Vue开发的仿B站项目,本项目采用前后端分离模式开发,web端分为客户端和后台管理。 功能全景 - 用户体系与内容消费: 包括用户注册登录、个人中心信息修改、首页视频随机推荐、以及强大的内容搜索(同时覆盖视频和用户)。
- 核心视频互动: 用户可以投稿视频,并在视频详情页享受完整的观看体验,包括发送弹幕、发表评论、点赞和收藏。
- 社区化体验: 项目构建了个人空间来展示用户的作品与收藏,更引人注目的是,它实现了一个完整的消息系统,支持用户间的实时聊天对话,极大地增强了社区粘性。
- 后台管理: 虽然管理端目前主要聚焦于视频审核功能,但这保证了内容生态的底线,为平台的健康运行提供了基础支撑。
部署指南 环境与代码准备 核心前提:项目完整运行需同时部署三个端(后端、客户端、管理端)。为确保功能正常,请确保三个仓库的代码版本一致。 建议部署顺序:先启动后端,再启动前端,以避免因服务未就绪而导致的连接错误。
数据库与初始化 - 除 category 表外,其他数据表均未提供初始数据。
- 注册第一个用户后,需手动在数据库 user 表中,将该用户的 role 字段值改为 1 或 2,方可获得管理员权限,登录管理端。
重要提醒:除上述操作外,请尽量避免直接修改数据库,以防造成 MySQL、Redis 与 Elasticsearch 之间的数据不一致。
后端部署要点 配置文件 - 项目采用 application.yml 作为主配置文件。请勿在 application.properties 中填写配置,或将其全部迁移至 .yml 格式。
- 打开 resources/application.yml,根据您的实际环境,填写所有标有 *** 的配置项(如数据库、Redis、OSS等)。请务必注意保护个人敏感信息,切勿提交至公开仓库。
关键服务配置 视频存储: 项目默认集成阿里云OSS。代码中虽注释了本地存储方案,但并未实现对应的视频播放逻辑。自行实现本地视频流播放较为复杂,强烈建议开通阿里云对象存储服务,性价比高且能省去大量开发时间。 Elasticsearch: - 项目使用 Elasticsearch 7.17.16。若使用其他版本,请在 pom.xml 中修改相应的依赖版本号。
- 需安装 ik 分词器与 pinyin 分词器插件(作者提供了详细的Elasticsearch笔记供参考,笔记基于Linux,Windows用户请对照调整)。
- 索引可通过运行 ApplicationTests 测试类中的 createIndex 方法自动创建。
Netty端口: 即时通讯服务默认占用 7071 端口。如需修改,请在 IMServer 类中进行调整。 启动步骤 - 在项目根目录下,下载 Maven 依赖。
- 直接运行 BackendApplication 主类,启动后端服务。
前端部署要点 配置与资源 - 轮播图: 数据在 carousel.json 中静态配置,可替换为您自己的图片链接。当前链接指向作者的OSS资源,仅允许 localhost:8787 域名访问,若修改前端服务端口,将导致图片加载失败。
- 图标库: 目前引用的图标来自作者在阿里巴巴矢量图标库创建的项目。为避免因作者修改而导致图标失效,建议后期自行创建并替换项目ID。
- 代理配置: 确保 vue.config.js 和 .env.development 文件中的代理端口号与后端运行端口一致。
启动步骤 - 在项目目录下,安装依赖:npm install
- 启动开发服务器:npm run serve
总结: 部署核心在于确保环境一致、配置准确(尤其是ES版本、OSS和YML配置),并遵循正确的启动顺序。过程中请仔细核对每一项配置,祝您部署顺利! 界面预览 网站首页
创作中心
视频审核
视频详情页
搜索页面
i
个人中心
消息中心
开源地址 https://github.com/xunlu129/teriteri-client
|