{"id":13961418,"url":"https://github.com/firecat53/pia_transmission_monitor","last_synced_at":"2025-07-21T06:30:52.372Z","repository":{"id":13105827,"uuid":"15787378","full_name":"firecat53/pia_transmission_monitor","owner":"firecat53","description":"Update Transmission-daemon forwarded port and bound IP address when using privateinternetaccess.com via OpenVPN","archived":true,"fork":false,"pushed_at":"2021-03-12T01:31:22.000Z","size":12,"stargazers_count":10,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-09T17:29:38.755Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firecat53.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-10T03:33:26.000Z","updated_at":"2023-01-28T10:09:19.000Z","dependencies_parsed_at":"2022-07-12T15:08:27.510Z","dependency_job_id":null,"html_url":"https://github.com/firecat53/pia_transmission_monitor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firecat53%2Fpia_transmission_monitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firecat53%2Fpia_transmission_monitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firecat53%2Fpia_transmission_monitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firecat53%2Fpia_transmission_monitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firecat53","download_url":"https://codeload.github.com/firecat53/pia_transmission_monitor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226878815,"owners_count":17696722,"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-08-08T17:01:07.432Z","updated_at":"2024-11-28T07:30:53.049Z","avatar_url":"https://github.com/firecat53.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"PROJECT IS ARCHIVED. NO LONGER FUNCTIONAL WITH NEW PIA API\n\nPort Forwarding Monitor for Transmission-daemon with PrivateInternetAccess VPN\n==============================================================================\n\nThis is a script that monitors assigned privateinternetaccess.com port\nforwarding ports and the bind address, and adjusts the values in\nTransmission-daemon's settings.json to ensure continuous operation and no\ninformation leakage outside the VPN.\n\nRequirements\n------------\n\n.. warning::\n   The OpenVPN setup I use routes *all* internet traffic through the VPN, so if\n   you are expecting to retain SSH access to a remote server, don't use this\n   without modification! I haven't tried to setup a separate network for\n   torrent traffic...but I have locked myself out by starting up OpenVPN on a\n   remote server!\n\n1. Linux Server, VPS or LXC container\n\n   - Should work with any distro using 'service' or 'systemctl' to start/stop daemons\n\n2. PrivateInternetAccess.com account\n\n   - You need your User and Password `from here`_ \n   - Good info on `port forwarding setup`_ and on generating a client_id\n   - client_id\n\n3. Working OpenVPN setup with privateinternetaccess_\n\n   - Make sure you use one of the gateways listed there that support port forwarding.\n\n4. Working transmission-daemon\n\n5. Python (python 2.7+ or python 3+)\n\nInstallation\n------------\n\n1. Copy script to location of your choice (/usr/local/bin, ~/.local/bin/, etc.)\n\n   OR\n\n1. ``# python setup.py install`` OR ``$ python setup.py install --user``\n\n2. Generate client_id and store in a file (e.g. ~/.pia_client_id)\n3. Copy config.ini.sample to /etc/pia_transmission_monitor/config.ini or\n   ~/.config/pia_transmission_monitor/config.ini\n4. Edit config.ini as necessary. It should be self-explanatory\n5. Make sure that the client_id file and the pia_cred file have appropriate\n   permissions to be read by the user running this script.\n\nUsage\n-----\n\n1. Use whatever startup mechanism you desire to have port_check.py start at\n   boot time. For example, here is /etc/rc.local on a Debian system::\n\n    su -l -c \"/home/\u003cuser\u003e/.local/bin/port_check.py\" \u003cuser\u003e \u0026\n\n2. The script will start and stop openvpn and transmission-daemon as required\n   if the forwarded port changes.\n\nTODO\n----\n\n1. Experiment with supervisord to manage the port_check.py script. This may\n   make configuration manager (ansible, et. al.) deployment easier\n\n\n.. _from here: https://www.privateinternetaccess.com/pages/client-control-panel\n.. _port forwarding setup:\n   https://www.privateinternetaccess.com/forum/index.php?p=/discussion/180/port-forwarding-without-the-application-advanced-users\n.. _openvpn.zip: https://www.privateinternetaccess.com/openvpn/openvpn.zip\n.. _privateinternetaccess:\n   https://www.privateinternetaccess.com/pages/client-support/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirecat53%2Fpia_transmission_monitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffirecat53%2Fpia_transmission_monitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirecat53%2Fpia_transmission_monitor/lists"}