Files
Oxicloud/README.md
T

127 lines
4.3 KiB
Markdown
Raw Normal View History

2025-03-23 23:27:56 +01:00
<p align="center">
<img src="static/oxicloud-logo.svg" alt="OxiCloud" width="375" />
2025-03-23 23:27:56 +01:00
</p>
2025-03-19 00:44:27 +01:00
2025-03-29 16:40:38 +00:00
<div align="center">
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
[![Latest Release](https://img.shields.io/github/release/diocrafts/OxiCloud.svg?style=for-the-badge)](https://github.com/diocrafts/OxiCloud/releases)
[![GitHub Stars](https://img.shields.io/github/stars/diocrafts/OxiCloud?style=for-the-badge&logo=github)](https://github.com/diocrafts/OxiCloud/stargazers)
[![GitHub Issues](https://img.shields.io/github/issues/diocrafts/OxiCloud?style=for-the-badge)](https://github.com/diocrafts/OxiCloud/issues)
[![GitHub Forks](https://img.shields.io/github/forks/diocrafts/OxiCloud?style=for-the-badge&logo=github)](https://github.com/diocrafts/OxiCloud/network/members)
[![Last Commit](https://img.shields.io/github/last-commit/diocrafts/OxiCloud?style=for-the-badge)](https://github.com/diocrafts/OxiCloud/commits/main)
</div>
2025-03-28 09:05:58 +01:00
2026-02-03 17:59:04 +01:00
## A fast, simple alternative to NextCloud
2025-03-24 12:52:54 +01:00
2026-02-03 17:59:04 +01:00
NextCloud was too slow on my home server. So I built OxiCloud: a file storage system written in Rust that runs on minimal hardware and stays out of your way.
2025-03-19 00:44:27 +01:00
2025-03-23 23:13:02 +01:00
![OxiCloud Dashboard](doc/images/Captura%20de%20pantalla%202025-03-23%20230739.png)
2026-02-03 17:59:04 +01:00
## Why OxiCloud?
2025-03-24 12:52:54 +01:00
2026-02-03 17:59:04 +01:00
| Feature | What you get |
|---------|--------------|
| **Low resources** | Runs on 512MB RAM. No PHP, no bloat. |
| **Fast** | Rust with LTO optimization. Sub-second responses. |
| **Clean UI** | Works on desktop and mobile. No clutter. |
| **Easy setup** | One binary, one database, done. |
| **Multi-language** | English and Spanish out of the box. |
2025-03-24 12:52:54 +01:00
2026-02-03 17:59:04 +01:00
## Quick Start
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
You need Rust 1.70+, Cargo, and PostgreSQL 13+.
2025-03-19 00:44:27 +01:00
```bash
2025-03-24 12:52:54 +01:00
git clone https://github.com/DioCrafts/oxicloud.git
2025-03-19 00:44:27 +01:00
cd oxicloud
2026-02-03 17:59:04 +01:00
# Set up your database connection
2025-03-24 12:52:54 +01:00
echo "DATABASE_URL=postgres://username:password@localhost/oxicloud" > .env
2026-02-03 17:59:04 +01:00
# Build and run
2025-03-19 00:44:27 +01:00
cargo build --release
2025-04-09 00:21:20 +02:00
cargo run --bin migrate --features migrations
2025-03-19 00:44:27 +01:00
cargo run --release
```
2026-02-03 17:59:04 +01:00
Open `http://localhost:8085` in your browser.
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
### Docker (alternative)
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
```bash
docker compose up -d
```
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
That's it. The app runs on port 8086.
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
## Architecture
2025-03-24 12:52:54 +01:00
2026-02-03 17:59:04 +01:00
OxiCloud uses Clean Architecture with four layers:
```
┌─────────────────────────────────────────┐
│ Interfaces │ API routes, handlers │
├─────────────────────────────────────────┤
│ Application │ Use cases, services │
├─────────────────────────────────────────┤
│ Domain │ Business logic │
├─────────────────────────────────────────┤
│ Infrastructure│ Database, filesystem │
└─────────────────────────────────────────┘
```
Each layer only talks to the one below it. You can swap out the database or add new API endpoints without touching business logic.
## Development
2025-03-19 00:44:27 +01:00
```bash
2026-02-03 17:59:04 +01:00
cargo build # Build
cargo run # Run locally
cargo test # Run tests
cargo clippy # Lint
cargo fmt # Format
# For debugging
RUST_LOG=debug cargo run
2025-03-19 00:44:27 +01:00
```
2026-02-03 17:59:04 +01:00
## Current Features
- File upload, download, and organization
- Folder management with drag-and-drop
- Trash bin with restore functionality
- User authentication with JWT
- Personal folders per user
- File deduplication
- Write-behind cache for fast uploads
- Search across files and folders
- Favorites and recent files
- Responsive grid/list views
## What's Next
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
I'm working on these when I have time:
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
- File sharing via links
- WebDAV for desktop sync
- Basic versioning
- Mobile app improvements
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
Check [TODO-LIST.md](TODO-LIST.md) for the full list.
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
## Contributing
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
The project is early stage. There's plenty to improve.
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
Read [CONTRIBUTING.md](CONTRIBUTING.md) before submitting a PR. Follow the [Code of Conduct](CODE_OF_CONDUCT.md).
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
## License
2025-03-19 00:44:27 +01:00
2026-02-03 17:59:04 +01:00
MIT. See [LICENSE](LICENSE).
2025-03-19 00:44:27 +01:00
---
2026-02-03 17:59:04 +01:00
Questions? Open an issue. Want to help? PRs welcome.