Skip to main content

Self-destructing messages

Project description

ephemeral - Self-destructing messages

Ephemeral is a web application for sharing short messages. Messages can be opened only once, giving an instant feedback to recipient on whether the message was compromised(read by someone else) or not. This makes the app a reasonably secure, and convenient way to share secrets.

Highlights

  • Simple, easy-to-audit code
  • Messages are encrypted at rest

Installing

pip install ephemeral

After installation you can use the ephemeral.sh command to start the application (see below).

Running

Always put this application behind an HTTPS-terminating reverse proxy when exposing to public networks!

Ephemeral uses Redis as the data store. Assuming Redis is running on localhost,

EPHEMERAL_REDIS_HOST=localhost EPHEMERAL_SECRET_KEY=hunter2 ephemeral.sh 0.0.0.0:8080

will start the application listning on port 8080 on all network interfaces.

Point your browser at http://localhost:8080/add to add a message.

Developing

Prerequisites:

Initialize a virtualenv with dev dependencies installed:

make develop

Project dependencies

Project dependencies shoud always be specified in setup.py using the compatible release notation.

Updating dependencies in virtualenv

Run the following after updating setup.py

make update-deps

Installing development dependencies

Replace <PACKAGE> with the actual name, and <VERSION> with the MAJOR.MINOR (or MAJOR.MINOR.PATCH for versions below 1.0.0) version of the package. Read more on compatible releases.

pipenv install --dev <PACKAGE>~=<VERSION>

Running unit-tests

make test

Starting a development instance of the application

Start the application in development mode with debugging enabled:

make dev-server

Starting/stopping a development Docker stack

The development Docker (Compose) stack includes Redis container and an application container built from source.

Prerequisites:

  • Docker
  • docker-compose

(Re)Build the application image, start a stack in background, and show running containers:

make compose-build

make compose-up

make compose-ps

Stop and destroy running stack:

make compose-down

Running E2E tests

Start a stack and run Behave tests against it:

make compose-up

make e2e-test

Starting a release

Variables:

  • RELEASE_REMOTE set to the name of the Git remote. Set to empty to disable pushes to remote. Default value: origin
  • RELEASE_VERSION override the release version, or leave empty to release the current snapshot (-SNAPSHOT will be stripped off). Empty by default
make release-start

Finishing a release

Variables:

  • RELEASE_REMOTE set to the name of the Git remote. Set to empty to disable pushes to remote. Default value: origin
  • RELEASE_PUBLISH set to 1 to enable publishing of the sdist tarball after the release`
make release-finish

release-finish will leave the release Git tag checked out on completion.

Building and publishing the source distribution:

make publish

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ephemeral-0.1.4.tar.gz (17.8 kB view details)

Uploaded Source

File details

Details for the file ephemeral-0.1.4.tar.gz.

File metadata

  • Download URL: ephemeral-0.1.4.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for ephemeral-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9231e76160b100df82c0288abd523aaa9163b1f846da4f0f58d9868c36d5c71a
MD5 3165a5e04ef888f1fda2a8a86f74caf6
BLAKE2b-256 264e53cc8bc0f63084accabdbc79ab66a2c68e353b5b6944f8e924288fadbf45

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page