Lokr - Secure and Private File Sharing for the Modern Web
Features • Getting Started • Installation • Storage • Contributing
Lokr is a state-of-the-art file sharing application designed with user privacy and security as top priorities. By leveraging robust end-to-end encryption and strict access controls, Lokr ensures that only authorized users can view or download files, protecting your sensitive data from unauthorized access.
Lokr is engineered to offer a secure and privacy-focused file-sharing experience. Below are the key features that make Lokr stand out:
-
End-to-End Encryption:
Every file uploaded to Lokr is completely encrypted from the moment it leaves your device until it reaches the recipient. This includes not only the file content but also any personally identifiable metadata, ensuring comprehensive data protection even if the server is compromised. -
Dual Upload Options:
- Account-Based Uploads:
Registered users can upload files into their personal accounts, which are organized into a virtual file hierarchy for easy management and retrieval. - Anonymous Uploads:
Users without an account can still benefit from Lokr by uploading files anonymously. These files are stored temporarily and can be accessed via a unique, secure link.
- Account-Based Uploads:
-
Multiple Sharing Methods:
Lokr provides versatile options for sharing files:- Direct Sharing:
Share files directly with other registered users using their username. - Link Sharing:
Generate a secure link that can be shared with anyone. Recipients can access the file through their browser without needing an account.
- Direct Sharing:
-
Granular Permission Controls:
When sharing files, users have the ability to:- Restrict Permissions:
Choose whether recipients can only view or also edit the files. - Time-Limited Access:
Set expiration dates for shared links, ensuring that access is restricted to a specific timeframe.
- Restrict Permissions:
-
Minimal Information Requirement:
Registration with Lokr requires only a username and password, minimizing the amount of personal data required and preserving your anonymity. -
Two-Factor Authentication (2FA):
Enhance account security with Time-based One-Time Password (TOTP) codes. This extra layer of protection ensures that even if a password is compromised, unauthorized access remains blocked.
-
High-Performance Backend:
Lokr’s backend is built with Rust and SQLite, ensuring fast and secure processing of user authentication, encrypted file storage, and data management. -
Modern & Interactive Frontend:
The frontend is developed using React with TypeScript and enhanced with Material UI, resulting in a user-friendly and visually appealing interface for file management and profile customization.
-
Stringent Access Controls:
Only authorized users can download files, ensuring that sensitive data is accessible solely to those with the appropriate permissions. -
Uncompromising Security Philosophy:
Lokr's security model is designed with the understanding that the integrity of the system relies on protecting user credentials. Even if a password is compromised, robust encryption prevents attackers from decrypting and accessing user data.
Lokr combines state-of-the-art encryption, flexible sharing options, and a minimalist registration process to provide a secure, convenient, and private file sharing solution for the modern internet.
You can start using Lokr right away by visiting the live instance lokr.cyanistic.com.
This instance is fully functional and allows you to:
- Upload and share files securely
- Register an account or use the anonymous upload option
- Explore the features described in this README
If you prefer to host your own private instance of Lokr, continue to the Installation section for setup instructions.
To build project you must have cargo and node installed on your system.
- Clone the repo locally
git clone https://github.com/Cyanistic/lokr.git
cd lokr
- Build the backend with cargo
cd api
cargo b -r
- Build the frontend with vite/npm
cd ../client
npm i
npm run build
- Start up the backend server
cd ../api
cargo r -r
- Visit
https://localhost:6969
in your browser
All of the data of the application is stored inside the lokr-api
folder inside the default data path for your platform. The chart below provides examples for where you should look based on your operating system.
Platform | Value | Example |
---|---|---|
Linux | $XDG_DATA_HOME or $HOME /.local/share/lokr-api |
/home/alice/.local/share/lokr-api |
macOS | $HOME /Library/Application Support/lokr-api |
/Users/Alice/Library/Application Support/lokr-api |
Windows | {FOLDERID_RoamingAppData} \lokr-api |
C:\Users\Alice\AppData\Roaming\lokr-api |
We welcome contributions from the community! If you'd like to help improve Lokr, please follow these guidelines:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/YourFeatureName
- Commit your changes with clear descriptions.
- Push your branch to GitHub:
git push origin feature/YourFeatureName
- Open a pull request detailing your changes.
This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.