本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社区和佬友监督: 是 以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出 MediaStationGo MediaStationGo是一款轻量、漂亮、NAS 友好的私人媒体中心。Go 单二进制后端 + React 前端,覆盖媒体库管理、刮削、播放、订阅下载、Emby API 兼容、AI 搜索与推荐。 经过测试部署在本地NAS使用Infuse、VidHub等播放器播放是秒播状态 暂时阉割掉了增加多用户的功能 功能模块 模块 能力 媒体库 电影、电视剧、动漫、综艺、音乐、成人内容;自动封面、合集分季分集 刮削 本地 NFO/图片优先,TMDb/TheTVDB/Bangumi/豆瓣/Fanart/JavBus/JavDB 补全 播放 直链、HLS、字幕、续播、外部播放器、历史与收藏 发现 TMDb / 豆瓣 / Bangumi 推荐入口,多源发现与订阅 下载 qBittorrent、PT 站点、RSS/搜索订阅、自动整理 兼容 Emby API、DLNA、外部客户端与三端 UI,无需另部署Emby等服务 运维 任务、统计、存储、重复文件、回收站、NFO 导出 AI OpenAI 兼容 Base URL/API Key,智能搜索与推荐 小姐姐友好,自动识别刮削 演示站 https://mgo.3jzs.com/ 管理员账号 :admin 密码:admin123 用户账号:Mgo 密码:admin123 测试站,请勿修改账号以及密码 展示图 少放几张图片 项目仓库 github.com GitHub - ShukeBta/MediaStationGo: MediaStationGo 是一个面向个人、家庭 NAS... MediaStationGo 是一个面向个人、家庭 NAS 与影音爱好者的开源媒体中心。它把「媒体库管理、自动刮削、在线播放、外部客户端兼容、PT 站点检索、订阅下载、AI 推荐」放进一个轻量的 Go 服务里,配合 React 前端提供统一、简洁、漂亮的三端体验。 欢迎各位大佬提交 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 mkdir mediastationgo; cd mediastationgo vi docker-compose.yml #或者 vim docker-compose.yml # MediaStationGo 默认 Docker Compose 部署文件。 # # 快速开始: # 1. 按需修改下方 volumes 的宿主机路径。 # 2. docker compose pull # 3. docker compose up -d # 4. 浏览器打开 http://<服务器IP>:18080 # # 推荐更新命令(会清理本项目旧镜像,避免 NAS 磁盘堆满): # curl -fsSL https://cdn.jsdelivr.net/gh/ShukeBta/MediaStationGo@main/scripts/docker-compose-update.sh -o docker-compose-update.sh # chmod +x docker-compose-update.sh # ./docker-compose-update.sh # # 默认账号: # admin / admin123 # 首次部署后请立即到「个人资料/用户管理」修改密码。 # # 镜像版本: # 默认拉取 latest;如需固定版本,创建 .env 并写入: # MEDIASTATION_IMAGE_TAG=MediaStationGo-v0.0.32 # # 路径映射总览: # /data 程序数据目录。保存 SQLite 数据库、JWT secret、系统配置等,必须持久化。 # /cache 缓存目录。保存海报、刮削图片、转码缓存等,建议放在空间较大的磁盘。 # /media 媒体库只读挂载目录。网页中添加媒体库时填写容器内路径,例如 /media/Movies。 # /downloads 下载目录。下载器保存路径建议填写容器内路径,例如 /downloads/Movies。 # # NAS / 飞牛推荐直读模式: # 如果你希望网页里直接填写 NAS 原始路径,例如 # /your-nas/media/电视剧/国产剧, # 请在 .env 中把宿主机路径和容器路径设置成完全相同(请替换为你自己的实际路径): # # MEDIASTATION_MEDIA_DIR=/your-nas/media # MEDIASTATION_MEDIA_CONTAINER_DIR=/your-nas/media # MEDIASTATION_DOWNLOAD_DIR=/your-nas/downloads # MEDIASTATION_DOWNLOAD_CONTAINER_DIR=/your-nas/downloads # # 这只是 Docker bind mount,不会复制文件,不会占用双倍空间。 # # 本地测试模式: # MEDIASTATION_DATA_DIR=./data # MEDIASTATION_CACHE_DIR=./cache # MEDIASTATION_MEDIA_DIR=./media # MEDIASTATION_DOWNLOAD_DIR=./downloads # # NAS / 飞牛路径必须使用绝对路径(请替换为你自己的实际路径),例如: # MEDIASTATION_MEDIA_DIR=/your-nas/media # MEDIASTATION_DOWNLOAD_DIR=/your-nas/downloads # 不要写成相对路径(如 ./media)当作 NAS 绝对路径;相对路径会被 Docker Compose 解析为当前部署目录下的子目录。 # # 注意: # 1. 如果 qBittorrent/Transmission/Aria2 不在本 compose 内,请确保它们能访问同一份 # 下载目录;容器内保存路径和下载器实际保存路径需要保持一致或可被媒体库扫描到。 # 2. 媒体库默认以只读方式挂载,避免误删原始媒体;如果需要整理/移动文件,可将 # /media 的 :ro 改为 :rw,或把整理目标放到 /downloads 后再手动迁移。 # 3. PUID/PGID 用于匹配 NAS/Linux 宿主机用户权限,避免下载或缓存文件权限异常。 services: mediastation-go: image: ghcr.io/shukebta/mediastation-go:${MEDIASTATION_IMAGE_TAG:-latest} # 默认只在本地没有镜像时拉取,避免每次重启都访问 GHCR。 # 需要升级时建议执行 ./docker-compose-update.sh,更新后会清理本项目旧镜像。 pull_policy: missing container_name: mediastation-go restart: unless-stopped ports: # 宿主机端口:容器端口。默认访问 http://<服务器IP>:18080 - "${MEDIASTATION_HTTP_PORT:-18080}:8080" extra_hosts: # Linux / NAS Docker 中访问宿主机服务的固定别名。 # qBittorrent 如果运行在 NAS 宿主机上,下载器地址建议填: # http://host.docker.internal:8085 - "host.docker.internal:host-gateway" volumes: # 程序持久化数据:数据库、JWT secret、运行时配置。 - ${MEDIASTATION_DATA_DIR:-./data}:/data # 海报/背景图/转码缓存。可删除重建,但会重新下载图片和生成缓存。 - ${MEDIASTATION_CACHE_DIR:-./cache}:/cache # 媒体库根目录。 # 默认:宿主机目录映射到容器 /media,添加媒体库时填写 /media/电影、/media/电视剧。 # NAS 直读:把 MEDIASTATION_MEDIA_CONTAINER_DIR 设置成与 MEDIASTATION_MEDIA_DIR 相同, # 添加媒体库时即可直接填写 /your-nas/media/电影、/your-nas/media/电视剧。 # 如宿主机目录不同,请在 .env 中设置 MEDIASTATION_MEDIA_DIR。 # NAS / 飞牛等系统请写绝对路径(替换为你自己的实际路径),例如: # MEDIASTATION_MEDIA_DIR=/your-nas/media # 不要写相对路径,否则会变成当前部署目录下的子目录。 # 默认映射到容器 /media;如需在网页中直接填写宿主机绝对路径,可将 # MEDIASTATION_MEDIA_CONTAINER_DIR 设置为同一个绝对路径。 - ${MEDIASTATION_MEDIA_DIR:-./media}:${MEDIASTATION_MEDIA_CONTAINER_DIR:-/media}:ro # 下载保存目录。 # 默认:宿主机目录映射到容器 /downloads,订阅保存根目录填写 /downloads。 # NAS 直读:把 MEDIASTATION_DOWNLOAD_CONTAINER_DIR 设置成与 MEDIASTATION_DOWNLOAD_DIR 相同, # 下载器保存根目录可直接填写 /your-nas/downloads。 # 如果外部下载器也运行在 Docker 中,请给下载器挂载同一个宿主机目录。 # NAS / 飞牛等系统请写绝对路径(替换为你自己的实际路径),例如: # MEDIASTATION_DOWNLOAD_DIR=/your-nas/downloads # 不要写相对路径,否则下载目录会被映射到当前部署目录下面。 # 默认映射到容器 /downloads;如需下载器和应用都使用宿主机绝对路径,可将 # MEDIASTATION_DOWNLOAD_CONTAINER_DIR 设置为同一个绝对路径。 - ${MEDIASTATION_DOWNLOAD_DIR:-./downloads}:${MEDIASTATION_DOWNLOAD_CONTAINER_DIR:-/downloads} environment: # Web 服务监听配置。容器内固定监听 8080,对外端口由上方 ports 控制。 MEDIASTATION_APP_HOST: 0.0.0.0 MEDIASTATION_APP_PORT: 8080 MEDIASTATION_APP_WEB_DIR: /app/web/dist # 数据与缓存目录。需与 volumes 中的容器路径一致。 MEDIASTATION_APP_DATA_DIR: /data MEDIASTATION_DATABASE_DB_PATH: /data/mediastation.db MEDIASTATION_CACHE_CACHE_DIR: /cache # 宿主机到容器的路径映射提示。用于用户误填宿主机路径时自动转换为容器路径: # /your-nas/media/电视剧 -> /media/电视剧 # /your-nas/downloads/国产剧 -> /downloads/国产剧 MEDIASTATION_MEDIA_DIR: ${MEDIASTATION_MEDIA_DIR:-./media} MEDIASTATION_MEDIA_CONTAINER_DIR: ${MEDIASTATION_MEDIA_CONTAINER_DIR:-/media} MEDIASTATION_DOWNLOAD_DIR: ${MEDIASTATION_DOWNLOAD_DIR:-./downloads} MEDIASTATION_DOWNLOAD_CONTAINER_DIR: ${MEDIASTATION_DOWNLOAD_CONTAINER_DIR:-/downloads} # 日志级别:debug / info / warn / error。 MEDIASTATION_LOGGING_LEVEL: ${MEDIASTATION_LOGGING_LEVEL:-info} # 转码配置。留空表示自动/软件转码;硬件加速见下方 Intel/NVIDIA 示例。 MEDIASTATION_TRANSCODER_ENABLED: ${MEDIASTATION_TRANSCODER_ENABLED:-true} MEDIASTATION_TRANSCODER_HARDWARE_ACCEL: ${MEDIASTATION_TRANSCODER_HARDWARE_ACCEL:-false} MEDIASTATION_TRANSCODER_ENCODER: ${MEDIASTATION_TRANSCODER_ENCODER:-} MEDIASTATION_TRANSCODER_MAX_HEIGHT: ${MEDIASTATION_TRANSCODER_MAX_HEIGHT:-1080} # NAS 低负载保护:HLS 按播放速度转码、限制软件编码线程、限制并发、空闲自动停止。 MEDIASTATION_TRANSCODER_REALTIME: ${MEDIASTATION_TRANSCODER_REALTIME:-true} MEDIASTATION_TRANSCODER_THREADS: ${MEDIASTATION_TRANSCODER_THREADS:-2} MEDIASTATION_TRANSCODER_MAX_CONCURRENT: ${MEDIASTATION_TRANSCODER_MAX_CONCURRENT:-1} MEDIASTATION_TRANSCODER_IDLE_TIMEOUT_SECONDS: ${MEDIASTATION_TRANSCODER_IDLE_TIMEOUT_SECONDS:-120} # 跨域来源。通常无需设置;反向代理或三端客户端异常时再按需填写。 MEDIASTATION_APP_CORS_ORIGINS: ${MEDIASTATION_APP_CORS_ORIGINS:-} # Telegram 通知/Bot 出站网络。通常留空即可;如 NAS 访问 Telegram 超时, # 可在 .env 中填写反代 API 或代理地址。v2rayA 常见代理: # HTTP http://host.docker.internal:20171 或 http://172.17.0.1:20171 # SOCKS socks5://host.docker.internal:20170 或 socks5://172.17.0.1:20170 # MEDIASTATION_TELEGRAM_API_BASE_URL=https://api.telegram.org # MEDIASTATION_TELEGRAM_PROXY_URL=http://host.docker.internal:20171 MEDIASTATION_TELEGRAM_API_BASE_URL: ${MEDIASTATION_TELEGRAM_API_BASE_URL:-} MEDIASTATION_TELEGRAM_PROXY_URL: ${MEDIASTATION_TELEGRAM_PROXY_URL:-} # 可选:把宿主机 shell/.env 中的代理变量透传给容器。留空无效果。 # 如果 NAS 已使用 v2rayA redirect/透明代理且 Docker 网桥流量已被接管, # 通常不需要填写这些变量。 HTTP_PROXY: ${HTTP_PROXY:-} HTTPS_PROXY: ${HTTPS_PROXY:-} ALL_PROXY: ${ALL_PROXY:-} NO_PROXY: ${NO_PROXY:-127.0.0.1,localhost} # 宿主机文件权限映射。Linux/NAS 常用 1000:1000,可用 id 命令查看。 PUID: ${PUID:-1000} PGID: ${PGID:-1000} TZ: ${TZ:-Asia/Shanghai} # Intel QSV / VAAPI 硬件加速示例: # 1. Linux/NAS 宿主机存在 /dev/dri。 # 2. 在 .env 中设置 MEDIASTATION_TRANSCODER_HARDWARE_ACCEL=true # 和 MEDIASTATION_TRANSCODER_ENCODER=vaapi。 # 3. 取消下方 devices/group_add 注释。 # devices: # - /dev/dri:/dev/dri # group_add: # - "${RENDER_GID:-989}" # NVIDIA NVENC 硬件加速示例: # 1. 宿主机安装 NVIDIA Container Toolkit。 # 2. 在 .env 中设置 MEDIASTATION_TRANSCODER_HARDWARE_ACCEL=true # 和 MEDIASTATION_TRANSCODER_ENCODER=nvenc。 # 3. 取消下方 gpus 注释。 # gpus: all healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:8080/api/health || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 30s docker compose up -d http://<host-ip>:18080 #就可以使用了 更新 docker compose pull docker compose up -d docker image prune -f 其他部署教程及开发使用在项目仓库中 目前项目已经可以正式部署使用,我们的下一步开发计划为增加网盘支持,目前已经实现一小部分 1 个帖子 - 1 位参与者 阅读完整话题
cover.517778.xyz 媒体库封面生成器 如题,本人毫无代码经验,近日了解到了一些vibe coding项目,就用opendesign搞了这个个小网站挂在cf上,可能会有点卡。 关于如何在网页上去套用我做好的psd文件或者是我做好的示例图片作为模板,始终找不到一个能够实现的办法,只能通过给点提示词一次次调整 。或许有懂的佬友指点一下迷津吗? 1 个帖子 - 1 位参与者 阅读完整话题
最近把媒体库重新整理,原本一直用 Emby,后来看到不少人推荐 Jellyfin。 目前我的感受: Emby: 客户端成熟 UI 顺手 开箱体验不错 Jellyfin: 完全开源 可折腾空间大 插件挺多 现在有点纠结要不要迁移,尤其是移动端体验和硬解支持这块。 3 个帖子 - 3 位参与者 阅读完整话题
最近想把家里的媒体库重新整理一下,就开始折腾 Emby + Docker 部署,本来以为半小时搞定,结果前后搞了两三天,踩了不少坑,顺便记录一下,也看看大家有没有更好的方案。 目前环境: Windows 主机(后面可能转 NAS) Docker 部署 安卓 + PC 双端播放 主要是电影、番剧和音乐库 1.字幕刮削问题 有些中文字幕能识别,有些不行,尤其是中英双语命名的时候容易抽风,不知道大家有没有比较统一的命名规范。 2.安卓端播放器 试了官方客户端,也试了一些第三方播放器,直连和转码体验差距挺大,目前还在找比较舒服的方案。 2 个帖子 - 2 位参与者 阅读完整话题