From dcbf59d229266c2472272f868f1f9712f9ef13bd Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Tue, 4 Jul 2017 09:54:59 +0100 Subject: Small changes to README.md. Changed LICENSE to Affero GPL 3+ --- README.md | 57 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 11 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index e5cac53..ddf5add 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,67 @@ -## binnit -- minimal pastebin-like in golang +## binnit -- minimal pastebin clone in golang -That's just it. Preliminary version of a minimal, no-fuss -pastebin-like service in golang. +That's just it. A minimalist, no-fuss pastebin clone server in +golang. It supports only two operations: -It serves pastes in the format: +* store a new paste, through a POST request +* retrieve a paste using its unique ID, through a GET request + +what else do you need? + +## WTF? + +`binnit` serves pastes in the format: mypasteserver.org/abcdef1234567890 and stores them in a folder, one file per paste, whose filename is -equal to the paste ID. The unique ID of a paste is obtained from the -SHA256 of the concatenation of title, time, and content. Rendering is -minimal, but can be enhanced. +identical to the paste ID. The unique ID of a paste is obtained from +the SHA256 of the concatenation of title, time, and content. Rendering +is minimal, on purpose, but based on a customisable template. `binnit` is currently configured through a simple key=value configuration file, whose name can be specified on the command line -through the option `-c `. The available options are: +through the option `-c `. The configurable options are: * server\_name (the FQDN where the service is reachable from outside) * bind\_addr (the address to listen on) * bind\_port (the port to bind) * paste\_dir (the folder where pastes are kept) * templ\_dir (the folder where HTML files and templates are kept) -* max_size (the maximum allowed length of a paste, in bytes. Larger +* max\_size (the maximum allowed length of a paste, in bytes. Larger pastes will be trimmed to that length) * log_fname (path to the logfile) +## Why another pastebin? + +There are hundreds of pastebin-like servers in the wild. But the +overwhelming majority of them is _overbloated_ software, depending on +lots of libraries/frameworks/tools, providing a whole lot of useless +features, and implying a useless amount of complexity. + +A paste server must be able to do two things, 1) create a new paste +and return its ID, and 2) retrieve an existing paste using its +ID. `binnit` does just and only these two things, in the simplest +possible way, without any external dependency. If you need more, then +`binnit` is not for you. + +If you want to strip `binnit` down even further, you could consider +removing: + +* sanity checks and error management +* logging +* the external configuration file +* code comments + +> It seems that perfection is attained not when there is nothing more +> to add, but when there is nothing more to remove (Antoine de Saint +> Exupéry) + +## LICENSE -### TODO +`binnit` can be used, modified, and redistributed under the terms of +the GNU Affero General Public Licence, version 3 of the Licence or, at +your option, any later version. Please see the LICENSE.md file for +details. -* provide a better standard template -- cgit v1.2.3