51 lines
893 B
Bash
Executable File
51 lines
893 B
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
_ask() {
|
|
printf "%s: " "$1"
|
|
read -r "$2"
|
|
}
|
|
|
|
_ask "Config filename (tun0)" NAME
|
|
NAME=${NAME:-tun0}
|
|
|
|
if [ -f /etc/glorytun/"$NAME" ]; then
|
|
echo "This config already exit!"
|
|
exit 1
|
|
fi
|
|
|
|
_ask "Server ip (enter for server conf)" HOST
|
|
if [ -z "$HOST" ]; then
|
|
_ask "Bind to port (5000)" BIND_PORT
|
|
BIND_PORT=${BIND_PORT:-5000}
|
|
else
|
|
_ask "Server port (5000)" PORT
|
|
PORT=${PORT:-5000}
|
|
fi
|
|
|
|
_ask "Server key (enter to generate a new one)" KEY
|
|
if [ -z "$KEY" ]; then
|
|
KEY=$(glorytun keygen)
|
|
echo "Your new key: $KEY"
|
|
fi
|
|
|
|
# install files
|
|
mkdir -p /etc/glorytun
|
|
|
|
cat > /etc/glorytun/"$NAME" <<EOF
|
|
HOST=$HOST
|
|
BIND_PORT=$BIND_PORT
|
|
PORT=$PORT
|
|
MTU_AUTO=yes
|
|
EOF
|
|
|
|
( umask 077; echo "$KEY" > /etc/glorytun/"$NAME".key )
|
|
|
|
# start services
|
|
_ask "Start glorytun now ? (enter to skip)" START
|
|
case "$START" in y*|Y*)
|
|
systemctl restart systemd-networkd
|
|
systemctl start glorytun@"$NAME" ;;
|
|
esac
|