Uberfast pastebin in Go
Go to file
Stanislav N. aka pztrn 0cca0f453f Database dialects, proper database shutdown, pagination in configuration.
Added possibility to use different database (storage) backends. Currently
supported: flatfiles and mysql. Fixes #2.

Added database shutdown call. This call will properly shutdown database
connections (in case of RDBMS) or flush pastes index cache on disk (in
case of flatfiles).

De-hardcoded pagination count. Fixes #12.
2018-05-27 12:25:01 +05:00
api Navbar burger isn't used, removed. 2018-05-26 13:58:50 +05:00
assets Navbar burger isn't used, removed. 2018-05-26 13:58:50 +05:00
captcha Captcha and design works. 2018-05-01 17:45:36 +05:00
cmd/fastpastebin Templates and templater, added footer with application data. Fixes #8 and #7. 2018-05-26 13:50:13 +05:00
config Database dialects, proper database shutdown, pagination in configuration. 2018-05-27 12:25:01 +05:00
context Database dialects, proper database shutdown, pagination in configuration. 2018-05-27 12:25:01 +05:00
database Database dialects, proper database shutdown, pagination in configuration. 2018-05-27 12:25:01 +05:00
examples Database dialects, proper database shutdown, pagination in configuration. 2018-05-27 12:25:01 +05:00
pagination Pagination links fix. 2018-05-01 17:52:40 +05:00
pastes Database dialects, proper database shutdown, pagination in configuration. 2018-05-27 12:25:01 +05:00
systemd Private pastes, systemd unit file, design updates. 2018-05-01 22:56:45 +05:00
templater Templates and templater, added footer with application data. Fixes #8 and #7. 2018-05-26 13:50:13 +05:00
vendor Dependencies. 2018-05-18 22:31:40 +05:00
.gitignore gitignore, removed my development config and updated README. 2018-04-30 22:43:14 +05:00
CHANGELOG.md Changelog and v0.1.0. 2018-05-19 10:10:30 +05:00
fileb0x.yml Templates and templater, added footer with application data. Fixes #8 and #7. 2018-05-26 13:50:13 +05:00
Gopkg.lock Dependencies. 2018-05-18 22:31:40 +05:00
Gopkg.toml Initial commit. 2018-04-30 18:42:17 +05:00
LICENSE License header everywhere. We're on MIT. 2018-04-30 22:37:36 +05:00
README.md Database dialects, proper database shutdown, pagination in configuration. 2018-05-27 12:25:01 +05:00

Chat on Keybase.io

Fast Pastebin

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

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 https://github.com/UnnoTed/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 https://github.com/golang/go/wiki/CodeReviewComments with few exceptions:

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.