{"id":16162991,"url":"https://github.com/d3vilh/vpntv","last_synced_at":"2025-03-18T22:31:17.966Z","repository":{"id":65846398,"uuid":"598520911","full_name":"d3vilh/vpntv","owner":"d3vilh","description":"Enable VPN on any TV or other device with help of Raspberry-pi or any PC and no soldering","archived":false,"fork":false,"pushed_at":"2023-12-03T15:18:24.000Z","size":17152,"stargazers_count":14,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T12:33:49.889Z","etag":null,"topics":["8188eu","drivers","linux-kernel","modules","nintendo","playstation","raspberry-pi","rtl8188","tvos","vpn","vpn-client","vpntv","webos","wifi-network","xbox"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d3vilh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"d3vilh","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://www.buymeacoffee.com/d3vilh"]}},"created_at":"2023-02-07T09:30:10.000Z","updated_at":"2025-02-18T16:44:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"4f5fa7a8-0b9d-400e-9108-c6805d4459a6","html_url":"https://github.com/d3vilh/vpntv","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3vilh%2Fvpntv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3vilh%2Fvpntv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3vilh%2Fvpntv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3vilh%2Fvpntv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d3vilh","download_url":"https://codeload.github.com/d3vilh/vpntv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243950927,"owners_count":20373664,"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":["8188eu","drivers","linux-kernel","modules","nintendo","playstation","raspberry-pi","rtl8188","tvos","vpn","vpn-client","vpntv","webos","wifi-network","xbox"],"created_at":"2024-10-10T02:34:09.033Z","updated_at":"2025-03-18T22:31:16.827Z","avatar_url":"https://github.com/d3vilh.png","language":"Shell","funding_links":["https://github.com/sponsors/d3vilh","https://www.buymeacoffee.com/d3vilh"],"categories":[],"sub_categories":[],"readme":"# VPNTV project\n**OpenVPN Client for any TV, TV-boxes or Game Consoles**, provides OpenVPN client running as a service on your Raspberry Pi or any other Linux device. Supports **Wired** (Ethernet) and **Wireless** (WiFi) connection types to your devices. Every VPN provider will have configuration files for openvpn ([Proton](https://protonvpn.com/support/vpn-config-download/), [Nord](https://nordvpn.com/uk/ovpn/), [Surfshark](https://support.surfshark.com/hc/en-us/articles/360003204233-How-to-set-up-OpenVPN-GUI-app-on-Windows-), [Express](https://www.expressvpn.com/support/vpn-setup/manual-config-for-windows-xp-vista-7-8-with-openvpn/)) as well as you may use [respberry-gateway](https://github.com/d3vilh/raspberry-gateway) or [openvpn-aws](https://github.com/d3vilh/openvpn-aws) to create your own VPN server and generate client configuration files compatible with this project.\n\n\u003cimg src=\"https://github.com/d3vilh/vpntv/raw/main/images/vpntv-wireless.png\" alt=\"wireless connection type 1\" width=\"255\" border=\"3\" /\u003e \u003cimg src=\"https://github.com/d3vilh/vpntv/raw/main/images/vpntv-wireless2.png\" alt=\"wireless connection type 2\" width=\"255\" border=\"3\" /\u003e \u003cimg src=\"https://github.com/d3vilh/vpntv/raw/main/images/vpntv-wired.png\" alt=\"wired connection\" width=\"250\" border=\"3\" /\u003e\n\n## Requirements\n   ### [Hardware Requirements Guide](https://github.com/d3vilh/vpntv-hardware)\n   ### [Raspbian Installation Guide](https://github.com/d3vilh/vpntv-hardware/tree/main/imager-configuration)\n\n## VPNTV Software Installation Steps\n When you have your Raspberry Pi with Raspbian OS [installed and configured](https://github.com/d3vilh/vpntv-hardware/tree/main/imager-configuration), you can start with VPNTV installation steps described below:\n  1. Login on your Raspberry Pi as `vpntv` user and update your Raspberry Pi OS:\n     ```shell\n     sudo apt-get update \u0026\u0026 sudo apt-get upgrade -y\n     ```\n      \u003e **Note**: In case official repositories are not available: `echo \"deb http://ftp.agdsn.de/pub/mirrors/raspbian/raspbian/ bullseye main contrib non-free rpi\" | sudo tee -a /etc/apt/sources.list` then `sudo apt-get update \u0026\u0026 sudo apt-get upgrade -y`\n\n  2. Install [Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html):\n     ```shell \n     sudo apt-get install -y git ansible\n     ```\n  3. Clone this repository: \n     ```shell\n     git clone https://github.com/d3vilh/vpntv\n     ```\n  4. Install requirements: \n     ```shell\n     cd vpntv \u0026\u0026 ansible-galaxy collection install -r requirements.yml\n     ```\n     \u003e If you see `ansible-galaxy: command not found`, you have to relogin (or reboot your Pi) and then try again.\n\n  \u003cdetails\u003e\n    \u003csummary\u003eContinue Installation with WebUI\u003c/summary\u003e\n\n  5. Run [Webinstall](https://github.com/d3vilh/vpntv-webconfig) binary:\n     ```shell\n     secret@rpgw:~/vpntv $ ./webinstall\n     2023/07/07 18:01:03 Welcome! The web interface will guide you on installation process.\n     Installation logs: webinstall.log\n     2023/07/07 18:01:03 Starting web server on http://10.10.10.18:8088\n     ```\n  6. Copy server address (`http://10.10.10.18:8088` as above example) from the console and paste into your browser, then press Enter. Raspberry-Gateway webinstall window will appear:\n     ![Webinstall picture 1](/images/Webinstall-02.png)\n  7. Choose all the components you would like to install and change all the passwords (keep them in mind). \n     \u003e **Note**: You can leave all the passwords as default, but it's not recommended.\n  8. Press \"Save\" button. When your configuration is ready, then press \"Install\" button. It will initiate installation in background:\n     ![Webinstall picture 2](/images/Webinstall-03.png)\n  9. The installation process will take some time.\n\n  * Additional options:\n    * **To Remove** any of previously installed component - click `Uninstall \"component\"` checkbox then `Save` configuration file and press `Uninstall` button.\n    * **To set Default options** for the next `webinstall` run - modify `example.config.yml` with the default parameters. \n    * Default **Ansible parameters**, such as `ansible_user` can be set in `example.inventory.yml` file.\n  \u003c/details\u003e\n\n  Afraid of GUI? Need more control?\n\n\u003cdetails\u003e\n    \u003csummary\u003eInstall everything with CLI\u003c/summary\u003e\n\n  5. Make copies of the configuration files and modify them for your enviroment:\n      ```shell\n      yes | cp -p example.inventory.yml inventory.yml \n      yes | cp -p example.config.yml config.yml\n      ```\n  6. **Double check** that `ansible_user` is correct for `inventory.yml`. Need to run installtion on the remote server - follow the recomendations in config file.\n     \n     \u003e **Note**: To make all necesary changes: `nano inventory.yml`, save the file - `Ctrl+O` and `Ctrl+X` to exit.\n  7. Modify `config.yml` to **enable** or **disable** desired containers to be installed on your Pi.\n     For example, to **enable** Portainer - change `enable_portainer: false` option to `enable_portainer: true` and vs to disable.\n     \u003e **Note**: Default configuration options in the list below are **bold**.\n      \u003cdetails\u003e\n      \u003csummary\u003eList of available configuration options\u003c/summary\u003e\n\n         * **ovpnclient_enable** - enable or disable OpenVPN client service. You need to have OpenVPN client configuration file in `client-ovpn` directory (see next installation step).\n         \n         * **ethernet2wifi_enable** - enable or disable TV over WiFi connection, while VPNTV connected by Ethernet cable to your home Router. You need to configure here WiFi network name and password of new AP which will be up on vpntv. Prefferable setup. Can't be used with other connection options at the same time.\n\n         * **wifi2wifi_enable** - enable or disable VT over WiFi connection. VPNTV connects to your home WiFi network and create new WiFi network for your TV. You need to configure here WiFi network name and password of new AP which will be up on vpntv. Used only if you have WiFi dongle connected to your Raspberry Pi. Can't be used with other connection options at the same time.\n  \n         * **wifi_mod_enable** - enable or disable custom WiFi modules installation. You need to enable it if your WiFi dongle does not support AP mode by Raspberry Pi OS by default. [Refer to the list](https://github.com/d3vilh/vpntv/tree/main/wifi-modules) of all supported WiFi dongles.\n  \n         * **wifi2ethernet_enable** - enable or disable TV over Ethernet connection. Used only if your TV has Ethernet cable connected to your Raspberry Pi. Can't be used with other connection options at the same time.\n      \u003c/details\u003e\n\n\n  8. Copy your OpenVPN client configuration file to `client-ovpn` directory and rename it to `client.ovpn`. Here is example of [client.ovpn](https://github.com/d3vilh/vpntv/blob/master/client-ovpn/example-client.ovpn) file configuration. All the parameters of `client.ovpn` depends on your VPN Server configuration. \n      \u003e **Note**: You may use [respberry-gateway](https://github.com/d3vilh/raspberry-gateway) or [openvpn-aws](https://github.com/d3vilh/openvpn-aws) to create your own VPN server and generate client configuration files compatible with VPNTV project. Or go with [Proton](https://protonvpn.com/support/vpn-config-download/), [Nord](https://nordvpn.com/uk/ovpn/), [Surfshark](https://support.surfshark.com/hc/en-us/articles/360003204233-How-to-set-up-OpenVPN-GUI-app-on-Windows-), [Express](https://www.expressvpn.com/support/vpn-setup/manual-config-for-windows-xp-vista-7-8-with-openvpn/), etc profiles.\n\n  9. Run installation playbook: \n     ```shell\n     ansible-playbook main.yml\n     ```\n     \u003e **Note**: **If running locally on the Pi**: You may have error like `Error while fetching server API version`. You have to relogin to your Pi and then run the playbook again.\n\n### To remove VPNTV components\nIf for some reasons you want to remove one or all VPNTV software components from your Raspberry Pi, you can do it following by these steps:\n  1.  Modify `config.yml` to set true components you desired to remove.\n     For example, **to remove** WiFi modules - change `wifi_module_remove` option from `false` to `true`.\n      \u003cdetails\u003e\n      \u003csummary\u003e\n      List of all removal options\n      \u003c/summary\u003e\n\n      \u003e **Note**: You can remove all components at the same time or do it one by one.\n\n      * **wifi_config_remove** - true/false when `true` - removes all types of VPNTV connections configuration and stop the serives.\n\n      * **wifi_module_remove** - true/false when `true` - removes custom WiFi modules and restore original Realtek 8188 module.\n         \n      * **ovpnclient_remove** - true/false when `true` - removes OpenVPN client service, configuration and OpenVPN packages.\n\n      \u003c/details\u003e\n\n  2.  Run removal playbook:\n       ```shell\n       ansible-playbook remove.yml\n       ```\n  \u003c/details\u003e\n  \n\n  10.  Reboot your Pi:\n       ```shell\n       sudo reboot\n       ```\n\n  11.  After the reboot, VPNTV will initiate OpenVPN connection to your VPN server and create WiFi network for your TV. You can connect to it and start using your VPN connection. If your preffered connection option is Ethernet - connect VPNTV to the Ethernet port of your TV and you are ready to go.\n\n\n\u003ca href=\"https://www.buymeacoffee.com/d3vilh\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" height=\"51\" width=\"217\"\u003e\u003c/a\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3vilh%2Fvpntv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd3vilh%2Fvpntv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3vilh%2Fvpntv/lists"}