mirror of
https://github.com/juanfont/headscale.git
synced 2024-12-18 14:07:34 +00:00
b684ac0668
This commit simplifies the goreleaser configuration and then adds nfpm support which allows us to build .deb and .rpm for each of the ARCH we support. The deb and rpm packages adds systemd services and users, creates directories etc and should in general give the user a working environment. We should be able to remove a lot of the complicated, PEBCAK inducing documentation after this. Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
86 lines
2.2 KiB
Bash
86 lines
2.2 KiB
Bash
#!/bin/sh
|
|
# Determine OS platform
|
|
# shellcheck source=/dev/null
|
|
. /etc/os-release
|
|
|
|
HEADSCALE_EXE="/usr/bin/headscale"
|
|
BSD_HIER=""
|
|
HEADSCALE_RUN_DIR="/var/run/headscale"
|
|
HEADSCALE_USER="headscale"
|
|
HEADSCALE_GROUP="headscale"
|
|
|
|
ensure_sudo() {
|
|
if [ "$(id -u)" = "0" ]; then
|
|
echo "Sudo permissions detected"
|
|
else
|
|
echo "No sudo permission detected, please run as sudo"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
ensure_headscale_path() {
|
|
if [ ! -f "$HEADSCALE_EXE" ]; then
|
|
echo "headscale not in default path, exiting..."
|
|
exit 1
|
|
fi
|
|
|
|
printf "Found headscale %s\n" "$HEADSCALE_EXE"
|
|
}
|
|
|
|
create_headscale_user() {
|
|
printf "PostInstall: Adding headscale user %s\n" "$HEADSCALE_USER"
|
|
useradd -s /bin/sh -c "headscale default user" headscale
|
|
}
|
|
|
|
create_headscale_group() {
|
|
if command -V systemctl >/dev/null 2>&1; then
|
|
printf "PostInstall: Adding headscale group %s\n" "$HEADSCALE_GROUP"
|
|
groupadd "$HEADSCALE_GROUP"
|
|
|
|
printf "PostInstall: Adding headscale user %s to group %s\n" "$HEADSCALE_USER" "$HEADSCALE_GROUP"
|
|
usermod -a -G "$HEADSCALE_GROUP" "$HEADSCALE_USER"
|
|
fi
|
|
|
|
if [ "$ID" = "alpine" ]; then
|
|
printf "PostInstall: Adding headscale group %s\n" "$HEADSCALE_GROUP"
|
|
addgroup "$HEADSCALE_GROUP"
|
|
|
|
printf "PostInstall: Adding headscale user %s to group %s\n" "$HEADSCALE_USER" "$HEADSCALE_GROUP"
|
|
addgroup "$HEADSCALE_USER" "$HEADSCALE_GROUP"
|
|
fi
|
|
}
|
|
|
|
create_run_dir() {
|
|
printf "PostInstall: Creating headscale run directory \n"
|
|
mkdir -p "$HEADSCALE_RUN_DIR"
|
|
|
|
printf "PostInstall: Modifying group ownership of headscale run directory \n"
|
|
chown "$HEADSCALE_USER":"$HEADSCALE_GROUP" "$HEADSCALE_RUN_DIR"
|
|
}
|
|
|
|
summary() {
|
|
echo "----------------------------------------------------------------------"
|
|
echo " headscale package has been successfully installed."
|
|
echo ""
|
|
echo " Please follow the next steps to start the software:"
|
|
echo ""
|
|
echo " sudo systemctl start headscale"
|
|
echo ""
|
|
echo " Configuration settings can be adjusted here:"
|
|
echo " ${BSD_HIER}/etc/headscale/config.yaml"
|
|
echo ""
|
|
echo "----------------------------------------------------------------------"
|
|
}
|
|
|
|
#
|
|
# Main body of the script
|
|
#
|
|
{
|
|
ensure_sudo
|
|
ensure_headscale_path
|
|
create_headscale_user
|
|
create_headscale_group
|
|
create_run_dir
|
|
summary
|
|
}
|