Uberfast pastebin in Go
Stanislav Nikitin 7c8a7432f2 Switched to my Gitea. 3 weeks ago
api Switched to my Gitea. 3 weeks ago
assets Navbar burger isn't used, removed. 4 months ago
captcha Switched to my Gitea. 3 weeks ago
cmd/fastpastebin Switched to my Gitea. 3 weeks ago
config Database dialects, proper database shutdown, pagination in configuration. 4 months ago
context Switched to my Gitea. 3 weeks ago
database Switched to my Gitea. 3 weeks ago
examples Database dialects, proper database shutdown, pagination in configuration. 4 months ago
pagination Switched to my Gitea. 3 weeks ago
pastes Switched to my Gitea. 3 weeks ago
systemd Private pastes, systemd unit file, design updates. 5 months ago
templater Switched to my Gitea. 3 weeks ago
vendor Dependencies. 5 months ago
.gitignore Switched to my Gitea. 3 weeks ago
CHANGELOG.md Changelog and v0.1.0. 5 months ago
Gopkg.lock Dependencies. 5 months ago
Gopkg.toml Initial commit. 5 months ago
LICENSE License header everywhere. We're on MIT. 5 months ago
README.md Switched to my Gitea. 3 weeks ago
fileb0x.yml Templates and templater, added footer with application data. Fixes #8 and #7. 4 months ago

README.md

Fast Pastebin

Chat on OFTC

Easy-to-use-and-install pastebin software written in Go. No bells or whistles, no websockets and even NO JAVASCRIPT!

Github repository is a force-pushed mirror of repository at pztrn’s Lab. Please submit all pull requests and issues at my lab!

Current functionality

  • Create and view public and private pastes.
  • Syntax highlighting.
  • Pastes expiration.
  • Passwords for pastes.
  • Multiple storage backends. Currently: flatfiles and mysql.

Caveats

Installation and updating

Just issue:

go get -u -v github.com/pztrn/fastpastebin/cmd/fastpastebin

This command can be used to update Fast Paste Bin.

WARNING: installation by compiling Fast Paste Bin from sources require at least 300 megabytes of free RAM! Eventually it’ll run even on 64MB-powered VM, it’s only a compilation issue.

Configuration

Take a look at example configuration file which contains all supported options and their descriptions.

Configuration file position is irrelevant, there is no hardcoded paths where Fast Paste Bin looking for it’s configuration. Use -config CLI parameter or FASTPASTEBIN_CONFIG environment variable to specify path.

Developing

Developers should install fileb0x which is used as replacement to go-bindata for embedding assets into binary. After changing assets they should be recompiled into Go code. At repository root execute this command and you’ll be fine:

fileb0x fileb0x.yml

Also if you’re changed list of assets (by creating or deleting them) be sure to fix files list in fileb0x.yml file!

The rest is default - use linters, formatters, etc. VSCode with Go plugin is recommended for developing as it will perform most of linting-formatting actions automagically. Try to follow Golang’s things with few exceptions:

  • Imports should be organized in 3 groups: stdlib, local, other. See here for example.
  • We’re not forcing any limits on line length for code, only for comments, they should be 72-76 chars long.

ToDo

This is a ToDo list which isn’t sorted by any parameter at all. Just a list of tasks you can help with.

  • User CP.
  • Files uploading.
  • Passwords for files.
  • Pastes forking and revisioning (like git or github gists).
  • Possibility to copy-paste-edit WISYWIG content.
  • CLI client for pastes and files uploading.