mirror of
https://github.com/pivpn/pivpn.git
synced 2024-12-20 03:40:17 +00:00
Merge branch 'test'
Merge test branch into master, Check LatestChanges.md for details
This commit is contained in:
commit
7fdbe44df5
12 changed files with 295 additions and 24 deletions
178
.travis.yml
Normal file
178
.travis.yml
Normal file
|
@ -0,0 +1,178 @@
|
||||||
|
language: shell
|
||||||
|
|
||||||
|
addons:
|
||||||
|
hosts:
|
||||||
|
- pivpn.test
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- shellcheck
|
||||||
|
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- lint
|
||||||
|
- test
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- test
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
allow_failures:
|
||||||
|
- stage: lint
|
||||||
|
include:
|
||||||
|
- stage: lint
|
||||||
|
name: "Shellcheck lint"
|
||||||
|
dist: linux
|
||||||
|
script:
|
||||||
|
- shellcheck autoinstall/install.sh
|
||||||
|
- shellcheck scripts/backup.sh
|
||||||
|
- shellcheck scripts/pivpn
|
||||||
|
- shellcheck scripts/self_check.sh
|
||||||
|
- shellcheck scripts/uninstall.sh
|
||||||
|
- shellcheck scripts/update.sh
|
||||||
|
- shellcheck scripts/openvpn/clientstat.sh
|
||||||
|
- shellcheck scripts/openvpn/listOVPN.sh
|
||||||
|
- shellcheck scripts/openvpn/makeOVPN.sh
|
||||||
|
- shellcheck scripts/openvpn/pivpnDebug.sh
|
||||||
|
- shellcheck scripts/openvpn/pivpn.sh
|
||||||
|
- shellcheck scripts/openvpn/removeOVPN.sh
|
||||||
|
- shellcheck scripts/wireguard/clientSTAT.sh
|
||||||
|
- shellcheck scripts/wireguard/disableCONF.sh
|
||||||
|
- shellcheck scripts/wireguard/enableCONF.sh
|
||||||
|
- shellcheck scripts/wireguard/listCONF.sh
|
||||||
|
- shellcheck scripts/wireguard/makeCONF.sh
|
||||||
|
- shellcheck scripts/wireguard/pivpnDEBUG.sh
|
||||||
|
- shellcheck scripts/wireguard/pivpn.sh
|
||||||
|
- shellcheck scripts/wireguard/qrcodeCONF.sh
|
||||||
|
- shellcheck scripts/wireguard/removeCONF.sh
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "OpenVPN Xenial & Commands"
|
||||||
|
dist: xenial
|
||||||
|
before_script:
|
||||||
|
- cat /etc/os-release
|
||||||
|
- uname -a
|
||||||
|
- sudo chmod +x ciscripts/startup.sh
|
||||||
|
- ./ciscripts/startup.sh -o
|
||||||
|
script:
|
||||||
|
- sudo ./auto_install/install.sh --unattended ciscripts/ci_openvpn.conf
|
||||||
|
- systemctl status openvpn
|
||||||
|
- pivpn add -n foo nopass -d 180
|
||||||
|
- pivpn add -p "$RANDOM$RANDOM" -n bar -d 180
|
||||||
|
- pivpn add -o -n foo
|
||||||
|
- pivpn -bk
|
||||||
|
- ls ~pi/pivpnbackup/ | grep backup
|
||||||
|
- pivpn -r foo -y
|
||||||
|
- pivpn -l
|
||||||
|
- pivpn -c
|
||||||
|
after_fail:
|
||||||
|
- sudo journalctl -xe
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "Wireguard Xenial & Commands"
|
||||||
|
dist: xenial
|
||||||
|
before_script:
|
||||||
|
- cat /etc/os-release
|
||||||
|
- uname -a
|
||||||
|
- sudo chmod +x ciscripts/startup.sh
|
||||||
|
- ./ciscripts/startup.sh -w
|
||||||
|
script:
|
||||||
|
- sudo ./auto_install/install.sh --unattended ciscripts/ci_wireguard.conf
|
||||||
|
- pivpn add -n foo
|
||||||
|
- pivpn -qr foo
|
||||||
|
- pivpn -bk
|
||||||
|
- pivpn -l
|
||||||
|
- pivpn -c
|
||||||
|
- pivpn -r foo -y
|
||||||
|
after_script:
|
||||||
|
- systemctl status wg-quick@wg0
|
||||||
|
after_fail:
|
||||||
|
- sudo journalctl -xe
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "OpenVPN Bionic & Commands"
|
||||||
|
dist: bionic
|
||||||
|
before_script:
|
||||||
|
- cat /etc/os-release
|
||||||
|
- uname -a
|
||||||
|
- sudo chmod +x ciscripts/startup.sh
|
||||||
|
- ./ciscripts/startup.sh -o
|
||||||
|
script:
|
||||||
|
- sudo ./auto_install/install.sh --unattended ciscripts/ci_openvpn.conf
|
||||||
|
- systemctl status openvpn
|
||||||
|
- pivpn add -n foo nopass -d 180
|
||||||
|
- pivpn add -p "$RANDOM$RANDOM" -n bar -d 180
|
||||||
|
- pivpn add -o -n foo
|
||||||
|
- pivpn -bk
|
||||||
|
- ls ~pi/pivpnbackup/ | grep backup
|
||||||
|
- pivpn -r foo -y
|
||||||
|
- pivpn -l
|
||||||
|
- pivpn -c
|
||||||
|
after_fail:
|
||||||
|
- sudo journalctl -xe
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "Wireguard Bionic & Commands"
|
||||||
|
dist: bionic
|
||||||
|
before_script:
|
||||||
|
- cat /etc/os-release
|
||||||
|
- uname -a
|
||||||
|
- sudo apt update -y
|
||||||
|
- sudo chmod +x ciscripts/startup.sh
|
||||||
|
- ./ciscripts/startup.sh -w
|
||||||
|
script:
|
||||||
|
- sudo ./auto_install/install.sh --unattended ciscripts/ci_wireguard.conf
|
||||||
|
- systemctl status wg-quick@wg0
|
||||||
|
- pivpn add -n foo
|
||||||
|
- pivpn -qr foo
|
||||||
|
- pivpn -bk
|
||||||
|
- pivpn -l
|
||||||
|
- pivpn -c
|
||||||
|
- pivpn -r foo -y
|
||||||
|
after_fail:
|
||||||
|
- sudo journalctl -xe
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "OpenVPN Focal & Commands"
|
||||||
|
dist: focal
|
||||||
|
before_script:
|
||||||
|
- cat /etc/os-release
|
||||||
|
- uname -a
|
||||||
|
- sudo chmod +x ciscripts/startup.sh
|
||||||
|
- ./ciscripts/startup.sh -o
|
||||||
|
script:
|
||||||
|
- sudo ./auto_install/install.sh --unattended ciscripts/ci_openvpn.conf
|
||||||
|
- systemctl status openvpn
|
||||||
|
- pivpn add -n foo nopass -d 180
|
||||||
|
- pivpn add -p "$RANDOM$RANDOM" -n bar -d 180
|
||||||
|
- pivpn add -o -n foo
|
||||||
|
- pivpn -bk
|
||||||
|
- ls ~pi/pivpnbackup/ | grep backup
|
||||||
|
- pivpn -r foo -y
|
||||||
|
- pivpn -l
|
||||||
|
- pivpn -c
|
||||||
|
after_fail:
|
||||||
|
- sudo journalctl -xe
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "Wireguard Focal & Commands"
|
||||||
|
dist: focal
|
||||||
|
before_script:
|
||||||
|
- cat /etc/os-release
|
||||||
|
- uname -a
|
||||||
|
- sudo chmod +x ciscripts/startup.sh
|
||||||
|
- ./ciscripts/startup.sh -w
|
||||||
|
script:
|
||||||
|
- sudo ./auto_install/install.sh --unattended ciscripts/ci_wireguard.conf
|
||||||
|
- systemctl status wg-quick@wg0
|
||||||
|
- pivpn add -n foo
|
||||||
|
- pivpn -qr foo
|
||||||
|
- pivpn -bk
|
||||||
|
- pivpn -l
|
||||||
|
- pivpn -c
|
||||||
|
- pivpn -r foo -y
|
||||||
|
after_fail:
|
||||||
|
- sudo journalctl -xe
|
|
@ -4,6 +4,14 @@ This file has the objective of describing the major changes for each merge from
|
||||||
|
|
||||||
Everytime Test branch is merged into master, a new entry should be created with the date and changes being merged.
|
Everytime Test branch is merged into master, a new entry should be created with the date and changes being merged.
|
||||||
|
|
||||||
|
## Jan 26th 2021
|
||||||
|
|
||||||
|
Fixed:
|
||||||
|
- #1231 Return proper exit codes
|
||||||
|
Improvements
|
||||||
|
- First implementation of Automated testing with travisCI
|
||||||
|
|
||||||
|
|
||||||
## Jan 17th 2021
|
## Jan 17th 2021
|
||||||
|
|
||||||
- Issues Fixed:
|
- Issues Fixed:
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
![WireGuard + OpenVPN logo](logos.jpg)
|
![WireGuard + OpenVPN logo](logos.jpg)
|
||||||
|
|
||||||
**[Is pivpn.io down?](https://status.pivpn.io)**
|
**[Is pivpn.io down?](https://status.pivpn.io)** |
|
||||||
|
**Test:** [![Build Status](https://travis-ci.com/pivpn/pivpn.svg?branch=test)](https://travis-ci.com/pivpn/pivpn) |
|
||||||
|
**Master:** [![Build Status](https://travis-ci.com/pivpn/pivpn.svg?branch=master)](https://travis-ci.com/pivpn/pivpn)
|
||||||
|
|
||||||
About
|
About
|
||||||
-----
|
-----
|
||||||
|
|
|
@ -143,7 +143,7 @@ main(){
|
||||||
:
|
:
|
||||||
elif [ "$UpdateCmd" = "Update" ]; then
|
elif [ "$UpdateCmd" = "Update" ]; then
|
||||||
$SUDO ${pivpnScriptDir}/update.sh "$@"
|
$SUDO ${pivpnScriptDir}/update.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
elif [ "$UpdateCmd" = "Repair" ]; then
|
elif [ "$UpdateCmd" = "Repair" ]; then
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
source "$setupVars"
|
source "$setupVars"
|
||||||
|
|
16
ciscripts/ci_openvpn.conf
Normal file
16
ciscripts/ci_openvpn.conf
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
IPv4dev=INTERFACE
|
||||||
|
IPv4addr=IPADDRESS
|
||||||
|
IPv4gw=GATEWAY
|
||||||
|
dhcpReserv=0
|
||||||
|
install_user=pi
|
||||||
|
VPN=openvpn
|
||||||
|
pivpnPROTO=udp
|
||||||
|
pivpnPORT=1194
|
||||||
|
pivpnDNS1=9.9.9.9
|
||||||
|
pivpnDNS2=149.112.112.112
|
||||||
|
pivpnHOST=pivpn.test
|
||||||
|
pivpnENCRYPT=256
|
||||||
|
pivpnSEARCHDOMAIN=pivpn.test
|
||||||
|
TWO_POINT_FOUR=2POINT4
|
||||||
|
USE_PREDEFINED_DH_PARAM=1
|
||||||
|
UNATTUPG=1
|
11
ciscripts/ci_wireguard.conf
Normal file
11
ciscripts/ci_wireguard.conf
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
IPv4dev=INTERFACE
|
||||||
|
IPv4addr=IPADDRESS
|
||||||
|
IPv4gw=GATEWAY
|
||||||
|
dhcpReserv=0
|
||||||
|
install_user=pi
|
||||||
|
VPN=wireguard
|
||||||
|
pivpnPORT=51820
|
||||||
|
pivpnDNS1=9.9.9.9
|
||||||
|
pivpnDNS2=149.112.112.112
|
||||||
|
pivpnHOST=pivpn.test
|
||||||
|
UNATTUPG=1
|
47
ciscripts/startup.sh
Normal file
47
ciscripts/startup.sh
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
interface=$(ip -o link | awk '{print $2}' | cut -d':' -f1 | cut -d'@' -f1 | grep -v -w 'lo' | head -1)
|
||||||
|
ipaddress=$(ip addr show "$interface" | grep -o -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}/[0-9]{2}")
|
||||||
|
gateway=$(ip route show | awk '/default/ {print $3}')
|
||||||
|
hostname="pivpn.test"
|
||||||
|
|
||||||
|
common(){
|
||||||
|
sed -i "s/INTERFACE/$interface/g" "$vpnconfig"
|
||||||
|
sed -i "s|IPADDRESS|$ipaddress|g" "$vpnconfig"
|
||||||
|
sed -i "s/GATEWAY/$gateway/g" "$vpnconfig"
|
||||||
|
}
|
||||||
|
|
||||||
|
openvpn(){
|
||||||
|
vpnconfig="ciscripts/ci_openvpn.conf"
|
||||||
|
twofour=1
|
||||||
|
common
|
||||||
|
sed -i "s/2POINT4/$twofour/g" "$vpnconfig"
|
||||||
|
cat $vpnconfig
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
wireguard(){
|
||||||
|
vpnconfig="ciscripts/ci_wireguard.conf"
|
||||||
|
common
|
||||||
|
cat $vpnconfig
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -lt 1 ]; then
|
||||||
|
echo "specifiy a VPN protocol to prepare"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
chmod +x auto_install/install.sh
|
||||||
|
sudo hostnamectl set-hostname $hostname
|
||||||
|
cat /etc/os-release
|
||||||
|
while true; do
|
||||||
|
case "$1" in
|
||||||
|
-o | --openvpn ) openvpn
|
||||||
|
;;
|
||||||
|
-w | --wireguard ) wireguard
|
||||||
|
;;
|
||||||
|
* ) echo "unknown vpn protocol"; exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
9
ciscripts/test.sh
Normal file
9
ciscripts/test.sh
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
systemctl status openvpn
|
||||||
|
pivpn add -n foo
|
||||||
|
pivpn -qr foo
|
||||||
|
pivpn -bk
|
||||||
|
pivpn -l
|
||||||
|
pivpn -c
|
||||||
|
pivpn -r foo -y
|
|
@ -93,7 +93,7 @@ if [[ ! $EUID -eq 0 ]];then
|
||||||
export SUDO="sudo"
|
export SUDO="sudo"
|
||||||
else
|
else
|
||||||
echo "::: Please install sudo or run this as root."
|
echo "::: Please install sudo or run this as root."
|
||||||
exit 0
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -16,18 +16,18 @@ vpn="openvpn"
|
||||||
function makeOVPNFunc {
|
function makeOVPNFunc {
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptDir}/${vpn}/makeOVPN.sh "$@"
|
$SUDO ${scriptDir}/${vpn}/makeOVPN.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
function listClientsFunc {
|
function listClientsFunc {
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptDir}/${vpn}/clientStat.sh "$@"
|
$SUDO ${scriptDir}/${vpn}/clientStat.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
function listOVPNFunc {
|
function listOVPNFunc {
|
||||||
$SUDO ${scriptDir}/${vpn}/listOVPN.sh
|
$SUDO ${scriptDir}/${vpn}/listOVPN.sh
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
function debugFunc {
|
function debugFunc {
|
||||||
|
@ -37,29 +37,29 @@ function debugFunc {
|
||||||
echo "::: Debug output completed above."
|
echo "::: Debug output completed above."
|
||||||
echo "::: Copy saved to /tmp/debug.log"
|
echo "::: Copy saved to /tmp/debug.log"
|
||||||
echo "::: "
|
echo "::: "
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeOVPNFunc {
|
function removeOVPNFunc {
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptDir}/${vpn}/removeOVPN.sh "$@"
|
$SUDO ${scriptDir}/${vpn}/removeOVPN.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
function uninstallFunc {
|
function uninstallFunc {
|
||||||
$SUDO ${scriptDir}/uninstall.sh "${vpn}"
|
$SUDO ${scriptDir}/uninstall.sh "${vpn}"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
function update {
|
function update {
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptDir}/update.sh "$@"
|
$SUDO ${scriptDir}/update.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
function backup {
|
function backup {
|
||||||
$SUDO ${scriptDir}/backup.sh "${vpn}"
|
$SUDO ${scriptDir}/backup.sh "${vpn}"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,12 +14,12 @@ scriptDir="/opt/pivpn"
|
||||||
|
|
||||||
uninstallServer(){
|
uninstallServer(){
|
||||||
$SUDO ${scriptDir}/uninstall.sh
|
$SUDO ${scriptDir}/uninstall.sh
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
backup(){
|
backup(){
|
||||||
$SUDO ${scriptDir}/backup.sh
|
$SUDO ${scriptDir}/backup.sh
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
showHelp(){
|
showHelp(){
|
||||||
|
|
|
@ -16,13 +16,13 @@ vpn="wireguard"
|
||||||
makeConf(){
|
makeConf(){
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptdir}/${vpn}/makeCONF.sh "$@"
|
$SUDO ${scriptdir}/${vpn}/makeCONF.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
listConnected(){
|
listConnected(){
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptdir}/${vpn}/clientSTAT.sh "$@"
|
$SUDO ${scriptdir}/${vpn}/clientSTAT.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
debug(){
|
debug(){
|
||||||
|
@ -32,52 +32,52 @@ debug(){
|
||||||
echo "::: Debug output completed above."
|
echo "::: Debug output completed above."
|
||||||
echo "::: Copy saved to /tmp/debug.log"
|
echo "::: Copy saved to /tmp/debug.log"
|
||||||
echo "::: "
|
echo "::: "
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
listClients(){
|
listClients(){
|
||||||
$SUDO ${scriptdir}/${vpn}/listCONF.sh
|
$SUDO ${scriptdir}/${vpn}/listCONF.sh
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
showQrcode(){
|
showQrcode(){
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptdir}/${vpn}/qrcodeCONF.sh "$@"
|
$SUDO ${scriptdir}/${vpn}/qrcodeCONF.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
removeClient(){
|
removeClient(){
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptdir}/${vpn}/removeCONF.sh "$@"
|
$SUDO ${scriptdir}/${vpn}/removeCONF.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
disableClient(){
|
disableClient(){
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptdir}/${vpn}/disableCONF.sh "$@"
|
$SUDO ${scriptdir}/${vpn}/disableCONF.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
enableClient(){
|
enableClient(){
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptdir}/${vpn}/enableCONF.sh "$@"
|
$SUDO ${scriptdir}/${vpn}/enableCONF.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
uninstallServer(){
|
uninstallServer(){
|
||||||
$SUDO ${scriptdir}/uninstall.sh "${vpn}"
|
$SUDO ${scriptdir}/uninstall.sh "${vpn}"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
updateScripts(){
|
updateScripts(){
|
||||||
shift
|
shift
|
||||||
$SUDO ${scriptdir}/update.sh "$@"
|
$SUDO ${scriptdir}/update.sh "$@"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
backup(){
|
backup(){
|
||||||
$SUDO ${scriptdir}/backup.sh "${vpn}"
|
$SUDO ${scriptdir}/backup.sh "${vpn}"
|
||||||
exit 0
|
exit "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
showHelp(){
|
showHelp(){
|
||||||
|
|
Loading…
Reference in a new issue