← 返回 TimeAmber
logo NodeSeekbeta

个人自用docker分享,一键为nas安装家庭影视库,书库,音乐库 2

把自己用过的docker全都花了4个小时整理了出来,采用docker-compose方式,可以一键搭建很多服务,环境变量,个人群晖上测试正常。整理不易,可以看看docker-compose文件有多长,给个鸡腿鼓励楼主继续整理好东西。

安装的docker如下

下载器:qbittorrent,transmission

pt:iyuu

反代:lucky

docker管理:dockge,portainer

网盘:alist

个人笔记库:joplin

个人记事本:memos

音乐库:navidrome,LrcApi

书库:talekbook

媒体库管理:nastool,moviepilot

媒体库:plex,emby

订阅管理:sub-store

其他:qinglong,qd

iptv:肥羊的iptv,iptv-sources

导航页:sun-punel

密码管理器:vaultwarden

安装教程

把下面填完整,保存为.env

#以下为你自己的配置文件目录,示例为/volume1/docker/qb,最后不要加/
qb= 
tr= 
iyuu= 
lucky= 
dockge= 
portainer=
alist= 
joplin=
memos=
navidrome=
talebook=
sub-store=
nastool=
moviepilot=
plex=
emby=
qinglong=
qd=
vaultwarden=

USER= #qb和tr的账户
PASS= #qb和tr的密码
Download_path= # qb和tr下载路径
media_real_path= # 你的nastool和moviepilot的媒体库真实路径
media_docker_path= # 你的nastool和moviepilot的媒体库映射路径
musicpath=# 你的音乐库路径

复制下面的文件,保存为docker-compose.yml

version: '3.8'

services:
  qbittorrent:
    image: nevinee/qbittorrent
    container_name: qbittorrent
    environment:
        - PUID=0 
        - PGID=0  
        - TZ: Asia/Shanghai
        - WEBUI_PORT=8989
        - QB_USERNAME==${USER}
        - QB_PASSWORD=${PASS}    
    volumes:
      - ${qb}:/data
      - ${Download_real_path}:/downloads
    restart: unless-stopped
    network_mode: "host" 
  transmission:
    image: linuxserver/transmission
    container_name: transmission
    restart: unless-stopped`
    environment:
      - PUID=0
      - PGID=0
      - TZ=Asia/Shanghai
      - TRANSMISSION_WEB_HOME=/config/transmission-web-control # 设置 Transmission Web,须在目录放第三方ui
      - USER=${USER}
      - PASS=${PASS}
    volumes:
      - ${tr}/config:/config
      - ${tr}/watch:/watch
      - ${Download_path}:/downloads
    network_mode: host
  iyuuplus_dev:
    stdin_open: true
    tty: true
    volumes:
      - ${iyuu}/iyuu:/iyuu
      - ${iyuu}/iyuudev/data:/data
      - ${qb}/data/BT_backup:/qb
      - ${tr}/config/torrents:/tr
    network_mode: host
    container_name: IYUUPlus
    restart: unless-stopped
    image: iyuucn/iyuuplus-dev:latest


  lucky:
    image: gdy666/lucky
    container_name: lucky
    network_mode: host
    volumes:
      - ${lucky}:/goodluck
    restart: unless-stopped

  dockge:
    image: louislam/dockge:1
    restart: unless-stopped
    ports:
      - 5001:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${dockge}:/app/data       
      # If you want to use private registries, you need to share the auth file with Dockge:
      # - /root/.docker/:/root/.docker
      - /opt/stacks:/opt/stacks
    environment:
      - DOCKGE_STACKS_DIR=/opt/stacks

  portainer:
    image: portainer/portainer-ce
    container_name: portainer
    restart: unless-stopped
    ports:
     - "9000:8000"  
     - "9443:9443"
    networks:
     - my-network 
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock 
     - ${portainer}:/data  

# IPTV相关
  av3a-assistant:
    image: youshandefeiyang/av3a-assistant:amd64
    container_name: av3a-assistant
    privileged: true
    restart: unless-stopped
    ports:
      - 35442:35442
    networks:
      - my-network
    restart: unless-stopped
  allinone:
    image: youshandefeiyang/allinone
    container_name: allinone
    privileged: true
    restart: unless-stopped
    ports:
      - 35455:35455
    networks:
      - my-network
    restart: unless-stopped
  iptv-sources:
    container_name: iptv-sources
    ports:
      - 3005:8080
    image: herberthe0229/iptv-sources:latest
    networks:
      - my-network
    restart: unless-stopped

  alist:
    image: xhofe/alist:latest
    container_name: alist
    volumes:
      - ${alist}:/opt/alist/data
    ports:
      - 5244:5244
    environment:
      - PUID=1026
      - PGID=100
      - UMASK=022
    restart: unless-stopped

  joplindb:
    image: postgres:16
    volumes:
      - ${joplin}:/var/lib/postgresql/data
    restart: unless-stopped
    environment:
      - POSTGRES_PASSWORD=joplin
      - POSTGRES_USER=joplin
      - POSTGRES_DB=joplin
  joplin:
    image: joplin/server:latest
    depends_on:
      - joplindb
    ports:
      - 22300:22300
    restart: unless-stopped
    environment:
      - APP_PORT=22300
      - APP_BASE_URL=${joplinwebsite}
      - DB_CLIENT=pg
      - POSTGRES_PASSWORD=joplin
      - POSTGRES_DATABASE=joplin
      - POSTGRES_USER=joplin
      - POSTGRES_PORT=5432
      - POSTGRES_HOST=db
    networks:
      - my-network

  sun-panel:
    container_name: sun-panel
    image: hslr/sun-panel
    restart: unless-stopped
    ports:
        - 13002:3002
    volumes:
        - ${sun-panel}/conf:/app/conf
        - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped        
    networks:
        - my-network
        
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    user: 1026:100 
    network_mode: host
    volumes:
      - ${navidrome}:/data 
      - ${musicpath}:/music:ro 
    environment:
      - ND_DEFAULTLANGUAGE=zh-Hans
      - ND_ENABLEGRAVATAR=true
      - ND_ENABLETRANSCODINGCONFIG=true
    restart: unless-stopped
  lyricapi:
    image: hisatri/lyricapi:latest
    container_name: lyricapi
    ports:
      - 28883:28883
    environment:
      - TZ=Asia/Shanghai
      # - API_AUTH=abc #你可以设置你的鉴权api
    volumes:
      - ${musicpath}:/music:ro 
    restart: unless-stopped       
    networks:
        - my-network

  memos:
    image: neosmemo/memos:stable
    container_name: memos
    volumes:
      - ${memos}:/var/opt/memos
    ports:
      - 5230:5230
    restart: unless-stopped       
    networks:
          - my-network

  douban-api-rs:
    container_name: douban-api-rs
    restart: unless-stopped
    ports:
      - 24000:80
    image: ghcr.nju.edu.cn/cxfksword/douban-api-rs:latest
    networks:
      - talebook_network
  talebook:
    restart: unless-stopped
    container_name: talebook
    image: talebook/talebook
    volumes:
      - ${talebook}:/data
    ports:
      - 28080:80
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - SSR=OFF
    networks:
      - my-network 

  sub-store:
    stdin_open: true
    tty: true
    restart: unless-stopped
    environment:
      - SUB_STORE_CRON=0 0 * * *
      - SUB_STORE_FRONTEND_BACKEND_PATH=/2cGwAXRGfdAx2yxza1dm
    ports:
      - 3019:3001
    volumes:
      - ${sub-store}:/opt/app/data
    container_name: sub-store
    image: xream/sub-store
    networks:
      - my-network 
# 媒体库管理工具,选择其一即可
  nas-tools:
    image: hsuyelin/nas-tools:latest
    network_mode: host
    volumes:
      - ${nastool}:/config # 冒号左边请修改为你想保存配置的路径
      - ${media_real_path}:${media_docker_path} # 媒体目录,多个目录需要分别映射进来,需要满足配置文件说明中的要求
    environment:
      - PUID=1026 # 想切换为哪个用户来运行程序,该用户的uid
      - PGID=100 # 想切换为哪个用户来运行程序,该用户的gid
      - UMASK=000 # 掩码权限,默认000,可以考虑设置为022
      - NASTOOL_AUTO_UPDATE=true # 如需在启动容器时自动升级程程序请设置为true
      - NASTOOL_CN_UPDATE=false # 如果开启了容器启动自动升级程序,并且网络不太友好时,可以设置为true,会使用国内源进行软件更新
    #- REPO_URL=https://ghproxy.com/https://github.com/NAStool/nas-tools.git  # 当你访问github网络很差时,可以考虑解释本行注释
    restart: unless-stopped
    hostname: nas-tools
    container_name: nas-tools
  # moviepilot:
    # stdin_open: true
    # tty: true
    # container_name: moviepilot
    # hostname: moviepilot
    # network_mode: host
    # container_name: moviepilot
    # volumes:
      # - ${media_real_path}:/downloads
      # - ${moviepilot}/config:/config
      # - ${moviepilot}/core:/moviepilot/.cache/ms-playwright
      # - /var/run/docker.sock:/var/run/docker.sock:ro
    # environment:
      # - NGINX_PORT=3004
      # - PORT=3001
      # - PUID=1026
      # - PGID=100
      # - UMASK=000
      # - TZ=Asia/Shanghai
      # - AUTH_SITE=
      # - AUDIENCES_UID= #自行填入认证,具体看官方wiki:https://wiki.movie-pilot.org/install
      # - AUDIENCES_PASSKEY=
      # - SUPERUSER=admin
      # - API_TOKEN=moviepilot
      # - PROXY_HOST=${Proxy}
    # restart: always
    # image: jxxghp/moviepilot:latest

  plex:
    image: plexinc/pms-docker
    container_name: plex
    environment:
      - TZ=Asia/Shanghai
      - PLEX_CLAIM= # 这里获取https://www.plex.tv/claim/
    volumes:
      - ${plex}/config:/config
      - ${plex}/transcode:/transcode
      - ${musicpath}:/music:ro
      - ${media_real_path}:/data
    restart: unless-stopped
    devices:
      - /dev/dri:/dev/dri
    network_mode: host

  emby:
    image: amilys/embyserver
    container_name: emby
    network_mode: host 
    environment:
      - UID=0
      - GID=0
      - GIDLIST=100 
    volumes:
      - ${emby}:/config
      - ${media_real_path}:/data
    devices:
      - /dev/dri:/dev/dri
    restart: unless-stopped


# 青龙面板
  web:
    image: whyour/qinglong
    volumes:
      - ${qinglong}:/ql/data
    ports:
      - "5700:5700"
    environment:
      # 部署路径非必须,以斜杠开头和结尾,比如 /test/
      QlBaseUrl: '/'
    restart: unless-stopped
    networks:
        - my-network
# 签到
  qd:
    image: qdtoday/qd:latest

    container_name: qd
    depends_on:
      - redis
    ports:
      - "8923:80"
    volumes:
      - ${qd}:/usr/src/app/config
    environment:
      - COOKIE_SECRET=binux
      - PBKDF2_ITERATIONS=400
      - AES_KEY=binux
      - REDISCLOUD_URL=redis://redis:6379
    restart: unless-stopped
    networks:
      - my-network
  redis:
    image: redis:alpine
    container_name: redis
    command: ["--loglevel warning"]
    volumes:
      - ./redis/data:/data:rw
    restart: unless-stopped
    networks:
          - my-network     

  vaultwarden:
    restart: unless-stopped
    container_name: vaultwarden
    environment:
      - TZ=Asia/Shanghai
      - LOG_FILE=/data/log/vaultwarden.log
    volumes:
      - ${vaultwarden}:/data/
    ports:
      - 8057:80
    image: vaultwarden/server
    restart: unless-stopped
    networks:
      - my-network
networks:
  my-network:
    driver: bridge

把这两个全部放到你的docker文件夹(看个人喜欢)

# 启动
# cd 的是你自己的docker文件夹
cd /volume1/docker
docker-compose up -d
# 暂停
docker-compose stop
# 删除
docker-compose down
# 拉取镜像
docker-compose pull
# 更新
docker-compose pull && docker-compose up -d --build
# 拉取某个服务的最新镜像
docker-compose pull [service_name]
# 重启特定服务
docker-compose restart [service_name]
# 删除特定服务
docker-compose rm -f [service_name]
# 停止并删除特定服务
docker-compose stop [service_name]
# 重建并启动特定服务
docker-compose up -d [service_name]

觉得我的docker太多可以自行删改注释compose文件

转载请注明作者和出处

12
12
内容
预览
对照
AC娘
洋葱头
小黄鸡