|
Luc Didry |
3e2ff5 |
# Lufi
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
## What does Lufi mean?
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
fef978 |
Lufi means Let's Upload that FIle. It's a E2E encrypted file sharing software.
|
|
Luc Didry |
3e2ff5 |
|
|
Ilker Kulgu |
a6a58e |
## Which browsers are compatible?
|
|
Ilker Kulgu |
a6a58e |
|
|
Ilker Kulgu |
a6a58e |
Lufi is tested and working on the following browsers / devices :
|
|
Ilker Kulgu |
a6a58e |
- Firefox
|
|
Ilker Kulgu |
a6a58e |
- Chrome
|
|
Ilker Kulgu |
a6a58e |
- Internet Explorer 11
|
|
Ilker Kulgu |
a6a58e |
- Microsoft Edge
|
|
Ilker Kulgu |
a6a58e |
- Safari
|
|
Ilker Kulgu |
a6a58e |
- iOS devices (ipad, iphone)
|
|
Ilker Kulgu |
a6a58e |
- Android devices (Galaxy tab, Galaxy S8)
|
|
Ilker Kulgu |
a6a58e |
|
|
Luc Didry |
3e2ff5 |
## What does it do?
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
It stores files and allows you to download them.
|
|
Luc Didry |
3e2ff5 |
|
|
Sebastien Duthil |
837a8c |
Is that all? No. All the files are encrypted **by the browser**! It means that your files **never** leave your computer unencrypted.
|
|
Sebastien Duthil |
837a8c |
The administrator of the Lufi instance you use will not be able to see what is in your file, neither will your network administrator, or your ISP.
|
|
Luc Didry |
3e2ff5 |
|
|
Armando Lüscher |
c3e7a2 |
The encryption key part of the URL is a anchor (Cf. [Fragment Identifier](https://en.wikipedia.org/wiki/Fragment_identifier)), that means this part is only processed client-side and does not reach the server. :-)
|
|
Luc Didry |
7b7d1e |
|
|
Luc Didry |
3e2ff5 |
## License
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
291b1d |
Lufi is licensed under the terms of the AGPL. See the [LICENSE](LICENSE) file.
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
## Official instance
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
291b1d |
There is a demonstration site, available at <https://demo.lufi.io>, with strong limitations on time and file size.
|
|
Luc Didry |
291b1d |
|
|
Armando Lüscher |
c3e7a2 |
To really use Lufi, you can go to <https://framadrop.org>, provided by the [Framasoft association](https://framasoft.org) (you can help them to keep providing free services at <https://soutenir.framasoft.org>).
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
## Logo
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
Because Lufi is quite similar to Luffy, like in "[Monkey D. Luffy](https://en.wikipedia.org/wiki/Monkey_D._Luffy)" from [One Piece](https://en.wikipedia.org/wiki/One_Piece) manga, the logo is a straw hat, made with pain, love and [Inkscape](https://inkscape.org/).
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
## Wiki (work in progress)
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
a04f83 |
The official wiki will contain all you need to know about Lufi (installation, configuration, etc.). Go to <https://framagit.org/fiat-tux/hat-softwares/lufi/wikis/home> or clone it:
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
```
|
|
Luc Didry |
a04f83 |
git clone https://framagit.org/fiat-tux/hat-softwares/lufi.wiki.git
|
|
Luc Didry |
3e2ff5 |
```
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
## Encryption
|
|
Luc Didry |
3e2ff5 |
|
|
Armando Lüscher |
c3e7a2 |
All the encryption/decryption processes take place in your browser. The encryption key is never sent over the network.
|
|
Luc Didry |
3e2ff5 |
|
|
Armando Lüscher |
0fa52a |
However please note that some metadata are sent unencrypted:
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
* the file name
|
|
Luc Didry |
3e2ff5 |
* its size
|
|
Luc Didry |
3e2ff5 |
* its mimetype
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
4c41cb |
## Client
|
|
Luc Didry |
4c41cb |
|
|
Luc Didry |
a04f83 |
There is the web interface, but you can use a CLI client too! Have a look at [lufi-cli](https://framagit.org/fiat-tux/hat-softwares/lufi-cli) or install it directly with `sudo npm install -g lufi-cli`.
|
|
Luc Didry |
a04f83 |
|
|
Luc Didry |
a04f83 |
There is another client in Python too: <https://framagit.org/setop/pylufic>.
|
|
Luc Didry |
4c41cb |
|
|
Luc Didry |
3e2ff5 |
## Internationalization
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
fef978 |
Lufi comes with several languages.
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
fef978 |
Please, see [this wiki page](https://framagit.org/fiat-tux/hat-softwares/lufi/wikis/contribute#internationalization) to know how to contribute to internationalization.
|
|
Luc Didry |
291b1d |
|
|
Luc Didry |
3e2ff5 |
## Authors
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
See [AUTHORS.md](AUTHORS.md) file.
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
## Contribute!
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
a04f83 |
Please consider contributing, either by [reporting issues](https://framagit.org/fiat-tux/hat-softwares/lufi/issues) or by helping the internationalization. And of course, code contributions are welcome!
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
a04f83 |
The details on how to contribute are on the [wiki](https://framagit.org/fiat-tux/hat-softwares/lufi/wikis/contribute).
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
fef978 |
This software uses [Fiat Tux Code of conduct](https://framagit.org/fiat-tux/code-of-conduct/blob/master/README.md).
|
|
Luc Didry |
fef978 |
|
|
Luc Didry |
d94c2b |
## Make a donation
|
|
Luc Didry |
d94c2b |
|
|
Luc Didry |
d94c2b |
You can make a donation to the author on [Tipeee](https://www.tipeee.com/fiat-tux) or on [Liberapay](https://liberapay.com/sky/).
|
|
Luc Didry |
d94c2b |
|
|
Sebastien Duthil |
837a8c |
## Other dependencies
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
Lufi is written in Perl with the [Mojolicious](http://mojolicio.us) framework.
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
3e2ff5 |
It uses:
|
|
Luc Didry |
3e2ff5 |
|
|
Luc Didry |
291b1d |
* [Materialize](http://materializecss.com/) framework to look not too ugly
|
|
Luc Didry |
291b1d |
* [jQuery](https://jquery.com)
|
|
Luc Didry |
3e2ff5 |
* [Stanford Javascript Crypto Library](http://bitwiseshiftleft.github.com/sjcl/)
|
|
Luc Didry |
3e2ff5 |
* [Moment.js](http://momentjs.com/) for displaying real dates instead of unix timestamps.
|
|
Luc Didry |
291b1d |
* [Filesize.js](http://filesizejs.com/) for displaying file sizes
|
|
arunodhayamsam |
027d5f |
|
|
arunodhayamsam |
027d5f |
## Deploy Lufi
|
|
arunodhayamsam |
027d5f |
|
|
arunodhayamsam |
027d5f |
An ansible role and a terraform plan reside under the `.provision` directory. An user could utilize the terraform plan if they chose to deploy lufi on AWS, if that's not the goal, they could simply execute the ansible role in part. Usage docs for both are present in their respective directories.
|