logo NodeSeekbeta

[7.30 更新/开源自荐]MediaStationGo-一站式自建影视库媒体库-无需部署EMBY服务端一一键登录-【长期主贴】

项目简介

MediaStationGo 是一个自托管媒体管理系统,面向 NAS、小主机、家庭影音和多用户共享场景。它把媒体库、刮削、下载整理、订阅、网盘播放、Emby 协议兼容、用户权限和 Bot 通知放在一个后台里,目标是让用户只维护一套服务,就能给网页端、手机端、电视端和第三方播放器使用,无需部署Emby服务端。

核心能力:

  • 媒体库管理:电影、电视剧、动漫、综艺、音乐和自定义媒体库统一管理。
  • Emby 协议兼容:Infuse、VidHub、SenPlayer、Fileball 等客户端可按 Emby/Jellyfin 方式添加服务器。
  • 本地 + 网盘:支持本地硬盘、下载目录、OpenList、CloudDrive2、WebDAV、STRMURL 和 302 反代播放。
  • 订阅下载入库:连接 qBittorrent 后支持搜索、订阅、下载完成整理、刮削和入库通知。
  • 多用户与权限:管理员/普通用户、有效期、成人内容开关、设备管理、注册码和 Telegram Bot 绑定。
  • 三挡部署:按规模选择 PostgreSQL、Redis、OpenSearch,低配 NAS 到大库检索都能覆盖。

演示站

https://mgo.3jzs.com/

管理员账号 :admin 密码:admin123
用户账号:Mgo 密码:admin123
测试站,请勿修改账号以及密码

演示站只用于看功能,请不要填写私人 API Key、站点 Cookie 或真实隐私信息。

展示图

少放几张图片

[grid]
海报墙|690x342, 50%媒体库页|690x342, 50%
系统设置|690x342, 50%系统首页|690x342, 50%
站点添加|690x342, 50%状态监控|690x342, 50%
[/grid]

项目仓库

https://github.com/ShukeBta/MediaStationGo

开发群组
https://t.me/MediaStationGo

欢迎各位大佬提交 Issue 和 Pull Request!

部署教程
Docker-compose部署(推荐)
docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

快速开始

最推荐使用 Docker Compose。默认模板不依赖 .env,复制后按自己的 NAS 路径改 volumes 和路径环境变量即可。

mkdir -p MediaStationGo
cd MediaStationGo
curl -fsSL https://raw.githubusercontent.com/ShukeBta/MediaStationGo/main/docker-compose.yml -o docker-compose.yml
docker compose up -d

启动后访问:

http://服务器IP:18080

默认账号:

admin / admin123

首次登录后请立刻修改管理员密码。

镜像地址:

GHCR:ghcr.io/shukebta/mediastation-go:latest
Docker Hub 备用:shukbet/mediastationgo:latest

三挡部署

MediaStationGo 推荐按机器资源和用户规模选择部署档位。三挡都使用 PostgreSQL 作为主数据库;Redis 和 OpenSearch 是增强组件,不替代 PostgreSQL。

档位 组件 适合场景 启动命令
第一档 MediaStationGo + PostgreSQL 大多数 NAS、个人/家庭使用、低内存机器 docker compose up -d
第二档 MediaStationGo + PostgreSQL + Redis 多用户、Emby 客户端频繁刷新、首页/媒体列表访问较多 docker compose -f docker-compose.yml -f docker-compose.standard.yml up -d
第三档 MediaStationGo + PostgreSQL + Redis + OpenSearch 超大媒体库、复杂全文搜索、后续需要独立搜索索引 docker compose -f docker-compose.yml -f docker-compose.standard.yml -f docker-compose.search.yml up -d

第一档:PostgreSQL

第一档是默认推荐部署。它只启动主服务和 PostgreSQL,资源占用最低,适合绝大多数 NAS。

# 拉取最新镜像
docker compose pull

# 启动第一档:MediaStationGo + PostgreSQL
docker compose up -d

关键数据目录:

./postgres   PostgreSQL 主数据库,必须备份
./data       JWT 密钥、运行配置、旧 SQLite 迁移源
./cache      海报、临时文件、转码缓存,可删除重建

配置示例

仓库内提供三份推荐 Compose 文件:

docker-compose.yml            第一档:MediaStationGo + PostgreSQL
docker-compose.standard.yml   第二档叠加:Redis 热缓存
docker-compose.search.yml     第三档叠加:OpenSearch 搜索增强

常用配置片段如下,注释保留为中文,方便直接复制到 NAS 上调整:

services:
  mediastation-go:
    image: ghcr.io/shukebta/mediastation-go:latest
    ports:
      # 左边是宿主机访问端口,右边是容器内端口。
      - "18080:8080"
    volumes:
      # 运行数据:JWT 密钥、配置、旧 SQLite 迁移源。
      - ./data:/data

      # 缓存目录:海报、临时文件、转码缓存,可删除重建。
      - ./cache:/cache

      # 媒体库目录:自动整理/重命名/入库需要写权限。
      - /vol1/1000/Media:/media

      # 下载目录:qBittorrent 保存目录和自动整理源目录。
      - /vol1/1000/Downloads:/downloads
    environment:
      TZ: Asia/Shanghai

      # PostgreSQL 主数据库。
      MEDIASTATION_DATABASE_TYPE: postgres
      MEDIASTATION_DATABASE_DSN: postgres://mediastation:mediastation@postgres:5432/mediastation?sslmode=disable

      # 旧 SQLite 迁移源:只在从旧版 data/mediastation.db 导入时使用。
      MEDIASTATION_DATABASE_DB_PATH: /data/mediastation.db

      # 路径换算:宿主机路径和容器路径必须一一对应。
      MEDIASTATION_MEDIA_DIR: /vol1/1000/Media
      MEDIASTATION_MEDIA_CONTAINER_DIR: /media
      MEDIASTATION_DOWNLOAD_DIR: /vol1/1000/Downloads
      MEDIASTATION_DOWNLOAD_CONTAINER_DIR: /downloads

路径映射

路径映射是 Docker 部署里最容易填错的地方。原则是:volumes 左边是宿主机真实路径,右边是容器内路径;环境变量里也要保持对应关系。

NAS 示例:

volumes:
  - /vol1/1000/Docker/moviepilot-v2/media:/vol1/1000/Docker/moviepilot-v2/media
  - /vol1/1000/qBittorrent/downloads:/vol1/1000/qBittorrent/downloads
environment:
  MEDIASTATION_MEDIA_DIR: /vol1/1000/Docker/moviepilot-v2/media
  MEDIASTATION_MEDIA_CONTAINER_DIR: /vol1/1000/Docker/moviepilot-v2/media
  MEDIASTATION_DOWNLOAD_DIR: /vol1/1000/qBittorrent/downloads
  MEDIASTATION_DOWNLOAD_CONTAINER_DIR: /vol1/1000/qBittorrent/downloads

Windows Docker Desktop 示例:

volumes:
  - D:/Media:/media
  - D:/Downloads:/downloads
environment:
  MEDIASTATION_MEDIA_DIR: D:/Media
  MEDIASTATION_MEDIA_CONTAINER_DIR: /media
  MEDIASTATION_DOWNLOAD_DIR: D:/Downloads
  MEDIASTATION_DOWNLOAD_CONTAINER_DIR: /downloads

如果后台添加媒体库时填的是 /vol1/...,Compose 里也建议把同一个 /vol1/... 挂进容器,避免自动整理和下载入库时路径不可访问。

旧 SQLite 迁移

新版推荐 PostgreSQL 作为主数据库。MEDIASTATION_DATABASE_DB_PATH 不是主库路径,而是旧 SQLite 数据的迁移源。

迁移步骤:

  1. 把旧版 mediastation.db 放到 ./data/mediastation.db。
  2. 保持 MEDIASTATION_DATABASE_DB_PATH: /data/mediastation.db。
  3. 启动一次,确认日志显示迁移完成,网页数据正常。
  4. 备份 ./postgres 和 ./data。
  5. 确认不再需要 SQLite 后,把迁移源改成不存在的路径,例如:
environment:
  # 已完成 SQLite 迁移后,建议改成不存在的路径,避免下次启动重复检查旧库。
  MEDIASTATION_DATABASE_DB_PATH: /data/no-sqlite-migration.db

不要删除 ./postgres。PostgreSQL 已经是主数据库,删除它会丢失账号、媒体库、订阅、配置和历史数据。

更新与备份

更新镜像:

docker compose pull  #拉取最新镜像
docker compose up -d  #重启
docker image prune -f  #删除旧镜像

必须备份:

./postgres   PostgreSQL 主数据库
./data       JWT 密钥、运行配置、旧 SQLite 迁移源

可重建:

./cache      图片缓存、临时文件、转码缓存
./redis      Redis 热缓存
./opensearch 搜索索引

Bot 与通知

MediaStationGo 支持 Telegram Bot 绑定、用户菜单、群组管理菜单和事件通知。常见通知事件包括:

  • 订阅命中新资源
  • 下载任务完成
  • 入库完成
  • 刮削失败告警
  • 系统异常通知

管理员可以在后台配置 Bot Token、Chat ID、通知频道和事件类型。群组里管理类命令只允许管理员执行,普通用户只能看到和使用用户命令。

其他部署教程及开发使用在项目仓库中
目前项目已经可以正式部署使用,我们的下一步开发计划为增加网盘支持,目前已经实现一小部分


欢迎各位大佬提交 Issue 和 Pull Request!球球各位大佬点个start吧!

  • @fastrun #14 欢迎多多提交 Issue 和 Pull Request!我会继续进行改进,这款开发的主要是为了运行的时候少吃机器资源,https://github.com/ShukeBta/MediaStation 这一版我刚做出来到完善好一看占用一个多G,然后就重构成了现在的Go版本

  • @Exia #18 新手,不是啥大佬 ac13 我开发试试

  • 牛蛙,看着有点东西的

  • @z318969887 #1 这一版我是用Go重构的,仓库还有一版py的,相比于用Emby还有其他几个来说是简单了很多,占用空间少,运行速度快

  • 必须Star
    这项目可以自动搜索,自动下载,自动整理,对吗?
    没有PT站的账号怎么办?

  • @sky35 #3 需要手动添加订阅,订阅之后的会自动下载,好像自动做了RSS,也可以使用TGBot搜索下载

  • @sky35 #3 捐个馒头或者论坛求一个 ac07 可以先玩儿一下小站

  • @Heisi #4
    订阅RSS这个有点搞不懂了,反正看起来比自己部署的那一套要漂亮

  • @sky35 #6 就是在添加站点的时候,记得把站点的RSS链接复制添加。这个项目前前后后差不多快两个月了才做到现在这样

  • 建议添加网盘订阅,对接影巢、频道之类的,感觉这是现在的主流

  • @timstar #8 支持Webdav等,网盘啥的还没加,感觉加多了太臃肿了,可以考虑

  • 现在网盘下载才是最多的,PT门槛还是高了

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72267位seeker

🎉欢迎新用户🎉