No description
.github | ||
src | ||
templates | ||
.envrc | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
default.nix | ||
Dockerfile | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
README.md | ||
shell.nix |
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
Focus: Modularity, Programmability, APIs
- Installation guides
- nix flake
- Api for requesting customized api info (.well-known endpoint)
- Non-web client library
- CLI client
- better remove api and granularity
v2.2
Focus: Configurability
- Config file support
- Easier basic themeing
- Colors
- Corner rounding
- Proper docs
- Improved rustdoc
- Easier customization of instance names and logos
v2.3
Focus: Better pastas
- Encrypted pastas
- Copying embed urls more easily (some button for that)
- "raw" if it isn't an image, if it is "embed"
- Markdown pastas
v3.0
- entirely new frontend
- Authentication
- basic logins
- oidc
- Moderation
- Permission system
- admin panel
- Deprecate JSON db, replace with SQLite and postgres support
- Rework internal data structures
- Map custom keys to ids
- Make hash ids, names and custom keys usable at once
- Rework internal data structures
- 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.