A modern, self-hosted file manager for your homelab
Website · Quick start · Docs · Releases
BoxBox is a self-hosted file manager for homelab and NAS-style servers. It provides a browser UI for mounted Linux paths, large file and folder uploads, previews, code editing, search, share links, and background file operations.
Watch BoxBox in 40 seconds. Music: “the kill 2” by Lex Amarni & 2muchmotion.
BoxBox v0.3.1 fixes GHSA-jj9r-xc63-6c4p. Upgrade to v0.3.1 and sign in again after the update. See the security release notes for registry storage and rollback guidance.
The preferred deployment path is Docker Compose using the published GitHub Container Registry image. No source checkout is required.
mkdir -p boxbox
cd boxbox
curl -fsSLO https://raw.githubusercontent.com/jR4dh3y/BoxBox/master/docker-compose.yml
curl -fsSLO https://raw.githubusercontent.com/jR4dh3y/BoxBox/master/.env.example
mkdir -p backend
curl -fsSL https://raw.githubusercontent.com/jR4dh3y/BoxBox/master/backend/config.yaml -o backend/config.yaml
cp .env.example .env
$EDITOR .env
docker compose pull
docker compose up -dGenerate the bcrypt value requested by .env, then open http://localhost:8080 and sign in as admin with the plaintext password you hashed. For reverse proxy examples, local source builds, and update workflows, see docs/docker.md.
- Browse multiple configured mount points from one web UI, with drives and folder shortcuts (places) listed separately.
- Upload large files and whole folders with chunked, resumable uploads that keep nested paths intact.
- Preview images, audio, video, PDF, and documents, and edit text and code in the built-in Monaco editor.
- Share files and folders with expiring, revocable links. Access levels are View only, Upload only, Upload + delete, and Full access. Recipients see your wallpaper.
- Download folders as ZIP archives from the browser or a public share page.
- Copy, move, and delete files through background jobs with live WebSocket progress.
- Search directories by file or folder name.
- Configure read-only mounts, users, rate limits, and allowed origins.
![]() Browse drives and places |
![]() Preview without downloading |
![]() Edit configs in the browser |
![]() Create share links per file or folder |
![]() Recipients browse, preview, and download without an account |
|
- File and folder sharing. Token links with View only, Upload only, Upload + delete, or Full access, optional expiry, revocation, and ZIP download.
- Folder uploads. Pick or drop whole folders. Nested paths are kept.
- Drives and places. Top-level mounts are drives; nested mounts show up under Places. Set
kindto override. - Owner wallpaper on share pages. Your wallpaper is stored on the server and shown to recipients.
- Port 8080 by default. The container listens on
8080instead of80. See the upgrade notes before updating.
backend/ Go API server and embedded frontend host
frontend/ SvelteKit application
docs/ Public project documentation
scripts/ Local development helpers
Dockerfile Unified frontend/backend production image
Full documentation lives at boxbox.radhey.dev/docs. Release and upgrade notes are in docs/release.md.
MIT. See LICENSE.
The promo video uses “the kill 2” by Lex Amarni & 2muchmotion. The song is credited to its artists and is not covered by the MIT license.




