안녕하세요! 저는 지난 1년 반 동안 오픈 소스 기반의 자체 호스팅(self-hosted) 이미지 관리 솔루션을 개발해 왔습니다. 이 솔루션은 iCloud/Google Photos/Immich 등의 대안으로 볼 수 있습니다. 작년 8월에 GitHub와 iOS App Store에 앱을 공개적으로 출시했으며, 현재는 일상적인 사용에 안정적입니다.
오늘날의 Replycant은 다음 요소들로 구성되어 있습니다:
- App Store용 iOS 앱 (replycant 검색)
- Docker Compose를 사용하여 시작하는 서버
- Linux/Mac/Windows용 Electron 데스크톱 앱
- 컴퓨터에서 대량 이미지를 가져오는 CLI(Command Line Interface) 도구
이제 여러분은 스스로에게 '왜 Immich나 다른 오픈 소스 솔루션 대신 Replycant을 사용해야 하는가?'라고 질문할 수 있습니다. 이에 대한 몇 가지 답변이 있습니다:
더 나은 데이터 내구성 (Better data durability)
개인적으로 저에게 있어 이미지 저장소 솔루션에서 가장 중요한 것은 어떤 경우에도 데이터를 잃어버려서는 안 된다는 점입니다. 이를 보장하기 위해서는 여러 대의 서버가 서로 복제(replicate)되어야 합니다. 하드 드라이브 충돌이 발생하더라도 아무것도 잃어서는 안 됩니다. 이러한 목표를 달성하기 위해 Replycant의 데이터베이스는 Git과 Git LFS (Large File Storage)를 기반으로 하며, 이는 여러 사이트로 쉽게 복제할 수 있게 만듭니다. 현재 앱에서 다중 서버 복제 기능은 구현되지 않았지만 곧 추가될 예정입니다. 하지만 오늘날에도 'git clone'을 사용한 후 주기적인 'git pull'로 최신 변경 사항을 동기화함으로써 새로운 사이트에 백업하는 것이 여전히 쉽습니다.
더 나은 개인 정보 보호 (Better privacy)
데이터베이스의 메타데이터뿐만 아니라 사진/비디오를 포함한 모든 데이터는 원본 장치(source device)를 떠나기 전에 암호화됩니다. 서버에는 절대로 평문 암호화 키(clear text encryption keys)가 저장되지 않습니다. 이는 만약 서버가 손상되더라도 어떤 데이터도 읽을 수 없다는 것을 의미합니다. 이 점은 강도에 의한 도난이나 서버 해킹의 경우 매우 중요합니다.
하지만 진정한 중요성은 앞서 언급한 다중 사이트 복제 기능과 결합될 때 발생합니다. Raspberry Pi와 같은 간단한 서버를 신뢰할 수 없는 위치(untrusted location)에 배치하여 여러분의 모든 데이터를 집 외부의 장소로 백업할 수 있습니다.
간편성 - 서버나 방화벽에 대한 설정이 필요하지 않습니다. 단순히 "docker compose up"만 실행하면 서버를 시작하는 데 필요한 모든 설정이 완료됩니다. 클라이언트는 tailscale을 사용하여 연결하며, 이는 번거로움 없이 방화벽을 통과합니다. 간단히 말해, 추가적인 구성 없이 5G를 통해 집 외부에서도 라이브러리에 접근할 수 있습니다.
성능 - 이 프로젝트의 목표는 모든 사진이 기기에 로컬로 저장된 것처럼 느껴지게 만드는 것입니다. 저는 Raspberry Pi 5와 2.5" 기계식 USB 드라이브에 서버를 실행하며, 이는 뛰어난 성능을 제공합니다. 아, 그리고 질문하시기 전에 말씀드리자면: 아니요, 아직 Android 버전은 없습니다. 작업 중입니다. 또 다른 질문 사항이 있습니다: 네, 이 프로젝트는 cursor를 사용하여 구현되었습니다. 하지만 아닙니다, 저는 이것을 "vibe-coded"라고 생각하지 않습니다. 아키텍처, API 데이터 타입 등 모든 것이 100% 저로부터 나온 것이지만, 구현은 AI를 사용하여 진행되었습니다. 이 프로젝트는 오픈 소스이며 https://github.com/mr-andreas/replycant 에서 이용 가능합니다. 라이선스는 GPL2입니다. 여러분의 의견을 듣고 싶습니다! :D
안녕하세요! 지난 1년 반 동안 저는 오픈 소스, 자체 호스팅 이미지 관리 솔루션을 개발해 왔습니다. 이는 iCloud/Google photos/Immich의 대안으로 볼 수 있습니다. 지난 8월에 이 앱을 github와 iOS App Store에 공개적으로 출시했으며, 일상적인 사용에 안정적입니다. 현재 Replycant은 다음 요소들로 구성되어 있습니다:
- App Store용 iOS 앱 (replycant 검색)
- docker compose를 사용하여 시작하는 서버
- Linux/Mac/Windows용 Electron 데스크톱 앱
- 컴퓨터에서 대량 이미지 가져오기(bulk image import)를 위한 CLI 도구
이제 여러분은 "왜 Immich나 다른 오픈 소스 솔루션 대신 Replycant을 사용해야 할까요?"라고 질문할 수 있습니다. 이에 대한 몇 가지 답변이 있습니다: 더 나은 데이터 내구성(data durability) - 개인적으로 저에게 이미지 저장소 솔루션에서 가장 중요한 것은 어떤 경우에도 데이터를 잃지 않아야 한다는 것입니다. 이를 보장하기 위해서는 서로 복제하는 여러 대의 서버가 필요합니다. 하드 드라이브 충돌이 아무것도 잃는다는 의미가 되어서는 안 됩니다.
이를 달성하기 위해, Replycant의 데이터베이스는 Git과 Git LFS를 기반으로 하며, 이는 여러 사이트로 복제하기 쉽게 만듭니다. 앱 내 다중 서버 복제 기능은 아직 구현되지 않았지만 곧 추가될 예정입니다. 오늘 기준으로도, 최신 변경 사항을 동기화하기 위해 주기적으로 'git pull'을 사용하는 'git clone'을 통해 새 사이트로 백업하는 것은 여전히 쉽습니다.
향상된 개인 정보 보호 기능 - 모든 데이터(데이터베이스의 메타데이터와 사진/비디오 모두 포함)는 소스 장치를 떠나기 전에 암호화됩니다. 서버에는 평문 암호화 키가 절대 저장되지 않습니다. 이는 만약 서버가 손상되더라도 어떤 데이터도 읽을 수 없다는 것을 의미합니다. 이는 도난이나 서버 해킹의 경우에 중요합니다. 하지만 진정한 중요성은 이전 지점인 다중 사이트 복제 기능과 결합될 때 발생합니다.
Raspberry Pi와 같은 간단한 서버를 신뢰할 수 없는 위치에 배치하여 집 외부의 장소로 모든 데이터를 백업할 수 있습니다. 단순성 - 서버나 방화벽에 대한 설정이 필요하지 않으며, 서버를 시작하는 데 필요한 모든 설정은 간단한 'docker compose up'입니다. 클라이언트는 방화벽을 문제없이 통과하는 Tailscale을 사용하여 연결합니다. 간단히 말해, 추가 설정 없이도 5G를 통해 집 외부에서 라이브러리에 접근할 수 있습니다.
성능 - 이 프로젝트의 목표는 모든 사진이 기기에 로컬로 저장된 것처럼 앱을 느끼게 하는 것입니다. 저는 2.5인치 기계식 USB 드라이브가 장착된 Raspberry Pi 5에서 서버를 실행하며, 이는 뛰어난 성능을 제공합니다.
아, 그리고 질문하시기 전에 말씀드리자면: 아니요, 아직 안드로이드 버전은 없습니다. 작업 중입니다. 그리고 또 질문하시기 전에 말씀드리자면: 네, 이 프로젝트는 Cursor를 사용하여 구현되었습니다. 하지만 아니요, 저는 이것을 '바이브 코딩(vibe-coded)'이라고 생각하지 않습니다. 아키텍처, API 데이터 유형 등 모든 것은 100% 저로부터 나왔지만, 구현은 AI를 사용하여 완료되었습니다.
이 프로젝트는 오픈 소스이며 https://github.com/mr-andreas/replycant 에서 이용 가능합니다. 라이선스는 GPL2입니다.
여러분의 의견을 듣고 싶습니다! :D 제출자: /u/mr-andreas2 [링크] [댓글]