Uberfast pastebin in Go
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
Stanislav Nikitin 2b44a60ee7
The Great Linting Fixes, Drone configuration fix (again) and flatfile changes.
Great linting fixes has been applied, thanks to golangci-lint for
extensive reporting.

Fixed Drone configuration to use array for when-branch statement in
Docker plugin.

Flatfile storage from now will write files with 0600 permission for
greater security.
1 year ago
assets Move from fileb0x to embed.FS. Fixes #22. 2 years ago
cmd/fastpastebin The Great Linting Fixes, Drone configuration fix (again) and flatfile changes. 1 year ago
docker CI configuration. 4 years ago
domains The Great Linting Fixes, Drone configuration fix (again) and flatfile changes. 1 year ago
examples Added maximum request body size limiting. 3 years ago
internal The Great Linting Fixes, Drone configuration fix (again) and flatfile changes. 1 year ago
systemd Private pastes, systemd unit file, design updates. 5 years ago
.drone.yml The Great Linting Fixes, Drone configuration fix (again) and flatfile changes. 1 year ago
.gitignore Update golang versions everywhere, use alpine 3.13 for image, remove vendor dir. 2 years ago
.gitlab-ci.yml Fix registry logging in by CI when uploading Docker image. 2 years ago
.golangci.yml More Greater Linting. 2 years ago
CHANGELOG.md Changelog and v0.1.0. 5 years ago
Dockerfile Update golang versions everywhere, use alpine 3.13 for image, remove vendor dir. 2 years ago
LICENSE License header everywhere. We're on MIT. 5 years ago
README.md Use newer golang with Drone and update badge in README. 1 year ago
builder.sh Move to Go modules (#10) 4 years ago
docker-compose.yml Update golang versions everywhere, use alpine 3.13 for image, remove vendor dir. 2 years ago
fileb0x.yml Fixed Safari stuck when clicking on dropdowns by updating Bulma. 4 years ago
go.mod More Greater Linting. 2 years ago
go.sum More Greater Linting. 2 years ago

README.md

Fast Pastebin

Build Status Keybase XLM

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, mysql and postgresql.

Caveats

Installation and updating

Just issue:

CGO_ENABLED=0 go get -u -v go.dev.pztrn.name/fastpastebin/cmd/fastpastebin

This command can be used to update Fast Paste Bin.

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 Go's code review comments with few exceptions:

  • Imports should be organized in 3 groups: stdlib, local, other. See this file 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 WYSIWYG content.
  • CLI client for pastes and files uploading.