pi-apps icon indicating copy to clipboard operation
pi-apps copied to clipboard

VPNs

Open GYKgamer opened this issue 1 year ago • 27 comments

What is the name of the app?

ProtonVPN

Where is the app hosted?

https://protonvpn.com/download-linux

About the app

ProtonVPN is simply, a vpn. Free to use, simple to install and works without box86/64.

Upload file or Add PR Link

https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_1.0.3-3_all.deb

Confirmations

  • [X] I have confirmed that this app is legal and not piracy.
  • [X] I have confirmed that this app has never been discussed in https://github.com/Botspot/pi-apps/issues and https://github.com/Botspot/pi-apps/pulls, and it is not in the Pi-Apps app list.
  • [X] I have read and followed the creating an app for Pi-Apps documentation.
  • [X] I have confirmed that this app can run on all Pi-Apps supported systems.

GYKgamer avatar Jul 12 '24 16:07 GYKgamer

image

GYKgamer avatar Jul 12 '24 16:07 GYKgamer

By any chance does this app add its own apt repository to the system? We had an issue with this happening once, though in that case I'm not sure if the user added this repo or if the app added it automatically. See: https://github.com/Botspot/pi-apps/issues/959

Botspot avatar Jul 12 '24 18:07 Botspot

It does add it's own apt repo, after installing the deb you sue apt to install protonvpn image

GYKgamer avatar Jul 12 '24 19:07 GYKgamer

the package linked is simply a package that contains the sources list and key. nothing else

image

that is fine and pretty common for 3rd party repositories

all that is needed for pi-apps would be something like

# install latest repo package at the time of writing
install_packages https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_1.0.3-3_all.deb || exit 1

# check that repo works without error
apt_update
if [ $? != 0 ]; then
  sudo apt purge -y protonvpn-stable-release
  error "Failed to perform apt update after adding protonvpn repository."
fi
# update repo package if newer version is available
apt_lock_wait
sudo apt install --only-upgrade protonvpn-stable-release -y

# install proton vpn
install_packages proton-vpn-gnome-desktop || exit 1

theofficialgman avatar Jul 12 '24 20:07 theofficialgman

the above could be made simpler if we obtained the latest version of the protonvpn-stable-release package by parsing the debian repo ourselves. similar to how this script does that https://github.com/Botspot/pi-apps/blob/master/.github/workflows/update_debian_repo_script.sh

theofficialgman avatar Jul 12 '24 20:07 theofficialgman

If possible, I would like to add more vpns? In #586 Botspot at the end added he wanted to add vpns to pi-apps, for example some others ones I use and like: Windscribe VPN: https://github.com/Windscribe/Desktop-App NordVPN: https://support.nordvpn.com/hc/en-us/articles/20196094470929-Installing-NordVPN-on-Linux-distributions

GYKgamer avatar Jul 13 '24 01:07 GYKgamer

Yes, I'm still supportive of adding VPNs. @GYKgamer, if you had the time, it would help us if you did more than add a link to the deb. Doing that just means that I put this on a mental list to install it myself, try it out, find a good text source to write the description, find the homepage to put in the website field, figure out how to uninstall it... Most of those things would be easier for you to do, especially if you have prior experience with the app.

Botspot avatar Jul 13 '24 01:07 Botspot

I got a little something working for windscribe, it's just a starting point since I don't know how to determine a version number except for the one right one. windscribe.zip

GYKgamer avatar Jul 13 '24 02:07 GYKgamer

A zipfile was found in the body of an issue comment. The sha1sum of the zip was: 3075cee3e453043a25fcd2db70a421b998f41bf4

Click to show contents preview

uninstall.sh

#!/bin/bash

sudo dpkg --purge windscribe || error "Failed to uninstall Windscribe package!"
sudo rm -f /usr/share/applications/windscribe.desktop || error "Failed to remove desktop entry"

install32.sh

#!/bin/bash

deb_url="https://deploy.totallyacdn.com/desktop-apps/2.10.15/windscribe_2.10.15_arm64.deb"
deb_file="$HOME/Downloads/windscribe_2.10.15_arm64.deb"
wget -O "$deb_file" "$deb_url" || error "Failed to download Windscribe package!"
sudo dpkg -i "$deb_file" || error "Failed to install Windscribe package!"
echo "[Desktop Entry]
Name=Windscribe
Comment=Windscribe VPN
Exec=/usr/bin/windscribe
Icon=/usr/share/icons/hicolor/64x64/apps/windscribe.png
Terminal=false
Type=Application
Categories=Network;Security;
Keywords=VPN;Privacy;
" | sudo tee /usr/share/applications/windscribe.desktop
rm -f "$deb_file"

github-actions[bot] avatar Jul 13 '24 02:07 github-actions[bot]

@GYKgamer Were you using the pi-apps "create app" wizard for this? https://pi-apps.io/wiki/development/Creating-an-app/

Botspot avatar Jul 13 '24 02:07 Botspot

I read the documentation but I did not use the wizard

GYKgamer avatar Jul 13 '24 02:07 GYKgamer

I'm not sure where to begin. :(

  • Need to use install_packages
  • Need to use the script naming convention: install-32, install-64, uninstall, not install32.sh and uninstall.sh
  • 64-bit packages should not ever be installed in install-32
  • There should be >/dev/null after sudo tee, otherwise the contents of the menu launcher is output in the terminal. This tip is not mentioned in the docs but it is used in every apps that uses sudo tee to make a menu launcher.
  • uninstall should use purge_packages
  • version variable should be used so it's easier to set up a github update script for the app. This is also not in our docs, but it's used in many apps.

Please use the wizard and read the documentation. That will save everyone time.

Botspot avatar Jul 13 '24 03:07 Botspot

😆 maybe I wasn't as good at coding as I remembered, i'll use the wizard

GYKgamer avatar Jul 13 '24 12:07 GYKgamer

Windscribe.zip Updated, I used the wizard and followed the docs, hopefully should be better

GYKgamer avatar Jul 13 '24 14:07 GYKgamer

A zipfile was found in the body of an issue comment. The sha1sum of the zip was: 1a87544d9de31ab09bc519d10ca84b49538eb1fb

Click to show contents preview

Windscribe/uninstall

#!/bin/bash

purge_packages windscribe || { echo "Failed to uninstall Windscribe package!"; exit 1; }

sudo rm -f /usr/share/applications/windscribe.desktop || { echo "Failed to remove desktop entry"; exit 1; }

Windscribe/credits

Windscribe for making this application.
GYKgamer, Botspot and theofficalgman for implamenting this into Pi-apps.

Windscribe/website

https://windscribe.com

Windscribe/install-64

#!/bin/bash

version="2.10.15"

deb_url="https://deploy.totallyacdn.com/desktop-apps/${version}/windscribe_${version}_arm64.deb"

deb_file="$HOME/Downloads/windscribe-${version}.deb"

wget -O "$deb_file" "$deb_url" || { echo "Failed to download Windscribe package!"; exit 1; }

install_packages "$deb_file" || { echo "Failed to install Windscribe package!"; exit 1; }

echo "Creating a Windscribe button in the Main Menu..."
echo "[Desktop Entry]
Name=Windscribe
Comment=Windscribe VPN
Exec=/opt/windscribe/Windscribe
Icon=windscribe
Path=/opt/windscribe/
Type=Application
Categories=Network;Security;
Keywords=VPN;Privacy;
StartupNotify=true
" | sudo tee /usr/share/applications/windscribe.desktop >/dev/null

rm -f "$deb_file"

Windscribe/description

Simple VPN with 11 locations to choose from (using the free plan) and a 10gb limit.
To run this you can type "windscribe" nito your terminal, or use the start menu -> Internet -> Windscribe. 

github-actions[bot] avatar Jul 13 '24 14:07 github-actions[bot]

Better. Remaining issues:

  • purge_packages takes no arguments. It automatically uninstalls everything that was installed with install_packages.
  • install_packages can take url arguments. So you can skip the wget and rm part by doing install_packages "https://deploy.totallyacdn.com/desktop-apps/${version}/windscribe_${version}_arm64.deb"

Botspot avatar Jul 13 '24 14:07 Botspot

Windscribe.zip that should be it now

GYKgamer avatar Jul 13 '24 19:07 GYKgamer

A zipfile was found in the body of an issue comment. The sha1sum of the zip was: d571bb8a04095c1d981213174e5f66937998e1bd

Click to show contents preview

Windscribe/uninstall

#!/bin/bash

purge_packages windscribe || { echo "Failed to uninstall Windscribe package!"; exit 1; }

sudo rm -f /usr/share/applications/windscribe.desktop || { echo "Failed to remove desktop entry"; exit 1; }

Windscribe/credits

Windscribe for making this application.
GYKgamer, Botspot and theofficalgman for implamenting this into Pi-apps.

Windscribe/website

https://windscribe.com

Windscribe/install-64

#!/bin/bash

version="2.10.15"
deb_url="https://deploy.totallyacdn.com/desktop-apps/${version}/windscribe_${version}_arm64.deb"

install_packages "$deb_url" || { echo "Failed to install Windscribe package!"; exit 1; }

echo "Creating a Windscribe button in the Main Menu..."
echo "[Desktop Entry]
Name=Windscribe
Comment=Windscribe VPN
Exec=/opt/windscribe/Windscribe
Icon=windscribe
Path=/opt/windscribe/
Type=Application
Categories=Network;Security;
Keywords=VPN;Privacy;
StartupNotify=true
" | sudo tee /usr/share/applications/windscribe.desktop >/dev/null

Windscribe/description

Simple VPN with 11 locations to choose from (using the free plan) and a 10GB limit.
To run this, you can type "windscribe" into your terminal, or use the start menu -> Internet -> Windscribe.

github-actions[bot] avatar Jul 13 '24 19:07 github-actions[bot]

  • You are still trying to give arguments to purge_packages. Upon failure, it will describe the issue, so just replace all that stuff with purge_packages || exit 1
  • What's with the {echo ; exit 1}? We have a function for this called error. Use that.

Botspot avatar Jul 13 '24 19:07 Botspot

My bad, I'm not as good at programming as I thought I was. Windscribe.zip

GYKgamer avatar Jul 13 '24 21:07 GYKgamer

A zipfile was found in the body of an issue comment. The sha1sum of the zip was: 6d45077b79e0293834d36465a9247e6ccf0fb4cd

Click to show contents preview

Windscribe/uninstall

#!/bin/bash

purge_packages || error "Failed to uninstall Windscribe package!"

sudo rm -f /usr/share/applications/windscribe.desktop || error "Failed to remove desktop entry"

Windscribe/credits

Windscribe for making this application.
GYKgamer, Botspot and theofficalgman for implamenting this into Pi-apps.

Windscribe/website

https://windscribe.com

Windscribe/install-64

#!/bin/bash

version="2.10.15"
deb_url="https://deploy.totallyacdn.com/desktop-apps/${version}/windscribe_${version}_arm64.deb"

install_packages "$deb_url" || error "Failed to install Windscribe package!"

echo "Creating a Windscribe button in the Main Menu..."
echo "[Desktop Entry]
Name=Windscribe
Comment=Windscribe VPN
Exec=/opt/windscribe/Windscribe
Icon=windscribe
Path=/opt/windscribe/
Type=Application
Categories=Network;Security;
Keywords=VPN;Privacy;
StartupNotify=true
" | sudo tee /usr/share/applications/windscribe.desktop >/dev/null

Windscribe/description

Simple VPN with 11 locations to choose from (using the free plan) and a 10gb limit.
To run this you can type "windscribe" nito your terminal, or use the start menu -> Internet -> Windscribe. 

github-actions[bot] avatar Jul 13 '24 21:07 github-actions[bot]

@GYKgamer were you wanting to add Proton VPN or Windscribe, or both? IT seems that both are discussed in this issue.

Botspot avatar Jul 26 '24 19:07 Botspot

I kind of decided mid way through to change this into a discussion of vpns in general, If thats okay? image

GYKgamer avatar Jul 26 '24 21:07 GYKgamer

@GYKgamer Were you still wanting to add Proton VPN? What do you think about getting several vpns ready and then adding them to pi-apps all at once so I can put them in a new vpn category.

Botspot avatar Jul 29 '24 02:07 Botspot

@GYKgamer Were you still wanting to add Proton VPN? What do you think about getting several vpns ready and then adding them to pi-apps all at once so I can put them in a new vpn category.

That was exactly the plan I had in mind.

GYKgamer avatar Jul 29 '24 16:07 GYKgamer

TLDR: It works on 64 bit RPI 5.

The first time installing this I got a bug with the keyring not going away. After following the instructions again I can confirm that it installs correctly which is step 1. The basic sign-in works as well as the 2nd-factor authentication. It then says connected and with disabling my ad-block on Chromium, I can confirm YouTube ads are speaking Dutch. This means it is working successfully. The only thing is that the app does not support full-screen size.

Other vpns

With adding other vpns, can we make sure that they have been independently verified as well as check that they encrypt network traffic not just change the IP address? Some vpns do not do this. Proton VPN does and has been independently verified by securitum in this report.

ProtonAG

ProtonAG is a good company. They have other apps (password manager, calender, drive, mail) which I also use. However, those are best used as web apps which are always going to be reliable so I would probably not recommend adding them to PI Apps.

Combustion-is-fun avatar Aug 14 '24 14:08 Combustion-is-fun

I wanted to bump this because of the current situation in the UK and how it could affect many people. It would definitely help with what's going on by adding VPNs.

GYKgamer avatar Jul 30 '25 18:07 GYKgamer