2025-04-27 16:31:27 +03:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
sudo mkdir -p /srv/beszel
|
|
|
|
sudo mkdir -p /run/beszel_socket
|
2025-04-27 19:13:17 +03:00
|
|
|
sudo chown -R peon:peon /srv/beszel
|
|
|
|
sudo chown -R peon:peon /run/beszel_socket
|
|
|
|
|
|
|
|
sudo -u peon -s
|
2025-04-27 16:31:27 +03:00
|
|
|
|
|
|
|
# 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 \
|
2025-04-27 21:23:29 +03:00
|
|
|
-v $XDG_RUNTIME_DIR/beszel_socket:/beszel_socket \
|
2025-04-27 16:31:27 +03:00
|
|
|
-p 8090:8090 \
|
2025-04-27 21:23:29 +03:00
|
|
|
docker.io/henrygd/beszel:latest
|
2025-04-27 16:31:27 +03:00
|
|
|
|
|
|
|
# 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 \
|
2025-04-27 21:23:29 +03:00
|
|
|
-v $XDG_RUNTIME_DIR/beszel_socket:/beszel_socket \
|
2025-04-27 16:31:27 +03:00
|
|
|
-e KEY="$pub_key" \
|
|
|
|
-e LISTEN=/beszel_socket/beszel.sock \
|
|
|
|
docker.io/henrygd/beszel-agent:latest
|
2025-04-27 19:13:17 +03:00
|
|
|
|
|
|
|
mkdir -p "$HOME/.config/systemd/user"
|
|
|
|
cd "$HOME/.config/systemd/user"
|
|
|
|
|
2025-04-27 21:23:29 +03:00
|
|
|
# TODO probably want to use quadlet instead
|
2025-04-27 19:13:17 +03:00
|
|
|
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
|
|
|
|
|
2025-04-27 21:23:29 +03:00
|
|
|
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
|
|
|
|
|
2025-04-27 19:13:17 +03:00
|
|
|
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
|