PasteDB 구축기: Pastebin의 오픈소스 E2EE 대안 (CLI, VS Code 확장 기능 및 데이터베이스 없는 '링크 붙여넣기'
요약
PasteDB는 개발자의 워크플로우와 프라이버시를 최우선으로 설계된 오픈소스 붙여넣기 공유 플랫폼입니다. E2EE, 데이터베이스 없는 링크 붙여넣기 등 강력한 보안 기능을 제공하며, CLI 및 VS Code 확장 기능 같은 내장 도구를 통해 개발자 경험을 극대화했습니다.
핵심 포인트
- E2EE를 적용하여 서버 관리자가 키에 접근할 수 없습니다.
- 데이터베이스 없이 URL 해시로 민감 정보를 압축 전송합니다.
- CLI와 VS Code 확장을 지원해 개발 환경에 깊숙이 통합됩니다.
- 읽은 후 자동 삭제 및 사용자 지정 만료 기간을 설정할 수 있습니다.
r/selfhosted 여러분께,
제가 개발해 온 PasteDB라는 프로젝트를 공유하고 싶습니다. 이 프로젝트는 프로덕션급 웹 애플리케이션을 설계하기 위한 개인적인 학습 실험으로 시작되었으며, 현재 건강한 월간 사용자 기반을 확보했습니다. 이는 MIT 라이선스 하에 완전히 오픈소스입니다.
이 목표는 개발자의 워크플로우와 프라이버시를 최우선으로 하는 현대적이고 안전한 붙여넣기 공유 플랫폼을 구축하여, 기존의 전통적인 붙여넣기 서비스(pastebins)가 가진 불편함을 제거하는 것이었습니다.
🔐 프라이버시 아키텍처
브라우저 측 종단 간 암호화 (End-to-End Encryption, E2EE): 비공개 및 목록에 없는 붙여넣기는 업로드 전에 브라우저에서 완전히 암호화됩니다. 서버 관리자는 암호화 키를 절대 만지거나 저장하지 않습니다.
신뢰할 수 있는 장치 키 동기화: 일회성 QR 코드 핸드셰이크를 사용하여 로컬 암호화 키(KEK)를 본인의 여러 장치에 안전하게 미러링할 수 있으며, 서버는 키에 대해 완전히 무지한 상태로 유지됩니다.
데이터베이스 없는 '링크 붙여넣기' (Link Pastes): API 토큰이나 일회용 키와 같이 매우 민감한 항목을 공유하는 경우, 앱은 URL 안전 압축(URL-safe compression)을 사용하여 페이로드(payload)를 직접 URL 해시로 압축하고 패키징합니다. 데이터베이스에는 아무것도 기록되지 않습니다.
읽은 후 삭제 및 사용자 지정 만료 기간: 첫 번째 성공적인 열람 후에 데이터를 자동으로 파괴하거나, 사용자 지정 시간 범위(10분~30일)를 설정할 수 있습니다.
🛠 내장 개발자 워크플로우 도구
네이티브 CLI 클라이언트: 터미널에서 파일을 바로 파이프하여 전송할 수 있으며 (pdb create app.py), 즉시 배포 링크를 받을 수 있습니다.
VS Code 확장 기능: 현재 작업 공간, 선택 버퍼 또는 IDE 내부의 보안 저장소 대시보드에서 활성 스니펫을 업로드하거나 관리할 수 있습니다.
SDK 및 API 키: 공식 Python 및 Node.js SDK 바인딩과 함께 프로그래밍 방식 REST 액세스 키를 포함합니다.
뷰어 내 실행 (In-Viewer Execution): 지원되는 프로그래밍 언어를 실행하거나, 붙여넣기 컨테이너 페이지에서 활성 HTML/Markdown 라이브 미리보기를 직접 볼 수 있습니다.
P2P 근거리 전송: 공개 인덱스 링크를 생성하지 않고도 로컬 핸드셰이크를 통해 주변 클라이언트 장치로 코드 공유를 즉시 푸시할 수 있습니다.
🚀 사용 스택
프론트엔드: Vanilla HTML, CSS, JavaScript (Highlight.js, Marked.js, DOMPurify 사용)
백엔드: FastAPI (Python)
데이터베이스 및 파일 저장소: MongoDB, Cloudinary (이미지 첨부 처리용)
💻 오픈 소스 및 피드백
이 코드는 모듈화되어 있으며 검토가 가능합니다. 이 공유 대시보드에서 커뮤니티가 가장 중요하게 생각하는 기능이나 E2EE 키 동기화 아키텍처에 대한 의견을 들려주시면 정말 감사하겠습니다.
실시간 클라이언트 웹 앱: https://pastedb.netlify.app
GitHub 저장소: https://github.com/sorathiya903/pastedb
제출자 /u/aditya4112
[링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/SelfHosted (AI filter)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기