Wednesday, 25 November 2020

Show HN: A file server for Android, end-to-end encryption, web access https://bit.ly/3fxtf9O

Show HN: A file server for Android, end-to-end encryption, web access Recently I've been playing with an idea of a file server on my Android phone, with a web browser access. I wanted to replace: - AirDroid - sending files to my own PC or laptop. - ShareIt - sending big files over the local network to my family devices. - Dropbox - sharing select files with other people over the Internet. Requirements I had in mind: - end-to-end encryption, no sign ups, no accounts, no passwords - local connection if devices are on the same network - asynchronous access, server should work seamlessly in the background This week I finally managed to stitch the pieces together and get something usable and useful. I now have full access to my phone on my laptop browser, I can share files with a link without uploading to the cloud, and the local network is used whenever possible. The file server app is on the PlayStore[1], web-client is here[2], and you can check out the roadmap[3]. Shoutouts to these great tools that made it possible: - libsodium[4], and it's JS version, are used for the end-to-end encryption - StreamSaver.js[5], to save large files from a non-HTTP transport without buffering it in RAM. Had to patch it to add back pressure when the download is paused. Current limitations: - p2p only works on local networks, wait until WebRTC transport is implemented in the server - when downloading several files, a Zip is generated, with a 4Gb size limit, wait until I figure out the way to fix this. With a single file, it's downloaded in plain and without limits. Please roast this thing! -- [1] PlayStore: https://bit.ly/2HD37Ok [2] Web client: https://bit.ly/3fzP8W3 [3] Roadmap: https://bit.ly/364AeEg [4] LibSodium: https://bit.ly/3kYikXS [5] StreamSaver.js: https://bit.ly/3l85tCm [*] A demo of some files I shared, served by my phone: https://bit.ly/39cGv2n November 25, 2020 at 11:33AM

No comments:

Post a Comment