Skip to content

NAS Docker Compose分享

好久没写Blog了,忙着研究装修。最近极空间更新了Docker Compose,抽时间把原先跑的镜像都切换成了Docker Compose的形式运行,以后也方便更新和迁移。

目前看更新的Docker Compose也只是勉强能用,还是有不少Bug。但是又不想把SSH放出去,而且以前刚放开SSH的时候遇到Docker Compose跑的容器没法在图形界面操作的问题,所以还是希望通过这次更新的Compose图形化的界面来管理YAML配置。

问题

团队空间的目录无法映射

一开始还以为是中文目录导致的问题,结果测试发现所有团队空间的目录都没法映射。由于极影视的分享逻辑,我的Mp、Qb、Tr的资源都放在团队空间里,要是没法映射的话直接就玩不下去了。

好在经过一番测试,发现可以只映射其他配置之类的个人空间的目录,先去掉团队空间那些下载盘的目录。等正常跑起来了,再把团队空间的目录补回YAML配置里然后重新构建,这才算真正跑完。

配置文件管理

无论是手动写进去还是电脑导入或者本地导入选项,都是在默认的目录下生成一个新的YAML文件,而不是自己定义的位置或者其他目录引用,导致目前这个YAML文件只能通过图形化界面管理,很难备份。

没法限制性能

限制内存和CPU的参数似乎没法生效

YAML分享

alist

  • 分享文件及webdav
yaml
services:
  alist:
    image: xhofe/alist:latest-aio
    container_name: alist
    ports:
      - "11444:5244"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/alist/data:/opt/alist/data
      - # 剩下的自己加本地存储的映射
    environment:
      - PUID=0
      - PGID=0
      - UMASK=022
      - TZ=Asia/Shanghai
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

freshrss

  • 聚合RSS链接统一管理
yaml
services:
  freshrss:
    image: linuxserver/freshrss:latest
    container_name: freshrss
    ports:
      - "15222:80"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/FreshRSS/config:/config
    environment:
      - TZ=Asia/Shanghai
      - PUID=1000
      - PGID=1000
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

gitea

  • 代码仓库
yaml
services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    ports:
      - "11776:22"
      - "11777:3000"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/gitea/data:/data
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

home-assistant

  • 智能家居
yaml
services:
  home-assistant:
    image: ghcr.io/home-assistant/home-assistant:stable
    container_name: home-assistant
    network_mode: host
    privileged: true
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/HomeAssistant/config:/config
    environment:
      - TZ=Asia/Shanghai
    restart: unless-stopped

icloudpd

  • icloud照片备份
yaml
services:
  icloudpd:
    image: boredazfcuk/icloudpd:latest
    container_name: icloudpd
    network_mode: host
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/icloudpd/config:/config
      - /tmp/zfsv3/硬盘名/账号手机号/data/Goalonez/Photos/iCloud:/iCloud
    environment:
      - apple_id= #你的appid
      - download_path=/iCloud
      - icloud_china=true
      - auth_china=true
      - auto_delete=true
      - notification_type=Telegram #默认不需要,通知
      - telegram_token= #你的机器人token
      - telegram_chat_id= #你的tgid
      - telegram_polling=true
      - telegram_server= #反代tg api地址。当然你也可以直接HTTP_PROXY去走代理
      - telegram_http=false
      - TZ=Asia/Shanghai
    restart: unless-stopped

lucky

  • 反代
yaml
services:
  lucky:
    image: gdy666/lucky:latest
    container_name: lucky
    network_mode: host
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/lucky/luckyconf:/goodluck
    restart: unless-stopped

mihomo

yaml
services:
  mihomo:
    image: metacubex/mihomo:latest
    container_name: mihomo
    ports:
      - "7890:7890"
      - "11666:9090"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/mihomo/metacubexd:/metacubexd #默认不用,图形化界面需要单独去git拉代码映射
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/mihomo/config:/root/.config/mihomo
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

moviepilot

  • 媒体库管理
yaml
services:
  moviepilot:
    image: jxxghp/moviepilot-v2:latest
    container_name: moviepilot
    ports:
      - "11111:3000"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/tr/config/torrents:/tr
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/qb/qBittorrent/BT_backup:/qb
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/MoviePilot-v2/config:/config
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/MoviePilot-v2/core:/moviepilot/.cache/ms-playwright
      - # 剩下的自己加本地存储的映射
    environment:
      - PGID=0
      - PUID=0
      - UMASK=000
      - TZ=Asia/Shanghai
      - AUTH_SITE= #你的认证方式,现在似乎也可以不填,跑起来直接去网页里填
      - # 对应的认证密钥
      - PROXY_HOST=http://mihomo:7890
      - MOVIEPILOT_AUTO_UPDATE=release
      - PORT=3001
      - NGINX_PORT=3000
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

qbittorrent

  • 下载
yaml
services:
  qbittorrent:
    image: linuxserver/qbittorrent:latest
    container_name: qbittorrent
    network_mode: host
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/qb:/config
      - # 剩下的自己加本地存储的映射
    environment:
      - WEBUI_PORT=11333
      - PGID=0
      - PUID=0
    restart: unless-stopped

transmission

  • 保种
yaml
services:
  transmission:
    image: linuxserver/transmission:latest
    container_name: transmission
    network_mode: host
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/tr/watch:/watch
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/tr/web:/web #默认不用加,需要单独去下UI仓库的代码
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/tr/config:/config
      - # 剩下的自己加本地存储的映射
    environment:
      - PGID=0
      - PUID=0
      - TZ=Asia/Shanghai
      - PEERPORT=12345
      - USER= #账号
      - PASS= #密码
      - TRANSMISSION_WEB_HOME=/web #默认不用加,有UI才需要
    restart: unless-stopped

qinglong

  • 定时任务,配合dailycheckin签到
yaml
services:
  qinglong:
    image: whyour/qinglong:debian
    container_name: qinglong
    ports:
      - "11999:5700"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/qinglong/data:/ql/data
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

rss-to-telegram

  • 将RSS推送到Tg
yaml
services:
  rss-to-telegram:
    image: rongronggg9/rss-to-telegram:latest
    container_name: rss-to-telegram
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/rsstt/config:/app/config
    environment:
      - TOKEN= #你的机器人token
      - MANAGER= #你的tgid
      - T_PROXY=socks5://mihomo:7890
      - R_PROXY=socks5://mihomo:7890
      - MULTIUSER=0
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

rsshub

  • 万物皆可RSS
yaml
services:
  rsshub:
    image: diygod/rsshub:chromium-bundled
    container_name: rsshub
    ports:
      - "15111:1200"
    environment:
      - REDIS_URL=redis://redis:6379/
      - PROXY_URI=http://mihomo:7890
      - PUPPETEER_WS_ENDPOINT=ws://browserless:3000
      - ACCESS_KEY= #密钥
      - CACHE_TYPE=redis
    depends_on:
      - redis
      - browserless
    restart: unless-stopped
    networks:
      - defaultnet

  browserless:
    image: browserless/chrome:latest
    container_name: browserless
    ulimits:
      core:
        hard: 0
        soft: 0
    restart: unless-stopped
    networks:
      - defaultnet

  redis:
    image: redis:alpine
    container_name: redis
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/redis/data:/data
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

sun-panel

  • 导航页
  • 美化
yaml
services:
  sun-panel:
    image: hslr/sun-panel:latest
    container_name: sun-panel
    ports:
      - "11888:3002"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/sun-panel/conf:/app/conf
    restart: unless-stopped
    networks:
      - defaultnet

  sun-panel-helper:
    image: madrays/sun-panel-helper:latest
    container_name: sun-panel-helper
    ports:
      - "11887:80"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/sun-panel/sun-panel-helper/data:/app/backend/data
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/sun-panel/sun-panel-helper/backups:/app/backend/backups
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/sun-panel/conf/custom:/app/backend/custom
    environment:
      - BACKEND_PORT=3001
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

vaultwarden

  • 密码管理器
yaml
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    ports:
      - "11555:80"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/vaultwarden/data:/data
    environment:
      - SIGNUPS_ALLOWED=false
      - INVITATIONS_ALLOWED=false
      - EXPERIMENTAL_CLIENT_FEATURE_FLAGS=ssh-key-vault-item,ssh-agent
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

verysync

  • 同步,代替文档同步功能
yaml
services:
  verysync:
    image: jonnyan404/verysync:latest
    container_name: verysync
    ports:
      - "12027:22027"
      - "12037:22037"
      - "12330:22330"
      - "3000:3000"
      - "8886:8886"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/verysync:/data
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true

wewe-rss

  • 微信公众号RSS
yaml
services:
  wewe-rss:
    image: cooderl/wewe-rss-sqlite:latest
    container_name: wewe-rss
    ports:
      - "15333:4000"
    volumes:
      - /tmp/zfsv3/硬盘名/账号手机号/data/docker/wewe-rss/data:/app/data
    environment:
      - SERVER_ORIGIN_URL= #你的域名
      - MAX_REQUEST_PER_MINUTE=60
      - AUTH_CODE= #你的密钥
      - DATABASE_URL=file:../data/wewe-rss.db
      - AUTH_DATABASE_TYPECODE=sqlite
      - FEED_MODE=fulltext
      - ENABLE_CLEAN_HTML=true
    restart: unless-stopped
    networks:
      - defaultnet

networks:
  defaultnet:
    external: true