{ "info": { "author": "Dmitry Litvinenko", "author_email": "anti1869@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Internet :: Log Analysis", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Bug Tracking" ], "description": "MiniSentry. Cheap Sentry replacement for development\n====================================================\n\nSentry is too resource heavy for tiny tasks. If all you need is just to receive\nlimited amount of exceptions and have basic aggregation, you can try this.\n\nThis is hardly more than my weekend project. You can use it in development,\nor (if you're brave enough) even in you pet projects. But for sure not on\nany kind of serious production.\n\nTested only with Python apps.\n\nFeatures:\n---------\n\n- You can kep your `raven` setup. Just replace Sentry server with this.\n- Aggregates exceptions by some basic rules and displays them in the browser.\n- Send emails when new exception group is created.\n- Works with SQLite, PostgreSQL or MySQL as database backends.\n\nThat's it, if you need more, why don't you use real Sentry instead? It's free.\n\n\nRequirements:\n-------------\n\n- Python 3.6\n- Free time (because I haven't tested it much yet).\n\n\nDeployment:\n-----------\n\n1. Create virtualenv and install this app::\n\n pip install minisentry\n\n2. Create `.env`-config file, or use defaults (see configuration). To pick up `.env`-file you need to export path to it\n\n3. Run migrations::\n\n manage.py migrate\n\n4. Create superuser::\n\n manage.py createsuperuser\n\n5. Run it::\n\n minisentry\n\nEmbedded uwsgi server will be started and you can access interface at (e.g.)::\n\n http://localhost:9000\n\nDaemonization is up to you. I prefer `systemd`. `supervisord` will also work.\n\n6. Go to admin interface and add some projects. You will get project DSN string\nin admin. Getting it in browser is not implemented yet::\n\n http://localhost:9000/admin/\n\n\nUpgrading:\n----------\n\n.. sourcecode:: bash\n\n pip install -U minisentry\n manage.py migrate\n service minisentry restart (in case of systemd)\n\n\nConfiguration:\n--------------\n\nEverything is configured in envvars. You can either use `.env` file to store\nthem, or manage environment yourself.\n\nIf you want to use `.env`-file, just place values in plain text file and export\npath to it in `MINISENTRY_ENV_PATH`. E.g.::\n\n export MINISENTRY_ENV_PATH=~/minisentry.env\n\nHere are list of variables:\n\n- SECRET_KEY: django secret key\n- DEBUG: run in debug mode\n- ALLOWED_HOSTS: put here your domain name where you hosting this server. Comma separated list\n- DB_ENGINE: either sqlite/postgresql/mysql\n- DB_NAME: in case of `sqlite` - path to the file, else - database name\n- DB_USER/DB_PASSWORD/DB_HOST/DB_PORT: you know what to do. For sqlite not needed\n- TIME_ZONE: Your time zone. Mine is \"Europe/Amsterdam\"\n- LOGGING_CONSOLE_FORMATTER: \"simple\" or \"verbose\"\n\nEmail settings:\n\n- DEFAULT_FROM_EMAIL: `From` field for mails from minisentry\n- EMAIL_HOST/EMAIL_PORT/EMAIL_HOST_USER/EMAIL_HOST_PASSWORD/EMAIL_USE_SSL: Smtp server settings\n\nServer settings:\n\n- MINISENTRY_WEB_HOST/MINISENTRY_WEB_PORT: E.g. \"0.0.0.0\" and 9000\n- MINISENTRY_WEB_STATS_ENABLE: Will enable uwsgi stats server, accessible by telnet\n- MINISENTRY_WEB_STATS_HOST/MINISENTRY_WEB_STATS_PORT: address for that stats server\n- MINISENTRY_WEB_SERVE_STATIC: Will serve static through uwsgi (default option)\n- MINISENTRY_WEB_MULE_COUNT: Number of processed for offloaded tasks\n\nMore stuff:\n\n- MINISENTRY_URL_PREFIX: Full address of your server: E.g. https://minisentry.com:9000\n- KEEP_DATA_FOR_DAYS: How long to keep not updated events\n\n\nUser management and emails:\n---------------------------\n\nYou can create as many accounts as you want. Everyone, who has email\nin his account details will receive emails. No configuration on that yet.\nDSN and admin access will be only for accounts with `is_staff=True`\n\nDocker:\n-------\n\nIt is TODO. Send me a PR maybe?", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/anti1869/minisentry/", "keywords": "", "license": "Proprietary", "maintainer": "", "maintainer_email": "", "name": "minisentry", "package_url": "https://pypi.org/project/minisentry/", "platform": "", "project_url": "https://pypi.org/project/minisentry/", "project_urls": { "Homepage": "https://github.com/anti1869/minisentry/" }, "release_url": "https://pypi.org/project/minisentry/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "MiniSentry. Stripped Sentry replacement for development", "version": "0.0.1" }, "last_serial": 3762430, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "994706227d57026b9d470c37f366742b", "sha256": "852b47ddb0e3765a89eda80b30bdae1daac30a25dfa5c9b97820217c63a86836" }, "downloads": -1, "filename": "minisentry-0.0.1.tar.gz", "has_sig": false, "md5_digest": "994706227d57026b9d470c37f366742b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 249035, "upload_time": "2018-04-13T16:16:36", "url": "https://files.pythonhosted.org/packages/a9/a5/753fb07842821cfd66f6240140ac12615f59d6945464d3a04cb195335237/minisentry-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "994706227d57026b9d470c37f366742b", "sha256": "852b47ddb0e3765a89eda80b30bdae1daac30a25dfa5c9b97820217c63a86836" }, "downloads": -1, "filename": "minisentry-0.0.1.tar.gz", "has_sig": false, "md5_digest": "994706227d57026b9d470c37f366742b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 249035, "upload_time": "2018-04-13T16:16:36", "url": "https://files.pythonhosted.org/packages/a9/a5/753fb07842821cfd66f6240140ac12615f59d6945464d3a04cb195335237/minisentry-0.0.1.tar.gz" } ] }