Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pztrn/fastpastebin
Uberfast pastebin in Go
https://github.com/pztrn/fastpastebin
go gogetable golang pastebin
Last synced: 3 months ago
JSON representation
Uberfast pastebin in Go
- Host: GitHub
- URL: https://github.com/pztrn/fastpastebin
- Owner: pztrn
- License: mit
- Created: 2018-04-29T07:50:47.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-08-19T20:54:59.000Z (over 2 years ago)
- Last Synced: 2024-08-03T15:16:43.695Z (6 months ago)
- Topics: go, gogetable, golang, pastebin
- Language: Go
- Size: 4.53 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - pztrn/fastpastebin - Uberfast pastebin in Go (golang)
README
# Fast Pastebin
[![Build Status](https://ci.code.pztrn.name/api/badges/apps/fastpastebin/status.svg)](https://ci.code.pztrn.name/apps/fastpastebin)
Easy-to-use-and-install pastebin software written in Go. No bells or whistles, no websockets and even NO JAVASCRIPT!
**Please, use [my gitea](https://code.pztrn.name/apps/fastpastebin) for bug reporting. All other places are mirrors!**
Also, [join Matrix room](https://matrix.to/#/%23fastpastebin:pztrn.online?via=matrix.org) for near-realtime chat.
## 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
* Not known at this moment.
## Installation and updating
Just issue:
```bash
CGO_ENABLED=0 go install go.dev.pztrn.name/fastpastebin/cmd/fastpastebin@VERSION
```Replace `VERSION` with a [tag of your choice](https://code.pztrn.name/apps/fastpastebin/releases).
This command can be used to update Fast Paste Bin.
Also Fast Paste Bin is dockerized, see [here](https://code.pztrn.name/apps/-/packages/container/fastpastebin) for instructions.
Compose file with resources limits, as used by me:
```yaml
---
version: "2.4"services:
fastpastebin:
restart: always
image: code.pztrn.name/apps/fastpastebin:0.4.1
volumes:
- "./fastpastebin.yaml:/app/fastpastebin.yaml"
ports:
- "25544:25544"
cpus: 2
mem_limit: 1G
memswap_limit: 0
```## Configuration
Take a look at [example configuration file](examples/fastpastebin.yaml.dist) 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
### Branching, versions, etc
There is a `develop` branch which represents current development state. **All new commits (by me) and merge requests (by others) should go to that branch**.
Branch `master` represents "latest version" state and always stable.
### Code
Use linters, formatters, etc. VSCode with Go plugin is recommended for developing as it will perform most of linting-formatting
actions automagically.Also, Sublime Text with LSP-gopls will also work just fine.
Try to follow [Go's code review comments](https://github.com/golang/go/wiki/CodeReviewComments) with few exceptions:
* 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.