Visit seme.li to share expiring secrets once. Encryption and decryption is done exclusively in the browser. No secret reaches the server.
Semper Semel Simplex!
This is a 12factor app using the Apt and Crystal Heroku buildpacks. Feel free to fork it and run it by yourself. I'd be glad if you could bring back nice changes to this repo in a pull request.
Warning Be aware though that you'll loose your SQLite database often if you use Heroku. You may want to hook into a Postgres database or use Dokku with a volume on your own server. Sticking to a SQLite database also means that you can run on 1 "dyno" only.
Install required prerequisites:
- Crystal >=1.1
- SQLite3
- mkcert
Then run those convenient scripts from the project root:
bin/setup
bin/check
bin/run
-
Why is there no file upload support?
File upload capabilities would increase demands for the backend and complexity in general. The idea is rather that you encrypt a file and send it through an insecure channel. You would then only share the encryption key via seme.li.
If you really want file upload support, you can add it yourself. Have a look at this PR.
Alternatively I know about the following more bloated (less auditable) alternatives. They all support file uploads:
-
How should I encrypt a file to be transferred on an insecure channel?
You can use OpenSSL tooling like this
openssl enc -aes-256-cbc -salt -pbkdf2 -iter 20000 -in folder.zip -out folder.zip.enc
The resulting (big) file
folder.zip.enc
would be transferred on an insecure channel like email together with the instruction to decrypt the file while the password goes over seme.li.Use this to decrypt the file
openssl enc -d -aes-256-cbc -salt -pbkdf2 -iter 20000 -in folder.zip.enc -out folder.zip
Attention: Normal ZIP encryption is not secure and can be broken by a script kiddie in a matter of seconds. The above used OpenSSL approach is way better.
- Fork it (https://github.com/schmijos/seme.li)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
2021-2024 Copyright by Josua Schmid, published under the AGPL license