Nanogram is made for the privacy conscious enthusiast who wants total control of their data. Create a small scale private social media platform for family and friends.

The onion service and web server are hosted directly on your phone via termux.

User access can be granted by generating a magic invite link in the server manger. These are one time use links that allow registration to the service.

Application Demo here

Install Demo here

Source code here

  • hereforawhile@lemmy.mlOP
    link
    fedilink
    arrow-up
    6
    ·
    9 hours ago

    The server backbone gunicorn is set with 2 workers and 8 threads ( this can be modified to more or less )

    But it should handle around 15 - 20 simultaneous connections smoothly. Now, if everyone is uploading all at once would definitely make it sweat.

    Once the server recieves the photo is compresses is down to 100-200kb so all retrievals are pretty light weight.

    Pagination really lightens the load as well. By limiting it to 10 photos per page, the server only needs to send about 1.5 mb - 2.0mb to load in a whole page of photos.

    • Helix 🧬@feddit.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 hours ago

      You could also generate thumbnails with much smaller sizes and only load hi-res images on click. Did you consider using more JPEG or another algorithm?

      • hereforawhile@lemmy.mlOP
        link
        fedilink
        arrow-up
        2
        ·
        4 hours ago

        This is only possible because of the sandbox of the termux app. Unfortunately iOS has no comparable alternative to termux so it will likely never happen.

        In fact, it would even be pretty difficult to develop this into a standalone app on either platform with the way application review is. There is alot of unneeded fluff that would need to be added to be compliant with policies. A self hosted service like this goes against app store policies and google play policies in a few ways.

        So while IOS users can easily access the application on a onion browser, they won’t be able to host their own instance.

    • utopiah@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      8 hours ago

      Thanks for sharing and the clarifications. I do think both the philosophy behind this and the technological choices are right but it’s also true that “How many people?” can it handle is important for people who want to actually try and onboard others. It’s one thing to try alone but as long as we ask others to join, knowing what the limits are makes everybody more understanding.

    • sqgl@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      ·
      9 hours ago

      Sounds good. I would love to get an activist group I run off Facebook. There are hundreds of members but traffic is less than what you describe.

      The problem for me is that most of the members are technically illiterate so my next question is: how sophisticated do the clients need to be?

      • hereforawhile@lemmy.mlOP
        link
        fedilink
        arrow-up
        1
        ·
        8 hours ago

        As far as literacy, all the client needs is a Tor browser and a invite link generated by the server operator.

        For Android just use the official Tor browser

        For Iphone, TOR recommends this app. https://onionbrowser.com/.

        I would love to see how far I can push a single instance with hundreds of users but realistically I think this is probably best suited for a circle of close friends and family.