{"id":15150035,"url":"https://github.com/lockerpm/core-api","last_synced_at":"2025-09-01T10:03:51.165Z","repository":{"id":211207523,"uuid":"728151972","full_name":"lockerpm/core-api","owner":"lockerpm","description":"The backend for the Locker Password Manager, an end-to-end encryption software that allows users to securely store and manage their sensitive data and secrets","archived":false,"fork":false,"pushed_at":"2025-08-19T04:38:00.000Z","size":2645,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-19T06:27:00.417Z","etag":null,"topics":["backend","django","django-rest-framework","end-to-end-encryption","locker","password-manager","python","zero-knowledge"],"latest_commit_sha":null,"homepage":"https://locker.io","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/lockerpm.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-12-06T10:40:43.000Z","updated_at":"2025-08-19T04:38:03.000Z","dependencies_parsed_at":"2023-12-07T05:23:57.896Z","dependency_job_id":"1b9c85fd-addb-4fdf-9654-6c753fbbd7f3","html_url":"https://github.com/lockerpm/core-api","commit_stats":null,"previous_names":["lockerpm/core-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lockerpm/core-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lockerpm%2Fcore-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lockerpm%2Fcore-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lockerpm%2Fcore-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lockerpm%2Fcore-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lockerpm","download_url":"https://codeload.github.com/lockerpm/core-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lockerpm%2Fcore-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273105948,"owners_count":25046950,"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","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["backend","django","django-rest-framework","end-to-end-encryption","locker","password-manager","python","zero-knowledge"],"created_at":"2024-09-26T14:01:48.582Z","updated_at":"2025-09-01T10:03:51.141Z","avatar_url":"https://github.com/lockerpm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Locker Password Manager](https://raw.githubusercontent.com/lockerpm/.github/main/images/locker2.png)\n\n-------------------\n\n## Locker API\n\nLocker API is a project that serves as the backend for the Locker Password Manager, an end-to-end encryption software \nthat allows users to securely store and manage their sensitive data and secrets. This repository contains the \nserver-side code and functionalities that enable users to interact with the Locker through API calls.\n\n## Developer Documentation\n\n### Setup Guide\n\nThis section will show you how to set up a local Locker server for development purposes.\n\n#### Clone the repository\n\n1. Clone the Locker Server project:\n\n```\ngit clone -b selfhosted https://github.com/lockerpm/api.git\n```\n\n2. Open a terminal and navigate to the root of the cloned repository\n\n\n#### Config environment variables\n\n1. Copy the example environment file\n\n```\ncp dev/.env.example .env\n```\n\n2. Open `.env` with your preferred editor.\n\n3. Change your environment variables or use their default values. Save and quit this file.\n\n\n#### Run local server\n\n1. Use the virtual environment and active the virtual environment\n```\npython -m  venv \u003cvirtual-environment-name\u003e\n```\n\n```\nsource venv/bin/active\n```\n\n2. Install requirements.txt\n\n```\npip install -r requirements.txt\n```\n\n3. Run the database migrations and start local server\n\n```\npython manage.py migrate\n```\n\n```\npython manage.py runserver 127.0.0.1:8000\n```\n\nNow, the local server will be run at `http://127.0.0.1:8000`\n\n\n### Database\n\nLocker Server primarily stores data in MySQL. The data access layer uses the Django ORM.\n\n#### Update the database\n\nYou should run the `python manage.py migrate` command helper whenever you sync the new version from repository or create \na new migration script. \n\n#### Modifying the database\n\nThe process for modifying the data is described in `locker_server/api_orm/migrations` folders.\n\n\n### Environment variables\n\n1. Databases\n\n- MYSQL_USERNAME: Your Database username\n- MYSQL_PASSWORD: Your Database password\n- MYSQL_DATABASE: The database name\n- MYSQL_HOST: The database host\n- MYSQL_PORT: The MySQL port\n\nExample\n```\nMYSQL_USERNAME=root\nMYSQL_PASSWORD=rootmysqlpassword\nMYSQL_DATABASE=locker\nMYSQL_HOST=localhost\nMYSQL_PORT=3306\n```\n\n2. Caching\n\nThe Locker Server use Redis as caching database\n\n- CACHE_LOCATION: The redis location\n\nExample\n```\nCACHE_LOCATION=redis://:@127.0.0.1:6379/1\n```\n\n3. WebSocket channels\n\n- CHANNEL_REDIS_LOCATION: The redis location to run websocket channel\n\nExample\n```\nCHANNEL_REDIS_LOCATION=redis://:@127.0.0.1:6379/1?ssl_cert_reqs=none\n```\n\n\n## API Documentation\nFor detailed API documentation, refer to the [documentation website](https://docs.locker.io/).\n\n\n## Whitepaper\n\n[Locker Whitepaper](https://locker.io/whitepaper)\n\n\n## Contribute\n\nContributions to the Locker API project are welcome! If you find any issues or want to suggest improvements, please \nfeel free to open an issue or submit a pull request.\n\nBefore contributing, please review the [Contribution Guidelines](https://github.com/lockerpm/.github/blob/main/CONTRIBUTING.md).\n\n\n## License\n\nThe Locker API Backend is open-source and released under the [GPLv3](./LICENSE) License. Feel free to use, modify, and \ndistribute the code as per the terms of the license.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flockerpm%2Fcore-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flockerpm%2Fcore-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flockerpm%2Fcore-api/lists"}