π¦ CloudBoxIO
A lightweight, self-hosted file storage and sharing server built with Go and Fiber.
CloudBoxIO allows users to securely upload, share, and manage files with JWT-based authentication and an optional minimal UI. Built for simplicity and portability, it runs as a single binary and stores data using SQLite.
π Features
- π User authentication and authorization using JWT
- π Upload, list, and download personal files
- π Shared file support (public listing)
- ποΈ File deletion
- π§ Filename conflict resolution (e.g., file(1).txt)
- π SQLite-based metadata and user storage
- π Optional file logging and server logs
- π§ Auto-generated .env file with required flags and JWT secret
- ποΈ Admin-only user management
- ποΈ Upload multiple files
- π Graceful shutdown
- π± Minimal Web UI
- π Search through uploaded or shared files by filename using query parameters
- π§ Rate Limiting
- π§ͺ Unit testing
</> UI
CloudBoxIO includes a clean, responsive UI for file management out of the box.
β‘ Quick Start
β
Requires Go 1.24 or higher (Go is only needed if building from source)
git clone https://github.com/AumSahayata/cloudboxio.git
cd cloudboxio
go mod tidy
go build .
./cloudboxio
π‘ A .env file will be generated automatically on first run. You can edit it to change port, file directories, upload size, rate limiting, and more.
π Documentation
See the Wiki for full documentation:
π License
This project is licensed under the MIT License
π¬ Need Help or Want to Contribute?
- Your feedback, ideas, and contributions are always welcome. Whether itβs fixing a bug, improving the docs, or suggesting a new feature β every bit helps make CloudBoxIO better for everyone.
- Ask questions or share ideas in Discussions
- Report bugs via Issues
- Suggestions welcome! You can contribute:
- π Docker support
- π» Frontend improvements
- π οΈ CI pipelines or GitHub Actions
- π§ͺ Integration testing
- π Bring your own idea
π¨βπ» Author
Made with β€οΈ by Aum Sahayata