karton/README.md

150 lines
3.8 KiB
Markdown

# Karton
A small, rusty pastebin with URL shortener functionality.
The github repository is a mirror of [this gitlab repository](https://gitlab.com/obsidianical/microbin).
This is a fork of [MicroBin](https://github.com/szabodanika/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](https://github.com/kognise/water.css)
- Customizable endpoints
## Installation guide
Karton is available on [Docker hub](https://hub.docker.com/r/schrottkatze/karton), [crates.io](https://crates.io/crates/karton) 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.
```nix
karton.url = "git+https://gitlab.com/obsidianical/microbin.git";
```
```nix
# 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
- [x] Removed light mode
- [x] Rebrand
- [x] New name and logo
- [x] New README
- [x] New theme
- [x] Distribution on crates.io
- [x] Distribution on Docker hub
- [x] Image embedding in pasta page
- [x] Custom names file
- [x] Click logo/name to get to root
### v2.1
- [ ] Installation guides
- [x] 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](https://schrottkatze.de).
Join [the matrix room](https://matrix.to/#/#s10e-microbin:matrix.org) to chat!
Contact me via e-mail at [contact@schrottkatze.de](mailto:contact@schrottkatze.de).