Home - AumSahayata/cloudboxio GitHub Wiki
๐ฆ CloudBoxIO
CloudBoxIO is a lightweight, self-hosted file storage and sharing service built using Go and Fiber. It supports file uploads, secure JWT-based authentication, shared/public files, and more โ all backed by SQLite for simplicity and portability.
๐ Features
- ๐ User authentication (Signup/Login) 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
โ๏ธ Tech Stack
- Language: Go (Golang)
- Web Framework: Fiber
- Database: SQLite
- Auth: JWT
- Logging: Standard Library log package
- Environment Handling:
godotenv
๐งช Getting Started
Prerequisites
- Go 1.24+
- SQLite3 (optional CLI for viewing DB)
๐ ๏ธ Run Locally
git clone https://github.com/yourusername/cloudboxio.git
cd cloudboxio
go mod tidy
go run main.go
๐ Server Info
The server starts at: http://localhost:3000
The .env
file is auto-generated if missing, and will include:
LOG_TO_CONSOLE=true
LOG_FILE_OPS=true
USE_DEFAULT_UI=true
FILES_DIR=uploads/
SHARED_DIR=shared/
JWT_SECRET=<auto-generated>
๐งพ Logging
Logs are saved to logs/server.log by default.
Optional file operation logs go to logs/fileops.log when LOG_FILE_OPS=true
(Default true).
Console logging for server logs can be toggled using LOG_TO_CONSOLE=true
(Default true).
๐ License
This project is open-source and available under the MIT License.
๐งฐ Suggestions or Help?
Feel free to open an issue or PR. You can also consider enhancements like:
- ๐ Docker support
- ๐ป Frontend
- ๐ ๏ธ CI pipelines or GitHub Actions
- ๐ท๏ธ API versioning or rate limiting
- โณ Unit & integration tests
- ๐ด Graceful shutdown
๐จโ๐ป Author
Built with โค๏ธ by Aum Sahayata