웹사이트 검색

이것이 제가 기다려온 셀프 호스팅 드롭박스 대안입니다


드롭박스는 수년간 최상급 클라우드 저장 서비스였습니다. 속도가 빠르고, 사용 가능한 최대 대역폭을 사용하며, 동영상을 먼저 다운로드하지 않고도 스트리밍할 수 있게 해주고, 전반적으로 신뢰할 수 있는 솔루션입니다. 그러나 시간이 지나면서 비용이 비싸다고 느껴지기 시작했고, 무료 2GB 제한으로 인해 무료 서비스는 거의 존재하지 않았습니다. 그러다가 내 파일이 다른 사람의 서버에 있다는 것을 천천히 깨닫게 되었습니다. 그래서 나는 자체 호스팅을 하기로 결정했습니다.

처음에는 Nextcloud를 Google Drive와 결합한 하이브리드 클라우드 세팅으로 사용해 보았고, 작동은 했지만 항상 동기화 도구인 척 하는 무거운 그룹웨어 스위트처럼 느껴졌습니다. 더 가벼운 솔루션을 찾다가 Seafile을 시도해 보았는데, 이는 많은 자체 호스팅 솔루션이 부족했던 견고한 동기화를 갖춘 Dropbox의 훌륭한 대안으로 판명되었습니다.

Seafile은 자원을 적게 사용합니다

전체 그룹웨어 제품군 대신 집중된 도구

Seafile을 설정한 후 제가 처음으로 눈치챈 것은 구형 노트북에 요구하는 것이 얼마나 적은지였습니다. 특히 사실상 스위스 군용 칼과 같은 Nextcloud와 비교했을 때 그렇습니다. Nextcloud는 캘린더, 연락처, 채팅, 오피스 스위트 및 방대한 앱 카탈로그를 제공하며, 모두 동일한 PHP 스택에서 실행됩니다. 확실히 다재다능하지만, 특히 보통 수준의 하드웨어에서 서버를 느리고 자원 소모가 많게 느껴지게 만듭니다.

반면 Seafile은 더 가벼운 구성입니다. 파일 동기화와 공유에 집중하며, 나머지 모든 것은 다른 도구에 맡깁니다. 위에 덧붙여진 앱 스토어나 캘린더나 채팅을 위한 추가 백그라운드 작업은 없고, 웹 UI는 앱 아이콘의 벽 대신 라이브러리와 파일을 보여줍니다.

실제로는 같은 기기에서 유휴 RAM과 CPU 사용량이 낮아지고, 업데이트할 움직이는 부품이 적어지며, 웹 인터페이스가 눈에 띄게 빠르게 느껴집니다. 만약 Nextcloud 탭을 열고 파일을 보여주기 전에 몇 초간 기다려본 적이 있다면, Seafile은 전혀 다른 종류의 소프트웨어처럼 느껴질 것입니다.

블록 수준 동기화는 그냥 작동합니다

파일에서 변경된 부분만 전송됩니다

동기화 엔진은 Seafile이 앞서 나가는 부분입니다. 대부분의 자체 호스팅 도구는 파일 안에서 변경 사항이 발생하면 전체 파일을 전송합니다. Seafile은 블록 수준 동기화를 사용하며, 이는 각 파일을 작은 조각으로 나누고 실제로 변경된 조각만 전송합니다.

이는 대용량 파일을 다룰 때 가장 분명하게 나타납니다. 예를 들어, 비디오 프로젝트를 편집하거나, 가상 머신 이미지 조정, 또는 큰 아카이브 내에서 변경 사항을 저장할 때 전체 파일을 다시 업로드할 필요가 없습니다. Seafile은 파일을 해싱하고, 어떤 블록이 다른지 파악한 후, 그 블록만 전송합니다.

데스크톱 클라이언트는 일반적인 양방향 동기화 폴더처럼 동작하며, Dropbox가 사용하는 모델과 동일합니다. 폴더를 선택하고 동기화 라이브러리로 표시하면 그 이후로 모든 변경 사항이 감지되어 자동으로 전송됩니다. 또한 드라이브 클라이언트도 있어 라이브러리를 가상 드라이브로 마운트하며 파일을 열 때만 다운로드합니다. 이는 Dropbox Smart Sync나 OneDrive의 Files On-Demand와 유사합니다.

라이브러리가 폴더보다 낫다

각 프로젝트는 자체적으로 암호화되고 버전이 관리되는 단위입니다






라이브러리는 대부분의 사람들이 사용해보기 전까지는 가치를 제대로 느끼지 못하는 기능입니다. Dropbox에서는 모든 것이 하나의 거대한 폴더 트리 안에 존재하며, 권한 관리가 금방 복잡해집니다. Seafile에서는 모든 최상위 컨테이너가 라이브러리이며, 각 라이브러리는 고유한 동기화 규칙, 공유 설정, 버전 기록, 선택적 암호화를 가집니다.

이것은 큰 감각 상실 요인처럼 들리지 않을 수 있지만, 파일을 조직하는 방식에 영향을 미칩니다. 클라이언트 작업용으로 별도의 라이브러리를 유지하고, 개인 문서를 위한 또 다른 라이브러리, 그리고 미디어 자산을 위한 또 다른 라이브러리를 유지할 수 있습니다. 각각은 자체 접근 제어, 자체 휴지통, 그리고 다른 것에 영향을 주지 않고 되돌릴 수 있는 자체 버전 기록을 가지고 있습니다.

Seafile에서는 암호화도 라이브러리별 결정입니다. 민감한 문서의 경우 클라이언트 측 암호화를 켜고 서버가 절대 볼 수 없는 암호를 설정할 수 있습니다. 서버 측 검색이 중요한 미디어 라이브러리의 경우 암호화를 끄는 것이 더 의미가 있습니다. 요점은 폴더 수준 플래그로 씨름하지 않고 라이브러리별로 한 번만 결정하면 된다는 것입니다.

도서관은 또한 위키와 공유 작업 공간을 지원합니다. Seafile에서 위키를 만드는 것은 단지 다른 뷰를 가진 또 다른 도서관을 만드는 것이며, 이는 정신적 모델을 단순하게 유지합니다.

모든 것이 순조로운 것은 아니다 — 설치 세금

당신은 한 시간의 설정을 위해 구독을 거래하고 있습니다

이곳이 바로 Dropbox가 돈을 버는 곳입니다. Dropbox를 사용하면 앱을 설치하고, 로그인하면 끝입니다. 그러나 Seafile을 사용하면 당신이 관리자이자, 네트워크 엔지니어이며, 지원 팀 전체를 한몸에 맡게 됩니다. 좋은 소식은 Seafile의 공식 Docker 설정이 커피 한 잔 마시는 시간 안에 끝낼 수 있을 만큼 짧다는 점입니다.

Windows에서 이를 실행하는 가장 깔끔한 방법은 Docker에서 Community Edition을 사용하는 것이며, 모든 데이터를 별도 드라이브에 보관하여 시스템 파티션과 충돌하지 않도록 하는 것입니다.

Windows 10 또는 11에 Docker Desktop을 설치하는 것부터 시작하세요. 관리자 권한으로 PowerShell을 열고 wsl --install --no-distribution를 실행한 다음 winget install -e --id Docker.DockerDesktop를 실행하세요. 재부팅 후 Docker Desktop을 실행하고 시스템 트레이의 고래 아이콘에 "Docker Desktop이 실행 중입니다."라는 메시지가 표시될 때까지 기다리세요.

다음으로, ipconfig를 사용하여 PC의 LAN IP를 찾고 메모해 두세요. 이 주소는 구성 파일과 클라이언트 모두에서 사용할 주소입니다.

이제 설치를 위해 폴더를 하나 만드세요. 예를 들어 E:\seafile. 그 안에 Seafile 11 Docker 매뉴얼에서 제공하는 Seafile 공식 샘플 docker-compose.yml 파일을 저장하세요. 텍스트 편집기로 열고 세 가지를 조정합니다: 강력한 MYSQL_ROOT_PASSWORD와 DB_ROOT_PASSWD를 설정합니다(두 값은 일치해야 함), 데이터 볼륨을 /opt 대신 E:\ 폴더로 지정합니다, 그리고 SEAFILE_SERVER_HOSTNAME을 LAN IP로 설정합니다. 그게 전부입니다. JWT 키도, 별도의 .env 파일도 필요하지 않습니다.

Compose 파일이 준비되면 PowerShell을 열고 E:\seafile로 이동한 다음 다음을 실행합니다:

docker compose up -d

이것이 Seafile을 설치하는 명령입니다. Docker는 docker-compose.yml을 읽고, Docker Hub에서 MariaDB와 Seafile 이미지를 가져와 백그라운드에서 컨테이너로 시작합니다. Seafile 컨테이너는 첫 실행 시 자체적으로 부트스트랩하고 데이터베이스 스키마를 생성합니다. 전체 과정은 2~4분 정도 걸립니다. docker compose logs -f seafile로 진행 상황을 확인할 수 있으며, "Seahub is started"라는 문장이 나타나면 완료입니다.

이제 아무 브라우저에서 http://YOUR_PC_IP를 엽니다. Seafile은 처음 부팅 시 자체 웹 UI를 표시합니다. 기본 관리자 이메일은 me@example.com이고 비밀번호는 asecret입니다. 하지만 웹 UI에서 즉시 변경하는 것이 좋습니다. 그런 다음 모든 것이 작동하는지 확인하기 위해 첫 번째 라이브러리를 생성합니다.

동일한 Wi-Fi에서 휴대폰으로 서버에 접속하려면, GUI를 사용하거나 관리자 권한 PowerShell에서 New-NetFirewallRule을 통해 개인용(Private) 프로필에 대해 TCP 포트 80에 대한 Windows 방화벽 규칙을 추가하세요. 그 후 seafile.com에서 Windows용 Seafile 동기화 클라이언트(Seafile Sync Client) 또는 Seafile 드라이브 클라이언트(Seafile Drive Client)를 설치하고, Android 또는 iOS에서 Seafile 앱을 설치하세요. 모든 클라이언트에서 서버 주소는 http://YOUR_PC_IP이며, 관리자 계정을 사용합니다.

셀프 호스팅은 또한 백업을 직접 소유하는 것을 의미합니다. 도커 스택을 중지하고 데이터 폴더를 외장 드라이브로 복사하는 주간 작업만으로 기본적인 사항을 처리할 수 있으며, Seafile을 Duplicati와 같은 무료 크로스 플랫폼 도구와 함께 사용하면 암호화된 복사본을 클라우드 스토리지에 두 번째 레이어로 전송할 수 있습니다. Dropbox는 이러한 모든 것을 대신 처리해 줍니다. Seafile을 사용할 때는 모두 당신 책임입니다.

Seafile은 현재 개인 서버에 호스팅하는 Dropbox와 가장 유사한 것입니다

Seafile은 Nextcloud가 되려고 하지 않으며, 그것이 바로 핵심입니다. 만약 캘린더, 연락처, 오피스 스위트, 그리고 완전한 개인 클라우드 OS가 필요하다면, 더 무거운 것을 사용해야 하거나, 그런 작업을 위해 별도의 도구와 함께 Seafile을 실행할 수 있습니다. 중앙 서버 없이 순수하게 피어 투 피어 동기화를 원한다면, Syncthing이 장치 간 파일 이동을 유지하는 데 더 적합합니다.

하지만 셀프 호스팅 Dropbox 대안을 찾고 있고, 빠른 블록 수준 동기화, 성숙한 클라이언트, 간결한 웹 UI, 그리고 당신이 작업을 조직하는 방식을 존중하는 라이브러리를 원한다면, Seafile이 현재로서는 가장 가까운 선택입니다. 설치 부담은 현실적이며, 이제 당신이 직접 IT 부서가 되어야 합니다. 무료 주말과 오래된 노트북 덕분에 제가 Dropbox에 지불하던 동기화 경험을 얻었고, 다시 돌아갈 생각은 없습니다.

관련기사