Update README.md

This commit is contained in:
Mercury. 2025-06-18 14:15:15 +02:00
parent ec116246b1
commit 6062ed12c1

View file

@ -4,17 +4,16 @@ Your files, your server, your privacy. Litecloud is a lightweight, secure cloud
## What makes Litecloud special? ## What makes Litecloud special?
🔒 **Privacy-first**: Your files are encrypted with military-grade AES-256-GCM encryption before they ever touch the disk **Privacy-first**: Your files are encrypted with military-grade AES-256-GCM encryption before they ever touch the disk
🏠 **Self-hosted**: Run it on your own server—you control your data **Lightning fast**: Built with Rust for maximum performance and safety
**Lightning fast**: Built with Rust for maximum performance and safety **Developer-friendly**: Clean REST API lets you build custom apps and integrations
🔧 **Developer-friendly**: Clean REST API lets you build custom apps and integrations **Dead simple**: One Docker command and you're running your own cloud
🚀 **Dead simple**: One Docker command and you're running your own cloud
## Features at a glance ## Features at a glance
- **Secure authentication** with JWT-based sessions - **Secure authentication** with JWT-based sessions
- **File encryption** using AES-256-GCM (the same standard used by banks) - **File encryption** using AES-256-GCM
- **Share files easily** with customizable access controls and expiration dates - **Share files easily** with customizable access controls and expiration dates*
- **Full REST API** for building your own clients or automations - **Full REST API** for building your own clients or automations
- **Modern web interface** built with React and TypeScript - **Modern web interface** built with React and TypeScript
- **Single binary deployment** — no complex setup required - **Single binary deployment** — no complex setup required
@ -25,7 +24,6 @@ Your files, your server, your privacy. Litecloud is a lightweight, secure cloud
- **Rust + Rocket**: For blazing-fast, memory-safe performance - **Rust + Rocket**: For blazing-fast, memory-safe performance
- **AES-256-GCM encryption**: Your files are scrambled before they hit storage - **AES-256-GCM encryption**: Your files are scrambled before they hit storage
- **JWT authentication**: Secure, stateless session management - **JWT authentication**: Secure, stateless session management
- **Docker-ready**: Runs on port 8082 by default
### Frontend ### Frontend
- **React + Vite + TypeScript**: Modern, type-safe user interface, with all the added benefits of vite - **React + Vite + TypeScript**: Modern, type-safe user interface, with all the added benefits of vite
@ -34,10 +32,10 @@ Your files, your server, your privacy. Litecloud is a lightweight, secure cloud
## Why Rust? Why not just use Node.js? ## Why Rust? Why not just use Node.js?
Great question! Rust gives us superpowers: Great question! Rust seemed to *just work* for this scenario:
- **Memory safety without garbage collection** — no mysterious crashes or memory leaks, hence safer handling of encrypted files. - **Memory safety without garbage collection** — no mysterious crashes or memory leaks, hence safer handling of encrypted files.
- **Fearless concurrency** — handle thousands of simultaneous uploads without breaking a sweat - **Insanely good concurrency** — handle thousands of simultaneous uploads without breaking a sweat
- **Zero-cost abstractions** — all the safety with none of the performance overhead - **Zero-cost abstractions** — all the safety with none of the performance overhead
- **Type safety for encryption** — this really is a no-brainer for an app built with security in mind - **Type safety for encryption** — this really is a no-brainer for an app built with security in mind
@ -45,11 +43,11 @@ Rocket framework adds the cherry on top with its elegant routing system and buil
## How secure is "secure"? ## How secure is "secure"?
We take security seriously: We take this *security* thing quite seriously:
- **AES-256-GCM encryption**: The same encryption standard trusted by governments and militaries - **AES-256-GCM encryption**: The same encryption standard trusted by governments and militaries
- **Server-side encryption**: Files are encrypted before they're written to your server's disk — even system administrators can't read your files without the keys - **On-pipe encryption**: Files are encrypted before they're written to your server's disk — even system administrators can't read your files without the keys
- **No plaintext storage**: Your original files never exist unencrypted on the server - **No plaintext storage**: Your original files exist only before you upload them and after you download them back on your machine
- **JWT-based auth**: Secure, industry-standard authentication tokens - **JWT-based auth**: Secure, industry-standard authentication tokens
## API-first design ## API-first design
@ -61,7 +59,7 @@ Everything you can do in the web interface, you can do programmatically. The ent
- Integrate file storage into your existing applications - Integrate file storage into your existing applications
- Build a command-line client for power users - Build a command-line client for power users
*API documentation is coming soon — we're working on comprehensive docs with examples!* *API documentation is coming as soon as all the routes are battle-tested*
## Getting started in 30 seconds ## Getting started in 30 seconds
@ -106,7 +104,7 @@ That's it! Caddy will automatically get SSL certificates and proxy requests to y
If you prefer a web interface for managing your reverse proxy: If you prefer a web interface for managing your reverse proxy:
1. Set up [Nginx Proxy Manager](https://nginxproxymanager.com/) 1. Set up [Nginx Proxy Manager](https://nginxproxymanager.com/)
2. Create a new proxy host pointing to `localhost:8082` 2. Create a new proxy host pointing to `ip:8082`
3. Enable SSL and let NPM handle the certificate generation 3. Enable SSL and let NPM handle the certificate generation
4. Configure any additional security headers you want 4. Configure any additional security headers you want
@ -123,14 +121,14 @@ server {
ssl_certificate_key /path/to/your/private.key; ssl_certificate_key /path/to/your/private.key;
location / { location / {
proxy_pass http://localhost:8082; proxy_pass http://ip:8082;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;
# Important for file uploads, app default is 5 gb # Important for file uploads
client_max_body_size 100M; client_max_body_size 5G;
} }
} }
``` ```
@ -146,10 +144,10 @@ When exposing to the internet:
## What's next? ## What's next?
- 📱 Mobile app development - Mobile app development
- 📚 Comprehensive API documentation - Comprehensive API documentation
- 🔍 File search and tagging - File search and tagging
- 🔄 Client-side sync capabilities - Client-side sync capabilities
## Contributing ## Contributing
@ -159,10 +157,10 @@ Found a bug? Have a feature idea? We'd love your help! Check out our issues page
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). This means: This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). This means:
- You can use, modify, and distribute this software freely - You can use, modify, and distribute this software freely
- You can use it for commercial purposes - You can use it for commercial purposes
- You must provide source code to users (even if they access it over a network) - You must provide source code to users, or a way to get to this page (even if they access it over a local network)
- Any modifications must also be open source under AGPL-3.0 - Any modifications must also be open source under AGPL-3.0
The AGPL ensures that if you run a modified version of Litecloud as a service, your users have the right to access the source code. This keeps the project truly open and prevents proprietary forks from closing off improvements to the community. The AGPL ensures that if you run a modified version of Litecloud as a service, your users have the right to access the source code. This keeps the project truly open and prevents proprietary forks from closing off improvements to the community.