2025-03-23 23:27:56 +01:00
<p align="center">
2025-03-30 14:17:09 +00:00
<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">
[](https://opensource.org/licenses/MIT)
[](https://github.com/diocrafts/OxiCloud/releases)
[](https://github.com/diocrafts/OxiCloud/stargazers)
[](https://github.com/diocrafts/OxiCloud/issues)
[](https://github.com/diocrafts/OxiCloud/network/members)
[](https://github.com/diocrafts/OxiCloud/commits/main)
</div>
2025-03-28 09:05:58 +01:00
2025-03-24 12:52:54 +01:00
## A lightweight, Rust-powered alternative to NextCloud
I built OxiCloud because I wanted a simpler, faster file storage solution than existing options. After struggling with NextCloud's performance on my home server, I decided to create something that prioritizes speed and simplicity while still being robust enough for daily use.
2025-03-19 00:44:27 +01:00
2025-03-23 23:13:02 +01:00

2025-03-24 12:52:54 +01:00
*OxiCloud's straightforward interface for file and folder management*
## ✨ What makes OxiCloud different?
- **Lightweight**: Minimal resource requirements compared to PHP-based alternatives
- **Responsive UI**: Clean, fast interface that works well on both desktop and mobile
- **Rust Performance**: Built with Rust for memory safety and speed
2025-03-26 18:33:22 +01:00
- **Optimized Binary**: Uses Link Time Optimization (LTO) for maximum performance
2025-03-24 12:52:54 +01:00
- **Simple Setup**: Get running with minimal configuration
- **Multilingual**: Full support for English and Spanish interfaces
2025-03-19 00:44:27 +01:00
## 🛠️ Getting Started
### Prerequisites
- Rust 1.70+ and Cargo
2025-03-24 12:52:54 +01:00
- PostgreSQL 13+ database
- 512MB RAM minimum (1GB+ recommended)
2025-03-19 00:44:27 +01:00
### Installation
```bash
# Clone the repository
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
2025-03-24 12:52:54 +01:00
# Configure your database (create .env file with your PostgreSQL connection)
echo "DATABASE_URL=postgres://username:password@localhost/oxicloud" > .env
2025-03-19 00:44:27 +01:00
# Build the project
cargo build --release
2025-03-24 12:52:54 +01:00
# Run database migrations
2025-04-09 00:21:20 +02:00
cargo run --bin migrate --features migrations
2025-03-24 12:52:54 +01:00
2025-03-19 00:44:27 +01:00
# Run the server
cargo run --release
```
The server will be available at `http://localhost:8085`
2025-03-24 12:52:54 +01:00
## 🧩 Technical Implementation
2025-03-19 00:44:27 +01:00
OxiCloud follows Clean Architecture principles with clear separation of concerns:
- **Domain Layer**: Core business logic and entities
- **Application Layer**: Use cases and application services
- **Infrastructure Layer**: External systems and implementations
- **Interfaces Layer**: API and web controllers
2025-03-24 12:52:54 +01:00
The architecture makes it easy to extend functionality or swap components without affecting the core system.
2025-03-19 00:44:27 +01:00
## 🚧 Development
```bash
# Core development workflow
cargo build # Build the project
cargo run # Run the project locally
cargo check # Quick check for compilation errors
2025-03-26 18:33:22 +01:00
# Optimized builds
cargo build --release # Build with full optimization (LTO enabled)
cargo run --release # Run optimized build
2025-03-19 00:44:27 +01:00
# Testing
cargo test # Run all tests
cargo test <test_name> # Run a specific test
2025-03-26 18:33:22 +01:00
cargo bench # Run benchmarks with optimized settings
2025-03-19 00:44:27 +01:00
# Code quality
cargo clippy # Run linter
cargo fmt # Format code
# Debugging
RUST_LOG = debug cargo run # Run with detailed logging
```
## 🗺️ Roadmap
2025-03-24 12:52:54 +01:00
I'm actively working on improving OxiCloud with features that I need personally:
2025-03-19 00:44:27 +01:00
2025-03-24 12:52:54 +01:00
- User authentication and multi-user support (in progress)
- File sharing with simple links
- WebDAV support for desktop integration
- Basic file versioning
- Simple mobile-friendly web interface enhancements
- Trash bin functionality (in progress)
2025-03-19 00:44:27 +01:00
2025-03-24 12:52:54 +01:00
See [TODO-LIST.md ](TODO-LIST.md ) for my current development priorities.
2025-03-19 00:44:27 +01:00
## 🤝 Contributing
2025-03-26 10:40:57 +01:00
Contributions are welcome! The project is still in early stages, so there's lots of room for improvement.
2025-03-19 00:44:27 +01:00
2025-03-26 10:40:57 +01:00
Please see [CONTRIBUTING.md ](CONTRIBUTING.md ) for detailed information on how to contribute to OxiCloud. All contributors are expected to follow our [Code of Conduct ](CODE_OF_CONDUCT.md ).
2025-03-19 00:44:27 +01:00
## 📜 License
2025-03-26 10:40:57 +01:00
OxiCloud is available under the [MIT License ](LICENSE ). See the [LICENSE ](LICENSE ) file for more information.
2025-03-19 00:44:27 +01:00
---
2025-03-24 12:52:54 +01:00
Built by a developer who just wanted better file storage. Feedback and contributions welcome!