个人NAS解决方案-软件

编辑 / 发布于2024-03-29 / 更新于2024-03-29 / 阅读 29

媒体服务

jellyfin

免费开源,但有些视频文件读取不到,转码hdr时发白(好像下个版本修复),备用方案


version: '3.5'
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    volumes:
      - ./config:/config
      - ./cache:/cache
      - ./media:/media
      - ./media2:/media2:ro
      - /mydata:/mydata
    restart: 'unless-stopped'
    ports:
      - '8096:8096' # http访问端口
      - '8920:8920' # https访问端口
    devices:
        - /dev/dri:/dev/dri
    environment:
      - ROC_ENABLE_PRE_VEGA=1

emby

硬解付费,但有破解版,个人主力使用,转码hdr时同样发白

需要首先手动创建traefik网络,否则桥接模式可能不会成功

ios 配合 fireball使用

window 配合 浏览器插件 和 potplayer使用

version: '3' 

networks:
  traefik:
    driver: bridge      # 使用桥接模式的网络驱动
    external: true      # 表明这个网络是外部创建的,不由这个 Docker Compose 文件管理

services:
  emby:
    image: lovechen/embyserver:latest  # 使用最新版本的 lovechen/embyserver 镜像
    container_name: emby               # 容器名称设置为 emby
    restart: always                    # 容器总是重新启动
    networks:
      - traefik                       # 将此服务连接到 traefik 网络
    ports:
      - '8095:8096'                   # 将容器的 8096 端口映射到主机的 8096 端口
      - '8919:8920'                   # 将容器的 8920 端口映射到主机的 8920 端口
      - '1900:1900/udp'               # 将容器的 1900 UDP 端口映射到主机的 1900 UDP 端口
      - '7359:7359/udp'               # 将容器的 7359 UDP 端口映射到主机的 7359 UDP 端口
    volumes:
      - ./config:/config              # 将主机上的 ./config 目录挂载到容器的 /config
      - /mydata:/mydata
    environment:
      - UID=0                         # 设置容器用户 ID 为 0 (通常是 root)
      - GID=0                         # 设置容器组 ID 为 0 (通常是 root)
      - GIDLIST=0                     # 设置容器组 ID 列表为 0
      - NVIDIA_VISIBLE_DEVICES=all    # 允许容器访问所有 NVIDIA 设备
    devices:
      - /dev/dri:/dev/dri             # 将主机的 /dev/dri 设备挂载到容器

  nginx:
    image: levonet/nginx:latest       # 使用最新版本的 levonet/nginx 镜像
    container_name: emby-nginx        # 容器名称设置为 emby-nginx
    networks:
      - traefik                       # 将此服务连接到 traefik 网络
    restart: always                   # 容器总是重新启动
    volumes:
      - ./nginx_config/:/etc/nginx/      # 挂载 nginx 配置文件
    ports:
      - 8083:80                      # 将容器的 80 端口映射到主机的 8083 端口
    environment:
      - TZ=Asia/Shanghai             # 设置容器的时区为亚洲/上海

plex

需注册账号,播放视频外挂字幕黑屏,放弃

services:
  plex:
    image: plexinc/pms-docker:latest
    container_name: plex
    environment:
      - PUID=1000
      - PGID=996
      - VERSION=docker
      - PLEX_CLAIM=claim-xxxxx
    volumes:
      - ./config:/config
      - /mydata:/mydata
    ports:
     - 32400:32400

    restart: unless-stopped

navidrome

纯音乐播放器,轻便好用,重启后配置清空?不确定

ios配合音流使用

version: "3"
services:
  navidrome:
    container_name: navidrome
    image: deluan/navidrome:latest
    ports:
      - 4533:4533
    volumes:
      - /mydata/sda/music:/music   # 媒体目录,多个目录需要分别映射进来,需要满足配置文件说明中的要求
      - ./data:/data
    environment: 
      - PUID=1000    # 想切换为哪个用户来运行程序,该用户的uid
      - PGID=996   # 想切换为哪个用户来运行程序,该用户的gid
    restart: always
    

musictag

音乐文件自动刮削(添加歌词,专辑等 元数据信息)

version: '3'

services:
  music-tag:
    image: xhongc/music_tag_web:latest
    container_name: music-tag-web
    ports:
      - "8001:8001"
    volumes:
      - /mydata/sda/music:/app/media:rw
      - ./config:/app/data
    command: /start
    restart: unless-stopped

reader

小说阅读器,可自己添加书源

version: '3.1'
services:
  reader:
    image: hectorqin/reader
    #image: hectorqin/reader:openj9-latest #docker镜像,arm64架构或小内存机器优先使用此镜像.启用需删除上一行
    container_name: reader #容器名 可自行修改
    restart: always
    ports:
      - 8050:8080 #4396端口映射可自行修改

    volumes:
      - ./logs:/logs #log映射目录 /home/reader/logs 映射目录可自行修改
      - ./storage:/storage #数据映射目录 /home/reader/storage 映射目录可自行修改
      - /mydata/reader_data:/storage/data
    environment:
      - PUID=1000
      - PGID=996
      - SPRING_PROFILES_ACTIVE=prod
      - READER_APP_USERLIMIT=5 #用户上限,默认50
      - READER_APP_USERBOOKLIMIT=1000 #用户书籍上限,默认200
      - READER_APP_CACHECHAPTERCONTENT=true #开启缓存章节内容 V2.0
      # 如果启用远程webview,需要取消注释下面的 remote-webview 服务
      # - READER_APP_REMOTEWEBVIEWAPI=http://*:8050 #开启远程webview
      # 下面都是多用户模式配置
      - READER_APP_SECURE=true #开启登录鉴权,开启后将支持多用户模式
      - READER_APP_SECUREKEY=xxxx  #管理员密码  建议修改
      - READER_APP_INVITECODE=xxxx #注册邀请码 建议修改,如不需要可注释或删除

网盘

alist

个人网盘服务,界面好看,速度块,支持webdav,部分视频,音乐,可在线编辑txt,支持离线下载aria2 http qbittorrent

缺点,复制文件时目录只能点小三角号展开,不好用,window客户端收费,重启每次都有repo提示关,有点烦。

下面是alist+qbittorrent+aria2 集成,network用host模式,有需要可以改成bridge

客户端xlist,fileball可挂载webdav使用

version: '3.5'

services:
  qbittorrent:
    image: linuxserver/qbittorrent:latest
    container_name: qbittorrent
    network_mode: 'host'
    environment:
      - PUID=1000
      - PGID=996
      - TZ=Asia/Shanghai
      - WEBUI_PORT=8181  # 将外部端口更改为8181
      - WEBUI_USERNAME=xxx# 设置用户名
      - WEBUI_PASSWORD=xxx  # 设置密码
    volumes:
      - ./qbittorrent/config:/config
      - ./qbittorrent/downloads:/downloads
      - ./qbwebui:/qbwebui
      - ./alist:/opt/alist/data
      - /mydata:/mydata
    restart: unless-stopped


  alist:
    image: xhofe/alist:latest
    container_name: alist
    network_mode: 'host'
    environment:
      - PUID=1000
      - PGID=996
      - UMASK=022
      - QBittorrent_ADDRESS=qbittorrent  # 使用qbittorrent容器的名称作为地址
      - QBittorrent_PORT=8181  # 设置qbittorrent的端口
    volumes:
      - ./alist:/opt/alist/data
      - /mydata:/mydata
    restart: always

  Aria2-Pro:
    container_name: aria2-pro
    image: p3terx/aria2-pro
    environment:
      - PUID=1000
      - PGID=996
      - UMASK_SET=022
      - RPC_SECRET=xxxx # 配置Aria2 的 RPC secret 密钥,它将被用于 Alist 和 AriaNg 连接 Aria2
      - RPC_PORT=6800
      - LISTEN_PORT=6888
      - DISK_CACHE=64M
      # - IPV6_MODE=true
      - UPDATE_TRACKERS=true
      # - CUSTOM_TRACKER_URL=
      - TZ=Asia/Shanghai
    volumes:
      - ./aria2/config:/config
      - ./aria2/downloads:/downloads # 在:号前配置你要在主机上保存下载文件的路径
      - ./alist:/opt/alist/data
      - /mydata:/mydata
    ports:
      - "6800:6800"
      - "6888:6888"
      - "6888:6888/udp"
    restart: unless-stopped
    logging:
      driver: json-file
      options:
        max-size: 1m

  # Aria2 的 Web UI
  AriaNg:
    container_name: ariang
    image: p3terx/ariang
    command: --port 6880 --ipv6
    ports:
      - "6880:6880"
    restart: unless-stopped
    logging:
      driver: json-file
      options:
        max-size: 1m

nextcloud

好用,window端免费,备用

缺点,响应有点慢

services:
  nextcloud:
    image: linuxserver/nextcloud:latest
    container_name: nextcloud
    environment:
      - PUID=1000
      - PGID=996
    volumes:
      - ./appdata:/config
      - ./data:/data
      - /mydata:/mydata
    ports:
      - 8083:80
    restart: always

cloudreve

带自己数据库,不能实时同步硬盘文件变更,但整体感觉还可以,放弃

管理

1panel

opentdp

下载

moviepilot

nastool

qbittorrent

aria2

监控

homepage

netdata

linuxdash

dash