LocalBox is a private cloud storage that runs locally. Upload files, organize them into folders, download whenever you need. No third-party servers, just you and your data on one machine.
Built in Go with a vanilla JS frontend. Fast, simple, no unnecessary bloat.
cmd/
main.go application entry point
deployment/docker/ Docker deployment
internal/app/
app.go initialization, route configuration
endpoint/ HTTP handlers (login, register, files)
service/ business logic for files and authentication
mw/ middleware for session validation
repository/
database/ SQLite: user and file storage
redis/ Redis: session management and caching
website/
LocalCloudMain.html login/register menu
login.html login form
register.html signup form
dashboard.html cloud interface (all JS magic happens here)
- Request hits the Echo server (port 8080)
- Middleware checks cookies (valid session in Redis?)
- Endpoint handles the request (signup, file upload, download)
- Service talks to the database (SQLite stores users and metadata, Redis caches sessions)
- Frontend sends AJAX, updates the UI
# 1. Clone
git clone https://github.com/rukiamuq-hard/LocalBox.git
cd LocalBox
# 2. Create File of DB
New-Item -ItemType File -Path deployment/docker/data/Users.db -Force - Windows
touch deployment/docker/data/Users.db - Linux
# 3. Start docker
make up
# 4. Open in browser
# http://localhost:8080
That's it. Sign up, upload files, use it.
- Go 1.26.3 — language and runtime
- Echo v5 — web framework
- SQLite (modernc.org) — user and file database
- Redis (go-redis) — session storage
- HTML + CSS + Vanilla JS — interface (no frameworks)
- Docker - for deployment, no interface
| Feature | Status |
|---|---|
| Sign up and login | ✓ |
| File upload | ✓ |
| Folder organization | ✓ |
| File download | ✓ |
| Drag-and-drop move | ✓ |
| Multi-user support | ✓ |