Skip to content

Tethik/burn-after-reading

Repository files navigation

burn-after-reading

A service to share short term messages stored in memory. Using client side crypto where the key is shared via the url hash.

Demo

ℹ️ Consider checking out yopass that does very much the same as this project, but is more well maintained.

Deployment

The service is available as a docker image that you can use. Alternatively, you can also use a wsgi-server, e.g. uwsgi. The easiest way is probably to use something like the following docker-compose file to run the service via docker.

version: "3"

services:
  burn-after-reading:
    image: ghcr.io/tethik/burn-after-reading:latest
    environment:
      - MAX_CONTENT_LENGTH=16777216
      - BURN_DATA_PATH=/opt/data/
      - BURN_MAX_STORAGE=1024

    # Expose port 80
    # ports:
    #   - 80:80

    # Persist data
    # volumes:
    #   - /root/docker-services/burn-after-reading/data:/opt/data

Configuration

The application supports configuration through the following environment variables.

BURN_DATA_PATH=./data/
BURN_MAX_STORAGE=1024
MAX_CONTENT_LENGTH=16777216
BURN_ALLOW_PROXY_IP=False
  • BURN_DATA_PATH decides where the service should store the data. If you want to store in memory, you can use /dev/shm.
  • BURN_MAX_STORAGE decides max how many documents the service will store. This is not related to the actual disk space used, only the actual count of messages currently stored.
  • MAX_CONTENT_LENGTH is the max request size, roughly how big the document is allowed to be in bytes.
  • BURN_ALLOW_PROXY_IP toggles whether or not to trust proxy HTTP headers rather. If the service is running behind a proxy, e.g. traefik, you may need to enable this with BURN_ALLOW_PROXY_IP=True.

Tech and Credits