Docker Sentry AWS SES
Onbuild Docker image with email backend which supports AWS SES SMTP.
All usage describe in docs below.
ENV variables to provide for AWS SES email backend:
SENTRY_EMAIL_HOST: "< AWS SMTP host, e.g. email-smtp.us-west-2.amazonaws.com >" SENTRY_EMAIL_PORT: 465 SENTRY_EMAIL_USER: "< AWS SES IAM username >" SENTRY_EMAIL_PASSWORD: "< AWS SES IAM password >" SENTRY_EMAIL_USE_TLS: True SENTRY_SERVER_EMAIL: "< From email address >"
What is Sentry?
Sentry is a realtime event logging and aggregation platform. It specializes in monitoring errors and extracting all the information needed to do a proper post-mortem without any of the hassle of the standard user feedback loop.
How to use this image
How to setup a full Sentry instance
Start a Redis container
$ docker run -d --name sentry-redis redis
Start a Postgres container
$ docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
Generate a new secret key to be shared by all
sentrycontainers. This value will then be used as the
$ docker run --rm sentry generate-secret-key
If this is a new database, you'll need to run
$ docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
-itis important as the initial upgrade will prompt to create an initial user and will fail without it
Now start up Sentry server
$ docker run -d --name my-sentry -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry
The default config needs a celery beat and celery workers, start as many workers as you need (each with a unique name)
$ docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron $ docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
If you'd like to be able to access the instance from the host without the container's IP, standard port mappings can be used. Just add
-p 8080:9000 to the
docker run arguments and then access either
http://host-ip:8080 in a browser.
Configuring the initial user
If you did not create a superuser during
upgrade, use the following to create one:
$ docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry createuser
When you start the
sentry image, you can adjust the configuration of the Sentry instance by passing one or more environment variables on the
docker run command line. Please note that these environment variables are provided as a jump start, and it's highly recommended to either mount in your own config file or utilize the
A secret key used for cryptographic functions within Sentry. This key should be unique and consistent across all running instances. You can generate a new secret key doing something like:
$ docker run --rm sentry generate-secret-key
Database credentials for your Postgres server. These values aren't needed if a linked
postgres container exists.
Connection information for your Redis server. These values aren't needed if a linked
redis container exists.
Connection information for a Memcache server. These values aren't needed if a linked
memcached container exists.
Directory where uploaded files will be stored. This defaults to
/var/lib/sentry/files and is a
VOLUME for persistent data.
The email address used for
From: in outbound emails. Default:
Connection information for an outbound smtp server. These values aren't needed if a linked
smtp container exists.
If you're using Mailgun for inbound mail, set your API key and configure a route to forward to
sentry images come in many flavors, each designed for a specific use case.
This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
This image makes it easy to custom build your own Sentry instance by copying in a custom
sentry.conf.py file and installing plugins from
It's also possible to develop custom extensions within your
onbuild package. If the build directory contains a
setup.py file, this will also get installed.
See the official Sentry documentation for more information.
Documentation for this image is stored in the
sentry/ directory of the
docker-library/docs GitHub repo. Be sure to familiarize yourself with the repository's
README.md file before attempting a pull request.