.dockerignore | ||
.gitignore | ||
config.yml | ||
docker-compose.yml | ||
Dockerfile | ||
Makefile | ||
README.md | ||
requirements.txt | ||
sentry.conf.py |
Sentry On-Premise
Official bootstrap for running your own Sentry with Docker.
Requirements
- Docker 1.10.0+
- Compose 1.6.0+ (optional)
Up and Running
Assuming you've just cloned this repository, the following steps will get you up and running in no time!
mkdir -p data/{sentry,postgres}
- Make our local database and sentry config directories. This directory is bind-mounted with postgres so you don't lose state!docker-compose run web config generate-secret-key
- Generate a secret key. Add it todocker-compose.yml
inbase
asSENTRY_SECRET_KEY
.docker-compose run web upgrade
- Build the database. Use the interactive prompts to create a user account.docker-compose up -d
- Lift all services (detached/background mode).- Access your instance at
localhost:9000
!
Note that as long as you have your database bind-mounted, you should be fine stopping and removing the containers without worry.
Backing up postgres
Following with the trend of containers, you could even add something like this to backup postgres to an AWS S3 bucket:
postgresqlbackup:
image: inanimate/postgres-s3-archive:9.5
restart: always
links:
- postgres:postgres
environment:
- "AWS_ACCESS_KEY_ID=PUTACCESSIDHERE"
- "AWS_SECRET_ACCESS_KEY=PUTSECRETKEYHERE"
- "BUCKET=s3://awesomebackupsbucket/sentry"
- "SYMMETRIC_PASSPHRASE=hahacanthaxme"
- "NAME_PREFIX=sentry-database-backup"
- "PGHOST=postgres"
- "PGPORT=5432"
This container runs pgdump
to take snapshots of your database on a
certain time frame. You could also use other backup facilities on the
host which you're running the containers.
Reverse Proxying (SSL/TLS)
The absolute easiest way to get SSL/TLS protecting your Sentry server is to use Caddy. Caddy will handle automatic SSL certificate obtainment and renewal from Let's Encrypt for you.
Here is an example Caddyfile
configuration:
sentry.example.net {
proxy / web:9000 {
transparent
}
tls {
max_certs 1
}
}
The above would work with a caddy entry in docker-compose.yml
like:
caddy:
image: abiosoft/caddy:0.9.3
restart: always
volumes:
- ./Caddyfile:/etc/Caddyfile
- ./caddydata:/root/.caddy
ports:
- "80:80"
- "443:443"
links:
- web
Resources
- Documentation
- Bug Tracker
- Forums
- IRC (chat.freenode.net, #sentry)