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://play.google.com/store/apps/details?id=im.recall.android [2] Web client: http://web.recall.im [3] Roadmap: https://recall.im [4] LibSodium: https://github.com/jedisct1/libsodium [5] StreamSaver.js: https://github.com/jimmywarting/StreamSaver.js [*] A demo of some files I shared, served by my phone: http://web.recall.im/#peer=c7e0f38a7f60752b4fa3017807fc731f2c8cb87b3d7d35c8131196c74daa847c;share_id=476c946195b047d3898c51291cd37dfb |