Skip to content

ezy2be/filebin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

filebin

Dead-simple file upload & share web app. Drag, drop, download, done.

Tech Stack

Layer Choice
Language Go 1.24
Base image scratch (3.5MB)
Build Multi-stage Docker
Runtime Rootless (uid 1000, distroless)
Storage Bind mount to host

Quick Start

# Build
docker build -t filebin ~/Develop/filebin/

# Run
docker run --rm -d -p 8080:8080 -v /tmp/filebin_data:/data --name filebin filebin

# Open
open http://localhost:8080

# Stop
docker rm -f filebin

How It Works

  1. Go HTTP server listens on :8080
  2. GET / serves the upload page (file list + upload form)
  3. POST /upload accepts a multipart file, saves to /data/<random_id>.<ext>
  4. GET /f/<id> serves the file for download
  5. Data persists in the host bind mount — kill the container, keep the files

Known Issues & Gotchas

  • No auth, no rate limiting. Local use only. Don't expose to the internet.
  • Files are stored by random ID, not original name (multi-user safety).
  • No file size limit aside from disk space.
  • Container runs as root (scratch image quirk with bind mounts). Image is still minimal and isolated.

Roadmap

  • Password-protected uploads
  • File expiry / auto-cleanup
  • CLI upload via curl alias

Credits

Built in one sitting by opencode-ai, while the dev was at the shop getting tea.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors