debian/scripts/beszel.sh

62 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
set -euo pipefail
sudo mkdir -p /srv/beszel
sudo mkdir -p /run/beszel_socket
sudo chown -R peon:peon /srv/beszel
sudo chown -R peon:peon /run/beszel_socket
sudo -u peon -s
# https://beszel.dev/guide/getting-started
# https://beszel.dev/guide/hub-installation
podman run -d \
--name beszel \
--restart=unless-stopped \
-v /srv/beszel:/beszel_data \
-v $XDG_RUNTIME_DIR/beszel_socket:/beszel_socket \
-p 8090:8090 \
docker.io/henrygd/beszel:latest
# https://beszel.dev/guide/agent-installation
read -p "Agent public key: " pub_key
podman run -d \
--name beszel-agent \
--userns=keep-id \
--network host \
--restart unless-stopped \
-v $XDG_RUNTIME_DIR/podman/podman.sock:$XDG_RUNTIME_DIR/podman/podman.sock:ro \
-v $XDG_RUNTIME_DIR/beszel_socket:/beszel_socket \
-e KEY="$pub_key" \
-e LISTEN=/beszel_socket/beszel.sock \
docker.io/henrygd/beszel-agent:latest
mkdir -p "$HOME/.config/systemd/user"
cd "$HOME/.config/systemd/user"
# TODO probably want to use quadlet instead
podman generate systemd --restart-policy=always --new --files --name beszel
podman generate systemd --restart-policy=always --new --files --name beszel-agent
podman stop beszel
podman stop beszel-agent
echo "You should make sure systemd creates RuntimeDirectory for socket"
echo "[Service]"
echo "RuntimeDirectory=beszel_socket"
echo "RuntimeDirectoryPreserve=yes"
read -p "Open services in vim? [Y/n]: " prompt
if [[ $prompt != "n" ]]; then
vim container-beszel.service
vim container-beszel-agent.service
fi
systemctl --user start container-beszel
systemctl --user start container-beszel-agent
systemctl --user status container-beszel
systemctl --user status container-beszel-agent
systemctl --user enable container-beszel
systemctl --user enable container-beszel-agent