{"id":18747667,"url":"https://github.com/quantum5/peeringdb-mirror","last_synced_at":"2025-11-24T19:30:15.483Z","repository":{"id":233085292,"uuid":"785943328","full_name":"quantum5/peeringdb-mirror","owner":"quantum5","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-13T05:00:30.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-28T21:16:43.494Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quantum5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-04-13T01:06:40.000Z","updated_at":"2024-04-13T02:47:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"306f3593-f82a-4275-b7c1-196e64117b25","html_url":"https://github.com/quantum5/peeringdb-mirror","commit_stats":null,"previous_names":["quantum5/peeringdb-mirror"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantum5%2Fpeeringdb-mirror","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantum5%2Fpeeringdb-mirror/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantum5%2Fpeeringdb-mirror/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantum5%2Fpeeringdb-mirror/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quantum5","download_url":"https://codeload.github.com/quantum5/peeringdb-mirror/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239634454,"owners_count":19672183,"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":[],"created_at":"2024-11-07T16:30:53.767Z","updated_at":"2025-11-24T19:30:15.395Z","avatar_url":"https://github.com/quantum5.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PeeringDB Mirror\n\nThis repository implements a simple, Django-based PeeringDB mirroring service\nbased on `django-peeringdb` and `peeringdb-py`.\n\nCurrently, this doesn't have full PeeringDB API compatibility, but there is a\nsufficiently strong foundation to make that dream easily achievable through a\nbit of Django metaprogramming. PRs welcome!\n\n## Installation\n\n1. Clone this repository: `git clone https://github.com/quantum5/peeringdb-mirror.git`;\n2. Enter the cloned repo: `cd peeringdb-mirror`;\n3. Create a virtualenv: `python3 -m venv venv`;\n4. Activate the virtualenv for all subsequent commands: `. venv/bin/activate`;\n5. Install dependencies: `pip install -r requirements.txt`;\n6. Configure Django: `cp peeringdb_mirror/settings/{template,local}.py` and edit\n   `peeringdb_mirror/settings/local.py`. You should change `SECRET_KEY` and\n   update `DATABASES`. See the linked Django documentation for details;\n7. Migrate database: `python manage.py migrate`;\n8. Run initial database sync from PeeringDB: `python manage.py sync_peeringdb`;\n   and\n9. Run the WSGI app `peeringdb_mirror.wsgi:application` with your favourite\n   WSGI-capable application server; and\n10. Set up a cron job to run the `sync_peeringdb` command every hour:\n    `0 * * * * /path/to/venv/bin/python /path/to/repo/manage.py sync_peeringdb`.\n\n## Example uWSGI configuration in production\n\nIf you choose to run uWSGI, you can use the following configuration provided\nfor your convenience:\n\n```ini\n[uwsgi]\nuid = peeringdb\ngid = peeringdb\nprotocol = uwsgi\n; For TCP socket\nsocket = :1234\n; For Unix socket, you can do\n; socket = /tmp/peeringdb-mirror.sock\nmaster = true\npythonpath = /path/to/peeringdb-mirror\nmodule = peeringdb_mirror.wsgi:application\nbuffer-size = 8192\ndie-on-term = true\nworkers = 3\nthreads = 4\n```\n\nSave this as `peeringdb.ini`. You can install `uwsgi` in the virtualenv by doing\n`pip install uwsgi` and run it with the following `systemd` unit:\n\n```ini\n[Unit]\nDescription=PeeringDB mirror\n\n[Service]\nType=simple\nExecStart=/path/to/peeringdb-mirror/venv/bin/uwsgi /path/to/peeringdb.ini\n\n[Install]\nWantedBy=multi-user.target\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantum5%2Fpeeringdb-mirror","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquantum5%2Fpeeringdb-mirror","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantum5%2Fpeeringdb-mirror/lists"}