Skip to content

DesSolo/enigma2

Repository files navigation

ENIGMA

Docker Pulls Docker Image Version (latest by date) codecov GitHub

OpenSource self-hosted solution to transfer disposable links, like onetimesecret.com

Demo

demo

Run container

docker run --rm -p 9000:9000 dessolo/enigma2:latest

Examples

see deployments examples

Features

  • Secure:
    • Secrets are encrypted using AES-256.
    • Secrets are deleted immediately after being viewed.
    • An optional confirmation step prevents accidental secret exposure.
  • Flexible Configuration:
    • Configure the application with a single config.yml file.
    • Pluggable storage backends: use in-memory for testing or Redis for production.
    • Set a lifetime for secrets.
    • Customize secret token length.
  • Easy to Deploy and Scale:
    • Ready-to-use Docker image and Docker Compose example.
    • Stateless server design allows for horizontal scaling.
    • Healthcheck endpoint for service monitoring.
  • Developer Friendly:
    • Easily rebrand and customize HTML templates (see Customisation).
    • Structured request logging with request IDs for easier debugging.
    • Graceful shutdown to prevent data loss.

Configuration

For more details see example config.
Default config file path is /etc/enigma2/config.yml. You can override it by specifying the path in the CONFIG_FILE_PATH environment variable.

Available secret storages

Memory

val: memory
Keeping all secrets in memory

⚠️ Attention! not for productions use!!!: old secrets are removed only on request, please choose another storages, like redis

Redis

val: redis
Keeping all secrets in redis

Build project

docker
docker build -t enigma .

binary

make build-server

Run compiled project

docker
docker run --rm --name="enigma" -p 9000:9000 localhost/enigma

binary

./enigma2_server_{VERSION}_{OS}_{ARCH}

Customisation

You can change the html templates to suit your needs.