안녕하세요 r/selfhosted 여러분. 이곳에서 몇 년 동안 지켜봐 왔는데, 제가 개발해 온 프로젝트에 대한 첫 공개 게시물입니다. 바로 Frameleaf라는 이름의 사진 및 비디오 라이브러리로, 사용자가 직접 자신의 하드웨어에서 운영할 수 있습니다. NAS나 홈 서버, 또는 Docker를 지원하는 모든 Linux 박스에서 실행됩니다. 휴대폰으로 백업하고, 가족과 공유하며, 원본 파일은 일반 파일 형태로 디스크에 보관됩니다.
Immich 관련 질문부터 말씀드리자면, Frameleaf는 Immich에서 시작되었으며 그 팀에게 감사합니다. 2026년 10월 15일부로 독립적인 애플리케이션이 되었습니다. 이는 드롭인(drop-in) 대체재가 아니며 두 시스템은 데이터베이스를 공유하지 않습니다. 이 프로젝트는 제가 가진 90만 장의 사진 컬렉션을 관리하기 위한 완벽한 사진 라이브러리를 만들기 위해 6개월 동안 7,100개의 커밋을 거치며 개발되었습니다. 원래 Immich 코드 중 살아남은 부분은 8% 미만입니다.
Immich와 비교했을 때: 내장 벡터 검색(vector search) 기능을 갖춘 PostgreSQL 19를 사용합니다. 백그라운드 작업은 Postgres에 저장되므로, Redis나 Valkey가 필요 없습니다. 작업 진행 상황이 재시작 후에도 유지되며 실패한 작업을 검토할 수 있습니다. iPhone 및 Android용 완전 네이티브 앱과 Apple TV 및 Google TV용도 제공됩니다. Rust로 작성된 실제 네이티브 데스크톱 앱(AGPL 라이선스, 오픈 소스)도 지원합니다.
Immich 2.0 이상 버전을 사용 중이라면, Frameleaf Manager를 통해 일회성 가이드 임포트가 가능합니다. 이 도구는 사용자, 앨범, 사람, 얼굴, 태그, 공유 설정, 편집본, Live Photos 등을 새로운 데이터베이스로 가져옵니다. 미디어 파일은 원래 위치에 그대로 유지되며, Manager는 Immich 측의 데이터를 읽어오는 역할만 합니다.
한 가지 유의할 점이 있습니다: Immich 모바일 앱은 Frameleaf와 함께 작동하지 않으므로, Frameleaf 전용 앱으로 전환해야 합니다.
주요 기능으로는 타임라인(Timeline), 폴더가 있는 중첩 앨범, 태그, 지도, 추억(Memories), 사람 및 반려동물 관리가 있습니다. “2024년 4월 캘거리에서 찍은 Alice의 사진”과 같이 일반 단어로 검색할 수 있으며, 사진 내부의 텍스트도 검색 대상입니다. 얼굴, 장소, 날짜는 서버에서 처리됩니다. 자체 서버의 모델이 작성한 AI 설명 및 태그가 생성되며, 스스로 채워지는 스마트 앨범 기능도 제공합니다.
잠금 콘텐츠: 의료 기록, 금융 또는 신분증 사진은 일반 앨범에 보관되지만 PIN으로 숨길 수 있습니다. 비파괴 편집(Non-destructive editing): 편집본은 버전으로 저장되며 원본 파일은 절대 수정되지 않습니다.
Studio는 멀티트랙 비디오 에디터입니다. Library Care 기능은 누락되거나 손상된 원본을 찾아 검증된 사본으로 복원합니다. 중복 검토(Duplicate review) 기능을 사용하면 더 큰 재인코딩된 JPG 대신 HEIC 또는 RAW 원본을 유지할 수 있습니다. 물리적 중복 제거(Physical deduplication)는 한 가족이 같은 파일을 두 번 저장하지 않음을 의미합니다.
Google Takeout 및 iCloud Photos로부터의 가져오기, 이미 디스크에 있는 폴더(외부 라이브러리로 사용 가능), 또는 CLI를 통해 가져올 수 있습니다. 이를 실행하는 주요 설정 경로는 Frameleaf Manager입니다. 이 관리자 UI(admin UI)에서는 스토리지 선택, 서명 및 검증된 릴리스, 업데이트, 데이터베이스 복구 등을 처리합니다. 네이티브 Synology 패키지(Package Center를 통한 수동 설치)가 있으며, Unraid(커뮤니티 앱), TrueNAS 및 HexOS에 대한 가이드도 제공됩니다. 일반적인 Docker Compose 또한 문서화되어 있습니다.
요구 사양은 amd64 또는 arm64 아키텍처에서 6GB의 RAM(권장 8GB)과 2코어(권장 4코어)입니다. 데이터베이스는 네트워크 공유가 아닌 로컬 SSD에 저장해야 합니다. GPU는 선택 사항이며, Intel(OpenVINO, Quick Sync)와 NVIDIA(CUDA, NVENC)를 지원합니다.
클라이언트로는 웹, 네이티브 iPhone/iPad(iOS 26 이상), 네이티브 Android(11 이상), 그리고 오늘 출시된 Apple silicon Mac, Windows 11 및 Linux용 Frameleaf Desktop이 있습니다. 데스크톱은 얼굴 인식 및 검색을 위해 컴퓨터의 CPU 또는 GPU를 서버에 대여할 수 있으며, 라이브러리 전체를 자체적으로 호스팅할 수도 있습니다.
비용 관련하여, 자가 호스팅(self-hosted) 라이브러리는 무료입니다. 로컬 기능에 대해 라이선스나 구독이 필요하지 않으며, 서버의 어떤 것도 잠기지 않습니다. 서포터 라이선스는 선택적인 일회성 결제입니다: 1인당 $25 또는 전체 서버에 $100입니다. 이는 개발 자금 마련에 도움이 됩니다.
제 홈 서버는 Intel iGPU를 사용하는데 성능이 부족하여, 제가 직접 문제를 해결하기 위해 Frameleaf Cloud를 구축했습니다. 서버가 작업을 실행할 때 시작되고 완료되는 즉시 자체적으로 파괴되는 암호화된 클라우드 컨테이너에서 머신러닝(ML) 작업을 실행할 수 있습니다. 클라우드 GPU는 선택 사항이며, Frameleaf Desktop을 설치하고 Raspberry Pi(Pi)를 사용하더라도 PC, Mac 또는 Linux의 GPU를 서버와 공유할 수 있습니다.
우리 중 일부는 네트워킹(networking), Docker, Telescale, Cloudflare 등에 매우 능숙하지만, 제가 처음 시작했을 때는 모든 네트워킹 부분이 어려웠습니다. 그래서 저는 즉각적인 솔루션을 추가했습니다: Frameleaf Cloud는 선택 사항이며 월 $9.99입니다. 이 서비스는 포트를 열지 않고도 릴레이 원격 액세스(relay remote access), 오프사이트 백업 1TB, 푸시 알림, Apple TV 앱 및 Frameleaf로 로그인 기능을 추가합니다.
만약 자체 VPN이나 리버스 프록시(reverse proxy)를 운영한다면 이 서비스는 필요하지 않습니다. 서버 연결은 라이브러리를 업로드하지 않습니다. 사용자가 승인한 백업 및 클라우드 작업만 서버를 떠나며, 각각의 경우 데이터가 어디로 가고 비용이 얼마인지 먼저 보여줍니다. 친구의 Frameleaf 서버로 하는 버디 백업(buddy backup)은 사용자의 서버를 떠나기 전에 암호화됩니다. 친구는 절대로 당신의 파일을 볼 수 없고, 당신도 친구의 파일을 볼 수 없습니다: 파일 이름까지도 암호화됩니다.
직접 연결을 통한 백업은 무료이지만, 두 서버 모두 일회성 서버 라이선스(Server license)가 필요합니다. 비용이 발생하는 모든 것은 순수한 비용 회수 목적입니다. 이것은 제가 제 라이브러리를 사랑하기 때문에 진행하는 진정한 열정 프로젝트이며, 돈을 벌기 위해 제작하는 것이 아닙니다. 저는 개발자로 15년 동안 활동하며 다른 사람들을 위해 수천 개의 앱을 만들었습니다. 이제는 저의 차례입니다.
Frameleaf는 아직 BETA 단계입니다. 저는 최고의 제품이 될 수 있도록 매일 개선하고 있으며, 여러분의 피드백, 위시리스트 등 기여할 수 있는 모든 것이 환영받을 것입니다. 이것은 초기 출시 버전(early in that 제가 6개월 이상 작업했지만, 우리는 사람들의 소중한 추억을 다루고 있기 때문에 이를 매우 심각하게 받아들이고 있습니다)이므로, 버그를 찾아내고 수정하는 데 도움을 주시면 감사하겠습니다.
링크
웹사이트: https://frameleaf.app
YouTube: https://www.youtube.com/@frameleafapp
대규모 도움말 센터(Massive Help Center): https://frameleaf.app/help/
소스: https://github.com/Frameleaf/frameleaf-app
데모 체험: https://frameleaf.app/demo
문서 및 설치: https://frameleaf.app/docs/
Immich에서 전환하기: https://frameleaf.app/docs/migrate/from-immich/
라이브러리 분석(Library Analytics) 제출자 /u/Putrid-Tangerine-600 [link] [comments]