{"id":21497359,"url":"https://github.com/stanislav-web/pyruc","last_synced_at":"2026-05-04T18:41:37.992Z","repository":{"id":72438707,"uuid":"108451418","full_name":"stanislav-web/PyRuc","owner":"stanislav-web","description":"PyRuc (Python Redis Users Controller)","archived":false,"fork":false,"pushed_at":"2017-11-01T06:17:10.000Z","size":349,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-23T22:14:07.705Z","etag":null,"topics":["docker-compose","docker-images","jwt-authentication-flow","python-jwt","python-redis","python-redis-jwt","python3","redis","redis-registration","redis-users","sms","users-management"],"latest_commit_sha":null,"homepage":"http://drunk-start.surge.sh","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stanislav-web.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-26T18:39:30.000Z","updated_at":"2023-02-10T09:48:07.000Z","dependencies_parsed_at":"2023-05-09T21:18:12.813Z","dependency_job_id":null,"html_url":"https://github.com/stanislav-web/PyRuc","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanislav-web%2FPyRuc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanislav-web%2FPyRuc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanislav-web%2FPyRuc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanislav-web%2FPyRuc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stanislav-web","download_url":"https://codeload.github.com/stanislav-web/PyRuc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244031778,"owners_count":20386663,"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":["docker-compose","docker-images","jwt-authentication-flow","python-jwt","python-redis","python-redis-jwt","python3","redis","redis-registration","redis-users","sms","users-management"],"created_at":"2024-11-23T16:23:35.719Z","updated_at":"2026-05-04T18:41:32.931Z","avatar_url":"https://github.com/stanislav-web.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### PyRuc (Python Redis Users Controller)\nPyRuc is the service for maintaining new and existing users accounts\n\n[![Coverage Status](https://coveralls.io/repos/github/stanislav-web/PyRuc/badge.svg?branch=master)](https://coveralls.io/github/stanislav-web/PyRuc?branch=master) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/810e623b6db74357ba10915f4247aa6d)](https://www.codacy.com/app/stanisov/PyRuc?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=stanislav-web/PyRuc\u0026amp;utm_campaign=Badge_Grade) [![GitHub license](https://img.shields.io/github/license/stanislav-web/PyRuc.svg)](https://github.com/stanislav-web/PyRuc/blob/master/LICENSE) [![Release Status](https://img.shields.io/github/release/stanislav-web/PyRuc.svg)](https://github.com/stanislav-web/PyRuc/releases)\n\n|  Python | Status |\n|:-:|:-:|\n|3.5|[![Build Status](https://travis-ci.org/stanislav-web/PyRuc.svg?branch=master)](https://travis-ci.org/stanislav-web/PyRuc) |\n|3.6|[![Build Status](https://travis-ci.org/stanislav-web/PyRuc.svg?branch=master)](https://travis-ci.org/stanislav-web/PyRuc) |\n\n##### What do you get out of the box?\n- User's account maintenance in mode of persistent storage use\n- Granting access to your internal services\n- Rapid recovery access in case of loss of control\n\n##### Requirements\n- Python \u003e= 3.5\n- Redis \u003e= 4\n\n##### Implemented\n- Gunicorn WSGI\n- Gevent as default async worker for Gunicorn\n- Python flask\n- Twilio SMS notifier\n- Logstash client as logs filter to Elastic\n- JWT authentication\n- Redis as persistent user's storage\n\n##### Configuration\n```bash\n/app/env/development.env\n/app/env/production.env\n```\n\n##### Installation\n- Docker\n```bash\n\n# ENV development: using /app/env/development.env\n\u003e docker-compose --file docker-compose.dev.yml up --build\n\n# ENV production: using /app/env/production.env\n\u003e docker-compose --file docker-compose.prod.yml up --build\n```\n- Manualy \u0026 Run\n```bash\n\u003e cd app\n\u003e pip install -r requirements.txt\n\u003e gunicorn -c config.py server --reload\n```\n\n##### Try API\n[http://drunk-start.surge.sh](http://drunk-start.surge.sh)\n\n##### Diagrams\n![Registration](images/registration.png)\n![Authentication](images/authentication.png)\n![Restore](images/restore.png)\n\n#### Tests\n```bash\n\u003e cd app \u0026\u0026 coverage run setup.py test\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanislav-web%2Fpyruc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstanislav-web%2Fpyruc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanislav-web%2Fpyruc/lists"}