mirror of
https://github.com/szabodanika/microbin
synced 2024-11-12 20:27:13 +00:00
No description
28463e48c1
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. |
||
---|---|---|
.cargo | ||
.github | ||
src | ||
templates | ||
.env | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
compose.yaml | ||
docker-setup.sh | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
render.yaml | ||
SECURITY.md |
MicroBin
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