If a user encounters an error but you don’t know about, did it happen at all?

Sentry is one of the several options for error tracking across many platforms and languages. Sentry has a great free option for 10,000 errors per month and a single user, but they also offer a self-hosted option that is 100% free. This post aims to help you configure your own installation of Sentry using docker-compose.

Assumptions

I will start by assuming that you have Docker and docker-compose installed and working. It would also be great if you had some experience with both of these.

Instructions

For your convenience I am providing a zip with the 3 files I describe below. It cannot just be executed ‘as-is’ you must make the configuration changes described in this post. sentry_docker_3_2018.zip

Save the following file as docker-compose.yml. It tells docker what containers to create and what environment variables to use when running them. Fill in the missing portions. The containers are configured to save their data to /srv/sentry so you may need to create this path or choose a different path.

version: '3'

services:
# OPTIONAL: If you want to get emails from sentry include this docker container
smtp:
image: 'tianon/exim4:latest'
environment:
GMAIL_USER: 'GMAIL_USER@gmail.com'
GMAIL_PASSWORD: 'GMAIL_PASSWORD_OR_GMAIL_APP_PASSWORD' sentry-base:
image: 'sentry:latest'
container_name: sentry-base
restart: unless-stopped
depends_on:
- sentry-redis
- sentry-postgres
links:
- sentry-redis
- sentry-postgres
ports:
- 880:9000
env_file:
- sentry.env
volumes:
- /srv/sentry/sentry:/var/lib/sentry/files sentry-cron:
image: 'sentry:latest'
restart: unless-stopped
depends_on:
- sentry-base
links:
- sentry-redis
- sentry-postgres
command: "sentry run cron"
env_file:
- sentry.env
volumes:
- /srv/sentry/sentry:/var/lib/sentry/files sentry-worker:
image: 'sentry:latest'
depends_on:
- sentry-base
links:
- sentry-redis
- sentry-postgres
command: "sentry run worker"
env_file:
- sentry.env
volumes:
- /srv/sentry/sentry:/var/lib/sentry/files sentry-redis:
image: 'redis:latest'
sentry-postgres:
image: 'postgres:latest'
environment:
POSTGRES_USER: sentry
POSTGRES_PASSWORD: sentry
POSTGRES_DB: sentry
volumes:
- /srv/sentry/postgres:/var/lib/postgresql/data

Next, save the environment variables file as sentry.env and edit it as appropriate.

# OPTIONAL: Include if you're using email
SENTRY_EMAIL_HOST=smtp SENTRY_POSTGRES_HOST=sentry-postgres
SENTRY_DB_USER=sentry
SENTRY_DB_PASSWORD=sentry
SENTRY_REDIS_HOST=sentry-redis # OPTIONAL: If you want GitHub integration
GITHUB_APP_ID=#FILL ME IN
GITHUB_API_SECRET=#FILL ME IN
GITHUB_EXTENDED_PERMISSIONS=["repo"] # OPTIONAL: Include if Sentry is available over HTTPS
SOCIAL_AUTH_REDIRECT_IS_HTTPS=true
SENTRY_SECRET_KEY=

If you want to use GitHub integration follow the steps below, otherwise skip ahead.

GitHub Integration

Make a new GitHub OAuth application at this link and enter in an application name. The “Homepage URL” and “Authorization callback URL” should both be set to the web root of your new Sentry install, such as “https://sentry.io/”.

Copy the “Client ID” and “Client Secret” from GitHub and paste them into the sentry.env file described above as “GITHUB_APP_ID” and “GITHUB_API_SECRET” respectively.

If your Sentry will be accessible over HTTPS, include the optional environment variable “SOCIAL_AUTH_REDIRECT_IS_HTTPS”.

Bringing up the service for the first time

Automatic Script

Utilize the script below or manually type the commands to generate a new secret key, build the database, and start the service.

#!/bin/bash

# Generate a random secret key and put it into the environment variable file
sed -i "$ s/$/$(docker-compose run --rm sentry-base sentry config generate-secret-key)/" sentry.env # Run database migrations (build the database)
docker-compose run --rm sentry-base sentry upgrade --noinput # Startup the whole service
docker-compose up -d

Save this file as sentry-install.sh and then make it executable by running chmod +x sentry-install.sh. Next, run the file by doing ./sentry-install.sh. This file will write a new secret key to the sentry.env file, so it is important that it is named in that way and that there are no additional lines after the “SENTRY_SECRET_KEY=”.

Manually

To do this all manually, run

– docker-compose exec sentry-base sentry config generate-secret-key put the output into the sentry.env file as “SENTRY_SECRET_KEY”.

– Next, run docker-compose exec sentry-base sentry upgrade which will initialize the postgres database. This command will need to be run every time the Sentry docker image is updated.

– Finally, use docker-compose up -d to bring up the service.

If you ran the commands above manually, then you’re done. If you used the script however, the service is up but there is no administrator.

Create the Administrator Account

Use the following command to create the administrator.

docker-compose exec sentry-base sentry createuser --email YOUR_EMAIL --password YOUR_NEW_PASSWORD --superuser --no-input

from https://mikedombrowski.com/2018/03/self-hosting-sentry-with-docker-and-docker-compose/

Self-hosting Sentry With Docker and Docker-compose的更多相关文章

  1. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行

    本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...

  2. Docker,Docker Compose,Docker Swarm,Kubernetes之间的区别

    Dcoker Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我 ...

  3. 物联网架构成长之路(24)-Docker练习之Compose容器编排

    0.前言 一开始学的之后,是想一步到位直接上Kubernetes(K8s)的,后面没想到,好像有点复杂,有些概念不是很懂.因此学习东西还是要循序渐进,慢慢来.先了解单机编排技术Docker Compo ...

  4. docker和docker compose常用操作命令

    首先区分一下docker中几个概念 Image:镜像,相当于一个root文件系统,不包含任何动态数据 Container:容器,镜像运行时的实体,实质是进程,容器进程运行于属于自己的独立的命名空间 d ...

  5. Docker 0x13: Docker 构建集群/服务/Compose/分布式服务栈

    目录 Docker 构建集群/服务/Compose/分布式服务栈 集群 初始化集群服务 安装docker-machine 管理节点和工作节点 docker集群构建完成 集群中部署应用 集群服务访问特性 ...

  6. docker swarm和compose 的使用(阿里)

    基本的docker使用参考:Docker 入门 到部署Web 程序- (阿里面试常用的docker命令和优点) 昨天去阿里面试 问我如果给你5台服务器 如何部署docker,我说一个个拷贝,面试官听了 ...

  7. Dockerfile & Docker Swarm & Docker Stack & Docker Compose

    Dockerfile 通俗地讲,它是为了指导单个镜像从无到有的构建过程.如果你镜像是从Docker registry上面拉下来的,那就用不到这个文件:如果你是自己的应用,想打包成镜像,那就需要这个文件 ...

  8. linux安装docker和docker compose

    运行 sudo -s 切换到root用户. 1.卸载旧版本Docker(如果系统之前没安装过Docker,可以跳过): yum remove docker \ docker-client \ dock ...

  9. docker和docker compose安装使用、入门进阶案例

    一.前言 现在可谓是容器化的时代,云原生的袭来,导致go的崛起,作为一名java开发,现在慌得一批.作为知识储备,小编也是一直学关于docker的东西,还有一些持续继承jenkins. 提到docke ...

  10. [Docker基础]Docker安装教程

    Install Docker Docker支持几乎所有的Linux发行版,也支持Mac和Windows. 各操作系统的安装方法可参考Docker官网. 安装环境 ubuntu 16.04 Docker ...

随机推荐

  1. PAT_A1155#Heap Paths

    Source: PAT A1155 Heap Paths (30 分) Description: In computer science, a heap is a specialized tree-b ...

  2. 【剑指Offer】22、从上往下打印二叉树

      题目描述:   从上往下打印出二叉树的每个节点,同层节点从左至右打印.   解题思路:   本题实际上就是二叉树的层次遍历,深度遍历可以用递归或者栈,而层次遍历很明显应该使用队列.同样我们可以通过 ...

  3. Linux基础:uniq命令总结

    本文只总结一些常用的用法,更详细的说明见man uniq和 uniq --help. uniq命令 uniq命令主要用于去重. 需要注意的是,不相邻的行不算重复值. 语法格式 Usage: uniq ...

  4. nginx下部署showdoc

    1. 安装nginx服务器sudo apt-get install nginx -y 2. 启动服务sudo service nginx start 3. 安装php环境 sudo apt-get i ...

  5. redis liunx系统安装

    同事总结非常好,借鉴一下 原文地址:https://www.cnblogs.com/dslx/p/9291535.html redis安装 下载redis的安装包上传到Linux服务器,安装包如下 h ...

  6. 【Zoj 4061】Magic Multiplication

    [链接] 我是链接,点我呀:) [题意] [题解] /* for a[1] from 1~9 1*1=1 2*1=2 3*1=3 1*2=2 2*2=4 3*2=6 1*3=3 2*3=6 3*3=9 ...

  7. LightOJ1234 Harmonic Number

    /* LightOJ1234 Harmonic Number http://lightoj.com/login_main.php?url=volume_showproblem.php?problem= ...

  8. 在TOMCAT上手工生成及部署WAR包

    以前是用ECLIPSE或是其它IDE自动生成,不明了. 这次手写JAVA,先生成CALSS来部署, 之后用WAR包来部署.(查了资料,好像直接用JAR来部署TOMCAT的WEB项目,不得行) 就上次生 ...

  9. 服务器session,Tomcat有自己的session维护机制,apache有自己的session维护机制

    1.SESSION一般不是你说的这种工作方式,你打开一个浏览器,再打开一个,请求同一个网址,然后其中一个登陆,另外一个绝对不会也登陆.SESSION和浏览器本身这个程序就是挂钩的,一般不通过IP和端口 ...

  10. 【高级算法】禁忌搜索算法解决3SAT问题(C++实现)

    转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46440389 近期梳理,翻出了当年高级算法课程做的题目.禁忌搜索算法解决3SAT问 ...