pb

Lightweight pastebin built using flask.
26 Mar 202041622

pb

Overview

pb is a lightweight pastebin and url shortener built using flask.

There is currently no known general-purpose public pb deployment. See #246 for details.

Features

  • full paste and short-url CRUD
  • private pastes
  • tweakable syntax highlighting
  • terminal recording playback
  • markup rendering

Suggested versions

  • python >= 3.6
  • mongodb >= 3.2
  • docker >= 17.04

Development

pb comes with a Dockerfile and docker-compose.yaml to start development environments easily. Refer to relevant documentation for how to install docker and docker-compose.

start pb with:

docker-compose up

pb will be listening on http://localhost:10002

Deployment

ptpb.pw (the reference deployment) uses ptpb-deploy, which includes TLS termination, automatic x509 certificate rotation, and response caching.

For a simpler deployment, the included Dockerfile and docker-compose.yaml can be used verbatim, and are easy to read/study.

Other best practices include:

  • not using a shared/system python, when this is shared with packages other than pb
    • using site-packages is fine/preferred inside a container or isolated filesystem, otherwise use venv
    • if you need/want a version of python other than what your distribution packages, pyenv is a good option
  • not using debian or centos
    • these provide severely outdated packages, and require additional work to compensate for this