Skip to content
ilazinessPublic

About

小橘TV - 视频管理点播系统,影视建站系统,影视采集建站

Topics

Resources

Stars

22 stars

Watchers

0 watching

Forks

Latest commit

 

History

185 Commits

Folders and files

Repository files navigation

小橘TV 视频管理系统

English version: README_EN.md · 技术文档:docs/README.md

一个开箱即用的视频管理系统,用来搭建面向观众的在线视频网站。支持内容管理、播放和后台运营,前端自适应手机、平板和电脑。

支持的平台

  • web网页,自适应PC端,手机移动端,平板等各种屏幕大小
  • 移动端APP,支持Android和IOS平台
  • TV电视端,支持Android TV

这个系统能做什么?

面向普通观众的观影网站。观众打开网站就能:

  • 在首页看到推荐视频、分类入口和最新内容
  • 按分类(电影、电视剧、综艺、动漫等)浏览视频
  • 按地区、年份、语言筛选和排序视频
  • 进入视频详情页查看海报、简介、导演、演员、评分、播放源和剧集列表
  • 在播放页流畅观看视频,支持切换播放源、选集、快进快退、全屏
  • 通过搜索快速找到想看的视频
  • 在手机、平板、电脑上都有良好的浏览体验(自适应屏幕)
  • 切换明暗主题

谁来使用?

系统分为两个独立的部分,分别面向不同的人:

部分 使用者 用来做什么
用户端(前台网站) 普通观众 浏览、搜索、观看视频
管理后台 站长 / 运营 / 录入员 管理视频内容、配置采集、管理用户、设置站点

管理后台能做的事

  • 首页概况:一眼看到今日新增视频数、总视频数、采集任务状态等运营数据
  • 内容管理
    • 分类管理:多级分类的增删改查、排序、启用/禁用
    • 视频管理:新增、编辑、删除、上下架、批量操作
    • 直播管理:电视直播频道的增删改查、分类和播放地址配置
    • 导演 / 演员 / 标签管理
    • 播放源管理:全局播放源和剧集播放链接
    • Banner 管理:首页轮播图配置
    • 数据采集:配置采集源、定时采集、分类映射、播放源绑定、查看采集日志
  • 用户管理:管理员账号、用户组(角色)、普通用户、登录日志
  • 系统设置:站点名称、Logo、版权、备案号、SEO 关键词、API 配置、系统日志

数据采集

如果你不想一部一部视频手动录入,可以使用采集功能自动拉取其他站点的视频数据:

  • 支持默认格式(系统自定义)和苹果 CMS 格式两种采集源
  • 支持定时采集
  • 也支持手动一键触发某个采集源立即采集
  • 支持字段映射和分类映射,把外部数据对齐到你的站点结构
  • 采集到的播放链接会自动归入你绑定的播放源
  • 完整的采集日志,方便排查问题

快速开始(下载发布包)

不想从源码构建?可以直接下载已打包好的发布包,解压后按以下步骤运行。发布包是自包含的,包含后端二进制、前端构建产物、配置文件、数据库迁移脚本和 Docker 部署文件,修改配置后即可直接启动。

1. 下载发布包

前往 Releases 页面 下载对应平台的压缩包:

  • Linux:orange-tv-<版本>-linux-amd64.tar.gz
  • Windows:orange-tv-<版本>-windows-amd64.zip

2. 解压

# Linux
tar -xzf orange-tv-<版本>-linux-amd64.tar.gz
cd orange-tv-<版本>/

# Windows
# 右键压缩包 → 解压到当前文件夹,进入解压后的目录

解压后的目录结构:

.
├── orange-tv                  # 后端二进制(Linux/macOS)
├── orange-tv.exe              # 后端二进制(Windows)
├── configs/                   # 配置文件
│   ├── config.yaml            # 默认/示例配置(含完整字段说明)
│   └── config.prod.yaml       # 生产环境配置(可通过环境变量覆盖)
├── migrations/                # 数据库迁移脚本
├── web/
│   ├── client/                # 用户端前端构建产物(含 config.js)
│   └── admin/                 # 管理端前端构建产物(含 config.js)
├── nginx/nginx.conf           # nginx 示例配置(用户端 80 / 管理端 81)
├── .env.example               # Docker Compose 环境变量示例
├── Dockerfile                 # 一体化镜像构建文件
├── docker-compose.yml         # 一键 Docker Compose(应用 + MySQL)
└── docker-entrypoint.sh       # 容器入口脚本

前端 API 地址(可选)

默认走同源 /api(nginx 反代到后端),一般不用改。

若前端与后端不同源,编辑发布包里的这两个文件:

web/client/config.js
web/admin/config.js

把 apiBaseUrl 改成后端地址(只填 origin,不要带 /api):

window.__ORANGE_TV_CONFIG__ = {
  apiBaseUrl: 'https://api.example.com',
}

保存后刷新浏览器即可,无需重新打包。留空则继续同源。请限制这两个文件的写权限。

3. 运行

方式一:Docker Compose 一键部署(推荐)

前置条件:服务器已安装 Docker 和 Docker Compose(Docker 20.10+)。

# 复制环境变量示例并按需修改(DB 账号、JWT_SECRET、端口等)
cp .env.example .env

# 启动应用 + MySQL(首次启动会自动创建数据库并执行迁移)
docker compose up -d

# 查看日志确认启动正常
docker compose logs -f app

启动后:

  • 用户端:http://<host>:80
  • 管理端:http://<host>:81

方式二:裸机运行(Linux)

  1. 修改 configs/config.prod.yaml 中的数据库连接等信息(或通过环境变量覆盖)。

  2. 执行数据库迁移:

    ./orange-tv migrate up -c configs/config.prod.yaml
  3. 启动后端:

    ./orange-tv serve -c configs/config.prod.yaml
  4. 用 nginx 托管前端:参考 nginx/nginx.conf,调整静态资源路径后 nginx -s reload。

方式三:裸机运行(Windows)

  1. 修改 configs\config.prod.yaml 中的数据库连接等信息。

  2. 执行数据库迁移:

    orange-tv.exe migrate up -c configs\config.prod.yaml
  3. 启动后端:

    orange-tv.exe serve -c configs\config.prod.yaml
  4. 用 IIS 或其他 Web 服务器托管 web\client 与 web\admin 下的前端静态资源,将 /api 反向代理到 http://127.0.0.1:8080。

4. 初始化管理员账号

服务启动且数据库迁移完成后,需要创建一个超级管理员账号才能登录管理端。将 your_password 替换为你自己的密码。

# Docker Compose
docker compose exec app /app/orange-tv admin create --username admin --password your_password --email admin@example.com

# 裸机(Linux)
./orange-tv admin create --username admin --password your_password --email admin@example.com -c configs/config.prod.yaml

# 裸机(Windows)
orange-tv.exe admin create --username admin --password your_password --email admin@example.com -c configs\config.prod.yaml

创建成功后输出类似 Created super_admin: id=1 username=admin,即可用该账号登录管理端 http://<host>:81,开始录入或采集视频内容。

发布包内附带的 README.md 包含更详细的部署说明,可一并参考。

截图预览

以下截图仅用于功能演示,所展示的内容均为测试数据,不代表任何真实版权视频内容,如有侵权请联系删除。

用户端

更多截图见 screenshot。

用户端

桌面端

更多截图见 screenshot/desktop。

桌面端首页

管理后台

管理后台

我想用起来,怎么开始?(从源码构建)

如果你是开发者或运维人员,希望从源码构建,请按以下步骤部署:

  1. 准备一台服务器,安装好 Go 1.26.4+ 和 MySQL 8.x/9.x
  2. 克隆本仓库:git clone https://github.com/ilaziness/orange-tv.git
  3. 按照 部署文档 完成配置、迁移和启动
  4. 用命令行创建第一个管理员账号,然后登录管理后台开始录入或采集视频

详细的安装、配置、命令和技术说明请查阅 技术文档。

文档导航

文档 内容
技术文档 项目结构、配置、命令、数据库、可观测性等技术说明
部署文档 单实例、多实例、Docker 部署指南
模块使用说明 如何选择和删除不需要的服务模块
可观测性指南 日志、链路追踪、指标监控配置

免责声明

本项目仅供学习交流和技术研究使用,不提供、不存储、不传播、不内置任何视频内容。

  • 本系统源码与发布包内不内置任何视频内容、不内置任何播放数据,所有播放内容均为使用者自行录入
  • 系统中的采集功能仅为技术演示,使用者需自行确保采集行为符合相关法律法规及源站点的使用条款
  • 使用者需对所采集内容的版权合法性、所部署站点的运营行为自行承担全部责任
  • 项目作者不对任何因使用或滥用本系统而产生的法律纠纷负责

License

本项目基于 MIT License 开源。

About

小橘TV - 视频管理点播系统,影视建站系统,影视采集建站

Topics

Resources

Stars

22 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages