Programming language: HTML
License: BSD 3-clause "New" or "Revised" License
Tags: Encryption     Paste     Pastebins    

pastey alternatives and similar software solutions

Based on the "Pastebins" category.
Alternatively, view pastey alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of pastey or a related project?

Add another 'Pastebins' Software solution



A lightweight, self-hosted paste platform


  • Self-contained system without external database dependencies
  • Automatic programming language detection
  • Optional on-disk encryption
  • Optional single use pastes
  • Optional expiration date
  • QR code generation
  • Theme system
  • IP/network whitelisting and blocking
  • Endpoint rate limiting
  • Fully configurable via environment variables
  • Included script for uploading files/content from stdin



home new view







It is highly recommended that you use the official Docker image to run Pastey. To do so, simply run:

$ docker run -d -p 5000:5000 -v /path/to/local/dir:/app/data cesura/pastey:latest

Change /path/to/local/dir to a local folder you would like to use for persistent paste storage. It will be mounted in the container at /app/data.

Pastey will then be accessible at http://localhost:5000

Docker (non-AVX processor)

If your processor does not have support for AVX instructions, the "latest" image will fail to run. This is due to a decision by Tensorflow to enable this compile flag by default in version 1.5+. However, Anaconda's distribution of Tensorflow supports older architectures even in the 2.x line. You can instead use the image tagged latest-conda:

$ docker run -d -p 5000:5000 -v /path/to/local/dir:/app/data cesura/pastey:latest-conda


If you prefer to use docker-compose:

$ wget https://raw.githubusercontent.com/Cesura/pastey/main/docker-compose.yml && docker-compose up -d

Note that this must be modified if you wish to use a local directory for storage, rather than a Docker volume.


With language detection


  • Python 3.8
  • AVX-enabled processor (or a Python environment configured to use Anaconda's Tensorflow)
$ git clone https://github.com/Cesura/pastey.git && cd pastey && mkdir ./data
$ pip3 install -r requirements.txt
$ python3 app.py 

Without language detection

If you prefer to not use the language detection feature, use the included patch_no_tensorflow.sh script to remove the guesslang requirements:

$ git clone https://github.com/Cesura/pastey.git && cd pastey && mkdir ./data
$ ./patch_no_tensorflow.sh && pip3 install -r requirements.txt
$ python3 app.py 


Here is a list of the available configuration options: | Environment Variable | config.py Variable | Description | Default Value | |-----------------------------|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------| | PASTEY_DATA_DIRECTORY | data_directory | Local directory for paste storage | ./data | | PASTEY_LISTEN_ADDRESS | listen_address | Address to listen on | | | PASTEY_LISTEN_PORT | listen_port | Port to listen on | 5000 | | PASTEY_USE_WHITELIST | use_whitelist | Enable/disable whitelisting for admin tasks (view recent, delete, config) | True | | PASTEY_WHITELIST_CIDR | whitelist_cidr | List of whitelisted IP addresses or networks (in CIDR format). When passed as an environment variable, it should be a comma-separated list. | [ '' , '' , '' , '' ] | | PASTEY_BLACKLIST_CIDR | blacklist_cidr | List of blocked IP addresses or networks (in CIDR format). When passed as an environment variable, it should be a comma-separated list. | [] | | PASTEY_RESTRICT_PASTING | restrict_pasting | Enable/disable restricting of pasting to whitelisted users | False | | PASTEY_RATE_LIMIT | rate_limit | Rate limit for pasting, for non-whitelisted users | 5/hour | | PASTEY_GUESS_THRESHOLD | guess_threshold | Threshold for automatic language detection guesses. If a result is below this value, it is treated as Plaintext. | 0.20 | | PASTEY_RECENT_PASTES | recent_pastes | Number of recent pastes to show on the home page | 10 | | PASTEY_BEHIND_PROXY | behind_proxy | Inform Pastey if it is behind a reverse proxy (nginx, etc.). If this is the case, it will rely on HTTP headers X-Real-IP or X-Forwarded-For. NOTE: Make sure your proxy config sets these values | False | | PASTEY_DEFAULT_THEME | default_theme | Select which theme Pastey should use by default. This is overridden by client options. | Light | | PASTEY_PURGE_INTERVAL | purge_interval | Purge interval (in seconds) for checking expired pastes in background thread | 3600 | | PASTEY_FORCE_SHOW_RECENT | force_show_recent | Show recent pastes on the home page, even to non-whitelisted users (without delete button) | False | | PASTEY_IGNORE_GUESS | ignore_guess | Ignore these classifications for language detection | ['TeX', 'SQL'] | | PASTEY_SHOW_CLI_BUTTON | show_cli_button | Enable/disabling showing of CLI button on home page | True |

Docker configuration

For Docker environments, it is recommended that the options be passed to the container on startup:

$ docker run -d -p 5000:5000 -e PASTEY_LISTEN_PORT=80 -e PASTEY_BEHIND_PROXY="True" cesura/pastey:latest