Show HN: Moli P2P – An ephemeral, serverless image gallery (Rust and WebRTC)

moli-green.is

2 points by ShinyaKoyano 12 hours ago

Hi HN,

I built Moli P2P because I wanted a way to share images directly with peers without leaving a permanent record on any server.

The Philosophy: "Presence is Storage" The gallery exists only in the RAM of active peers. There is no database, no S3 bucket, and no central storage. When everyone closes the tab, the gallery vanishes.

The Tech Stack:

* Signaling Server: Rust (Axum + Tokio). Acting as a dumb pipe for WebRTC signaling and STUN/TURNauth. It stores nothing. * Client: TypeScript + Vite. Uses WebRTC DataChannels for all file transfers. * Security: Ephemeral TURN credentials, cryptographic identity enforcement, and a "Circuit Breaker" to prevent DoS. Why "Sovereign"? We implemented a strict "Sakoku" (Isolation) policy. Moderation is local to your node. If I block a peer, my node stops relaying their content to me. There is no central authority to "ban" users globally.

It is open source (AGPLv3) and designed to be self-hosted easily with Docker.

Code: https://github.com/moli-green/moli-p2p Live Demo: https://moli-green.is

I'd love to hear your feedback on the architecture and our approach to ephemeral p2p networks.

rohan_ajmera 11 hours ago

What does this do can you elaborate?

  • ShinyaKoyano 9 hours ago

    It's an image gallery, but without the gallery server.

    Think of it as a "RAM-only, ephemeral Bittorrent for art." Instead of uploading images to a server (like Imgur or S3), you broadcast them directly from your browser to other peers viewing the same "room."

    How it works:

    1. No Storage: The server is just a dumb signal relay (Rust/Axum). It stores 0 bytes.

    2. Presence is Storage: The images exist only in the browser memory of active peers.

    3. Sovereign: If you close the tab, your "hosting" stops. There is no central admin to censor content, and no hosting bill to pay.

    It allows communities to share high-fidelity art autonomously, without relying on (or fearing) centralized platforms.