docker > 간이 NAS 만들기

note

개인적으로 사용하는 간이 NAS 입니다.

파일 관리를 위해 webdav api 와 웹 client 를 구현하였고 추가로 미디어 서버용 jellyfin 과 다운로드용 qbitborrent 를 함께 구성하였습니다.

download

nas.tar.gz

webdav/*

webdav 스팩에 맞게 구현 된 apis 모듈

webdavcli/*

별도의 client 가 없더라도 웹 환경에서 사용하기 위한 file borwser 모듈

보안을 위한 로그인, 폴더 생성/삭제, 파일 업로드/삭제/다운로드, 파일 및 폴더 이름 변경, 파일 및 폴더 drag&drop 이동 등 기본적으로 파일 관리에 필요한 기능을 제공 함

webdavcli_01
webdavcli_02

docker-compose.yml

webdav apiswebdav filebrowser client 는 하나의 user, password 를 사용하도록 구현되어 있으므로 WEBDAV_USER, WEBDAV_PASS 환경 변수는 동일하게 맞춰서 설정하여야 함

추가로 미디어 서버를 위한 jellyfin 과 다운로드를 위한 qbittorrent 를 함께 포함하였음

services:
  webdav:
    build: webdav/.
    image: nas:webdav
    container_name: nas_webdav
    restart: always
    ports:
      - 10001:8888
    environment:
      - PUID=1000
      - PGID=1000
      - WEBDAV_USER=admin
      - WEBDAV_PASS=password
    volumes:
      - ./config/webdav:/app/config
      - /home/shared:/app/data

  webdavcli:
    build: webdavcli/.
    image: nas:webdavcli
    container_name: nas_webdavcli
    restart: always
    ports:
      - 10002:8888
    environment:
      - PUID=1000
      - PGID=1000
      - WEBDAV_USER=admin
      - WEBDAV_PASS=password
      - WEBDAV_BASE_URL=http://webdav:8888
    depends_on:
      - webdav

  jellyfin:
    image: jellyfin/jellyfin
    container_name: nas_jellyfin
    restart: always
    ports:
      - 1900:1900/udp
      - 7359:7359
      - 7359:7359/udp
      - 10003:8096
    volumes:
      - ./config/jellyfin:/config
      - /home/shared/media:/media
    depends_on:
      - webdav

  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    container_name: nas_qbittorrent
    restart: always
    ports:
      - 10004:8080
      - 6881:6881
      - 6881:6881/udp
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Seoul
      - WEBUI_PORT=8080
    volumes:
      - ./config/qbittorrent:/config
      - /home/shared/downloads:/downloads
    depends_on:
      - webdav

run.sh

#!/bin/bash

docker compose down

docker image rm nas:webdav

docker image rm nas:webdavcli

docker compose up -d

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다