NovaFuture is proud to announce the official release of PeerBox! A 100% P2P messaging system for Linux, fully open source. Runs on SSH over Tor for maximum security. No account required, no spam possible. Please share the word.

  • dihutenosa@piefed.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 hours ago

    Why not just run Postfix+Dovecot? If everyone runs a single-user server, it becomes a P2P network. Also, it’dn’t depend on Tor, which is an external dependency.

    Also, what role is Tor playing in privacy? If the chatting parties are cryptographically verifed, only message content remains private…

  • ken@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    14
    ·
    edit-2
    20 hours ago

    Is this vibecoded or is there thinking behind why it will silently reuse existing user SSH keys by default? For an app like this I would expect it to exclusively use its own keys. Same for PGP.

    I also find the ways dependencies are handled a bit unorthodox and surprising (possibly system-breaking even). For a python project it would make more sense with a lockfile and using a package manager for dependencies installed remotely via pip.

    https://codeberg.org/NovaFuture/Peerbox/src/commit/60ed3b638d6dc6c82322f73a9ce1c3e44ecec5d2/conf/config.py#L148-L197

    https://codeberg.org/NovaFuture/Peerbox/src/commit/60ed3b638d6dc6c82322f73a9ce1c3e44ecec5d2/system/mount/src/onion_client.py#L345

    I also wonder why it bundles minified js for Quill editor v1.3.7 (from 2019) when unminified version would be easier to audit and maintain, and v2.0.3 was released in 2024?

    • NovaFuture@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      10
      ·
      18 hours ago

      Thanks for the detailed review, really appreciate it — this is exactly the kind of feedback the project needed before a public release.

      You were right on two of the three points, and I’ve just pushed fixes to Codeberg (commit 93b8985):

      GPG: you nailed it. config.py was silently reusing the user’s personal ~/.gnupg keyring if a key was present, which is obviously wrong for an identity-isolated app. Fixed: PeerBox now uses a dedicated keyring at system/gpg/ with --homedir enforced on every gpg call. Existing users get their key auto-migrated on next config.py run so contacts don’t break.

      Dependencies: install_pysocks() was calling pip install --break-system-packages at runtime, which is indefensible. Removed entirely — it was actually dead code (never called) but still a trap. Documented PySocks in the README as a required pip dep alongside cryptography and pywebview. The broader venv/lockfile refactor is a bigger chantier, planned for phase 6.

      SSH keys: here I have to push back a bit — ssh_setup.py does generate a dedicated id_rsa_peerbox key, never reuses id_rsa or id_ed25519. BUT you indirectly uncovered a real bug: request_creator.py had a silent fallback reading id_rsa.pub / id_ed25519.pub if id_rsa_peerbox.pub was missing. That’s gone now too.

      Quill 1.3.7 → 2.0.3: fair point, on the roadmap for this weekend. Non-minified too for auditability.

      Seriously, thanks for taking the time to read the code and call out what needed calling out. This is what keeps small projects honest.

      • ken@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        13
        ·
        edit-2
        17 hours ago

        Thanks for the detailed review

        I wouldn’t call that detailed. It was what glared at me from skimming for a couple of minutes.

        was calling pip install --break-system-packages at runtime, which is indefensible

        “You” still have three instances left of runtime pip install --break-system-packages without user interaction, one of which dead code.

        I think the follow-up beautifully clarified the “is this vibecoded?” question too.

        Labeling it 1.0.0 seems premature to say the least.

  • XLE@piefed.social
    link
    fedilink
    English
    arrow-up
    8
    ·
    24 hours ago

    I think there’s a lot of confusion surrounding this app, so I’m going to make some assumptions and please correct me if I’m wrong.

    1. This isn’t an email app at all, but it’s a messaging app that uses the email paradigm to display how messages are received.
    2. “Deferred messages” simply wait in the app’s Outbox folder until your contact comes online and then they will be delivered.

    (It’s interesting how Delta Chat is technically an email client that pretends to be a messaging app, but this is more of a messaging app that pretends to be email.)

    • NovaFuture@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      23 hours ago

      Ha, fair point! You’re not wrong. PeerBox uses the email paradigm because that’s how most people think about asynchronous messaging, but under the hood it’s fully P2P with no email protocol involved. And yes, deferred messages wait locally until your contact comes online, then get delivered automatically. Your Delta Chat comparison is pretty spot on actually, it’s the mirror image.

  • no spam possible

    Only contacts can message you. Yes, it technically almost eliminates the possibility of spam, but it also means you explicitly have to exchange data first. So, no “here’s my email address, you can send it to me there”, no “do you have XYZ’s address”, no “I lost access to my previous address, this is my new one”. I realize all of these scenarios can be seen as risks, but they’re still important in day to day life and will be a major hindrance to adoption.

    • NovaFuture@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      2
      ·
      1 day ago

      You’re right, it’s a trade-off. PeerBox was designed with maximum privacy as the priority, and that does mean giving up some of the convenience of traditional email. But that convenience is exactly what makes email so vulnerable to spam, phishing and surveillance in the first place. PeerBox isn’t trying to replace email for everything, it’s built for people who need communications that no one else can access or intercept.

  • frongt@lemmy.zip
    link
    fedilink
    English
    arrow-up
    9
    ·
    1 day ago

    How does the connection actually happen? Like for two home users with dynamic IPs, nat, firewall, and/or CGNAT?

    • NovaFuture@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      10
      ·
      1 day ago

      How does the connection actually happen? Like for two home users with dynamic IPs, nat, firewall, and/or CGNAT?

      It doesn’t use IPs at all, otherwise there would be no privacy. Everything goes through Tor. Each PeerBox instance gets its own .onion address, and all connections are made through that. Your contacts never see your IP, you never see theirs. SSH handles the authentication and encryption on top of that. So NAT, dynamic IPs, firewalls, CGNAT, none of that matters. You don’t even need a VPN, Tor already maxes out the security.

    • XLE@piefed.social
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      1 day ago

      I’m wondering that myself. Without digging much deeper, my guess is:

      • It’s trivially easy for anyone on Tor to make a service that is accessible to everyone else on Tor
      • Two clients can connect directly and communicate if they know each other’s Tor “addresses”
  • HubertManne@piefed.social
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 day ago

    I have often though why many server things are just not server like client software. like why the third party. especially given many folks don’t turn their machines off all the time.

    • NovaFuture@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      1 day ago

      I have often though why many server things are just not server like client software. like why the third party. especially given many folks don’t turn their machines off all the time.

      Exactly! That’s the whole point behind PeerBox. Most people already have a machine running most of the time, so why trust a third party to handle your messages? The only reason centralized servers became the norm is to monetize your data or charge you a subscription, all at the expense of your privacy. PeerBox just flips that logic back to where it should be.

      • klu9@piefed.social
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 day ago

        I used to be on ZeroNet, which enabled everything to be P2P: blogs, forums, social networks, text chat, messaging, filesharing, code forges even. No servers, and all accessible with one account.

        But it never really took off (& of the few people there, too many were the kind kicked off other platforms IMHO for good reason). But I still hope P2P solutions will rise up, so we can avoid all the issues involved with depending on servers. Good luck with PeerBox!

        • NovaFuture@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 day ago

          Thanks for sharing that! ZeroNet was a really interesting project, it’s a shame it attracted the wrong crowd because the concept was solid. We share the same vision, P2P is the way forward. Thanks for the kind words and the support!

  • stravanasu@lemmy.ca
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 day ago

    Nobody in the middle. No server storing anything. No company analyzing anything

    […]

    In deferred mode, it works just like regular email. Meaning your contact doesn’t need to be online when you send the message. Your contact will get it automatically once they come online.

    So I can’t send a message while my contact is offline, then go offline myself, and expect that my contact will receive it when they go online? This is quite limiting.

    How is PeerBox different from Delta Chat?

    • NovaFuture@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      2
      ·
      1 day ago

      Good question! The core difference is that Delta Chat still relies on email infrastructure (SMTP/IMAP), so your messages go through centralized servers you don’t control. PeerBox is fully P2P. Your messages go straight from your machine to your contact’s machine. No server in between, no account to create, no middleman. It combines SSH for encrypted transport and Tor for anonymity, so not even your ISP can see who you’re talking to. It also works in deferred mode (like regular email, your contact gets the message when they come back online), strict P2P mode, or local network only. Contact management uses a dual-channel encrypted invitation system, so spam is simply impossible. And all local data is encrypted on disk with a self-destruct mechanism after 5 failed password attempts. It’s a lightweight Python app for Linux, fully open source (AGPL).

      • amzd@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        14 hours ago

        your messages go through centralized servers you don’t control.

        Chatmail relays(the delta chat “servers”) are decentralized and you can host one on a raspberry pi for thousands of users.

      • Martineski@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 day ago

        Would it be possible to have a solution where a server running 24/7 acts the same as the client does now to be then remotely accessed by the user/owner from different devices? So not in a way where it’s a server where peple can register creating centralisation but one person node in a form of dedicated device to allow high uptime and thus availability and little friction? This would be of benefit for everyone contacted by and contacting a person with good availability as there would be no place for delayed/missed messages.

        • NovaFuture@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          5
          arrow-down
          1
          ·
          1 day ago

          PeerBox was designed to offer the highest level of privacy possible by cutting out every middleman. That does come with a little less flexibility than regular email, but you have several options. You can install it on a Raspberry Pi or any small machine that stays on, which gives you near-permanent availability. You can also simply agree on a time window with your contacts for message exchange. And actually, we’re considering releasing a VPS-compatible version soon, which would do exactly what you’re describing. Stay tuned!

      • stravanasu@lemmy.ca
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 day ago

        Thank you for the explanation. But I don’t understand how it can work if:

        1. I send a message while my contact is offline,
        2. then I go offline,
        3. my contact comes back online while I’m still offline.

        The message needs to be somewhere in between. This is a situation that occurs quite often when you message with people in very different time zones.

        • NovaFuture@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          4
          arrow-down
          1
          ·
          1 day ago

          Great question! Think of it this way: your own machine acts as the server. So yes, in your scenario, the message waits on your machine until both sides are online at the same time. Once that happens, it gets delivered automatically. It works exactly like regular email, except your PC does the job instead of an external server. No middleman needed. In practice, if you leave PeerBox running, the overlap happens naturally, even for a few seconds. And if you really need guaranteed async delivery across very different time zones, you could just keep PeerBox running on a machine that stays on, like a small home server or a Raspberry Pi.

          • stravanasu@lemmy.ca
            link
            fedilink
            English
            arrow-up
            4
            ·
            1 day ago

            I understand. Be aware that this can be quite a limiting factor, more than you think. The need to think about home servers starts to clash with the statement that

            It was built from day one to be usable by anyone, with zero tech background required.

            • NovaFuture@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              3
              ·
              1 day ago

              Your message seems to be cut off, but I think I get the point. To be clear, PeerBox doesn’t require you to set up any server. You just install it and use it. Everything configures itself automatically.

      • NovaFuture@lemmy.worldOP
        link
        fedilink
        English
        arrow-up
        6
        ·
        1 day ago

        Not exactly! With SMS your message goes through your carrier’s servers, so it gets stored there until your contact receives it. With PeerBox there’s no server at all, your own machine handles everything. So it does need both sides to be online at the same time for the message to go through, but in deferred mode that happens automatically whenever the overlap occurs.

      • moody@lemmings.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 day ago

        SMS has somewhere to go in between the sender and recipient. Where does this go if I send a message then go offline before the recipient comes online?

        It seems like both parties must be online at the same time for the message to be sent. My understanding is that your message will wait on your device until the recipient is online and then will be sent, so if neither party is ever online at the same time, it won’t work.

    • NovaFuture@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      1 day ago

      PeerBox doesn’t send emails to the clearnet and that’s by design. The whole point is to stay fully P2P with no server involved at any point. Sending to clearnet email would mean going through external infrastructure, which defeats the purpose. As for I2P, Tor was chosen because it has a much larger network of relays, which means stronger anonymity and better reliability.

  • unitedwithme@lemmy.today
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 day ago

    Thank you, this looks very interesting and useful! I’m going to set this up and test it out with a couple friends.

    • NovaFuture@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 day ago

      Thank you, this looks very interesting and useful! I’m going to set this up and test it out with a couple friends.

      Awesome, thanks! Let us know how it goes, we’d love to get your feedback.