{"id":13647423,"url":"https://github.com/chaostoolkit-attic/chaosplatform","last_synced_at":"2025-04-22T02:31:34.083Z","repository":{"id":147549777,"uuid":"165093076","full_name":"chaostoolkit-attic/chaosplatform","owner":"chaostoolkit-attic","description":"The Chaos Engineering platform for everyone","archived":true,"fork":false,"pushed_at":"2019-02-18T15:03:24.000Z","size":42,"stargazers_count":17,"open_issues_count":3,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-09T21:36:47.371Z","etag":null,"topics":["chaos-engineering","chaosplatform","chaostoolkit"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chaostoolkit-attic.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-01-10T16:24:58.000Z","updated_at":"2023-01-28T12:54:34.000Z","dependencies_parsed_at":"2024-01-14T10:09:38.794Z","dependency_job_id":"b530457d-9bd8-4d26-9f1f-241388c38fff","html_url":"https://github.com/chaostoolkit-attic/chaosplatform","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-attic%2Fchaosplatform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-attic%2Fchaosplatform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-attic%2Fchaosplatform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-attic%2Fchaosplatform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chaostoolkit-attic","download_url":"https://codeload.github.com/chaostoolkit-attic/chaosplatform/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250163659,"owners_count":21385282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chaos-engineering","chaosplatform","chaostoolkit"],"created_at":"2024-08-02T01:03:33.308Z","updated_at":"2025-04-22T02:31:33.836Z","avatar_url":"https://github.com/chaostoolkit-attic.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Chaos Platform - Chaos Engineering Platform for Everyone\n\n[![Version](https://img.shields.io/pypi/v/chaosplatform.svg)](https://img.shields.io/pypi/v/chaosplatform.svg)\n[![License](https://img.shields.io/pypi/l/chaosplatform.svg)](https://img.shields.io/pypi/l/chaosplatform.svg)\n[![StackOverflow](https://img.shields.io/badge/StackOverflow-ChaosPlatform-blue.svg)](https://stackoverflow.com/questions/tagged/chaosplatform+or+chaostoolkit)\n\n[![Build Status](https://travis-ci.org/chaostoolkit/chaosplatform.svg?branch=master)](https://travis-ci.org/chaostoolkit/chaosplatform)\n[![Python versions](https://img.shields.io/pypi/pyversions/chaosplatform.svg)](https://www.python.org/)\n\nThis is the [Chaos Platform][chaosplatform] main project.\n\n[chaosplatform]: https://chaosplatform.org/\n\n* WARNING*: This is an alpha release so expect things to get rocky and break for\nnow. We are heavily working on it although the API should remain stable. Please,\njoin the [slack][slack] to keep the discussion alive :) Thank you for being\npatient with us!\n\n[slack]: https://join.chaostoolkit.org/\n\n## Install \u0026 Run\n\nDocumentation is being written so the instructions here are for the courageous.\n\n* Install Python 3.6+. No promises are made for lower versions.\n* Create a Python virtual environment\n* Install pip\n* Install Redis via a simple Docker image\n\n```\n$ docker run --rm --name redis -p 6379:6379 redis\n```\n\n* Install the Chaos Platform\n\n```\n$ pip install --pre -U chaosplatform\n```\n\n* Create a chaosplatform.toml configuration file:\n\n\n```toml\n[chaosplatform]\ndebug = false\n\n    [chaosplatform.grpc]\n    address = \"0.0.0.0:50051\"\n\n    [chaosplatform.http]\n    address = \"0.0.0.0:8090\"\n    secret_key = \"\"\n\n        [chaosplatform.http.cherrypy]\n        environment = \"production\"\n        proxy = \"http://localhost:6080\"\n\n    [chaosplatform.cache]\n    type = \"simple\"\n\n        # Only set if type is set to \"redis\"\n        # [chaosplatform.cache.redis]\n        # host = \"localhost\"\n        # port = 6379\n\n    [chaosplatform.db]\n    uri = \"sqlite:///:memory\"\n\n    [chaosplatform.jwt]\n    secret_key = \"\"\n    public_key = \"\"\n    algorithm = \"HS256\"\n    identity_claim_key = \"identity\"\n    user_claims_key = \"user_claims\"\n    access_token_expires = 2592000\n    refresh_token_expires = 31536000\n    user_claims_in_refresh_token = false\n\n    [chaosplatform.account]\n\n    [chaosplatform.auth]\n        [chaosplatform.auth.oauth2]\n            [chaosplatform.auth.oauth2.github]\n            client_id = \"\"\n            client_secret = \"\"\n\n        [chaosplatform.auth.grpc]\n            [chaosplatform.auth.grpc.account]\n            address = \"0.0.0.0:50051\"\n\n    [chaosplatform.experiment]\n\n    [chaosplatform.scheduling]\n        [chaosplatform.scheduling.grpc]\n            [chaosplatform.scheduling.grpc.scheduler]\n            address = \"0.0.0.0:50051\"\n\n    [chaosplatform.scheduler]\n        [chaosplatform.scheduler.redis]\n        host = \"localhost\"\n        port = 6379\n        queue = \"chaosplatform\"\n\n        [chaosplatform.scheduler.job]\n        platform_url = \"http://127.0.0.1:6080\"\n\n        [chaosplatform.scheduler.worker]\n        debug = false\n        count = 3\n        queue_name = \"chaosplatform\"\n        worker_name = \"chaosplatform-worker\"\n        add_random_suffix_to_worker_name = true\n        worker_directory = \"/tmp\"\n\n        [chaosplatform.scheduler.worker.redis]\n        host = \"localhost\"\n        port = 6379\n```\n\n* Run the Chaos Platform:\n\n```\n$ chaosplatform run --config=chaosplatform.toml\n```\n\nFor now, the platform is GUI-less so needs to be called bia its [API][openapi].\n\n[openapi]: https://github.com/chaostoolkit/chaosplatform-openapi\n\n## Contribute\n\nContributors to this project are welcome as this is an open-source effort that\nseeks [discussions][join] and continuous improvement.\n\n[join]: https://join.chaostoolkit.org/\n\nFrom a code perspective, if you wish to contribute, you will need to run a \nPython 3.5+ environment. Then, fork this repository and submit a PR. The\nproject cares for code readability and checks the code style to match best\npractices defined in [PEP8][pep8]. Please also make sure you provide tests\nwhenever you submit a PR so we keep the code reliable.\n\n[pep8]: https://pycodestyle.readthedocs.io/en/latest/\n\nThe Chaos Platform projects require all contributors must sign a\n[Developer Certificate of Origin][dco] on each commit they would like to merge\ninto the master branch of the repository. Please, make sure you can abide by\nthe rules of the DCO before submitting a PR.\n\n[dco]: https://github.com/probot/dco#how-it-works","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaostoolkit-attic%2Fchaosplatform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchaostoolkit-attic%2Fchaosplatform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaostoolkit-attic%2Fchaosplatform/lists"}