Go to file
Luc Didry d0d76be010
🌐 — Update a string and translations
2023-12-29 07:00:23 +01:00
.provision 🧹 — A bit of cleaning in URLs, email addresses and README 2023-12-27 08:24:17 +01:00
lib 🧹 — A bit of cleaning in URLs, email addresses and README 2023-12-27 08:24:17 +01:00
log First commit. Working. 2015-09-21 02:05:06 +02:00
script First commit. Working. 2015-09-21 02:05:06 +02:00
t 🧹 — A bit of cleaning in URLs, email addresses and README 2023-12-27 08:24:17 +01:00
themes/default 🌐 — Update a string and translations 2023-12-29 07:00:23 +01:00
utilities 🧹 — A bit of cleaning in URLs, email addresses and README 2023-12-27 08:24:17 +01:00
.gitignore 🙈 — Ignore all .conf files in .gitignore 2019-09-29 16:44:11 +02:00
.gitlab-ci.yml 👷 — Update the create-release snippet’s URL 2023-12-25 07:44:15 +01:00
AUTHORS.md Add Nicolas Constant in authors 2020-03-22 11:34:15 +01:00
CHANGELOG 🔀 Merge branch 'mr-107' into development 2023-12-27 07:44:12 +01:00
CONTRIBUTING.md 🧹 — A bit of cleaning in URLs, email addresses and README 2023-12-27 08:24:17 +01:00
LICENSE Add README, LICENSE and AUTHORS files 2015-09-21 23:40:00 +02:00
Makefile 🩹 — Update tests and code after dependencies upgrade 2023-12-18 05:05:48 +01:00
README.md 🔀 Merge branch 'fix-233' into development 2023-12-29 06:33:52 +01:00
cpanfile ⬆️ — Upgrade dependencies 2023-12-18 04:54:15 +01:00
cpanfile.snapshot ⬆️ — Upgrade dependencies 2023-12-18 04:54:15 +01:00
lufi.conf.template 🧹 — A bit of cleaning in URLs, email addresses and README 2023-12-27 08:24:17 +01:00

README.md

Lufi

What does Lufi mean?

Lufi means Let's Upload that FIle. It's a E2E encrypted file sharing software.

Which browsers are compatible?

Lufi is tested and working on the following browsers / devices : - Firefox - Chrome - Internet Explorer 11 - Microsoft Edge - Safari - iOS devices (ipad, iphone) - Android devices (Galaxy tab, Galaxy S8)

What does it do?

It stores files and allows you to download them.

Is that all? No. All the files are encrypted by the browser! It means that your files never leave your computer unencrypted. 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.

The encryption key part of the URL is a anchor (Cf. Fragment Identifier), that means this part is only processed client-side and does not reach the server. :-)

License

Lufi is licensed under the terms of the AGPL. See the LICENSE file.

Official instance

There is a demonstration site, available at https://lufi.fiat-tux.fr, with strong limitations on time and file size.

To really use Lufi, you can go to https://framadrop.org, provided by the Framasoft association (you can help them to keep providing free services at https://soutenir.framasoft.org).

Because Lufi is quite similar to Luffy, like in "Monkey D. Luffy" from One Piece manga, the logo is a straw hat, made with pain, love and Inkscape.

Wiki (work in progress)

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:

git clone https://framagit.org/fiat-tux/hat-softwares/lufi.wiki.git

Encryption

All the encryption/decryption processes take place in your browser. The encryption key is never sent over the network.

However please note that some metadata are sent unencrypted:

  • the file name
  • its size
  • its mimetype

Client

There is the web interface, but you can use a CLI client too! Have a look at lufi-cli or install it directly with sudo npm install -g lufi-cli.

There is another client in Python too: https://framagit.org/setop/pylufic.

Internationalization

Lufi comes with several languages.

Please, see this wiki page to know how to contribute to internationalization.

API endpoints

When using accounts, some endpoints require authentication, others don't. Here are the endpoints that needs to be excluded from authentication if youre using an authenticating proxy:

  • "^/r/" (page to get a file)
  • "^/js/" (get js assets)
  • "^/img/" (get images assets)
  • "^/css/" (get css assets)
  • "^/lang/" (change language)
  • "^/font/" (get fonts assets)
  • "^/partial/" (get rendered js assets)
  • "^/download/" (websocket URL to download a file)
  • "^/upload" (websocket URL to upload a file)
  • "^/guest/" (guest page for uploading)
  • "^/about" (about page)
  • "^/delays$" (delays information page)
  • "^/fullstats$" (JSON endpoint giving stats about the files)

Authors

See AUTHORS.md file.

Contribute!

Please consider contributing, either by reporting issues or by helping the internationalization. And of course, code contributions are welcome!

The details on how to contribute are on the wiki.

This software uses Fiat Tux Code of conduct.

Other dependencies

Lufi is written in Perl with the Mojolicious framework.

It uses:

Deploy Lufi

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.

You can use Docker by using the recipe on https://github.com/megalis-bretagne/lufi-docker.