---
title: "Deploy MicroBin"
description: "MicroBin — self-hosted pastebin and file sharing in one click"
category: "Storage"
url: https://railway.com/deploy/microbin
---

# Deploy MicroBin

MicroBin — self-hosted pastebin and file sharing in one click

**[Deploy MicroBin on Railway](https://railway.com/template/microbin)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/microbin/manifest.json

- **Creator:** INAPP
- **Category:** Storage

## Template content

### microbin

- **Source:** https://github.com/INAPP-Mobile/microbin
- **Health check:** /
- **Public domain:** Yes

## Documentation

[![Deploy on Railway](https://railway.app/button.svg)](https://railway.com/deploy/microbin?utm_campaign=microbin)

![MicroBin — upload page](https://raw.githubusercontent.com/INAPP-Mobile/microbin/main/assets/microbin-index.png)

*MicroBin's upload page — upstream screenshot from the MicroBin project (`.github/index.png`).*

# Deploy and Host

MicroBin is a super tiny, feature-rich, self-contained pastebin and file-sharing web app written in Rust. Paste text, upload a file, or shorten a URL — each upload gets a memorable animal-name link, with optional expiry, burn-after-reading, encryption, and QR codes. One-click deploy creates a single Rust service with a persistent volume and no companion database: pastas, files, and settings live in a JSON store on the volume. After deploy, open the public URL and paste — no account needed to upload; log in at `/auth_admin` (username `admin`, generated password from the deploy form) to manage uploads.

## About Hosting

Hosting MicroBin on Railway keeps your pastes on your own volume instead of a SaaS. The deployment is a single always-on Rust service: the wrapper maps Railway's injected `PORT` onto MicroBin's HTTP port on every boot (upstream ignores generic `PORT`), derives the public URL at boot from the live Railway domain, and seeds a generated admin password from the deploy form instead of the upstream default. The deploy form has one generated field and nothing to type. Telemetry and update checks are disabled in the image.

## Why Deploy

- Your pastes, your files: uploads live in a JSON store and a file store on your own Railway volume — not in a chat log or a SaaS that can disappear.
- Tiny footprint: a single Rust binary, a few MB of RAM at rest — no database service to run or pay for.
- No account needed to share: anyone with the link can read a public pasta, so a shared link just works.
- Animal-name links: uploads get memorable names instead of random strings, and the built-in QR code puts a link on a phone in one scan.
- Private by design: expiry, burn-after-reading, and client-side encryption mean a paste can self-destruct or stay unreadable on the server.
- URL shortener included: paste a URL and MicroBin redirects it, so the same deploy covers quick link shortening.

## Common Use Cases

- Moving text and files between machines: paste on the desktop, open the animal-name link on the server.
- Sharing a file too large for chat: upload it and send the link instead of splitting a zip.
- A personal postbox: people can upload files or texts to you without seeing what others sent.
- Quick notes and code snippets: paste, set an expiry, and share the link.
- Serving small static content: the Raw view serves a pasta's content directly, handy for config files and test fixtures.

## Dependencies for

- A single MicroBin service (Rust, JSON store, no companion service).
- One persistent volume mounted at `/data` (JSON store at `/data/pasta_data/database.json`, file store at `/data/attachments`, public files at `/data/public`).
- Environment variables (condensed reference — full documentation in the repo README):

| Variable | Default | Description |
| --- | --- | --- |
| `MICROBIN_ADMIN_PASSWORD` | `${{secret(16)}}` | Admin password for `/auth_admin` (username `admin`). Generated per deploy; the upstream default is never used. |
| `MICROBIN_ADMIN_USERNAME` | `admin` | Admin username. Baked into the image. |
| `MICROBIN_PORT` | (derived from `$PORT` at boot) | HTTP port MicroBin listens on. Set by the entrypoint from Railway's injected `PORT`. |
| `MICROBIN_DATA_DIR` | `/data` | Data home on the volume. Baked into the image. |
| `MICROBIN_PUBLIC_PATH` | (derived from `RAILWAY_PUBLIC_DOMAIN` at boot) | Public URL of the instance. Set manually only for a custom domain. |
| `MICROBIN_DISABLE_TELEMETRY` | `true` | Disables the upstream telemetry thread. Baked into the image. |
| `MICROBIN_DISABLE_UPDATE_CHECKING` | `true` | Disables the upstream update check. Baked into the image. |

### Deployment Dependencies

- Plan tier: Hobby is enough — the service idles at a few MB of RAM.
- No companion database, no extra services.


## Similar templates

- [RustFS | (Just Updated) S3 Object Store, Public URL and Keys Set](https://railway.com/deploy/rustfs-or-just-updated-s3-object-store-p) — S3-compatible object store, keys and public URL preset, volume kept
- [TimescaleDB](https://railway.com/deploy/timescaledb-railway-template) — A PostgreSQL-based time-series database for analytics on Railway.
- [Neo4j 2026.10 Community](https://railway.com/deploy/neo4j-202610-community) — Neo4j graph database with APOC, Browser, Bolt TCP proxy and a volume

Open this page in a browser: https://railway.com/deploy/microbin
