Profile picture

[Docker] 오픈소스 웹 기반 파일 공유 서비스 - Filebrowser

JaehyoJJAng2023년 05월 03일

File Browser


파일 공유를 위한 오픈소스 프로젝트로 깃허브에서 많은 스타를 받을 정도로 인기있는 프로젝트이다.

파일 브라우저는 서버에 설치하고 경로를 지정한 다음 웹 인터페이스를 통해 파일에 액세스할 수 있는 클라우드 종류의 소프트웨어이다.

단순히 리눅스 파일시스템을 웹으로 띄워주는 것 뿐만 아니라 계정별 로그인을 통한 권한관리나 간단한 문서편집, 파일 공유들을 지원한다.
image
image


사전 준비

기본적인 Setting 값과 비어있는 db 파일과 디렉토리 들을 생성해주도록 하자.

$ mkdir -p ./filebrowser/{config,data}
$ touch ./filebrowser/config/{database.db,filebrowser.json}

filebrowser.json을 작성해주도록 하자.

{
 "port": 80,
 "address": "",
 "database": "/database.db",
 "scope": "/srv",
 "root": "/srv",
 "allowCommands": true,
 "allowEdit": true,
 "allowNew": true,
 "commands": []
}

컨테이너 생성하기

아래와 같이 docker-compose.yaml 파일을 작성해보도록 하자. ./filebrowser/data는 파일 브라우저를 통해 공유할 루트 폴더이다.

version: "3"

services: 
  filebrowser:
    image: filebrowser/filebrowser
    restart: always
    volumes:
      - "./filebrowser/config/filebrowser.json:/.filebrowser.json:ro"
      - "./filebrowser/config/database.db:/database.db"
      - "./filebrowser/data:/srv"
    ports:
      - "8080:80"
    container_name: filebrowser

docker-compose를 실행하자

$ docker-compose up -d

서비스 동작 확인

컨테이너가 정상적으로 생성 되었다면 http://<IP주소>:8080으로 접속해보자
기본 계정명은 admin/admin 이다.
image


로그인이 되었다면 설정 - 언어로 가서 한국어로 변경 후 PW도 변경하도록 하자.
image


파일도 잘 열리고, 공유도 잘 된다
image


Metube와 연동하기

version: "3"

services:
  filebrowser:
    image: filebrowser/filebrowser
    restart: always
    volumes:
      - "./filebrowser/config/filebrowser.json:/.filebrowser.json:ro"
      - "./filebrowser/config/database.db:/database.db"
      - "./filebrowser/data:/srv"
    ports:
      - "8080:80"
    container_name: filebrowser

  metube:
    image: alexta69/metube
    restart: always
    volumes:
      - "./metube/downloads:/downloads"
    ports:
      - "8081:8081"
    container_name: metube

다운로드를 받으면 파일 브라우저를 통해 자동으로 웹으로 다운로드 받을 수 있다!


Loading script...