Giter Site home page Giter Site logo

sentry-docker's Introduction

Sentry in Docker

Maintenance

Since Sentry now officially supports installation via Docker - this repository will no longer be updated.

More info on Sentry's Docker installation https://docs.sentry.io/server/installation/docker/.

Warning about build tags

Latest changes introduced some new build tags:

  • 8.0 - current stable version (8.0.X)
  • 7.7 - old stable version (7.7.4) - no longer updated
  • 7.6 - old stable version (7.6.2) - no longer updated
  • 7.5 - old stable version (7.5.6) - no longer updated
  • 7.4 - old stable version (7.4.3) - no longer updated
  • 7.3 - old stable version (7.3.2) - no longer updated
  • 7.2 - old stable version (7.2.0) - no longer updated
  • 7.1 - old stable version (7.1.4) - no longer updated
  • 7.0 - older stable version (7.0.2) - no longer updated
  • 6.4 - even older stable version (6.4.4) - no longer updated
  • dev - current master on github (infrequent builds)
  • latest (the default one used earlier) - is now the same as 8.0

if you want to keep your builds same as before update your Dockerfiles and change FROM slafs/sentry to FROM slafs/sentry:6.4.

Requirements Status

This is my approach for running Sentry inside Docker. Almost everything here is configurable via environment variables (including DATABASES and CACHES settings). It can be easily configured to run with redis (cache, buffers and celery broker), postgres database, LDAP and REMOTE_USER authentication backends.

Quickstart

to run a Sentry instance with default settings (with sqlite, locmem cache and no celery) run:

docker run -d --name=sentry --volume=/tmp/sentry:/data -p 80:9000 -e SECRET_KEY=randomvalue -e SENTRY_URL_PREFIX=http://sentry.mydomain.com slafs/sentry

You can visit now http://sentry.mydomain.com (assuming sentry.mydomain.com is mapped to your docker host) and login with default credentials (username admin and password admin) and create your first team and project.

Your sqlite database file and gunicorn logs are available in /tmp/sentry directory.

Contributing

Try not to fork this repo just to create your own Docker image with some minor tweak. Please open an issue on GitHub and maybe we can include your use case directly within this image :).

You can even write a test case for your feature ;). See CONTRIBUTING.md.

Also feel free to give feedback and comments about this image in general.

Advanced usage

Copy the file with environment variables environment.example e.g cp environment.example environment and after tweaking some values run sentry like this

docker run -d --name=sentry --volume=/tmp/sentry:/data -p 80:9000 --env-file=environment slafs/sentry

ENTRYPOINT for this image is a little wrapper script around default sentry executable. Default CMD is start which runs upgrade command (initializes and upgrades the database) and creates a default administrator (superuser) and then runs a http service (as in sentry --config=... start).

All commands and args are passed to the sentry executable. This means

docker run [docker options] slafs/sentry --help

refers to running:

sentry --config=/conf/sentry.conf.py --help

inside the container.

Admin user

You can specify a username, password and email address to create an initial sentry administrator.

Add those variables to your environment file

SENTRY_ADMIN_USERNAME=slafs
SENTRY_ADMIN_PASSWORD=mysecretpass
[email protected]

See django docs for details about createsuperuser command.

The default administrator username is admin with password admin (and root@localhost as email adress).

Postgres

It is recommended to run your sentry instance with PostgreSQL database. To link your sentry instance with a postgres container you can do it like this:

  1. Pull an official PostgreSQL image: docker pull postgres (if you haven't already).
  2. Run postgres container (from the official Docker image): docker run -d --name=postgres_container postgres.
  3. Add DATABASE_URL=postgres://postgres:@postgresdb/postgres to environment file.
  4. Run sentry with linked postgres container: docker run -d --name=sentry --volume=/tmp/sentry:/data -p 80:9000 --env-file=environment --link=postgres_container:postgresdb slafs/sentry

Notice that an alias for your linked postgres container (postgresdb) is the same as a postgres host in DATABASE_URL variable.

DATABASE_URL is a value that is parsed by an external app called dj-database-url.

Redis

Redis container can be used to improve sentry performance in number of ways. It can be used as a:

  • cache backend,
  • sentry buffers,
  • celery broker.

You can link your sentry instance with a redis container like this:

  1. Pull an official Redis image: docker pull redis (if you haven't already).
  2. Run redis container (from the official Docker image): docker run -d --name=redis_container redis

docker run -d --name=sentry --volume=/tmp/sentry:/data -p 80:9000 --env-file=environment --link=postgres_container:postgresdb --link=redis_container:redis slafs/sentry```

If you want to use a different container alias for redis you should add SENTRY_REDIS_HOST=your_redis_alias to environment file.

Cache with redis

To use a redis cache backend add CACHE_URL=hiredis://redis:6379/2 (make sure you won't have a trailing / in this setting) to environment file (where redis is the alias of your linked redis container). See django-cache-url docs for available formats.

Sentry buffers with redis

To use sentry update buffers with redis you must add SENTRY_USE_REDIS_BUFFERS=True to environment file.

If you have many redis containers/hosts you can set a list of those hosts in SENTRY_REDIS_BUFFERS variable so they can be used by sentry. Like this: SENTRY_REDIS_BUFFERS=redis1:6380,redis2:6381.

See sentry docs for details about redis buffer.

Celery with redis (and postgres)

To use Celery in sentry you must add CELERY_ALWAYS_EAGER=False to your environment file and run a celery worker like this:

docker run -d --name=sentry_celery_worker --link=redis_container:redis --link=postgres_container:postgresdb --volume=/tmp/sentry:/data --env-file=environment slafs/sentry celery worker -B

You can also set a different BROKER_URL via environment file by adding this: SENTRY_BROKER_URL=redis://otherredishost:6379/1

You can run as many celery worker containers as you want but remember that only one of them should be run with -B option.

If you're using default values for CELERY_RESULT_SERIALIZER, CELERY_TASK_SERIALIZER and CELERY_ACCEPT_CONTENT (default values support pickle) you have to set C_FORCE_ROOT env var (to say 1) to be able to run celery as a root user. You can avoid this by setting those three to json. Refer to Celery's serializer docs for more info about security implications of using pickle as a task serialization format.

Time-series storage with redis

To have time-series data you must add SENTRY_USE_REDIS_TSDB=True to the environment file.

By default Redis time-series storage will use the Redis connection defined by SENTRY_REDIS_HOST and SENTRY_REDIS_PORT. Similarly to configuring buffers, you can set SENTRY_REDIS_TSDBS to a list of Redis servers: SENTRY_REDIS_TSDBS=redis1:6379,redis2:6380

Email

You can configure all email settings by environment variables with SENTRY_ prefix. You have to also change an email backend and set it to SENTRY_EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend or something similar.

LDAP

With this image You should be able to easily configure LDAP authentication for your Sentry instance. To enable it add SENTRY_USE_LDAP=True to your environment file. Then set the needed options by adding env variables with LDAP_ prefix (see the table below). LDAP authentication backend is provided by django-auth-ldap.

REMOTE_USER

To enable authentication via REMOTE_USER, add SENTRY_USE_REMOTE_USER=True to your environment file. See the AUTH_REMOTE_USER_* env variables below for further configuration.

Available environment variables

Refer to sentry documentation, django documentation, celery documentation and django-auth-ldap documentation for the meaning of each setting.

Environment variable name Django/Sentry setting Type Default value Description
SECRET_KEY SECRET_KEY REQUIRED! set this to something random
SENTRY_URL_PREFIX SENTRY_URL_PREFIX REQUIRED! no trailing slash!
DATABASE_URL DATABASES sqlite:////data/sentry.db
CACHE_URL CACHES locmem://
CELERY_ALWAYS_EAGER CELERY_ALWAYS_EAGER bool True
SENTRY_BROKER_URL BROKER_URL redis://<SENTRY_REDIS_HOST>:<SENTRY_REDIS_PORT>/1
CELERY_RESULT_SERIALIZER CELERY_RESULT_SERIALIZER pickle You may want change it to json. See http://docs.celeryproject.org/en/stable/configuration.html#celery-result-serializer
CELERY_TASK_SERIALIZER CELERY_TASK_SERIALIZER pickle You may want change it to json. See http://docs.celeryproject.org/en/stable/configuration.html#celery-task-serializer
CELERY_ACCEPT_CONTENT CELERY_ACCEPT_CONTENT list pickle,json Comma separated values. You may want change it to json. See http://docs.celeryproject.org/en/stable/configuration.html#celery-accept-content
SENTRY_REDIS_HOST redis
SENTRY_REDIS_PORT int 6379
SENTRY_WEB_HOST SENTRY_WEB_HOST 0.0.0.0
SENTRY_WEB_PORT SENTRY_WEB_PORT int 9000
SENTRY_WORKERS SENTRY_WEB_OPTIONS['workers'] int 3 the number of gunicorn workers
SENTRY_USE_REDIS_BUFFERS bool False
SENTRY_REDIS_BUFFERS SENTRY_REDIS_OPTIONS['hosts']* list <SENTRY_REDIS_HOST>:<SENTRY_REDIS_PORT> comma separated list of redis hosts (host1:port1,host2:port2,...)
SENTRY_USE_REDIS_TSDB bool False
SENTRY_REDIS_TSDBS SENTRY_TSDB_OPTIONS['hosts']* list <SENTRY_REDIS_HOST>:<SENTRY_REDIS_PORT> comma separated list of redis hosts (host1:port1,host2:port2,...)
SENTRY_EMAIL_BACKEND EMAIL_BACKEND django.core.mail.backends.console.EmailBackend
SENTRY_EMAIL_HOST EMAIL_HOST localhost
SENTRY_EMAIL_HOST_PASSWORD EMAIL_HOST_PASSWORD ''
SENTRY_EMAIL_HOST_USER EMAIL_HOST_USER ''
SENTRY_EMAIL_PORT EMAIL_PORT int 25
SENTRY_EMAIL_USE_TLS EMAIL_USE_TLS bool False
SENTRY_SERVER_EMAIL SERVER_EMAIL root@localhost
SENTRY_ALLOW_REGISTRATION SENTRY_ALLOW_REGISTRATION bool False
SENTRY_ADMIN_USERNAME admin username for Sentry's superuser
SENTRY_ADMIN_PASSWORD admin password for Sentry's superuser
SENTRY_ADMIN_EMAIL SENTRY_ADMIN_EMAIL root@localhost email address for Sentry's superuser and a setting as of Sentry 7.3
SENTRY_DATA_DIR /data custom location for logs and sqlite database
TWITTER_CONSUMER_KEY TWITTER_CONSUMER_KEY ''
TWITTER_CONSUMER_SECRET TWITTER_CONSUMER_SECRET ''
FACEBOOK_APP_ID FACEBOOK_APP_ID ''
FACEBOOK_API_SECRET FACEBOOK_API_SECRET ''
GOOGLE_OAUTH2_CLIENT_ID GOOGLE_OAUTH2_CLIENT_ID ''
GOOGLE_OAUTH2_CLIENT_SECRET GOOGLE_OAUTH2_CLIENT_SECRET ''
GITHUB_APP_ID GITHUB_APP_ID ''
GITHUB_API_SECRET GITHUB_API_SECRET ''
TRELLO_API_KEY TRELLO_API_KEY ''
TRELLO_API_SECRET TRELLO_API_SECRET ''
BITBUCKET_CONSUMER_KEY BITBUCKET_CONSUMER_KEY ''
BITBUCKET_CONSUMER_SECRET BITBUCKET_CONSUMER_SECRET ''
SENTRY_USE_LDAP bool False if set to False all other LDAP settings are discarded
LDAP_SERVER AUTH_LDAP_SERVER_URI ldap://localhost
LDAP_BIND_DN AUTH_LDAP_BIND_DN ''
LDAP_BIND_PASSWORD AUTH_LDAP_BIND_PASSWORD ''
LDAP_USER_DN AUTH_LDAP_USER_SEARCH* REQUIRED! if you want to use LDAP auth first argument of LDAPSearch (base_dn) when searching for users
LDAP_USER_FILTER AUTH_LDAP_USER_SEARCH* (&(objectClass=inetOrgPerson)(cn=%(user)s)) third argument of LDAPSearch (filterstr) when searching for users
LDAP_GROUP_DN AUTH_LDAP_GROUP_SEARCH* '' first argument of LDAPSearch (base_dn) when searching for groups
LDAP_GROUP_FILTER AUTH_LDAP_GROUP_SEARCH* (objectClass=groupOfUniqueNames) third argument of LDAPSearch (filterstr) when searching for groups
LDAP_GROUP_TYPE AUTH_LDAP_GROUP_TYPE* '' if set to 'groupOfUniqueNames' then AUTH_LDAP_GROUP_TYPE = GroupOfUniqueNamesType(), if set to 'posixGroup' then AUTH_LDAP_GROUP_TYPE = PosixGroupType().
LDAP_REQUIRE_GROUP AUTH_LDAP_REQUIRE_GROUP None
LDAP_DENY_GROUP AUTH_LDAP_DENY_GROUP None
LDAP_MAP_FIRST_NAME AUTH_LDAP_USER_ATTR_MAP['first_name'] givenName
LDAP_MAP_LAST_NAME AUTH_LDAP_USER_ATTR_MAP['last_name'] sn
LDAP_MAP_MAIL AUTH_LDAP_USER_ATTR_MAP['email'] mail
LDAP_GROUP_ACTIVE AUTH_LDAP_USER_FLAGS_BY_GROUP['is_active'] ''
LDAP_GROUP_STAFF AUTH_LDAP_USER_FLAGS_BY_GROUP['is_staff'] ''
LDAP_GROUP_SUPERUSER AUTH_LDAP_USER_FLAGS_BY_GROUP['is_superuser'] ''
LDAP_FIND_GROUP_PERMS AUTH_LDAP_FIND_GROUP_PERMS bool False
LDAP_CACHE_GROUPS AUTH_LDAP_CACHE_GROUPS bool True
LDAP_GROUP_CACHE_TIMEOUT AUTH_LDAP_GROUP_CACHE_TIMEOUT int 3600
LDAP_LOGLEVEL DEBUG django_auth_ldap logger level (other values: NOTSET (to disable), INFO, WARNING, ERROR or CRITICAL)
SENTRY_USE_REMOTE_USER bool False use REMOTE_USER for authentication; useful if you're behind your own SSO
AUTH_REMOTE_USER_HEADER None if set, this value will be read from the request object instead of REMOTE_USER, as described here. For example: HTTP_X_SSO_USERNAME
SENTRY_INITIAL_TEAM convenient in development - creates an initial team inside Sentry DB with the given name
SENTRY_INITIAL_PROJECT convenient in development - creates an initial project for the above team (owner for both is the created admin )
SENTRY_INITIAL_PLATFORM 'python' convenient in development - indicates a platform for the above initial project
SENTRY_INITIAL_KEY convenient in development - updates a key for the above project so you can set DSN in your client. (e.g. public:secret)
SENTRY_INITIAL_DOMAINS convenient in development - updates allowed domains for usage with raven-js e.g. example.com *.example.com (space separated)
SENTRY_SCRIPTS_DIR convenient in development - required for the wrapper and non Docker scenarios (you can leave this empty)
SENTRY_SECURE_PROXY_SSL_HEADER SECURE_PROXY_SSL_HEADER None when running with SSL set this to 'HTTP_X_FORWARDED_PROTO,https' (comma separated)
SENTRY_USE_X_FORWARDED_HOST USE_X_FORWARDED_HOST bool False when running behind proxy or with SSL set this to 'True'
SENTRY_ALLOW_ORIGIN SENTRY_ALLOW_ORIGIN None allows JavaScript clients to submit cross-domain error reports. (e.g. "http://foo.example"
SENTRY_BEACON SENTRY_BEACON bool True controls sending statistics to https://www.getsentry.com/remote/beacon/
SENTRY_PUBLIC SENTRY_PUBLIC bool False Should Sentry make all data publicly accessible? This should only be used if you’re installing Sentry behind your company’s firewall.
SENTRY_DOCKER_DO_DB_CHECK any if this variable is set (to any non-empty value) the script (sentry_run) will check if DB is accessible before running migrations/service - helps to avoid nasty race conditions

Extending the image

If your use case is out the scope of this generic image, you can extend this image to include your custom packages, configuration etc. and still be able to take advantage of all features here. All you need to do is create your own image based on this one.

For example to install and use a plugin like sentry-github and/or change a setting that isn't managed by this image you can have a following config script my_custom_settings.py:

# get all the configuration from the original image
from sentry_docker_conf import *  # noqa

# change some settings - for example the port
# (of course you can do this also by setting environment variable ``SENTRY_WEB_PORT``)
SENTRY_WEB_PORT = 5000

# configure sentry-github
GITHUB_APP_ID = 'GitHub Application Client ID'
GITHUB_API_SECRET = 'GitHub Application Client Secret'
GITHUB_EXTENDED_PERMISSIONS = ['repo']
...

and a Dockerfile similar to this:

# inherit from this image
FROM slafs/sentry

# who's the boss? :)
MAINTAINER me

# install your extra dependencies e.g. sentry-github
# (there are some dependency issues with redis)
RUN pip install -U sentry-github "redis<2.9.0"

# add your custom settings file
ADD my_custom_settings.py /conf/

# make sentry_docker_conf module importable from your custom script
ENV PYTHONPATH /conf

# use your custom settings file as a default config file for sentry to use
ENV SENTRY_CONF_FILE /conf/my_custom_settings.py

# expose the new port
EXPOSE 5000

Build your image:

docker build -t my_custom_sentry_image .

Now you can run your sentry instance just like before but with different image. So for example this:

docker run -d --name=... --volume=... -p 80:9000 -e SECRET_KEY=... -e SENTRY_URL_PREFIX=http://... slafs/sentry

becomes this:

docker run -d --name=... --volume=... -p 80:5000 -e SECRET_KEY=... -e SENTRY_URL_PREFIX=http://... my_custom_sentry_image

Image for development

If you'd like to use a preconfigured image just to be able to use it in your development process (for example to check if your application is properly logging to sentry) you can also create your own image for this.

Following Dockerfile should be OK::

# inherit from this image
FROM slafs/sentry

# who's the boss? :)
MAINTAINER me

ENV SECRET_KEY somethingsecret
ENV SENTRY_URL_PREFIX http://sentry.domain.com

ENV SENTRY_INITIAL_TEAM testteam
ENV SENTRY_INITIAL_PROJECT testproject
ENV SENTRY_INITIAL_KEY public:secret

RUN /usr/local/bin/sentry_run prepare

Now after building it (like in the above example) my_custom_sentry_image can be started without any env variables and you can use http://public:[email protected]:9000/2 as your SENTRY_DSN setting for raven (or other sentry client of your choice).

sentry-docker's People

Contributors

abesto avatar grundleborg avatar josh-devops-center avatar lorenz avatar lukas-hetzenecker avatar nuklea avatar onlydole avatar orthographic-pedant avatar requires avatar skeetio avatar slafs avatar squidarth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sentry-docker's Issues

Allow passing SCRIPT_NAME / FORCE_SCRIPT_NAME?

I'm trying to run sentry-docker behind a reverse proxy (nginx) which mounts it on a subpath so it's accessible at http://my.host/sentry. However, the auth redirects to http://my.host/auth/login instead of http://my.host/sentry/auth/login which obviously doesn't work; that is, evern with url prefix set correctly.

It seems like passing FORCE_SCRIPT_NAME and optionally SCRIPT_NAME (in addition to SENTRY_URL_PREFIX) may be able to solve this: getsentry/sentry#392, so it makes sense to support passing these values through environment variables.

There's no SSO providers

There are GOOGLE_OAUTH2_CLIENT_ID and GOOGLE_OAUTH2_CLIENT_SECRET settings available in this project, hinting that SSO for Google Login is enabled.
On the /manage/status/environment/ page I see social_auth.backends.google.GoogleBackend under AUTHENTICATION_BACKENDS. But under /organizations/my-company/auth/ I get a No authentication providers are available. message.

Reading some sentry docs about Google SSO shows that sentry-auth-google should be pip installed, but doing docker exec 6e468d98ffb5 pip freeze | grep google gives me no output (except some warning).

"Background workers haven't checked in recently"

Hello!
I'm trying to use this docker image (i'm a total newbie, that's my first time trying to use docker for anything). Here is what i did so far:

  • docker pull slafs/sentry
  • sudo docker run -d --name=sentry --volume=/tmp/sentry:/data -p 80:9000 -e SECRET_KEY=randomvalue -e SENTRY_URL_PREFIX=http://my.domain.com slafs/sentry

There is no any error report in docker logs (just a lot of deprecation warnings) and i'm able to access sentry web panel but there is a red notice on each page saying:

Background workers haven't checked in recently. This can mean an issue with your configuration or a serious backlog in tasks.

The most recent not-warning message in docker logs says

Running service: 'http'

and after that, there is just that: https://gist.github.com/mbajur/57cd8c6979bcb220107e
Have you any idea what possibly gone wrong in here? Am i missing something?

Thanks in advance!

Celery ignoring config

I am trying to disable pickle so I've set the following envirnoment variables:

      CELERY_RESULT_SERIALIZER:     json
      CELERY_TASK_SERIALIZER:       json
      CELERY_ACCEPT_CONTENT:        json

It looks like they are ignored because it reposrts:

Running a worker with superuser privileges when the
worker accepts messages serialized with pickle is a very bad idea!

If you really want to continue then you have to set the C_FORCE_ROOT
environment variable (but please think about this before you do).

User information: uid=0 euid=0 gid=0 egid=0

I enabled C_FORCE_ROOT for now and looks like it can not figure out the broker url:

SENTRY_BROKER_URL:      redis://sentry-redis:6379/1
[2016-03-26 06:18:17,407: ERROR/Beat] beat: Connection error: [Errno 111] Connection refused. Trying again in 6.0 seconds...
[2016-03-26 06:18:23,338: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused.
Trying again in 8.00 seconds...

I've checked and the environment variables apper corectly in the container.

Upgrade Sentry to 8.4

Please upgrade Sentry to 8.4, a lot has been changed recently and it fixes some bugs I've been seeing.

Setting Initial X-Sentry-Token

Thank you for this, I've been using this for a while now without running into any issues.

So from sentry sourcemaps docs

If you want to keep your source maps secret and choose not to upload your source maps directly to Sentry, you can enable the “Security Token” option in your project settings. This will cause outbound requests from Sentry’s servers to URLs originating from your “Allowed Domains” to have the HTTP header “X-Sentry-Token: {token}” appended, where {token} is a secure value you define. You can then configure your web server to allow access to your source maps when this header/token pair is present. You can alternatively override the default header name (X-Sentry-Token) and use HTTP Basic Authentication, e.g. by passing “Authorization: Basic {encoded_password}”.

This is useful when you want to generate this secret token during build time and add it to both webserver config (e.g. nginx) to allow and also making sure that sentry is configured to use the same key. The UI can be found under Project Settings.

Is something like this possible via env variables?

Cannot syncdb on the first run

Full log output:

11/12/2015 6:24:01 PMCreating tables ...
11/12/2015 6:24:01 PMInstalling custom SQL ...
11/12/2015 6:24:01 PMInstalling indexes ...
11/12/2015 6:24:01 PMInstalled 0 object(s) from 0 fixture(s)
11/12/2015 6:24:01 PMMigrating...
11/12/2015 6:24:02 PMRunning migrations for django:
11/12/2015 6:24:02 PM- Nothing to migrate.
11/12/2015 6:24:02 PM - Loading initial data for django.
11/12/2015 6:24:02 PMInstalled 0 object(s) from 0 fixture(s)
11/12/2015 6:24:02 PMRunning migrations for sentry:
11/12/2015 6:24:03 PM - Migrating forwards to 0213_migrate_file_blobs.
11/12/2015 6:24:03 PM > sentry:0061_auto__add_field_group_group_id__add_field_group_is_public
11/12/2015 6:24:03 PM > sentry:0062_correct_del_index_sentry_groupedmessage_logger__view__checksum
11/12/2015 6:24:03 PM > sentry:0063_auto
11/12/2015 6:24:03 PM > sentry:0064_index_checksum
11/12/2015 6:24:03 PM > sentry:0065_create_default_project_key
11/12/2015 6:24:03 PM > sentry:0066_auto__del_view
11/12/2015 6:24:03 PM > sentry:0067_auto__add_field_group_platform__add_field_event_platform
11/12/2015 6:24:03 PM > sentry:0068_auto__add_field_projectkey_user_added__add_field_projectkey_date_added
11/12/2015 6:24:03 PM[WARNING] /usr/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py:903: RuntimeWarning: DateTimeField FakeModel.date_added received a naive datetime (2015-11-12 18:24:03.916683) while time zone support is active.
11/12/2015 6:24:03 PM  RuntimeWarning)
11/12/2015 6:24:03 PM
11/12/2015 6:24:03 PM > sentry:0069_auto__add_lostpasswordhash
11/12/2015 6:24:04 PM > sentry:0070_projectoption_key_length
11/12/2015 6:24:04 PM > sentry:0071_auto__add_field_group_users_seen
11/12/2015 6:24:04 PM > sentry:0072_auto__add_affecteduserbygroup__add_unique_affecteduserbygroup_project_
11/12/2015 6:24:04 PM > sentry:0073_auto__add_field_project_platform
11/12/2015 6:24:04 PM > sentry:0074_correct_filtervalue_index
11/12/2015 6:24:04 PM > sentry:0075_add_groupbookmark_index
11/12/2015 6:24:04 PM > sentry:0076_add_groupmeta_index
11/12/2015 6:24:04 PM > sentry:0077_auto__add_trackeduser__add_unique_trackeduser_project_ident
11/12/2015 6:24:04 PM > sentry:0078_auto__add_field_affecteduserbygroup_tuser
11/12/2015 6:24:05 PM > sentry:0079_auto__del_unique_affecteduserbygroup_project_ident_group__add_unique_a
11/12/2015 6:24:05 PM > sentry:0080_auto__chg_field_affecteduserbygroup_ident
11/12/2015 6:24:05 PM > sentry:0081_fill_trackeduser
11/12/2015 6:24:05 PM > sentry:0082_auto__add_activity__add_field_group_num_comments__add_field_event_num_
11/12/2015 6:24:05 PM > sentry:0083_migrate_dupe_groups
11/12/2015 6:24:05 PM > sentry:0084_auto__del_unique_group_project_checksum_logger_culprit__add_unique_gro
11/12/2015 6:24:06 PM > sentry:0085_auto__del_unique_project_slug__add_unique_project_slug_team
11/12/2015 6:24:06 PM > sentry:0086_auto__add_field_team_date_added
11/12/2015 6:24:06 PM[WARNING] /usr/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py:903: RuntimeWarning: DateTimeField FakeModel.date_added received a naive datetime (2015-11-12 18:24:06.169427) while time zone support is active.
11/12/2015 6:24:06 PM  RuntimeWarning)
11/12/2015 6:24:06 PM
11/12/2015 6:24:06 PM > sentry:0087_auto__del_messagefiltervalue__del_unique_messagefiltervalue_project_ke
11/12/2015 6:24:06 PM > sentry:0088_auto__del_messagecountbyminute__del_unique_messagecountbyminute_projec
11/12/2015 6:24:06 PM > sentry:0089_auto__add_accessgroup__add_unique_accessgroup_team_name
11/12/2015 6:24:06 PM > sentry:0090_auto__add_grouptagkey__add_unique_grouptagkey_project_group_key__add_f
11/12/2015 6:24:06 PM[WARNING] /usr/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py:903: RuntimeWarning: DateTimeField FakeModel.last_seen received a naive datetime (2015-11-12 18:24:06.491398) while time zone support is active.
11/12/2015 6:24:06 PM  RuntimeWarning)
11/12/2015 6:24:06 PM
11/12/2015 6:24:06 PM[WARNING] /usr/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py:903: RuntimeWarning: DateTimeField FakeModel.first_seen received a naive datetime (2015-11-12 18:24:06.503414) while time zone support is active.
11/12/2015 6:24:06 PM  RuntimeWarning)
11/12/2015 6:24:06 PM
11/12/2015 6:24:06 PM > sentry:0091_auto__add_alert
11/12/2015 6:24:06 PM > sentry:0092_auto__add_alertrelatedgroup__add_unique_alertrelatedgroup_group_alert
11/12/2015 6:24:06 PM > sentry:0093_auto__add_field_alert_status
11/12/2015 6:24:07 PM > sentry:0094_auto__add_eventmapping__add_unique_eventmapping_project_event_id
11/12/2015 6:24:15 PM/usr/local/bin/sentry_run: line 38:     6 Killed                  sentry --config=$SENTRY_CONF_FILE upgrade --noinput
11/12/2015 6:24:18 PMTraceback (most recent call last):
11/12/2015 6:24:18 PM  File "/conf/create_team_or_project.py", line 139, in <module>
11/12/2015 6:24:18 PM    main()
11/12/2015 6:24:18 PM  File "/conf/create_team_or_project.py", line 136, in main
11/12/2015 6:24:18 PM    create_admin(username, email, password)
11/12/2015 6:24:18 PM  File "/conf/create_team_or_project.py", line 33, in create_admin
11/12/2015 6:24:18 PM    admin = User.objects.create_superuser(username=username, email=email, password=password)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/models.py", line 195, in create_superuser
11/12/2015 6:24:18 PM    **extra_fields)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/models.py", line 186, in _create_user
11/12/2015 6:24:18 PM    user.save(using=self._db)
11/12/2015 6:24:18 PM  File "/src/sentry/src/sentry/models/user.py", line 69, in save
11/12/2015 6:24:18 PM    return super(User, self).save(*args, **kwargs)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 545, in save
11/12/2015 6:24:18 PM    force_update=force_update, update_fields=update_fields)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 573, in save_base
11/12/2015 6:24:18 PM    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 654, in _save_table
11/12/2015 6:24:18 PM    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 687, in _do_insert
11/12/2015 6:24:18 PM    using=using, raw=raw)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 232, in _insert
11/12/2015 6:24:18 PM    return insert_query(self.model, objs, fields, **kwargs)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1514, in insert_query
11/12/2015 6:24:18 PM    return query.get_compiler(using=using).execute_sql(return_id)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 903, in execute_sql
11/12/2015 6:24:18 PM    cursor.execute(sql, params)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
11/12/2015 6:24:18 PM    return self.cursor.execute(sql, params)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 99, in __exit__
11/12/2015 6:24:18 PM    six.reraise(dj_exc_type, dj_exc_value, traceback)
11/12/2015 6:24:18 PM  File "/usr/local/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
11/12/2015 6:24:18 PM    return self.cursor.execute(sql, params)
11/12/2015 6:24:18 PMdjango.db.utils.ProgrammingError: column "is_managed" of relation "auth_user" does not exist
11/12/2015 6:24:18 PMLINE 1: ..."email", "is_staff", "is_active", "is_superuser", "is_manage...
11/12/2015 6:24:18 PM                                                             ^
11/12/2015 6:24:18 PM
11/12/2015 6:24:22 PMRunning service: 'http'```

Connection error to Redis

Not sure whats happening here? My redis instance is linked and all the ENV variables are setup correctly.

Heres the error after the migrations run:

[ERROR] Error 111 connecting to None:6379. Connection refused.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/sentry/db/models/manager.py", line 150, in __post_save
    cache.set(self.__get_lookup_cache_key(**{pk_name: pk_val}), instance, self.cache_ttl)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django_redis/cache.py", line 30, in _decorator
    raise e.parent
ConnectionError: Error 111 connecting to None:6379. Connection refused.
Top level Sentry exception caught - failed creating log record
Error 111 connecting to None:6379. Connection refused.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/raven/handlers/logging.py", line 65, in emit
    return self._emit(record)
  File "/usr/local/lib/python2.7/site-packages/raven/contrib/django/handlers.py", line 29, in _emit
    return super(SentryHandler, self)._emit(record, request=request)
  File "/usr/local/lib/python2.7/site-packages/raven/handlers/logging.py", line 176, in _emit
    extra=extra, date=date, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/sentry/utils/raven.py", line 39, in capture
    return super(SentryInternalClient, self).capture(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/raven/contrib/django/client.py", line 157, in capture
    result = super(DjangoClient, self).capture(event_type, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/raven/base.py", line 521, in capture
    self.send(**data)
  File "/usr/local/lib/python2.7/site-packages/sentry/utils/raven.py", line 50, in send
    project = Project.objects.get_from_cache(id=settings.SENTRY_PROJECT)
  File "/usr/local/lib/python2.7/site-packages/sentry/db/models/manager.py", line 207, in get_from_cache
    retval = cache.get(cache_key)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django_redis/cache.py", line 30, in _decorator
    raise e.parent
ConnectionError: Error 111 connecting to None:6379. Connection refused.

Having a quick google reveals that it might be something to do with django-redis?

AWS SES email not working

I am trying to use this docker template. Everything works beside the email. I configured the user, password, host, server email and TLS. When I am trying to send a test email it does not report any error.

The downside is that there is nothing in the log. Could you export the app logs? Is it ok to add a SSH server in the container?

Thanks,
Robert

Redis InvalidCacheBackendError

I'm getting an error as I build the container with redis (used the same command specified in readme, docker run -d --name=sentry --volume=/tmp/sentry:/data -p 80:9000 --env-file=environment --link=postgres_container:postgresdb --link=redis_container:redis slafs/sentry):

The command works fine, I am able to log into sentry from browser, but once I include CACHE_URL=hiredis://redis:6379/2/ in the environment file to use redis and rebuild the container, I get this in the resulting container's logs:

InvalidCacheBackendError: Could not find backend 'redis_cache.cache.RedisCache': Error importing module redis_cache.cache: "No module named redis_cache.cache"

Details about SENTRY_URL_PREFIX

Hi!

In the README it's written "assuming sentry.mydomain.com is mapped to your docker host".

I don't understand what this means, practically. I run docker using boot2docker and have setup a

my.docker.host.ip  docker.localhost

entry in my /etc/hosts.

But no one seems to be listening on the other side when I try to reach http://docker.localhost:9000 in my browser. What am I missing?

Thanks

Background workers haven't checked in recently...

Hi,
I tried to install Sentry to server using your sentry-docker. I got some troubles with it. I hope, you'll help me, you are my last chans. Theare is a list of my command and errors.

Thanks.
Pre-cleared folder /tmp/


docker run -d --name=postgres_container postgres

docker run -d --name=redis_container redis

docker run -d --name=sentry_celery_worker --link=redis_container:redis --link=postgres_container:postgresdb --volume=/tmp/sentry:/data --env-file=environment slafs/sentry celery worker -B

docker run -d --name=sentry --volume=/tmp/sentry:/data -p 80:9000 --env-file=environment --link=postgres_container:postgresdb --link=redis_container:redis slafs/sentry


When I entered to url sentry I got this red error: "Background workers haven't checked in recently. This can mean an issue with your configuration or a serious backlog in tasks."

In 'docker logs sentry_celery_worker' I got the next error:


"[2015-10-01 12:40:11,224: WARNING/Worker-2] /usr/local/lib/python2.7/site-packages/celery/app/trace.py:365: RuntimeWarning: Exception raised outside body: OperationalError('no such table: sentry_project',):
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/celery/app/trace.py", line 253, in trace_task
I, R, state, retval = on_error(task_request, exc, uuid)
File "/usr/local/lib/python2.7/site-packages/celery/app/trace.py", line 201, in on_error
R = I.handle_error_state(task, eager=eager)
File "/usr/local/lib/python2.7/site-packages/celery/app/trace.py", line 85, in handle_error_state
}[self.state](task, store_errors=store_errors)
File "/usr/local/lib/python2.7/site-packages/celery/app/trace.py", line 125, in handle_failure
einfo=einfo)
File "/usr/local/lib/python2.7/site-packages/celery/utils/dispatch/signal.py", line 166, in send
response = receiver(signal=self, sender=sender, **named)
File "/usr/local/lib/python2.7/site-packages/raven/contrib/celery/init.py", line 33, in process_failure_signal
'kwargs': kwargs,
File "/usr/local/lib/python2.7/site-packages/raven/base.py", line 676, in captureException
'raven.events.Exception', exc_info=exc_info, *_kwargs)
File "/usr/local/lib/python2.7/site-packages/sentry/utils/raven.py", line 39, in capture
return super(SentryInternalClient, self).capture(_args, *_kwargs)
File "/usr/local/lib/python2.7/site-packages/raven/contrib/django/client.py", line 157, in capture
result = super(DjangoClient, self).capture(event_type, _kwargs)
File "/usr/local/lib/python2.7/site-packages/raven/base.py", line 521, in capture
self.send(**data)
File "/usr/local/lib/python2.7/site-packages/sentry/utils/raven.py", line 50, in send
project = Project.objects.get_from_cache(id=settings.SENTRY_PROJECT)
File "/usr/local/lib/python2.7/site-packages/sentry/db/models/manager.py", line 209, in get_from_cache
result = self.get(
_kwargs)
File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 151, in get
return self.get_queryset().get(_args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 304, in get
num = len(clone)
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 77, in len
self._fetch_all()
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 857, in _fetch_all
self._result_cache = list(self.iterator())
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 220, in iterator
for row in compiler.results_iter():
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 713, in results_iter
for rows in self.execute_sql(MULTI):
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 786, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 99, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 452, in execute
return Database.Cursor.execute(self, query, params)
OperationalError: no such table: sentry_project

exc, exc_info.traceback)))
"


When I was trying to send test email from admin I got red error: "Connection unexpectedly closed: timed out".

HTTPS

Is there a way to run sentry server on https ?

Creating a superuser fails when database is already provisioned

In my startup logs, I get the following error when reconnecting to a database that has already been set up:

spawn sentry --config=/conf/sentry_docker_conf.py createsuperuser --username=admin --email=root@localhost
Password: 
Password (again): 
Traceback (most recent call last):
  File "/usr/local/bin/sentry", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/sentry/utils/runner.py", line 435, in main
    initializer=initialize_app,
  ...
django.db.utils.IntegrityError: duplicate key value violates unique constraint "auth_user_username_key"
DETAIL:  Key (username)=(admin) already exists.

Building image doesn't return a working image

I cloned this repo, changed requirements.txt to add sentry-auth-google==0.1.0 and built it with docker build -t my-company/sentry .. Then I ran the same setup that I was before able to run with slafs/sentry-docker, but this time I got the following error:

sentry.runner.importer.ConfigurationError: Exception: Error: SENTRY_SECRET_KEY is undefined, run generate-secret-key and set to -e SENTRY_SECRET_KEY

This makes me think that the slafs/sentry-docker image on Docker Hub was built some different way.

What's the easiest way to build this? The Extending this image section of the read me seems a bit excessive.

logan.importer.ConfigurationError with latest image

I am getting the following error repeatedly and Sentry doesn't start. any hints?

Traceback (most recent call last):
  File "/usr/local/bin/sentry", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/sentry/utils/runner.py", line 448, in main
    initializer=initialize_app,
  File "/usr/local/lib/python2.7/site-packages/logan/runner.py", line 191, in run_app
    configure_app(config_path=config_path, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/logan/runner.py", line 127, in configure_app
    allow_extras=allow_extras, callback=settings_callback)
  File "/usr/local/lib/python2.7/site-packages/logan/importer.py", line 37, in install
    sys.meta_path.append(LoganImporter(name, config_path, default_settings, **kwargs))
  File "/usr/local/lib/python2.7/site-packages/logan/importer.py", line 52, in __init__
    self.validate()
  File "/usr/local/lib/python2.7/site-packages/logan/importer.py", line 66, in validate
    raise ConfigurationError(unicode(e), exc_info[2])
logan.importer.ConfigurationError: (u'cannot import name _uuid_generate_random', <traceback object at 0x7f7fc719d830>)

ARM64 support

Are there any any chances to get this thing working on ARM processors? I guess, it would be a huge win, because newer versions will not work on anything except Intel for sure, because one of the used libs requires Intel with SSE4. I was totally satisfied with 8.x, though can't deploy it on my VPS with Graviron CPUs.

TODO: enhance this project

There are some future plans for this repo:

  • add LDAP support
  • maintain a changelog
  • implement and document other Sentry settings
  • provide a Contribution guidelines for possible contributors and update README about the main goals.

Deprecation warning

Hi,

how can I set log level of sentry, so it doesn't throw 3244657 deprecation warnings on each request? I'm using latest images and each request throws tons lines like this:

sentry_1 | [WARNING] /usr/local/lib/python2.7/site-packages/sentry/web/decorators.py:45: DeprecationWarning: sentry.web.frontend.projects.rules.list_rules is used deprecated @has_access
sentry_1 |   DeprecationWarning)

Celery ignoring BROKER_URL

It seems that running celery worker -B as the starting command for the container as per the instructions doesn't honor the SENTRY_BROKER_URL environment variable.

[2015-10-09 12:51:28,719: ERROR/Beat] beat: Connection error: [Errno 111] Connection refused. Trying again in 32.0 seconds... [2015-10-09 12:52:00,709: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused. Trying again in 32.00 seconds...

As such I am unable to start any workers.

table auth_user has no column named is_managed

Hi Slafs,

I tried to install sentry again on another server I have.

These are the steps I followed.
curl -sSL https://get.docker.com/ubuntu/ | sudo sh

docker run -d --name=sentry --volume=/tmp/sentry:/data -p 9000:9000 -e SECRET_KEY=mykey -e SENTRY_URL_PREFIX=http://mydomain.com slafs/sentry

The docker logs is as below.

/usr/local/bin/sentry_run: line 37: 5 Killed sentry --config=$SENTRY_CONF_FILE upgrade --noinput
spawn sentry --config=/conf/sentry_docker_conf.py createsuperuser --username=admin --email=root@localhost
[WARNING] /usr/local/lib/python2.7/site-packages/sentry/utils/runner.py:322: UserWarning: Sentry is configured to run asynchronous tasks in-process. This is not recommended within production environments. See http://sentry.readthedocs.org/en/latest/queue/index.html for more information.
warnings.warn('Sentry is configured to run asynchronous tasks in-process. '

Password:
Password (again):
Traceback (most recent call last):
File "/usr/local/bin/sentry", line 11, in
sys.exit(main())
File "/usr/local/lib/python2.7/site-packages/sentry/utils/runner.py", line 414, in main
initializer=initialize_app,
File "/usr/local/lib/python2.7/site-packages/logan/runner.py", line 169, in run_app
management.execute_from_command_line([runner_name, command] + command_args)
File "/usr/local/lib/python2.7/site-packages/django/core/management/init.py", line 399, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/site-packages/django/core/management/init.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(_args, *_options.dict)
File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 285, in execute
output = self.handle(_args, _options)
File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 141, in handle
self.UserModel._default_manager.db_manager(database).create_superuser(
_user_data)
File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/models.py", line 195, in create_superuser
*_extra_fields)
File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/models.py", line 186, in _create_user
user.save(using=self._db)
File "/usr/local/lib/python2.7/site-packages/sentry/models/user.py", line 63, in save
return super(User, self).save(_args, *_kwargs)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 545, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 573, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 654, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 687, in _do_insert
using=using, raw=raw)
File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 232, in _insert
return insert_query(self.model, objs, fields, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1514, in insert_query
return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 903, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 99, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 452, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: table auth_user has no column named is_managed
[WARNING] /usr/local/lib/python2.7/site-packages/sentry/utils/runner.py:322: UserWarning: Sentry is configured to run asynchronous tasks in-process. This is not recommended within production environments. See http://sentry.readthedocs.org/en/latest/queue/index.html for more information.
warnings.warn('Sentry is configured to run asynchronous tasks in-process. '

[WARNING] /usr/local/lib/python2.7/site-packages/django/db/models/fields/init.py:903: RuntimeWarning: DateTimeField FakeModel.last_seen received a naive datetime (2015-03-02 09:23:29.205377) while time zone support is active.
RuntimeWarning)

[WARNING] /usr/local/lib/python2.7/site-packages/django/db/models/fields/init.py:903: RuntimeWarning: DateTimeField FakeModel.first_seen received a naive datetime (2015-03-02 09:23:29.208771) while time zone support is active.
RuntimeWarning)

[WARNING] /usr/local/lib/python2.7/site-packages/django/db/models/fields/init.py:903: RuntimeWarning: DateTimeField FakeModel.last_seen received a naive datetime (2015-03-02 09:23:29.209630) while time zone support is active.
RuntimeWarning)

[WARNING] /usr/local/lib/python2.7/site-packages/django/db/models/fields/init.py:903: RuntimeWarning: DateTimeField FakeModel.first_seen received a naive datetime (2015-03-02 09:23:29.226174) while time zone support is active.
RuntimeWarning)

/usr/local/bin/sentry_run: line 41: 20 Killed sentry --config=$SENTRY_CONF_FILE $@

Sentry Version 8.0

Hello @slafs!

I wanted to know when you might have version 8.0 of Sentry available and tagged, and if there is anything that needs to be done to get this ready, I'd be more than happy to help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.