mirror of
https://github.com/fankes/beszel.git
synced 2025-10-19 01:39:34 +08:00
Check if docker group exists before attempting to add beszel user to it, preventing installation failure when Docker is not installed.
58 lines
1.5 KiB
Bash
58 lines
1.5 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
[ "$1" = "configure" ] || exit 0
|
|
|
|
CONFIG_FILE=/etc/beszel-agent.conf
|
|
SERVICE=beszel-agent
|
|
SERVICE_USER=beszel
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
# This would normally be in the config control file, however this is currently
|
|
# broken in goreleaser. Temporarily do it here.
|
|
# https://github.com/goreleaser/goreleaser/issues/5487
|
|
db_version 2.0
|
|
db_input high beszel-agent/key || true
|
|
db_go
|
|
|
|
# Create group and user
|
|
if ! getent group "$SERVICE_USER" >/dev/null; then
|
|
echo "Creating $SERVICE_USER group"
|
|
addgroup --quiet --system "$SERVICE_USER"
|
|
fi
|
|
|
|
if ! getent passwd "$SERVICE_USER" >/dev/null; then
|
|
echo "Creating $SERVICE_USER user"
|
|
adduser --quiet --system "$SERVICE_USER" \
|
|
--ingroup "$SERVICE_USER" \
|
|
--no-create-home \
|
|
--home /nonexistent \
|
|
--gecos "System user for $SERVICE"
|
|
fi
|
|
|
|
# Enable docker (only if docker group exists)
|
|
if getent group docker >/dev/null 2>&1; then
|
|
if ! getent group docker | grep -q "$SERVICE_USER"; then
|
|
echo "Adding $SERVICE_USER to docker group"
|
|
usermod -aG docker "$SERVICE_USER"
|
|
fi
|
|
fi
|
|
|
|
# Create config file if it doesn't already exist
|
|
if [ ! -f "$CONFIG_FILE" ]; then
|
|
touch "$CONFIG_FILE"
|
|
chmod 0600 "$CONFIG_FILE"
|
|
chown "$SERVICE_USER":"$SERVICE_USER" "$CONFIG_FILE"
|
|
fi;
|
|
|
|
# Only add key to config if it's not already present
|
|
if ! grep -q "^KEY=" "$CONFIG_FILE"; then
|
|
db_get beszel-agent/key
|
|
echo "KEY=$RET" > "$CONFIG_FILE"
|
|
fi;
|
|
|
|
deb-systemd-helper enable "$SERVICE".service
|
|
systemctl daemon-reload
|
|
deb-systemd-invoke start "$SERVICE".service || echo "could not start $SERVICE.service!"
|