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