No description
Find a file
dvdsk 28463e48c1
Adds a feature no-c-deps which makes microbin easy to crosscompile
With `no-c-deps` enabled microbin can be compiled for aarch64 by simply
passing in `--no-default-features`, `--no-c-deps` & `--target
aarch64-unknown-linux-musl`. The resulting binary is fully static and
does *not* depend on glibc. Therefore it can be deployed to any linux
target running an aarch64 cpu (arm). There is no need for any
containers.

There where four obstactles to easily statically linking microbin
with musl.

- The syntect library depended on the onigura regex engine. With
  `no-c-deps` it uses `fancy-regex` a slower alternative fully written
  in rust.
- Dependency actix-web supported zstd compression requiring the system
  zstd library to be present.
- The rusqlite library build and linked the C-library sqlite. That needs
  a crosscompiler and various crosscompile packages. With `no-c-deps`
  enabled the sqlite db option is disabled and the -json-db arg must be
  used. If the user does not pass -json-db microbin will panic when
  starting with a clear error message.
- reqwest was using openssl for reporting telemetry and checking for new
  versions. With `no-c-deps` it uses rustls with crypto provider
  rustcrypto. While rustcrypto has not been formally verified it should
  be good enough for sending telemetry (which should not contain any
  secure/personal data anyway) and checking versions.
2024-10-22 18:14:54 +02:00
.cargo Adds a feature no-c-deps which makes microbin easy to crosscompile 2024-10-22 18:14:54 +02:00
.github Update FUNDING.yml 2023-07-15 11:06:43 +03:00
src Adds a feature no-c-deps which makes microbin easy to crosscompile 2024-10-22 18:14:54 +02:00
templates Upgrade deps 2024-03-13 21:23:24 +01:00
.env Implemented uploader password 2023-07-11 20:04:52 +03:00
.gitignore update sqlite directory and gitignore 2023-07-08 22:42:02 +03:00
Cargo.lock Adds a feature no-c-deps which makes microbin easy to crosscompile 2024-10-22 18:14:54 +02:00
Cargo.toml Adds a feature no-c-deps which makes microbin easy to crosscompile 2024-10-22 18:14:54 +02:00
compose.yaml Update compose.yaml 2023-07-12 08:04:43 +03:00
docker-setup.sh Docker setup script 2023-07-02 13:04:28 +03:00
Dockerfile Update Dockerfile 2023-07-01 23:18:06 +03:00
LICENSE Update LICENSE 2023-07-10 13:56:42 +03:00
README.md Fix typo in README 2023-07-11 22:05:57 +03:00
render.yaml Update render.yaml 2022-06-04 23:30:39 +01:00
SECURITY.md Getting ready for 1.2.0 release: many smaller requests implemented 2022-10-29 14:11:55 +03:00

Screenshot

MicroBin

Build crates.io Docker Image Docker Pulls Support Server

MicroBin is a super tiny, feature rich, configurable, self-contained and self-hosted paste bin web application. It is very easy to set up and use, and will only require a few megabytes of memory and disk storage. It takes only a couple minutes to set it up, why not give it a try now?

Check out the Public Test Server at pub.microbin.eu!

Or host MicroBin yourself

Run our quick docker setup script (DockerHub):

bash <(curl -s https://microbin.eu/docker.sh)

Or install it manually from Cargo:

cargo install microbin;
curl -L -O https://raw.githubusercontent.com/szabodanika/microbin/master/.env;
source .env;
microbin

On our website microbin.eu you will find the following:

Features

  • Entirely self-contained executable, MicroBin is a single file!
  • Server-side and client-side encryption
  • File uploads (eg. server.com/file/pig-dog-cat)
  • Raw text serving (eg. server.com/raw/pig-dog-cat)
  • QR code support
  • URL shortening and redirection
  • Animal names instead of random numbers for upload identifiers (64 animals)
  • SQLite and JSON database support
  • Private and public, editable and uneditable, automatically and never expiring uploads
  • Automatic dark mode and custom styling support with very little CSS and only vanilla JS (see water.css)
  • And much more!

What is an upload?

In MicroBin, an upload can be:

  • A text that you want to paste from one machine to another, eg. some code,
  • A file that you want to share, eg. a video that is too large for Discord, a zip with a code project in it or an image,
  • A URL redirection.

When is MicroBin useful?

You can use MicroBin:

  • To send long texts to other people,
  • To send large files to other people,
  • To share secrets or sensitive documents securely,
  • As a URL shortener/redirect service,
  • To serve content on the web, eg. configuration files for testing, images, or any other file content using the Raw functionality,
  • To move files between your desktop and a server you access from the console,
  • As a "postbox" service where people can upload their files or texts, but they cannot see or remove what others sent you,
  • Or even to take quick notes.

...and many other things, why not get creative?

MicroBin and MicroBin.eu are available under the BSD 3-Clause License.

© Dániel Szabó 2022-2023