mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-28 11:16:37 +08:00
162 lines
5.8 KiB
YAML
162 lines
5.8 KiB
YAML
# MediaStationGo 最简单 Docker Compose 部署文件
|
||
#
|
||
# 新手建议:
|
||
# 1. 不用 .env。
|
||
# 2. 直接改本文件。
|
||
# 3. 第一次可以不改路径,先用当前目录下的 ./media 和 ./downloads 体验。
|
||
#
|
||
# 启动:
|
||
# docker compose up -d
|
||
#
|
||
# 访问:
|
||
# http://服务器IP:18080
|
||
#
|
||
# 默认账号:
|
||
# admin / admin123
|
||
|
||
services:
|
||
mediastation-go:
|
||
# 镜像二选一:
|
||
# 方式一:GitHub 仓库镜像 GHCR(默认,推荐)
|
||
image: ghcr.io/shukebta/mediastation-go:latest
|
||
# 方式二:Docker Hub 备用(GHCR 拉取慢或不可用时使用)
|
||
# image: shukbet/mediastationgo:latest
|
||
|
||
restart: unless-stopped
|
||
init: true
|
||
depends_on:
|
||
postgres:
|
||
condition: service_healthy
|
||
|
||
# 浏览器访问端口。
|
||
# 如果 18080 被占用,可以改成 "19011:8080" 之类。
|
||
ports:
|
||
- "18080:8080"
|
||
|
||
# 让容器可以访问宿主机上的 qBittorrent。
|
||
# qB 地址通常可填:http://host.docker.internal:8085
|
||
extra_hosts:
|
||
- "host.docker.internal:host-gateway"
|
||
|
||
volumes:
|
||
# 程序运行数据:JWT 密钥、运行配置、旧 SQLite 迁移源。
|
||
# 主数据库在 ./postgres,升级/备份时 ./data 和 ./postgres 都要保留。
|
||
- ./data:/data
|
||
|
||
# 缓存目录:海报缓存、临时文件等。通常不用备份。
|
||
- ./cache:/cache
|
||
|
||
# 媒体库目录。
|
||
# 如果要使用自动整理/重命名/入库,这里必须保持读写,不能加 :ro。
|
||
# 只有完全不整理、只扫描/播放已有媒体时,才建议手动改成只读。
|
||
# 新手可先把影片放到当前目录的 ./media。
|
||
# NAS 用户把左边改成真实路径,例如:
|
||
# - /vol1/1000/Media:/media
|
||
# Windows Docker Desktop 示例:
|
||
# - D:/Media:/media
|
||
- ./media:/media
|
||
|
||
# 下载目录。
|
||
# qB 下载目录、手动整理、自动整理会经常用到。
|
||
# NAS 示例:
|
||
# - /vol1/1000/Downloads:/downloads
|
||
# Windows Docker Desktop 示例:
|
||
# - D:/Downloads:/downloads
|
||
- ./downloads:/downloads
|
||
|
||
# 管理面板「系统更新」需要访问 Docker 引擎。
|
||
# 需要一键更新 Docker 镜像时取消下一行注释;如果提示权限不足,
|
||
# 请确认 PUID/PGID 对 /var/run/docker.sock 有读写权限。
|
||
# - /var/run/docker.sock:/var/run/docker.sock
|
||
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
|
||
# Linux/NAS 用户权限。一般 1000 就可以。
|
||
# 如果写入文件权限不对,再改成宿主机实际用户的 uid/gid。
|
||
PUID: "1000"
|
||
PGID: "1000"
|
||
|
||
# 程序基础配置,通常不用改。
|
||
MEDIASTATION_APP_HOST: 0.0.0.0
|
||
MEDIASTATION_APP_PORT: 8080
|
||
MEDIASTATION_APP_WEB_DIR: /app/web/dist
|
||
MEDIASTATION_APP_DATA_DIR: /data
|
||
# 需要排查订阅/站点搜索/下载器问题时,临时把 level 改成 info 或 debug。
|
||
# 详细应用日志会保存在 ./data/logs/app.log,warn/error 也会拆分保存。
|
||
MEDIASTATION_LOGGING_LEVEL: warn
|
||
MEDIASTATION_LOGGING_FORMAT: console
|
||
MEDIASTATION_LOGGING_OUTPUT_PATH: /data/logs
|
||
|
||
# 轻量模式默认只使用 PostgreSQL,适合大多数 NAS。
|
||
# 旧版 ./data/mediastation.db 存在时,首次启动会自动迁移到 PostgreSQL。
|
||
MEDIASTATION_DATABASE_TYPE: postgres
|
||
MEDIASTATION_DATABASE_DSN: postgres://mediastation:mediastation@postgres:5432/mediastation?sslmode=disable
|
||
|
||
# SQLite 旧库迁移源:
|
||
# - 首次从旧版 ./data/mediastation.db 导入时保持此路径。
|
||
# - 确认迁移完成后,建议改成 /data/no-sqlite-migration.db 这类不存在的路径。
|
||
MEDIASTATION_DATABASE_DB_PATH: /data/mediastation.db
|
||
MEDIASTATION_CACHE_CACHE_DIR: /cache
|
||
|
||
# 管理面板热更新默认拉取此镜像,并用 Watchtower 一次性重建当前容器。
|
||
MEDIASTATION_UPDATE_IMAGE: ghcr.io/shukebta/mediastation-go:latest
|
||
|
||
# 路径换算配置。
|
||
# 如果上面 volumes 的 ./media 改成 /vol1/1000/Media,
|
||
# 这里也要改成同一个宿主机真实路径。
|
||
MEDIASTATION_MEDIA_DIR: ./media
|
||
MEDIASTATION_MEDIA_CONTAINER_DIR: /media
|
||
|
||
# 如果上面 volumes 的 ./downloads 改成 /vol1/1000/Downloads,
|
||
# 这里也要改成同一个宿主机真实路径。
|
||
MEDIASTATION_DOWNLOAD_DIR: ./downloads
|
||
MEDIASTATION_DOWNLOAD_CONTAINER_DIR: /downloads
|
||
|
||
# NAS 友好的低负载默认值。
|
||
MEDIASTATION_TRANSCODER_ENABLED: "true"
|
||
MEDIASTATION_TRANSCODER_HARDWARE_ACCEL: "false"
|
||
MEDIASTATION_TRANSCODER_REALTIME: "true"
|
||
MEDIASTATION_TRANSCODER_THREADS: "2"
|
||
MEDIASTATION_TRANSCODER_MAX_CONCURRENT: "1"
|
||
MEDIASTATION_TRANSCODER_IDLE_TIMEOUT_SECONDS: "120"
|
||
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "busybox wget -qO- http://127.0.0.1:8080/api/health || exit 1"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 5
|
||
start_period: 30s
|
||
|
||
# 限制 Docker 日志大小,避免长期运行把磁盘写满。
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|
||
|
||
postgres:
|
||
image: postgres:16-alpine
|
||
# 首次部署允许拉取;日常更新请只 pull mediastation-go。
|
||
# 如需升级 PostgreSQL,请先备份 ./postgres 后再手动调整镜像版本并拉取。
|
||
pull_policy: missing
|
||
restart: unless-stopped
|
||
environment:
|
||
POSTGRES_DB: mediastation
|
||
POSTGRES_USER: mediastation
|
||
POSTGRES_PASSWORD: mediastation
|
||
TZ: Asia/Shanghai
|
||
volumes:
|
||
# PostgreSQL 主数据目录。升级/重建容器时必须保留。
|
||
- ./postgres:/var/lib/postgresql/data
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U mediastation -d mediastation"]
|
||
interval: 10s
|
||
timeout: 5s
|
||
retries: 10
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|