{ "info": { "author": "Matt Melquiond", "author_email": "matt.LLVW@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: System :: Installation/Setup", "Topic :: System :: Systems Administration" ], "description": "# Alcali\n\n[![Build Status](https://travis-ci.org/latenighttales/alcali.svg?branch=2019.2)](https://travis-ci.org/latenighttales/alcali)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=latenighttales/alcali)](https://dependabot.com)\n[![codecov](https://codecov.io/gh/latenighttales/alcali/branch/2019.2.0/graph/badge.svg)](https://codecov.io/gh/latenighttales/alcali)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)\n\n\n\n\n## What's Alcali?\n\nAlcali is a web based tool for monitoring and administrating **Saltstack** Salt.\n\n## Features\n\n- Get notified in real time when a job is created, updated or has returned. \n\n- Store your jobs results by leveraging the `master_job_store` setting with database master returner.\n\n- Check your minions conformity to their highstate.\n\n- Keep track of custom state at a glance.\n\n- Use custom auth module to login into both Alcali and the Salt-api using JWT.\n\n## Try it!\n\nIf you just want to have a look, just clone the [repository](https://github.com/latenighttales/alcali.git) and use [docker-compose](https://docs.docker.com/compose/):\n\n```commandline\ngit clone https://github.com/latenighttales/alcali.git\ncd alcali\ndocker-compose up --scale minion=2\n```\n\n\nOnce you see minions waiting to be approved by the master, you're good to go:\n\n```commandline\n...\nminion_1 | [ERROR ] The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate\nminion_1 | [INFO ] Waiting 10 seconds before retry.\n...\n```\n\nJust connect on [http://127.0.0.1:8000](http://127.0.0.1:8000), login with:\n\n```commandline\nusername: admin\npassword: password\n```\n\nand follow the [walkthrough](https://alcali.dev/walkthrough/).\n\nOnce you're done, you can [install it](https://alcali.dev/installation/) using the salt [formula](https://github.com/latenighttales/alcali-formula).\n\n## Screenshots\n\nSee what it looks like [here](https://github.com/latenighttales/alcali/blob/2019.2/docs/docs/screenshots.md).\n\n## Licence\n\n[MIT](LICENSE)\n\n## Contributing\n\nIf you'd like to contribute, simply fork the repository, commit your changes, run the tests and send a pull request.\n\nImage: Jean-Philippe WMFr, derivative work\u00a0: User:Benoit Rochon [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/latenighttales/alcali.git", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "alcali", "package_url": "https://pypi.org/project/alcali/", "platform": "", "project_url": "https://pypi.org/project/alcali/", "project_urls": { "Homepage": "https://github.com/latenighttales/alcali.git" }, "release_url": "https://pypi.org/project/alcali/2019.2.2/", "requires_dist": [ "ansi2html (==1.5.2)", "Django (==2.2.6)", "django-cors-headers (==3.1.1)", "django-currentuser (==0.4.2)", "djangorestframework (==3.10.3)", "djangorestframework-simplejwt (==4.3.0)", "gunicorn (==19.9.0)", "python-dotenv (==0.10.3)", "pytz", "requests (==2.22.0)", "salt-pepper (==0.7.5)", "whitenoise (==4.1.4)", "black (==19.3b0) ; extra == 'dev'", "django-extensions (==2.2.3) ; extra == 'dev'", "ipython (==7.8.0) ; extra == 'dev'" ], "requires_python": "", "summary": "Alcali", "version": "2019.2.2" }, "last_serial": 5939248, "releases": { "2018.3.1": [ { "comment_text": "", "digests": { "md5": "2500695f6b95406b06374dcaa44d0bc5", "sha256": "58cb7eb681bce98e2a42a7e064a3b65040547579c47525d321e41e2266c9700c" }, "downloads": -1, "filename": "alcali-2018.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2500695f6b95406b06374dcaa44d0bc5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 43262, "upload_time": "2019-09-21T19:15:36", "url": "https://files.pythonhosted.org/packages/f1/60/6da3f1b5635fb41dbbfa245176b750fbc43cdd48153a70367f1919310e88/alcali-2018.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7c3672a5cb3be226b1501821c5466ad", "sha256": "843a4f275301f6bef705a2a5159315e93c5d9ae7345d36d88b5cf9b5e9f7bde1" }, "downloads": -1, "filename": "alcali-2018.3.1.tar.gz", "has_sig": false, "md5_digest": "b7c3672a5cb3be226b1501821c5466ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3423595, "upload_time": "2019-09-21T19:16:27", "url": "https://files.pythonhosted.org/packages/20/0b/776025e24c5b031fa1fb795dfb0c23295deaee9fc2f256bc84bd59fdf163/alcali-2018.3.1.tar.gz" } ], "2018.3.1.post0": [ { "comment_text": "", "digests": { "md5": "e9b78d6563e1c6b5762f31941df977e0", "sha256": "648988e9e3b553dac26535a374c410c0abd014f38bce30208f25cac05b745ca3" }, "downloads": -1, "filename": "alcali-2018.3.1.post0-py3-none-any.whl", "has_sig": false, "md5_digest": "e9b78d6563e1c6b5762f31941df977e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3452579, "upload_time": "2019-09-22T07:27:20", "url": "https://files.pythonhosted.org/packages/a4/d9/099123e716e9d8a71c028ad4061e489f938936c8755c3a59029378aabb3f/alcali-2018.3.1.post0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8edd3b56e703c27245da57c340d2ae23", "sha256": "ac054f8b0b9bba2145d5dcdd98e0658429caf59315e5365d96792fba3ef3e934" }, "downloads": -1, "filename": "alcali-2018.3.1.post0.tar.gz", "has_sig": false, "md5_digest": "8edd3b56e703c27245da57c340d2ae23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3423649, "upload_time": "2019-09-22T07:28:22", "url": "https://files.pythonhosted.org/packages/60/f9/7abc9d2991c366840bb7cc831c3c3a477a425fc21a6e4a3aec3113e52a4c/alcali-2018.3.1.post0.tar.gz" } ], "2018.3.2": [ { "comment_text": "", "digests": { "md5": "657fd56ca5cd7de485cf55927fce5c4c", "sha256": "c7b239785d7396dc3856cc03ff3eba862eba94b3f0b661cf8839633333229b41" }, "downloads": -1, "filename": "alcali-2018.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "657fd56ca5cd7de485cf55927fce5c4c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3204256, "upload_time": "2019-10-07T14:54:26", "url": "https://files.pythonhosted.org/packages/da/65/4aec28d28c3239dd33b90eeeb2bc83759a1bd14ea927964e3a5f1ca07073/alcali-2018.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32c9c15df529622313d2772943ae3162", "sha256": "700a04948c4cd8e8e3d08caf08ae67188568f608219bd492e20f21640ea4b0fc" }, "downloads": -1, "filename": "alcali-2018.3.2.tar.gz", "has_sig": false, "md5_digest": "32c9c15df529622313d2772943ae3162", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3177016, "upload_time": "2019-10-07T14:55:01", "url": "https://files.pythonhosted.org/packages/0a/2b/bf0c1b1f8dc3597f3504ea3536f41a17b78b17db8293c31f7c20b59c93ea/alcali-2018.3.2.tar.gz" } ], "2019.2.0": [ { "comment_text": "", "digests": { "md5": "12f86c26259566f3494ad30c9968ea66", "sha256": "780893a6be76e4eb34fc2736a51f592a1046a1b1257d7e561597d4a0eddd72be" }, "downloads": -1, "filename": "alcali-2019.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "12f86c26259566f3494ad30c9968ea66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2228701, "upload_time": "2019-06-21T20:30:11", "url": "https://files.pythonhosted.org/packages/aa/af/5ac79d52703d157393539e3ce95f342ef4dd509343012b5c0eaffb433692/alcali-2019.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b71bba1825c901006d0ca4aefa328b77", "sha256": "d50b518d15d7475fc437f4c252553fdc0f258e2af99470b92421ff54c5993588" }, "downloads": -1, "filename": "alcali-2019.2.0.tar.gz", "has_sig": false, "md5_digest": "b71bba1825c901006d0ca4aefa328b77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2178189, "upload_time": "2019-06-21T20:30:31", "url": "https://files.pythonhosted.org/packages/14/f0/0506458b96677ebc4231b0b8c953ee5601450902c01b51b80280424bce3e/alcali-2019.2.0.tar.gz" } ], "2019.2.1": [ { "comment_text": "", "digests": { "md5": "c3d3bc9f837d4a3ccda2329bac07fbad", "sha256": "5fecc970d15cc000c9edb3a3b9bd0c52eecc9abf9f5168ae614e8b0bd22f407e" }, "downloads": -1, "filename": "alcali-2019.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c3d3bc9f837d4a3ccda2329bac07fbad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 43258, "upload_time": "2019-09-21T18:51:36", "url": "https://files.pythonhosted.org/packages/9f/6c/d20fed8b09d665b6d31c102f78b4c65b3901ca33bbef89a6ef40de34164f/alcali-2019.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60759d365c8ba18537f4e7aecd6ab03f", "sha256": "d36c54ccf24269026bf1f1f22f74e0c506c63178d8c5a8dac02fccc2072bd7c8" }, "downloads": -1, "filename": "alcali-2019.2.1.tar.gz", "has_sig": false, "md5_digest": "60759d365c8ba18537f4e7aecd6ab03f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3423591, "upload_time": "2019-09-21T18:52:27", "url": "https://files.pythonhosted.org/packages/d4/02/65120af8b9e40b18a401156533dc2c735291088f032478b6394b815a1ede/alcali-2019.2.1.tar.gz" } ], "2019.2.1.post0": [ { "comment_text": "", "digests": { "md5": "75b3add96f4fde94748de7edbc250659", "sha256": "60625346f0e33cdea3ae476a1cc307e30fe4967a88ddf2585f5e4f5cdbd73e54" }, "downloads": -1, "filename": "alcali-2019.2.1.post0-py3-none-any.whl", "has_sig": false, "md5_digest": "75b3add96f4fde94748de7edbc250659", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3452576, "upload_time": "2019-09-22T07:32:13", "url": "https://files.pythonhosted.org/packages/35/8b/79e72d81b3abca9d10db4b4e28fcfd1631e0cfdcafc4b3445a6a756178e4/alcali-2019.2.1.post0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae0e2e18a24185892bb95af9bc322045", "sha256": "fff166b9dfcaabb5b826e4c56385b5ff84bd0c6af4e6b9fdb06cd4350e4dc31f" }, "downloads": -1, "filename": "alcali-2019.2.1.post0.tar.gz", "has_sig": false, "md5_digest": "ae0e2e18a24185892bb95af9bc322045", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3423646, "upload_time": "2019-09-22T07:33:08", "url": "https://files.pythonhosted.org/packages/d9/cf/f82afc4d9cab157c35f11d0d5eb8a62d3e4ac42f6f8f38765a70dde5054f/alcali-2019.2.1.post0.tar.gz" } ], "2019.2.2": [ { "comment_text": "", "digests": { "md5": "26911bbc61de52c6f4074acbc4ac7652", "sha256": "c72c3594b2be825ac9dda62f2877566b7b4f97b652ab92a4d558c067cb2adc5a" }, "downloads": -1, "filename": "alcali-2019.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "26911bbc61de52c6f4074acbc4ac7652", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3204250, "upload_time": "2019-10-07T14:57:03", "url": "https://files.pythonhosted.org/packages/81/f7/de295932bcde954db09b9e8299bcc303d29e1b255cbf3e5359a8060a9dd5/alcali-2019.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6bafa1e388e38a2b62157b06a7e61dd5", "sha256": "3eaadc5a80017c83dbd4d58c84268a0a79e3d3c87da3ea5b4e40c327d66c8380" }, "downloads": -1, "filename": "alcali-2019.2.2.tar.gz", "has_sig": false, "md5_digest": "6bafa1e388e38a2b62157b06a7e61dd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3177012, "upload_time": "2019-10-07T14:57:36", "url": "https://files.pythonhosted.org/packages/d5/61/1f1430e60582f06cbbe7811f32453c5c958a65ab1e8e18def7298eefc550/alcali-2019.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "26911bbc61de52c6f4074acbc4ac7652", "sha256": "c72c3594b2be825ac9dda62f2877566b7b4f97b652ab92a4d558c067cb2adc5a" }, "downloads": -1, "filename": "alcali-2019.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "26911bbc61de52c6f4074acbc4ac7652", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3204250, "upload_time": "2019-10-07T14:57:03", "url": "https://files.pythonhosted.org/packages/81/f7/de295932bcde954db09b9e8299bcc303d29e1b255cbf3e5359a8060a9dd5/alcali-2019.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6bafa1e388e38a2b62157b06a7e61dd5", "sha256": "3eaadc5a80017c83dbd4d58c84268a0a79e3d3c87da3ea5b4e40c327d66c8380" }, "downloads": -1, "filename": "alcali-2019.2.2.tar.gz", "has_sig": false, "md5_digest": "6bafa1e388e38a2b62157b06a7e61dd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3177012, "upload_time": "2019-10-07T14:57:36", "url": "https://files.pythonhosted.org/packages/d5/61/1f1430e60582f06cbbe7811f32453c5c958a65ab1e8e18def7298eefc550/alcali-2019.2.2.tar.gz" } ] }