# pypi-mirrors **Repository Path**: orgcollector/pypi-mirrors ## Basic Information - **Project Name**: pypi-mirrors - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-10-06 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README pypi-mirrors ============ Very simple tool that pings the PyPI mirrors and tells us when they were updated last. I threw this together very quickly as a proof of concept feel free to fork, and send pull requests. Docker Image ------------ https://hub.docker.com/r/ibigbug/pypi-mirrors/ Config ------ Redis ~~~~~ It requires redis in order to cache some of the data. For local development it is assuming it to be running at localhost:6379 db:1 and no password. see ``config.py`` for more info. GeoIP ~~~~~ In order to get the IP address geolocation lookup, you need to sign up for an account from http://ipinfodb.com/register.php . If you don't have the env variable set, you will not have access to the geo location information. set IPLOC_API_KEY with the API key they give you. Email & Twitter ~~~~~~~~~~~~~~~ Pass the corresponding environment variables to enable email & twitter notifications. Environment variables ~~~~~~~~~~~~~~~~~~~~~ env variables:: docker run \ -e 'CACHE_REDIS_HOST=localhost' \ -e 'CACHE_REDIS_PORT=6379' \ -e 'IPLOC_API_KEY=' \ -e 'TWITTER_CONSUMER_KEY=' \ -e 'TWITTER_CONSUMER_SECRET=' \ -e 'TWITTER_ACCESS_KEY=' \ -e 'TWITTER_ACCESS_SECRET=' \ -e 'EMAIL_HOST=' \ -e 'EMAIL_PORT=' \ -e 'EMAIL_USER=' \ -e 'EMAIL_PASSWORD=' \ -e 'EMAIL_FROM=' \ -e 'EMAIL_TO=' \ -e 'EMAIL_BCC=' \ -e 'EMAIL_TO_ADMIN='\ -e 'SENTRY_DSN='\ ibigbug/pypi-mirrors \ uwsgi -w wsgi --logto=/var/log/uwsgi/uwsgi.log --chdir=/src/ --chmod-socket=666 How it works ------------ The ``pypi_mirrors.py`` script runs via a cron job and puts data into redis. There is one webpage that pull the data from redis and displays it. There is a daily cron job that runs and sends out notifications if the mirrors are out of date. Demo ---- http://www.pypi-mirrors.org How to help ----------- Pick one of the things on the TODO list and implement it and send a pull request. Running locally --------------- Make sure redis is running 1. Collecting Data:: $ python pypi_mirrors.py 2. Running web server:: $ python app.py # connect to http://localhost:5000 in browser TODO: ----- - [ ] Create a setup.py and add to PyPI - [ ] Add better documentation - [x] Make Docker Image