2 stable releases
2.0.1 | Mar 10, 2023 |
---|---|
2.0.0 | Mar 5, 2023 |
#678 in HTTP server
1.5MB
1K
SLoC
Karton
A small, rusty pastebin with URL shortener functionality.
The github repository is a mirror of this gitlab repository.
This is a fork of MicroBin.
Features
- Animal names (by default) or custom namefiles instead of just hashes (though hashes are an option too!)
- File and image uploads
- raw text serving
- URL shortening
- QR codes
- Listing and removing pastas (though currently everyone can do that)
- Expiration times
- Editable pastas
- Syntax highlighting
- Styling via water.css
- Customizable endpoints
Installation guide
Karton is available on Docker hub, crates.io and using the nix flake.
The only "officially supported" (I will actively debug and search for the problem) method is the last one using nix flakes.
Installation via the nix flake
Add the repository to your inputs.
karton.url = "git+https://gitlab.com/obsidianical/microbin.git";
# microbin.nix
{ inputs, config, pkgs, ... }:
{
environment.systemPackages = [ inputs.karton.defaultPackage."x86_64-linux" ];
systemd.services.karton = {
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment = {
# set environment variables to configure karton
KARTON_HASH_IDS = "";
KARTON_EDITABLE = "";
KARTON_PRIVATE = "";
KARTON_HIGHLIGHTSYNTAX = "";
# adjust this to your domain
KARTON_PUBLIC_PATH = "https://example.org";
KARTON_QR = "";
# configure endpoints to be shorter
KARTON_URL_EP = "u";
KARTON_RAW_EP = "r";
KARTON_PASTA_EP = "p";
};
script = "${inputs.karton.defaultPackage."x86_64-linux"}/bin/karton";
# register a simple systemd service
serviceConfig = {
Type = "simple";
RootDirectory="/";
WorkingDirectory = "/karton";
};
};
}
Roadmap
This is only a rough time guide for what to get done by which version, nothing fixed.
v2.0
- Removed light mode
- Rebrand
- New name and logo
- New README
- New theme
- Distribution on crates.io
- Distribution on Docker hub
- Image embedding in pasta page
- Custom names file
- Click logo/name to get to root
v2.1
- Installation guides
- nix flake
- Copying embed urls more easily (some button for that)
- Api for requesting customized url info
- Config file support
- Markdown pastas
v2.2
- Proper docs
- Improved rustdoc
- Non-web client library
- CLI client
- Easier customization of instance names and logos
- Easier basic themeing
- Colors
- Corner rounding
v2.3
- Encrypted pastas
v3.0
- Deprecate JSON db, replace with SQLite
- Rework internal data structures
- Map custom keys to ids
- Make hash ids, names and custom keys usable at once
- Users
- Reporting pastas
- Admin panel
- Improve remove api
- Status/health/info improvements
- Storage thats left
- Db status
- Pastas on the instance
- Users
- Errors
future
- Federation
- Requesting pastas from other instances
- When cli is complete, set default instance to route requests over
- Fine grained permissions
- Postgresql db support
- Pasta comments?
not related to features, therefor not versioned
- Official central instance
- Donation setup?
- Distribution on nixpkgs
- Website
Contact
This fork of MicroBin was created by Schrottkatze.
Join the matrix room to chat!
Contact me via e-mail at contact@schrottkatze.de.
Dependencies
~27–40MB
~661K SLoC