截图
关于
Ganymede允许存档过去的直播(点播)和实时直播,并提供实时聊天回放以及存档友好的渲染聊天。所有文件都以友好的方式保存,无需Ganymede即可查看(参见文件结构)。Ganymede是Ceres的后续版本。
特性
- 实时聊天回放
- SSO / OAuth认证(wiki)
- 明/暗模式切换
- '已观看频道' - 关注频道的视频和直播
- 支持Twitch点播/直播
- 完整的点播、频道和用户管理
- 自定义下载后视频FFmpeg参数
- 自定义聊天渲染参数
- Webhook通知
- 简单的文件结构,适合长期存档,可以比Ganymede存在更久
- 可恢复的队列系统
- 播放/进度保存
- 播放列表
文档
有关功能的详细文档,请访问wiki。
API
访问docs文件夹获取API文档。
安装
要求
安装步骤
Ganymede由四个Docker容器组成:
- API
- 前端
- Postgres数据库
- Nginx
如果您不想启动新的容器,可以使用现有的Postgres数据库容器和Nginx容器。
- 下载
docker-compose.yml
文件和nginx.conf
的副本。 - 编辑
docker-compose.yml
文件,修改环境变量,更多信息请参见环境变量。 - 运行
docker compose up -d
。 - 访问您为前端指定的地址和端口,使用用户名:
admin
密码:ganymede
登录。 - 更改管理员密码或创建新用户,授予该用户管理员权限,然后删除管理员用户。
无根模式
API容器可以以非root用户身份运行。为此,添加PUID
和PGID
环境变量,将值设置为您的用户。有关更多信息,请阅读linuxserver的文档。
注意:在启动时,容器将对配置、临时和日志目录执行chown
操作。它不会递归地对/data/videos
目录执行chown
操作。确保挂载的/data/videos
目录对设置的用户可读。
环境变量
docker-compose.yml
文件对每个环境变量都有注释。*_URL
环境变量必须是"公共"URL(例如https://ganymedem.domain.com
),不能是仅指向Docker服务的URL。
API
环境变量名称 | 描述 |
---|---|
DEBUG | 启用调试日志,true 或 false 。 |
VIDEOS_DIR | 容器内视频目录的路径。默认:/data/videos 。 |
TEMP_DIR | 容器内存储归档过程中临时文件的路径。默认:/data/temp 。 |
LOGS_DIR | 容器内存储日志文件的路径。默认:/data/logs 。 |
CONFIG_DIR | 容器内存储配置的路径。默认:/data/config 。 |
TZ | 时区。 |
DB_HOST | 数据库主机。 |
DB_PORT | 数据库端口。 |
DB_USER | 数据库用户名。 |
DB_PASS | 数据库密码。 |
DB_NAME | 数据库名称。 |
DB_SSL | 是否使用SSL。默认:disable 。更多信息请参见 DB SSL。 |
DB_SSL_ROOT_CERT | 可选 数据库SSL根证书路径。更多信息请参见 DB SSL。 |
JWT_SECRET | JWT令牌的密钥。这应该是一个长的随机字符串。 |
JWT_REFRESH_SECRET | JWT刷新令牌的密钥。这应该是一个长的随机字符串。 |
TWITCH_CLIENT_ID | Twitch应用程序客户端ID。 |
TWITCH_CLIENT_SECRET | Twitch应用程序客户端密钥。 |
FRONTEND_HOST | 前端主机,用于CORS。例如:http://192.168.1.2:4801 |
OAUTH_ENABLED | 可选 是否启用OAuth,true 或 false 。如果启用,必须设置其他OAuth变量。 |
OAUTH_PROVIDER_URL | 可选 OAuth提供者URL。参见 https://github.com/Zibbp/ganymede/wiki/SSO---OpenID-Connect |
OAUTH_CLIENT_ID | 可选 OAuth客户端ID。 |
OAUTH_CLIENT_SECRET | 可选 OAuth客户端密钥。 |
OAUTH_REDIRECT_URL | 可选 OAuth重定向URL,指向API。例如:http://localhost:4000/api/v1/auth/oauth/callback 。 |
MAX_CHAT_DOWNLOAD_EXECUTIONS | 同时运行的最大聊天下载数。直播流绕过此限制。 |
MAX_CHAT_RENDER_EXECUTIONS | 同时运行的最大聊天渲染数。 |
MAX_VIDEO_DOWNLOAD_EXECUTIONS | 同时运行的最大视频下载数。直播流绕过此限制。 |
MAX_VIDEO_CONVERT_EXECUTIONS | 同时运行的最大视频转换数。 |
前端
环境变量名称 | 描述 |
---|---|
API_URL | API主机。例如:http://192.168.1.2:4800 。 |
CDN_URL | Nginx服务主机。例如:http://197.148.1.2:4802 。 |
SHOW_SSO_LOGIN_BUTTON | true/false 在登录页面显示"通过SSO登录"按钮。 |
FORCE_SSO_AUTH | true/false 通过绕过登录页面强制用户通过SSO登录。 |
REQUIRE_LOGIN | true/false 要求用户登录才能查看视频。 |
数据库
确保这些与API环境变量中的相同。
环境变量名称 | 描述 |
---|---|
POSTGRES_PASSWORD | 数据库密码 |
POSTGRES_USER | 数据库用户名 |
POSTGRES_DB | 数据库名称 |
卷
API
卷 | 描述 | 示例 |
---|---|---|
/data/videos | 视频存储挂载点。这必须与VIDEOS_DIR 环境变量匹配。 | /mnt/nas/vods:/data/videos |
/data/logs | 存储任务日志的挂载点。这必须与LOGS_DIR 环境变量匹配。 | ./logs:/data/logs |
/data/temp | 存储归档过程中临时文件的挂载点。这被挂载到主机上,以便在崩溃时可以恢复文件。这必须与TEMP_DIR 环境变量匹配。 | ./temp:/data/temp |
/data/config | 存储配置的挂载点。这必须与CONFIG_DIR 环境变量匹配。 | ./config:/data/config |
Nginx
卷 | 描述 | 示例 |
---|---|---|
/data/videos | 视频存储挂载点,与API容器卷相同。 | /mnt/nas/vods:/data/videos |
/etc/nginx/nginx.conf:ro | Nginx配置文件的路径。 | /path/to/nginx.conf:/etc/nginx/nginx.conf:ro |