fileverse/poc/ipfs-storage
Jeff Emmett 8e2c343e6c Remove jeffemmett.com aliases, rspace.online-only deployment
- Remove collab/ipfs/ipfs-api jeffemmett.com routers and CORS origins
- Update IPFS gateway config to ipfs.rspace.online
- Initialize backlog with next-step integration tasks
- Add package-lock.json files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 18:36:40 -07:00
..
src Migrate services to rspace.online domains and fix Traefik routing 2026-03-31 18:19:14 -07:00
README.md Initial research and POC scaffolding for Fileverse + rStack integration 2026-03-31 16:20:11 -07:00
package-lock.json Remove jeffemmett.com aliases, rspace.online-only deployment 2026-03-31 18:36:40 -07:00
package.json All 5 phases implemented and tested 2026-03-31 17:09:46 -07:00
tsconfig.json All 5 phases implemented and tested 2026-03-31 17:09:46 -07:00

README.md

IPFS File Storage POC

Proof-of-concept for encrypted file uploads to IPFS, replacing centralized storage for rNotes.

Flow

1. User picks file in TipTap editor
2. Client generates per-file symmetric key
3. Client encrypts file with AES-256-GCM
4. Encrypted blob uploaded to IPFS (via Pinata or self-hosted kubo)
5. CID + encrypted file key stored in Automerge document metadata
6. To view: fetch CID → decrypt with file key → display

Setup

# Using Pinata (managed IPFS pinning)
# Store API keys in Infisical: infisical-project=fileverse, path=/ipfs
export PINATA_API_KEY=...
export PINATA_SECRET_KEY=...

npm install
npm run test

Files

  • src/ipfs-client.ts — Upload/download encrypted files to IPFS
  • src/tiptap-image-extension.ts — TipTap extension for IPFS-backed images
  • src/test.ts — End-to-end test: encrypt → upload → download → decrypt

Status

Not started — waiting on Phase 1 crypto evaluation results.