SnapOtter: 이미지, 영상, 오디오, PDF를 로컬에서 처리하는 셀프호스팅 파일 도구 모음

SnapOtter 소개

이미지 리사이즈, PDF 병합, 영상 포맷 변환 같은 일상적인 파일 작업을 할 때마다 Smallpdf나 TinyPNG 같은 웹 서비스에 파일을 올리는 경우가 많습니다. 문제는 이 과정에서 민감한 문서나 사내 자료가 외부 서버로 나간다는 점입니다. SnapOtter는 이런 파일 처리 작업 전부를 자신의 서버 안에서 끝내도록 만든 셀프호스팅(Self-hosted) 파일 도구 모음으로, 스스로를 "Smallpdf, iLovePDF, TinyPNG, TinyWow, CloudConvert의 오픈소스 대안" 이라고 소개합니다.

가장 큰 특징은 다루는 범위입니다. Docker 컨테이너 하나에 이미지(105종), 영상(57종), 오디오(27종), PDF(29종), 파일(23종)까지 다섯 가지 모달리티에 걸친 200개 이상의 도구가 들어 있습니다. 개발팀은 "Stirling-PDF는 PDF에서 멈추고, ConvertX는 변환에서 멈춘다" 는 문장으로 기존 셀프호스팅 도구와의 차이를 설명합니다. 브라우저에서 동작하는 레이어 기반 이미지 편집기, 여러 도구를 하나의 워크플로우로 묶는 파이프라인(기본 20단계, 파일 100개까지 일괄 처리), 모든 도구를 호출할 수 있는 REST API도 함께 제공합니다.

2026년 7월 공개된 2.0 버전에서는 도구가 200개 이상으로 늘었고, 백그라운드 작업 처리와 온디맨드 로컬 AI, docker run 한 줄 설치가 더해졌습니다. UI는 한국어를 포함한 21개 언어를 지원하며, Google이나 GitHub 계정 등으로 로그인하는 OIDC/SSO 연동과 AMD64/ARM64 멀티 아키텍처(Apple Silicon, Raspberry Pi 포함)도 지원합니다.

SnapOtter의 주요 기능

SnapOtter 대시보드에서 도구를 탐색하는 데모 화면

다섯 가지 모달리티별 도구 구성은 다음과 같습니다.

  • 이미지 (105종): 리사이즈, 크롭, 압축, 변환, 워터마크, 색상 조정, 스크린샷 꾸미기, 벡터화, GIF 도구, 중복 찾기, 증명사진 등. 카메라 RAW 23종을 포함한 55개 이상의 입력 포맷과 14개 출력 포맷을 지원합니다.
  • 영상 (57종): 변환, 압축, 자르기, 병합, 영상-GIF 변환, 오디오 추출, 손떨림 보정, FPS 변경, 자막 굽기/추출 등.
  • 오디오 (27종): 변환, 트리밍, 정규화, 피치 시프트, 무음 제거, 노이즈 감소, 병합/분할, 파형 생성 등.
  • PDF (29종): 병합, 분할, 압축, 변환, 암호 설정/해제, 마스킹, 서명, 워터마크, 페이지 번호, OCR 등.
  • 파일 (23종): CSV/JSON/XML/YAML 상호 변환, CSV 병합/분할, Excel-CSV 변환, 차트 생성, ZIP 압축/해제 등.

개별 도구 외에 파이프라인 기능으로 여러 도구를 재사용 가능한 워크플로우로 연결할 수 있고, 만든 파이프라인은 JSON으로 내보내거나 불러올 수 있습니다. 모든 도구는 API 키 인증을 거쳐 REST API로도 호출할 수 있어 /api/docs 경로의 대화형 문서에서 바로 시험해볼 수 있습니다.

SnapOtter의 로컬 AI 기능

SnapOtter가 AI/ML 관점에서 흥미로운 부분은 온디맨드 로컬 AI 도구들입니다. 배경 제거, 이미지 업스케일링, 오래된 사진 복원과 컬러화, 객체 지우기, 얼굴 블러 처리, 얼굴 보정, 이미지와 PDF에서의 텍스트 추출(OCR), 오디오 전사, 영상 자막 자동 생성, 캔버스 확장, 투명도 복구까지 모두 자신의 하드웨어에서 실행되며 인터넷 연결이 필요 없습니다.

NVIDIA GPU가 있으면 배경 제거, 업스케일링, 전사, OCR에 CUDA 가속을 적용할 수 있습니다. 다만 Intel/AMD 내장 GPU의 VA-API, Quick Sync, OpenCL을 이용한 AI 추론(inference)은 지원하지 않아 해당 시스템에서는 AI 도구가 CPU로 동작합니다 (README §Deployment). GPU용 Compose 예시와 벤치마크는 Docker Tags 문서에 정리되어 있습니다.

SnapOtter 설치 및 사용법

설치는 명령 한 줄입니다. 임베디드 PostgreSQL 17과 Redis 8이 컨테이너 안에 포함되어 있어 별도 의존성이 없습니다.

docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest

실행 후 http://localhost:1349 에 접속해 기본 계정 admin / admin 으로 로그인하면 되고, 첫 로그인 시 비밀번호 변경을 요구합니다. 프로덕션 환경에서는 앱, PostgreSQL 17, Redis 8을 분리한 3컨테이너 Compose 스택 구성을 권장하며, 전체 Compose 예시는 저장소의 README에 있습니다. 파일은 네트워크 밖으로 나가지 않고, 기본 활성화된 익명 분석(analytics)은 빌드 시 SNAPOTTER_ANALYTICS=off 또는 관리자 설정에서 끌 수 있습니다.

SnapOtter의 라이선스

SnapOtter는 AGPLv3와 상업용 라이선스의 듀얼 라이선스로 공개되어 있습니다. AGPLv3 조건에서는 자유롭게 사용, 수정, 배포할 수 있지만 수정한 버전을 네트워크 서비스로 운영하면 소스 코드를 AGPLv3로 공개해야 합니다. 소스 공개가 어려운 독점 소프트웨어나 SaaS 제품을 위한 상업용 라이선스가 따로 있으며, 무료 영역과 상업 영역의 경계는 저장소의 LICENSING.md에 정리되어 있습니다.

:framed_picture: SnapOtter 라이브 데모

:house: SnapOtter 공식 홈페이지

:books: SnapOtter 문서 사이트

:github: SnapOtter GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: