Discussion

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

20 points brugeman 6 years ago 7 comments

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton