반응형
[Docker] 내 서버를 구글 드라이브처럼! 'Filestash' + '웹 오피스' 구축 가이드
나스의 파일 탐색기가 불편하거나, 회사에서 FTP/SFTP 서버의 파일을 일일이 다운로드받지 않고 바로 열어보고 싶으신가요?
그렇다면 Filestash가 정답입니다. 여기에 오픈 소스 오피스인 Collabora(WOPI)를 붙이면, 웹 브라우저에서 엑셀, 워드, PPT 파일을 바로 편집할 수 있는 강력한 시스템이 됩니다. 오늘은 이 두 마리 토끼를 잡는 Docker 구성을 분석해 보겠습니다.
1. 솔루션 구성 요소 분석
이 설정 파일은 크게 두 가지 서비스로 나뉩니다.
① Filestash (앱 컨테이너)
- 역할: Dropbox나 Google Drive 같은 웹 인터페이스를 제공하는 파일 관리자입니다.
- 특징: 파일을 서버에 직접 저장하지 않고, 기존에 있는 SFTP, S3, FTP, WebDAV, Git 등의 백엔드 저장소에 연결해서 보여주는 'Gateway' 역할을 합니다. 즉, 가볍고 빠릅니다.
- 주요 설정:
OFFICE_URL: 아래의 Collabora 서버와 통신하여 문서를 미리보기/편집할 수 있게 합니다.
② WOPI Server (Collabora Online)
- 역할: 웹 브라우저용 오피스 엔진입니다. (LibreOffice 기반)
- 특징: Filestash에서 엑셀(.xlsx)이나 워드(.docx) 파일을 클릭하면, 이 컨테이너가 문서를 렌더링하여 보여줍니다.
- 커스텀 설정: 제공된 코드에는
curl명령어로 CSS를 패치하여 Collabora의 기본 브랜딩(로고 등)을 숨기고 깔끔하게 만드는 트릭이 포함되어 있습니다.
2. 장점과 단점
장점 (Pros) ✅
- 연동의 귀재: S3, MinIO, SFTP, FTP 등 거의 모든 프로토콜을 지원합니다. 흩어진 저장소를 한곳에서 관리하기 최적입니다.
- 오피스 편집 기능: 파일만 보는 게 아니라 Collabora를 통해 실제 업무(문서 작성)가 가능합니다.
- 무설치(Stateless): Filestash 자체는 데이터를 저장하지 않습니다. 컨테이너를 지웠다 다시 띄워도 원본 저장소(SFTP 등)의 파일은 안전합니다.
- 강력한 뷰어: 이미지, 동영상 스트리밍, 코드 하이라이팅 등 뷰어 성능이 뛰어납니다.
단점 (Cons) ❌
- 메모리 사용량: Filestash는 가볍지만, Collabora(wopi_server)는 무겁습니다. (최소 2GB 이상의 RAM 권장)
- 초기 로딩: 오피스 문서를 처음 열 때 Collabora 엔진이 구동되느라 2~3초 정도 딜레이가 있을 수 있습니다.
3. Docker Compose 분석 및 사용 가이드
제공해주신 코드는 Filestash와 Collabora를 완벽하게 묶어놓은 Best Practice 설정입니다. 그대로 복사해서 사용하시면 됩니다.
services:
# 1. 파일 관리자 (Filestash)
app:
container_name: filestash
image: machines/filestash:latest
restart: always
environment:
- APPLICATION_URL= # 도메인이 있다면 입력 (예: https://files.example.com)
- CANARY=true # 최신 기능 사용 여부
# WOPI(오피스) 서버 연동 설정
- OFFICE_URL=http://wopi_server:9980
- OFFICE_FILESTASH_URL=http://app:8334
- OFFICE_REWRITE_URL=http://127.0.0.1:9980 # 로컬 테스트용 (실운영시 도메인 변경 필요)
ports:
- "8334:8334"
volumes:
- filestash:/app/data/state/ # 설정 값 저장 (연결 정보 등)
depends_on:
- wopi_server
# 2. 웹 오피스 엔진 (Collabora Online)
wopi_server:
container_name: filestash_wopi
image: collabora/code:24.04.10.2.1
restart: always
environment:
# SSL 비활성화 (내부망 사용 시 필수)
- "extra_params=--o:ssl.enable=false"
# 접속 허용할 도메인 패턴 (보안 설정)
- aliasgroup1="https://.*:443"
# [꿀팁] CSS를 수정하여 Collabora의 투박한 UI를 깔끔하게 변경하는 스크립트
command:
- /bin/bash
- -c
- |
curl -o /usr/share/coolwsd/browser/dist/branding-desktop.css https://gist.githubusercontent.com/mickael-kerjean/bc1f57cd312cf04731d30185cc4e7ba2/raw/d706dcdf23c21441e5af289d871b33defc2770ea/destop.css
/bin/su -s /bin/bash -c '/start-collabora-online.sh' cool
user: root
ports:
- "9980:9980"
volumes:
filestash: {}
🚀 실행 방법
- 위 코드를
docker-compose.yml로 저장합니다. docker-compose up -d명령어로 실행합니다.- 브라우저에서
http://서버IP:8334로 접속합니다. - 초기 비밀번호 설정 후, 연결하고 싶은 저장소(SFTP, S3 등) 정보를 입력하면 끝!
4. 핵심 꿀팁 (문제 해결) 💡
- 문서가 안 열려요! (Mixed Content 오류):
만약 Filestash를 HTTPS(SSL)로 서비스한다면, Collabora(WOPI) 부분도 반드시 HTTPS로 통신해야 합니다. 역방향 프록시(Nginx)를 앞단에 두어 둘 다 HTTPS 처리를 해주는 것이 정신 건강에 좋습니다. - 한글 폰트 깨짐:
Collabora 컨테이너(wopi_server)에는 기본 한글 폰트가 없을 수 있습니다. 이 경우 폰트(.ttf) 파일을 컨테이너 내부의/usr/share/fonts/truetype경로에 마운트해 주면 해결됩니다.
5. 마무리
Filestash는 "파일을 저장하는 곳"이 아니라 "파일을 관리하는 도구"입니다.
이미 회사나 개인 서버에 SFTP나 S3로 파일이 쌓여 있다면, 무거운 Nextcloud를 설치하는 것보다 Filestash 한 방으로 가볍고 강력한 웹 오피스 환경을 구축해 보세요.
728x90
LIST
'Docker' 카테고리의 다른 글
| [DevOps] 내 서버를 Heroku로 만드는 가장 쉬운 방법, 'Easypanel' 완벽 분석 (0) | 2026.01.31 |
|---|---|
| [홈서버] 복잡한 도커 설정은 그만! 클릭 한 번으로 끝내는 'Runtipi' 설치 및 분석 (0) | 2026.01.31 |
| [데이터 분석] 웹 브라우저에서 R을 돌린다? 'RStudio Server' Docker 구축 완벽 가이드 (0) | 2026.01.31 |
| [폐쇄망 필수 도구] 개발자의 맥가이버 칼, 'CyberChef' 완벽 분석 및 Docker 구축 가이드 (0) | 2026.01.31 |
| [오픈소스 위키] 노션과 컨플루언스의 강력한 대안, 'XWiki' 완벽 분석 및 Docker 설치 가이드 (0) | 2026.01.31 |