Analytics cookies only (Google Analytics, PostHog). No ad networks, no cross-site tracking. See our privacy policy.
Self-host MicroBin
updated Oct 2026deployed by usprices checked · Jul 2026Install verified on Ubuntu 26.04 · Oct 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →
A small, self-contained pastebin and file-sharing server: paste text or upload a file, get a short link, optionally with an expiry, a password, client-side end-to-end encryption or a burn-after-reading limit. A single Rust binary with a built-in admin page.
Runs on a VPS from $4/mo (Kamatera 1GB, 1 GB RAM) · prices checked Sep 2026
Our recommendation
Pick MicroBin when you want a pastebin you can drop onto the smallest VPS: the README calls it self-contained and says it only requires a few megabytes of memory and disk. You paste text or upload files and get a link such as `/file/pig-dog-cat` (identifiers are animal names), with private or public, editable or read-only, expiring or never-expiring uploads, server-side and client-side end-to-end encryption, QR codes, URL shortening, raw text serving and multiple attachments. It is BSD-3-Clause Rust with an SQLite or JSON database. Our snippet is the Docker Hub image as a Compose file, pinned to a release tag, with the admin password generated into `.env`. We did not find an upstream RAM minimum, so our 64 MB floor is an estimate. The catalog's PrivateBin encrypts everything in the browser and is the stricter zero-knowledge choice; Opengist stores snippets as Git repositories.
What you need
Any VPS with at least 64 MB of RAM
A domain you control — most self-hosted setups need HTTPS in front of them
MicroBin's configuration file flags these before you open it to other people:
non-negotiableWithout extra settings anyone who can reach the page can upload, and the /pastalist page lists public uploads; MICROBIN_NO_LISTING hides the list and MICROBIN_READONLY with MICROBIN_UPLOADER_PASSWORD locks uploading behind a password. MICROBIN_BASIC_AUTH_USERNAME and MICROBIN_BASIC_AUTH_PASSWORD put HTTP basic auth in front of the whole site.
non-negotiableThe admin page at /admin/ is enabled with MICROBIN_ADMIN_USERNAME and MICROBIN_ADMIN_PASSWORD. The project's sample .env ships the default password m1cr0b1n, so our snippet generates a random one instead; unset the variables if you do not want the page at all.
non-negotiableData lives in /app/microbin_data (SQLite by default), which our microbin_data volume holds; back it up. The image is a distroless one that runs as a non-root user, so a bind mount needs matching ownership.
non-negotiablePort 8080 is plain HTTP, so put a TLS reverse proxy in front. The README's quick setup is a script piped to bash from microbin.eu; we use the published image instead and pin 2.1.4.