• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
업데이트

Docker로 오픈소스 NAS 툴 Seafile 구축하기.

달소 달소 1401

1

12

 

안녕하세요. 달소입니다.

 

이번글은 앞서 NAS에 대한 소개를 간단하게 진행할때 말씀드린 Seafile에 대한 글입니다!

 

Seafile은 파이썬을 기반으로하는 NAS SW로써 소개는 나무위키에 잘나와있어서 대체합니다 ㅎㅎ

여기서는 Docker를 통해 Seafile을 직접 구축해보도록 하겠습니다.

도커로 구축하니만큼 홈서버 뿐만아니라 클라우드,라즈베리파이등 어디서든 구축이 가능합니다 ㅎㅎ

 


 

Seafile Ltd. 사에서 만드는 설치형 클라우드 스토리지이다. 커뮤니티 버전(개인용), 전문가용(엔터프라이즈 서비스용)으로 나뉘어져 있으며 커뮤니티버전은 공개되어 있어 무료로 이용할 수 있다.

위의 두 서비스와 다르게 PHP + SQL 조합이 아닌 C binary + Python 조합으로 움직인다.Pydio가 더 python으로 움직일 거 같지만 아니다 코어부분이 C 바이너리다보니 OwnCloud보다 가볍다. 동일한 하드웨어에 설치해보면 Seafile쪽이 속도가 더 잘 나온다. 덕분에 라즈베리파이 같이 컴퓨팅능력이 작은 녀석들로 클라우드 시스템을 만들 수 있다. 코어를 제외한 대부분의 UI가 Python으로 만들어져 있다. 코드가 오픈되어 있으므로 이쪽에 관심이 있다면 코드를 보면서 공부하는 것도 좋다.

인터페이스는 화려하지 않고 심플한 편이어서 예쁜 것을 원한다면 pydio나 OwnCloud가 낫다.
클라이언트 - 서버 통신간 암호화를 지원하며[12], 관리자가 유저의 파일을 볼 수 없게끔 만들어놔,[13] 보안을 중요시하는 사람이면 관심을 가질만 하다.
클라이언트 - 서버통신이 기본이지만, WebDAP을 제공하기 때문에 웹브라우저로 접근이 가능하다.
버전관리가 용이하다는 장점이 있다. 버전별로 폴더를 구성하여 설치할 수 있어 문제가 생겼을 경우 파일을 건드리지 않고 시스템만 롤백하기 쉽다.
전문가판 한정으로 웹에서 문서편집이 가능하다.[14]

홈페이지에서 언급하는 Seafile의 특징은 다음과 같다.
커뮤니티버전과 전문가판 공통 : 다중 플랫폼 파일 동기화, 공개 링크 공유 (업로드 및 다운로드), 클라이언트 측 암호화, 폴더 단위 액세스 제어, 버전 관리, AD / LDAP 인증
전문가판 추가기능 : 파일 잠금[15], 전체 텍스트 검색[16], MS 오피스 문서 미리보기 및 오피스 웹 앱 통합, 이중 인증, 활동 로깅, 분산 스토리지, 바이러스 백신 통합

 

image.png.jpg

 

사전준비 및 환경

구축환경은 Ubuntu 20.04 LTS + Docker + docker-compose 환경입니다.

 

nginx 설치하기

기본적으로 Docker를 이용하더라도 인증서 및 기타 설정들의 경우 nginx를 이용하는게 편하기때문에 nginx를 먼저 이용하겠습니다.

 

apt install nginx로 간단하게 설치가 가능하며 seafile용 셋팅파일 생성 후 적용하겠습니다.

 

vi /etc/nginx/sites-available/seafile.conf

서버네임과 client_max_body_size만 수정해주시면 됩니다. 저는 64기가로..ㅋㅋ(업로드용량)

 

server {
  server_name 192.168.1.60; // 도메인이름 or ip

  client_max_body_size 64G;
  location / {
    proxy_pass http://localhost:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

 

이제 심볼릭 링크로 nginx 설치파일을 활성화 시켜주고 reload 시켜주세요.

 

ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/

 

image.png.jpg

이제 사전준비는 완료되었으니 도커로 Seafile 컨테이너를 구축하겠습니다.

Docker로 구축하기

먼저 seafile 디렉터리를 만들어주고 docker-compose.yml 을 생성해주겠습니다.

image.png.jpg

 

아래 설정에서 필요한 부분만 변경해주시면됩니다.

 

version: '2.0'
services:
  db:
    image: mariadb
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - ./data/mariadb:/var/lib/mysql
    networks:
      - seafile-net

  memcached:
    image: memcached
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net
          
  seafile:
    image: seafileltd/seafile-mc
    container_name: seafile
    ports:
      - "8080:80"
    volumes:
      - ./data/app:/shared
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=password
      - TIME_ZONE=Asia/Seoul
      - SEAFILE_ADMIN_EMAIL=dalso@svrforum.com
      - SEAFILE_ADMIN_PASSWORD=password
      - SEAFILE_SERVER_LETSENCRYPT=false
      - SEAFILE_SERVER_HOSTNAME=192.168.1.60 //서버 호스트네임(도메인)
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:

 

이제 docker-compose up -d 명령어로 컨테이너를 생성해주면 됩니다.

 

image.png.jpg

 

nginx에 proxy pass를 적용해줬으니 ip로만 접근해주시면됩니다.

 

image.png.jpg

파일도 잘 올라갑니다.

여기서 네트워크 오류가 나는 경우는 서버의 hostname 이 잘못들어가는 경우고

파일이 안올라가면 용량제한이 걸렸을수도있으니 가벼운 파일먼저 올려보세요.

image.png.jpg

 

공유는 아래처럼 링크공유로도 손쉽게 가능합니다.

image.png.jpg

 

신고공유스크랩
12
profile image 1등
토미곰 2021.11.18. 13:58

사용해 보고 싶은 툴이네요.

혹시 도커 통하지 않고 직접 설치도 가능한가요??

profile image
달소 글쓴이 2021.11.18. 14:14
토미곰

네 직접설치도 가능한걸로 알고있는데 아마.. 조금 귀찮은작업들이 있기는할거같습니다 ㅠ

profile image
달소 글쓴이 2021.11.19. 17:19
토미곰

ㅎㅎ 요즘은 추세가 도커인지라.. 도커로 운영하시는것도 추천드립니닷

profile image 2등
니즛 2022.03.12. 16:47

혹시 헤놀로지에서도 그대로 따라해도 될까요? seafile을 헤놀에 설치해보고는 싶은데 어떻게 하는지 잘 모르겠네요 ㅠㅠ

profile image
달소 글쓴이 2022.03.13. 17:34
니즛

헤놀로지에서 굳이 seafile을 설치할 필요가없을거같긴한데..

docker-compose로 구성한거라서 설치는 동일하게 하시면 될거같아요~

3등
smartstorm 2022.03.28. 23:15

client_max_body_size 64G; <=== 이게 한번 업로드할때 용량 제한을 거는 맥시멈 사이즈인가요?

smartstorm 2022.03.29. 08:19
smartstorm

앞단에 NPM서버가 있다면 IP 설정을 어떻게 해야 할까요? 내부에서 업다운로드는 잘 되는데 외부에서는 업다운이 실패하네요.

nginx 설정 = 외부 도메인 file.xxxxxx.com

docker 환경 설정 도메인 = 외부 도메인 file.xxxxxx.com

서버 호스트 네임 설정 : file.xxxxxx.com

NPM 설정 : 192.168.1.106 80 //또는 file.xxxxxx.com 80

profile image
달소 글쓴이 2022.03.29. 12:18
smartstorm

docker가 웹서버일까요?

NPM에서도 hosts 파일에 위 file.xxxxxx.com 도 넣어주면 아마 file.xxxxxx.com 80으로 포워딩은 잘될듯합니다

smartstorm 2022.03.29. 13:16
달소

하.. 드디어 해결했습니다.ㅠㅠ 외부에서 다운도 되는데 업로드가 안됐는데

설정의 FILE_SERVER_ROOT 경로가 http://file.xxxxx.com/seafhttp 를

https로 변경해주니까 잘 됩니다.ㅠ

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

첨부 0

번호 분류 제목 글쓴이 날짜 조회 추천
공지 정보 DSM 7.2v) Mshell로 헤놀로지 부트로더 빌드하기. 59 달소 23.05.29.01:57 23021 +23
공지 정보 DSM 7.2v) ARPL-i18n(rr)으로 헤놀로지 부트로더 빌드하기. 71 달소 23.05.23.23:58 24698 +23
업데이트 RR-24.3.7 업데이트 9 EXP 21시간 전12:25 308 +2
후기 27000원 헤놀 머신 조립 (장난감) 9 헤놀로지맨 1일 전19:51 686 +4
업데이트 릴리즈 봇이 v1.0.2.4 를 너무 여러번 올려 버려 민망하네요. ㅎㅎ 6 화정큐삼 2일 전00:52 340 +4
4966 질문
image
양수 10시간 전00:08 69 0
4965 잡담
image
훔친수건 8시간 전01:47 174 0
4964 질문
image
레이져 13시간 전21:16 76 0
4963 질문
image
스맛홈매니아 13시간 전20:21 63 0
4962 업데이트
image
EXP 21시간 전12:25 308 +2
4961 질문
image
유니파트 1일 전22:15 222 0
4960 후기
image
헤놀로지맨 1일 전19:51 686 +4
4959 질문
image
유니파트 1일 전18:24 67 0
4958 질문
normal
Skywa1ker 1일 전17:46 158 0
4957 질문
normal
블랙앤해적 1일 전17:37 41 0
4956 질문
normal
요트 1일 전17:13 286 0
4955 질문
normal
zip 1일 전13:01 126 0
4954 질문
normal
모랄로 2일 전09:30 121 0
4953 업데이트
normal
화정큐삼 2일 전00:52 340 +4
4952 후기
image
kmw_ 2일 전16:06 592 +2
4951 질문
image
메가펀치 2일 전15:42 84 0
4950 질문
normal
모랄로 2일 전13:01 115 0
4949 질문
image
아나구 2일 전12:02 175 0
4948 질문
image
짱구바붕 3일 전23:44 215 0
4947 잡담
image
유니파트 3일 전21:28 351 +1