96 lines
2.8 KiB
Markdown
96 lines
2.8 KiB
Markdown
# Sentry On-Premise
|
|
|
|
Official bootstrap for running your own [Sentry](https://sentry.io/) with [Docker](https://www.docker.com/).
|
|
|
|
## 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!
|
|
|
|
1. `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!
|
|
2. `docker-compose run web config generate-secret-key` - Generate a secret key.
|
|
Add it to `docker-compose.yml` in `base` as `SENTRY_SECRET_KEY`.
|
|
3. `docker-compose run web upgrade` - Build the database.
|
|
Use the interactive prompts to create a user account.
|
|
4. `docker-compose up -d` - Lift all services (detached/background mode).
|
|
5. 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](https://github.com/InAnimaTe/docker-postgres-s3-archive) 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](https://caddyserver.com/). Caddy will handle automatic
|
|
SSL certificate obtainment and renewal from
|
|
[Let's Encrypt](https://letsencrypt.org/) 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](https://docs.sentry.io/server/installation/docker/)
|
|
* [Bug Tracker](https://github.com/getsentry/onpremise)
|
|
* [Forums](https://forum.sentry.io/c/on-premise)
|
|
* [IRC](irc://chat.freenode.net/sentry) (chat.freenode.net, #sentry)
|