홈서버 casaOS에 서비스 운영하기 8탄. 고성능(?) 파일동기화&공유 seafile

 

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

 

이번에 casaOS에서 설치해볼 서비스는 고성능 파일공유(?) 서비스인 seafile입니다.

제가 홈서버에 입문했을때 초창기에도 그렇고 python로 구성되어서 성능이 빠르다는 소리를 많이들어서 제 기억에는 이렇게 남아있네요.

앞서 소개해드린 filebrowser가 단순용도로는 사용하기 괜찮지만 기본기능 측면에서 아쉬운점이 있었다면

seafile의 경우 상용인 pro버전도 있기때문에 커뮤니티버전도 꾸준하게 업그레이드 되고있으며 

장점으로는 전용 PC 클라이언트가 있어서 파일 동기화가 가능하며 투박한 UI지만 파일전송속도는 확실히 빠른것같습니다.

 

image.png.jpg

GPT에게 물어본 Seafile

오픈소스 프로젝트 Seafile에 대해서 알려주세요

Seafile

 

Seafile은 개인 및 기업 사용을 위한 클라우드 기반 파일 동기화 및 공유 플랫폼입니다. 오픈소스이며 자체 서버에 호스팅할 수 있습니다.

 

주요 기능:

 

  • 파일 동기화와 공유: 사용자는 파일과 폴더를 다양한 장치와 다른 사용자와 동기화하고 공유할 수 있습니다.
  • 강력한 암호화: Seafile은 클라이언트 측과 서버 측 모두에서 강력한 암호화를 사용하여 데이터를 보호합니다.
  • 버전 관리: 파일의 이전 버전은 자동으로 저장되므로 실수로 파일을 삭제하거나 변경한 경우 복원할 수 있습니다.
  • 오픈소스: Seafile은 GPLv3 라이선스로 배포됩니다. 이를 통해 사용자는 소스 코드를 검토하고 수정할 수 있습니다.
  • 오프라인 액세스: 사용자는 인터넷에 연결되어 있지 않을 때도 동기화된 파일에 액세스할 수 있습니다.
  • 협업 도구: Seafile은 파일 주석, 태그, 위키와 같은 협업 도구를 제공하여 팀 프로젝트를 더 효율적으로 관리할 수 있습니다.
  • 모바일 앱: Seafile은 iOS 및 Android용 모바일 앱을 제공하여 이동 중에도 파일에 액세스하고 관리할 수 있습니다.

 

이점:

 

  • 데이터 제어: 사용자는 데이터를 자체 서버에 저장하여 프라이버시와 보안을 유지합니다.
  • 비용 절감: Seafile은 상용 클라우드 스토리지 서비스보다 비용이 저렴합니다.
  • 맞춤형: 사용자는 자체 요구 사항에 맞게 Seafile 서버를 구성하고 확장할 수 있습니다.
  • 개방성: Seafile은 오픈소스이며 커뮤니티 지원이 풍부합니다.

 

사용 사례:

 

  • 개인용 파일 백업 및 공유
  • 팀 협업 및 프로젝트 관리
  • 교육 기관에서 파일 공유 및 버전 관리
  • 비영리 단체에서 안전하고 저렴한 파일 저장

 

https://svrforum.com/casaos/1623871

 

원활한 설정을 위해 앱스토어 및 npm 설정까지는 진행해주세요.

 

Seafile 컨테이너 생성하기

seafile도 공식 앱스토어에는 없고 BigBearCasaOS 앱스토어에 있으니 반드시 추가해주세요.

image.png.jpg

앞서 말씀드렸듯 사용자 지정설치로 가면 커스텀할수있는부분이 더 있습니다.

image.png.jpg

 

특히 환경변수에서 DB관련 설정들이 기본으로 들어가니 확인해주시고

seafile hostname을 반드시 사용하시는 ip에 맞춰서 변경해주셔야합니다. admin 계정도요!

 

seafile은 앱 db, memcached 이렇게 3개의 컨테이너로 구성됩니다.

 

image.png.jpg

 

image.png.jpg

 

 

 

적당히 설정해줬으면 설치 시작

image.png.jpg

 

설치가 완료되면 접속해줍시다

 

image.png.jpg

 

기본포트는 8080으로되어있네요 

아까 설정에서 보셨던 기본 admin 계정으로 로그인하시면 됩니다.

 

admin@example.com / asecret

image.png.jpg

 

image.png.jpg

 

image.png.jpg

 

기본 8080 포트로 파일업로드가 되지않을수도있는데

관리자 설정으로가서 Service URL쪽에 포트까지 넣어주시면됩니다.

image.png.jpg

 변경 후

image.png.jpg

 

설정 후 업로드를 하면 잘 갑니다.

속도도 매우빠르네요. wifi -> n100인데말이죠

 

image.png.jpg

 

물론 이건 내부도메인일때 설정이라,, 리버스 프록시하면 또 바꿔줘야겠죠?

손이 참 많이가네요

 

외부접속 설정하기

이제 NPM을 통해 외부에서 접속이 가능하도록 설정해봅시다.

도메인설정.

 

image.png.jpg

 

npm proxy 추가

image.png.jpg

 

SSL도 추가해주세요.

image.png.jpg

 

image.png.jpg

 

이대로로그인하면 아래와같은 에러가보이니 seafile의 환경변수와 서비스 URL을 모두 수정해주시면됩니다.

image.png.jpg

 

 

image.png.jpg

 

다시 설정으로가서 service url쪽을 바꿔주시고 파일도 수정을해야합니다.

 

image.png.jpg

 

파일수정은 casaOS의 files로 가서 seafile의 앱 경로에서 conf -> seahub_settings.py  파일을 열어주세요.

파일 수정도 간편한게 casaOS의 장점입니다 ㅎㅎ

image.png.jpg

 

그리고 csrf 신뢰 관련 설정을 넣어주세요.

 

CSRF_TRUSTED_ORIGINS = ['https://dalso-seafile.duckdns.org']

  

image.png.jpg

 

이렇게 하시면 로그인이나 파일업로드가 잘되실겁니다.

 

도메인 + 외부망인데도 거의 대역폭만큼 속도를 뽑아주네요.

 

image.png.jpg

 

 

트러블슈팅하는데 시간이 좀 걸려서,, 글도 나중에 따로써야 안헷갈리겠습니다 하하...