Files
Oxicloud/README.md
T

124 lines
4.6 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
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
![OxiCloud Dashboard](doc/images/Captura%20de%20pantalla%202025-03-23%20230739.png)
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
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
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
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!