Dionisio 1e8a7dd5bb feat: redesign admin panel & profile page, optimize Dockerfile, remove rootless
- Completely redesign admin.html matching OxiCloud design system
- Create standalone profile.html page with avatar, details & password change
- Optimize Dockerfile: 3-stage build, non-root user, OCI labels, layer cache
- Add .dockerignore to reduce build context
- Remove redundant Dockerfile.rootless & rootless-compose.yml
- Redesign login language selector as compact dropdown with search
- Fix CI/CD workflows (ci.yml, docker-build.yml, docker-publish.yml)
- Update app.js to navigate to profile page instead of modal
2026-02-11 14:09:40 +01:00
2026-02-08 22:44:42 +01:00
2025-03-17 21:28:08 +01:00
2025-03-17 21:28:08 +01:00
2025-04-13 03:23:53 +02:00

OxiCloud

License: MIT Latest Release GitHub Stars GitHub Issues GitHub Forks Last Commit

A fast, simple alternative to NextCloud

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.

OxiCloud Dashboard

Why OxiCloud?

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, Spanish and Persian out of the box.

Quick Start

You need Rust 1.70+, Cargo, and PostgreSQL 13+.

git clone https://github.com/DioCrafts/oxicloud.git
cd oxicloud

# Set up your database connection
echo "DATABASE_URL=postgres://username:password@localhost/oxicloud" > .env

# Build and run
cargo build --release
cargo run --bin migrate --features migrations
cargo run --release

Open http://localhost:8085 in your browser.

Docker (alternative)

docker compose up -d

That's it. The app runs on port 8086.

Architecture

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

cargo build                 # Build
cargo run                   # Run locally
cargo test                  # Run tests
cargo clippy                # Lint
cargo fmt                   # Format

# For debugging
RUST_LOG=debug cargo run

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

I'm working on these when I have time:

  • File sharing via links
  • WebDAV for desktop sync
  • Basic versioning
  • Mobile app improvements

Check TODO-LIST.md for the full list.

Contributing

The project is early stage. There's plenty to improve.

Read CONTRIBUTING.md before submitting a PR. Follow the Code of Conduct.

License

MIT. See LICENSE.


Questions? Open an issue. Want to help? PRs welcome.

S
Description
No description provided
Readme MIT 52 MiB
Languages
Rust 63.5%
Hurl 10.2%
TypeScript 8.5%
Svelte 8.2%
Shell 3.8%
Other 5.6%