{"id":13422763,"url":"https://github.com/mvantellingen/localshop","last_synced_at":"2025-10-23T20:03:28.568Z","repository":{"id":2392894,"uuid":"3359149","full_name":"mvantellingen/localshop","owner":"mvantellingen","description":"local pypi server (custom packages and auto-mirroring of pypi)","archived":false,"fork":false,"pushed_at":"2023-04-21T20:53:22.000Z","size":1356,"stargazers_count":396,"open_issues_count":47,"forks_count":112,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-05-14T14:49:15.105Z","etag":null,"topics":["packaging","pypi","python"],"latest_commit_sha":null,"homepage":"","language":"Less","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mvantellingen.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2012-02-05T12:03:50.000Z","updated_at":"2025-02-24T19:25:02.000Z","dependencies_parsed_at":"2023-07-05T18:32:35.501Z","dependency_job_id":null,"html_url":"https://github.com/mvantellingen/localshop","commit_stats":{"total_commits":526,"total_committers":47,"mean_commits":"11.191489361702128","dds":0.7281368821292775,"last_synced_commit":"875ae6d056282bb9d33c07ab69d7bae8e02d5d66"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvantellingen%2Flocalshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvantellingen%2Flocalshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvantellingen%2Flocalshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvantellingen%2Flocalshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mvantellingen","download_url":"https://codeload.github.com/mvantellingen/localshop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254544146,"owners_count":22088807,"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":["packaging","pypi","python"],"created_at":"2024-07-30T23:00:56.349Z","updated_at":"2025-10-23T20:03:28.513Z","avatar_url":"https://github.com/mvantellingen.png","language":"Less","funding_links":[],"categories":["资源列表","Package Repositories","Python","包仓库","Awesome Python"],"sub_categories":["包仓库","Package Repositories"],"readme":"localshop\n=========\n\n.. image:: https://img.shields.io/pypi/v/localshop.svg\n    :target: https://pypi.python.org/pypi/localshop/\n    :alt: Latest Version\n\n.. image:: https://travis-ci.org/mvantellingen/localshop.svg?branch=master\n    :target: https://travis-ci.org/mvantellingen/localshop\n\n.. image:: http://codecov.io/github/mvantellingen/localshop/coverage.svg?branch=master\n    :target: http://codecov.io/github/mvantellingen/localshop?branch=master\n\n\nA PyPI server which automatically proxies and mirrors PyPI packages based\nupon packages requested. It has support for multiple indexes and team based\naccess and also supports the uploading of local (private) packages.\n\nThe full documentation is available on `Read The Docs`_\n\n.. _`Read The Docs`: http://localshop.readthedocs.org/\n\n\n\nGetting started\n---------------\n\nWhen you want to host it on AWS with the Azure AD oauth2 server use:\n\n    docker run \\\n        -e DATABASE_URL=postgresql://user:password@host/database\n        -e SECRET_KEY=\u003csecret-key-for-django\u003e\n        -e LOCALSHOP_FILE_STORAGE=storages.backends.s3boto.S3BotoStorage\n        -e LOCALSHOP_FILE_BUCKET_NAME=\u003cyour-aws-s3-bucket\u003e\n        -e OAUTH2_PROVIDER=azuread-oauth2 \\\n        -e OAUTH2_APPLICATION_ID=\u003cyour-oauth2-app-id\u003e\n        -e OAUTH2_SECRET_KEY=\u003cyour-oauth2-secret-key\u003e\n        mvantellingen/localshop\n\nIf you want more flexibility you can load your custom settings file by mounting\na docker volume and creating a localshop.conf.py. This file will be loaded by\nlocalshop at the end of the settings file.\n\n    docker run \\\n        -e DATABASE_URL=postgresql://user:password@host/database\n        -e SECRET_KEY=\u003csecret-key-for-django\u003e\n        -v $(PWD)/config:/home/localshop/conf/\n        mvantellingen/localshop\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvantellingen%2Flocalshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmvantellingen%2Flocalshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvantellingen%2Flocalshop/lists"}