From 8d71e95d0b32f4888287c9eecbd1fd5be6902e93 Mon Sep 17 00:00:00 2001 From: DeltaWhiplash Date: Thu, 1 Aug 2024 15:27:51 +0200 Subject: [PATCH 1/6] Add Automated agent install script for debian/ubuntu --- supplemental/scripts/install-agent.sh | 114 ++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 supplemental/scripts/install-agent.sh diff --git a/supplemental/scripts/install-agent.sh b/supplemental/scripts/install-agent.sh new file mode 100644 index 0000000..976a7ec --- /dev/null +++ b/supplemental/scripts/install-agent.sh @@ -0,0 +1,114 @@ +#!/bin/bash +version=0.0.1 +# Define default values +PORT=45876 + +# Read command line options +while getopts ":k:p:uh" opt; do + case $opt in + k) KEY="$OPTARG";; + p) PORT="$OPTARG";; + u) UNINSTALL="true";; + h) echo "Beszel Agent installation script"; echo "" + echo "Usage: ./install.sh [options]"; echo "" + echo "Options: " + echo " -k : SSH key (required, or interactive if not provided)"; echo "" + echo " -p : Port (default: $PORT)"; echo "" + echo " -u : Uninstall the Beszel Agent"; echo "" + echo " -h : Display this help message"; echo "" + exit 0;; + \?) echo "Invalid option: -$OPTARG"; exit 1;; + esac +done + +if [ "$UNINSTALL" = "true" ]; then + # Stop and disable the Beszel Agent service + echo "Stopping and disabling the Beszel Agent service..." + sudo systemctl stop beszel-agent.service + sudo systemctl disable beszel-agent.service + + # Remove the systemd service file + echo "Removing the systemd service file..." + sudo rm /etc/systemd/system/beszel-agent.service + + # Reload the systemd daemon + echo "Reloading the systemd daemon..." + sudo systemctl daemon-reload + + # Remove the Beszel Agent directory + echo "Removing the Beszel Agent directory..." + sudo rm -rf /opt/beszel-agent + + # Remove the dedicated user for the Beszel Agent service + echo "Removing the dedicated user for the Beszel Agent service..." + sudo userdel beszel + + echo "The Beszel Agent has been uninstalled successfully!" +else + # Check if the distribution is supported + if [ "$(cat /etc/os-release | grep '^ID=')" != "ID=debian" ] && [ "$(cat /etc/os-release | grep '^ID=')" != "ID=ubuntu" ] && [ "$(cat /etc/os-release | grep '^ID_LIKE=')" != "ID_LIKE=debian" ]; then + echo "Error: This script only supports Debian and Ubuntu distributions." + exit 1 + fi + + # If no SSH key is provided, ask for the SSH key interactively + if [ -z "$KEY" ]; then + read -p "Enter your SSH key: " KEY + fi + + # Check if necessary packages are installed + sudo apt update + sudo apt install -y tar curl + + # Create a dedicated user for the service if it doesn't exist + if ! id -u beszel-agent > /dev/null 2>&1; then + echo "Creating a dedicated user for the Beszel Agent service..." + sudo useradd -m -s /bin/false beszel + fi + + # Create the directory for the Beszel Agent + if [ ! -d "/opt/beszel-agent" ]; then + echo "Creating the directory for the Beszel Agent..." + sudo mkdir -p /opt/beszel-agent + sudo chown beszel:beszel /opt/beszel-agent + sudo chmod 755 /opt/beszel-agent + fi + + # Download and install the Beszel Agent + echo "Downloading and installing the Beszel Agent..." + curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -C /opt/beszel-agent -f - beszel-agent + sudo chown beszel:beszel /opt/beszel-agent/beszel-agent + sudo chmod 755 /opt/beszel-agent/beszel-agent + + # Create the systemd service + echo "Creating the systemd service for the Beszel Agent..." + sudo tee /etc/systemd/system/beszel-agent.service < Date: Thu, 1 Aug 2024 15:36:56 +0200 Subject: [PATCH 2/6] Add Automated hub install script for debian/ubuntu --- supplemental/scripts/install-hub.sh | 95 +++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 supplemental/scripts/install-hub.sh diff --git a/supplemental/scripts/install-hub.sh b/supplemental/scripts/install-hub.sh new file mode 100644 index 0000000..2f899fe --- /dev/null +++ b/supplemental/scripts/install-hub.sh @@ -0,0 +1,95 @@ +#!/bin/bash +version=0.0.1 +# Define default values + +# Read command line options +while getopts ":uh" opt; do + case $opt in + u) UNINSTALL="true";; + h) echo "Beszel Hub installation script"; echo "" + echo "Usage: ./install.sh [options]"; echo "" + echo "Options: " + echo " -u : Uninstall the Beszel Hub"; echo "" + echo " -h : Display this help message"; echo "" + exit 0;; + \?) echo "Invalid option: -$OPTARG"; exit 1;; + esac +done + +if [ "$UNINSTALL" = "true" ]; then + # Stop and disable the Beszel Hub service + echo "Stopping and disabling the Beszel Hub service..." + sudo systemctl stop beszel-hub.service + sudo systemctl disable beszel-hub.service + + # Remove the systemd service file + echo "Removing the systemd service file..." + sudo rm /etc/systemd/system/beszel-hub.service + + # Reload the systemd daemon + echo "Reloading the systemd daemon..." + sudo systemctl daemon-reload + + # Remove the Beszel Hub binary + echo "Removing the Beszel Hub binary..." + sudo rm /opt/beszel/beszel + + # Remove the Beszel Hub directory + echo "Removing the Beszel Hub directory..." + sudo rm -rf /opt/beszel + + # Remove the dedicated user + echo "Removing the dedicated user..." + sudo userdel beszel + + echo "The Beszel Hub has been uninstalled successfully!" +else + # Check if the distribution is supported + if [ "$(cat /etc/os-release | grep '^ID=')" != "ID=debian" ] && [ "$(cat /etc/os-release | grep '^ID=')" != "ID=ubuntu" ] && [ "$(cat /etc/os-release | grep '^ID_LIKE=')" != "ID_LIKE=debian" ]; then + echo "Error: This script only supports Debian and Ubuntu distributions." + exit 1 + fi + + # Create a dedicated user for the service + if ! id -u beszel > /dev/null 2>&1; then + echo "Creating a dedicated user for the Beszel Hub service..." + sudo useradd -m -s /bin/false beszel + fi + + # Download and install the Beszel Hub + echo "Downloading and installing the Beszel Hub..." + curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel | tee ./beszel >/dev/null && chmod +x beszel + sudo mkdir -p /opt/beszel + sudo mv ./beszel /opt/beszel/beszel + sudo chown beszel:beszel /opt/beszel/beszel + + # Create the systemd service + echo "Creating the systemd service for the Beszel Hub..." + sudo tee /etc/systemd/system/beszel-hub.service < Date: Thu, 1 Aug 2024 15:40:06 +0200 Subject: [PATCH 3/6] add dependencies install for the hub script installer --- supplemental/scripts/install-hub.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/supplemental/scripts/install-hub.sh b/supplemental/scripts/install-hub.sh index 2f899fe..ffcbfb6 100644 --- a/supplemental/scripts/install-hub.sh +++ b/supplemental/scripts/install-hub.sh @@ -49,6 +49,10 @@ else echo "Error: This script only supports Debian and Ubuntu distributions." exit 1 fi + + # Check if necessary packages are installed + sudo apt update + sudo apt install -y tar curl # Create a dedicated user for the service if ! id -u beszel > /dev/null 2>&1; then From 4841b95a8d717f824315ab85751fcee394802e44 Mon Sep 17 00:00:00 2001 From: DeltaWhiplash Date: Thu, 1 Aug 2024 15:50:38 +0200 Subject: [PATCH 4/6] Update the Readme for new install scripts --- readme.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/readme.md b/readme.md index 84dfd07..497622e 100644 --- a/readme.md +++ b/readme.md @@ -61,6 +61,73 @@ If you don't need network stats, remove that line from the compose file and map ### Binary +#### Beszel Agent + +##### Prerequisites + +- Debian or Ubuntu distribution + +- System administrator privileges + +##### Installation + +To install Beszel Agent, follow these steps: + +1. Download the Beszel Agent installation script: wget https://raw.githubusercontent.com/henrygd/beszel/master/install-agent.sh + +2. Make the script executable: chmod +x install-agent.sh + +3. Run the script with the desired options: + +- ./install-agent.sh -k -p (specify the SSH key and port) + +- ./install-agent.sh -h (display the help message) + +4. Follow the prompts to complete the installation + +##### Uninstallation + +1. To uninstall Beszel Agent, follow these steps: + +2. Run the installation script with the -u option: ./install-agent.sh -u + +Follow the prompts to complete the uninstallation + +#### Beszel Hub + +##### Prerequisites + +- Debian or Ubuntu distribution + +- System administrator privileges + +##### Installation + +To install Beszel Hub, follow these steps: + +1. Download the Beszel Hub installation script: wget https://raw.githubusercontent.com/henrygd/beszel/master/install-hub.sh + +2. Make the script executable: chmod +x install-hub.sh + +3. Run the script: + +- ./install-hub.sh + +- ./install-hub.sh -h (display the help message) + +4. Follow the prompts to complete the installation + +##### Uninstallation + +To uninstall Beszel Hub, follow these steps: + + + +1. Run the installation script with the -u option: ./install-hub.sh -u + +2. Follow the prompts to complete the uninstallation + +### Alternative Binary Download and run the latest binaries from the [releases page](https://github.com/henrygd/beszel/releases) or use the commands below. #### Hub From 092f09b0847570d1878b94ecf7f9324f71788303 Mon Sep 17 00:00:00 2001 From: Henry Dollman Date: Thu, 1 Aug 2024 16:00:19 -0400 Subject: [PATCH 5/6] update linux install scripts to work with other distros --- supplemental/scripts/install-agent.sh | 58 +++++++++++++++++--------- supplemental/scripts/install-hub.sh | 60 +++++++++++++++++---------- 2 files changed, 77 insertions(+), 41 deletions(-) mode change 100644 => 100755 supplemental/scripts/install-agent.sh mode change 100644 => 100755 supplemental/scripts/install-hub.sh diff --git a/supplemental/scripts/install-agent.sh b/supplemental/scripts/install-agent.sh old mode 100644 new mode 100755 index 976a7ec..5c19d85 --- a/supplemental/scripts/install-agent.sh +++ b/supplemental/scripts/install-agent.sh @@ -9,13 +9,13 @@ while getopts ":k:p:uh" opt; do k) KEY="$OPTARG";; p) PORT="$OPTARG";; u) UNINSTALL="true";; - h) echo "Beszel Agent installation script"; echo "" - echo "Usage: ./install.sh [options]"; echo "" - echo "Options: " - echo " -k : SSH key (required, or interactive if not provided)"; echo "" - echo " -p : Port (default: $PORT)"; echo "" - echo " -u : Uninstall the Beszel Agent"; echo "" - echo " -h : Display this help message"; echo "" + h) printf "Beszel Agent installation script\n\n" + printf "Usage: ./install-agent.sh [options]\n\n" + printf "Options: \n" + printf " -k : SSH key (required, or interactive if not provided)\n" + printf " -p : Port (default: $PORT)\n" + printf " -u : Uninstall the Beszel Agent\n" + printf " -h : Display this help message\n" exit 0;; \?) echo "Invalid option: -$OPTARG"; exit 1;; esac @@ -45,10 +45,27 @@ if [ "$UNINSTALL" = "true" ]; then echo "The Beszel Agent has been uninstalled successfully!" else - # Check if the distribution is supported - if [ "$(cat /etc/os-release | grep '^ID=')" != "ID=debian" ] && [ "$(cat /etc/os-release | grep '^ID=')" != "ID=ubuntu" ] && [ "$(cat /etc/os-release | grep '^ID_LIKE=')" != "ID_LIKE=debian" ]; then - echo "Error: This script only supports Debian and Ubuntu distributions." - exit 1 + # Function to check if a package is installed + package_installed() { + command -v "$1" >/dev/null 2>&1 + } + + # Check for package manager and install necessary packages if not installed + if package_installed apt-get; then + if ! package_installed tar || ! package_installed curl; then + sudo apt-get update + sudo apt-get install -y tar curl + fi + elif package_installed yum; then + if ! package_installed tar || ! package_installed curl; then + sudo yum install -y tar curl + fi + elif package_installed pacman; then + if ! package_installed tar || ! package_installed curl; then + sudo pacman -Sy --noconfirm tar curl + fi + else + echo "Warning: Please ensure 'tar' and 'curl' are installed." fi # If no SSH key is provided, ask for the SSH key interactively @@ -56,14 +73,10 @@ else read -p "Enter your SSH key: " KEY fi - # Check if necessary packages are installed - sudo apt update - sudo apt install -y tar curl - # Create a dedicated user for the service if it doesn't exist - if ! id -u beszel-agent > /dev/null 2>&1; then + if ! id -u beszel > /dev/null 2>&1; then echo "Creating a dedicated user for the Beszel Agent service..." - sudo useradd -m -s /bin/false beszel + sudo useradd -M -s /bin/false beszel fi # Create the directory for the Beszel Agent @@ -76,7 +89,8 @@ else # Download and install the Beszel Agent echo "Downloading and installing the Beszel Agent..." - curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -C /opt/beszel-agent -f - beszel-agent + curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel-agent | tee ./beszel-agent >/dev/null + sudo mv ./beszel-agent /opt/beszel-agent/beszel-agent sudo chown beszel:beszel /opt/beszel-agent/beszel-agent sudo chmod 755 /opt/beszel-agent/beszel-agent @@ -99,16 +113,20 @@ WantedBy=multi-user.target EOF # Load and start the service - echo "Loading and starting the Beszel Agent service..." + printf "\nLoading and starting the Beszel Agent service...\n" sudo systemctl daemon-reload sudo systemctl enable beszel-agent.service sudo systemctl start beszel-agent.service + # Wait for the service to start or fail + sleep 1 + # Check if the service is running if [ "$(systemctl is-active beszel-agent.service)" != "active" ]; then echo "Error: The Beszel Agent service is not running." + echo "$(systemctl status beszel-agent.service)" exit 1 fi echo "The Beszel Agent has been installed and configured successfully! It is now running on port $PORT." -fi \ No newline at end of file +fi diff --git a/supplemental/scripts/install-hub.sh b/supplemental/scripts/install-hub.sh old mode 100644 new mode 100755 index ffcbfb6..c7849d0 --- a/supplemental/scripts/install-hub.sh +++ b/supplemental/scripts/install-hub.sh @@ -6,11 +6,11 @@ version=0.0.1 while getopts ":uh" opt; do case $opt in u) UNINSTALL="true";; - h) echo "Beszel Hub installation script"; echo "" - echo "Usage: ./install.sh [options]"; echo "" - echo "Options: " - echo " -u : Uninstall the Beszel Hub"; echo "" - echo " -h : Display this help message"; echo "" + h) printf "Beszel Hub installation script\n\n"; + printf "Usage: ./install-hub.sh [options]\n\n"; + printf "Options: \n" + printf " -u : Uninstall the Beszel Hub\n"; + echo " -h : Display this help message"; exit 0;; \?) echo "Invalid option: -$OPTARG"; exit 1;; esac @@ -44,38 +44,52 @@ if [ "$UNINSTALL" = "true" ]; then echo "The Beszel Hub has been uninstalled successfully!" else - # Check if the distribution is supported - if [ "$(cat /etc/os-release | grep '^ID=')" != "ID=debian" ] && [ "$(cat /etc/os-release | grep '^ID=')" != "ID=ubuntu" ] && [ "$(cat /etc/os-release | grep '^ID_LIKE=')" != "ID_LIKE=debian" ]; then - echo "Error: This script only supports Debian and Ubuntu distributions." - exit 1 - fi - - # Check if necessary packages are installed - sudo apt update - sudo apt install -y tar curl + # Function to check if a package is installed + package_installed() { + command -v "$1" >/dev/null 2>&1 + } - # Create a dedicated user for the service + # Check for package manager and install necessary packages if not installed + if package_installed apt-get; then + if ! package_installed tar || ! package_installed curl; then + sudo apt-get update + sudo apt-get install -y tar curl + fi + elif package_installed yum; then + if ! package_installed tar || ! package_installed curl; then + sudo yum install -y tar curl + fi + elif package_installed pacman; then + if ! package_installed tar || ! package_installed curl; then + sudo pacman -Sy --noconfirm tar curl + fi + else + echo "Warning: Please ensure 'tar' and 'curl' are installed." + fi + + # Create a dedicated user for the service if it doesn't exist if ! id -u beszel > /dev/null 2>&1; then echo "Creating a dedicated user for the Beszel Hub service..." - sudo useradd -m -s /bin/false beszel + sudo useradd -M -s /bin/false beszel fi # Download and install the Beszel Hub echo "Downloading and installing the Beszel Hub..." curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel | tee ./beszel >/dev/null && chmod +x beszel - sudo mkdir -p /opt/beszel + sudo mkdir -p /opt/beszel/beszel_data sudo mv ./beszel /opt/beszel/beszel - sudo chown beszel:beszel /opt/beszel/beszel + sudo chown -R beszel:beszel /opt/beszel # Create the systemd service - echo "Creating the systemd service for the Beszel Hub..." + printf "Creating the systemd service for the Beszel Hub...\n\n" sudo tee /etc/systemd/system/beszel-hub.service < Date: Thu, 1 Aug 2024 17:40:15 -0400 Subject: [PATCH 6/6] update docs for systemd / reorganize supplemental directory --- readme.md | 78 +---------- .../same-system/docker-compose.yml | 0 supplemental/guides/systemd.md | 125 ++++++++++++++++++ supplemental/systemd/readme.md | 60 --------- 4 files changed, 128 insertions(+), 135 deletions(-) rename supplemental/docker/{examples => }/same-system/docker-compose.yml (100%) create mode 100644 supplemental/guides/systemd.md delete mode 100644 supplemental/systemd/readme.md diff --git a/readme.md b/readme.md index 497622e..db47eb7 100644 --- a/readme.md +++ b/readme.md @@ -61,73 +61,9 @@ If you don't need network stats, remove that line from the compose file and map ### Binary -#### Beszel Agent +> [!TIP] +> If using Linux, see [guides/systemd.md](/supplemental/guides/systemd.md) for a script to install the hub or agent as a system service. The agent installer will be built into the web UI in the future. -##### Prerequisites - -- Debian or Ubuntu distribution - -- System administrator privileges - -##### Installation - -To install Beszel Agent, follow these steps: - -1. Download the Beszel Agent installation script: wget https://raw.githubusercontent.com/henrygd/beszel/master/install-agent.sh - -2. Make the script executable: chmod +x install-agent.sh - -3. Run the script with the desired options: - -- ./install-agent.sh -k -p (specify the SSH key and port) - -- ./install-agent.sh -h (display the help message) - -4. Follow the prompts to complete the installation - -##### Uninstallation - -1. To uninstall Beszel Agent, follow these steps: - -2. Run the installation script with the -u option: ./install-agent.sh -u - -Follow the prompts to complete the uninstallation - -#### Beszel Hub - -##### Prerequisites - -- Debian or Ubuntu distribution - -- System administrator privileges - -##### Installation - -To install Beszel Hub, follow these steps: - -1. Download the Beszel Hub installation script: wget https://raw.githubusercontent.com/henrygd/beszel/master/install-hub.sh - -2. Make the script executable: chmod +x install-hub.sh - -3. Run the script: - -- ./install-hub.sh - -- ./install-hub.sh -h (display the help message) - -4. Follow the prompts to complete the installation - -##### Uninstallation - -To uninstall Beszel Hub, follow these steps: - - - -1. Run the installation script with the -u option: ./install-hub.sh -u - -2. Follow the prompts to complete the uninstallation - -### Alternative Binary Download and run the latest binaries from the [releases page](https://github.com/henrygd/beszel/releases) or use the commands below. #### Hub @@ -154,18 +90,10 @@ Running the agent directly: PORT=45876 KEY="{PASTE_YOUR_KEY}" ./beszel-agent ``` -#### Running as a system service (Linux) - -See [supplemental/systemd](/supplemental/systemd) for instructions on running in the background using systemd. - -In the future there will be a one line command for installing the binary and setting up the service. - #### Updating Use `./beszel update` and `./beszel-agent update` to update to the latest version. -If using systemd, run `sudo systemctl restart beszel` and `sudo systemctl restart beszel-agent` to restart the services. - ## Environment Variables ### Hub @@ -263,7 +191,7 @@ Connectivity can be tested by running `telnet `. ### Connecting the hub and agent on the same system using Docker -If using host network mode for the agent but not the hub, you can add your system using the hostname `host.docker.internal`, which resolves to the internal IP address used by the host. See [example docker-compose.yml](/supplemental/docker/examples/same-system/docker-compose.yml). +If using host network mode for the agent but not the hub, you can add your system using the hostname `host.docker.internal`, which resolves to the internal IP address used by the host. See [example docker-compose.yml](/supplemental/docker/same-system/docker-compose.yml). If using host network for both, you can use `localhost` as the hostname. diff --git a/supplemental/docker/examples/same-system/docker-compose.yml b/supplemental/docker/same-system/docker-compose.yml similarity index 100% rename from supplemental/docker/examples/same-system/docker-compose.yml rename to supplemental/docker/same-system/docker-compose.yml diff --git a/supplemental/guides/systemd.md b/supplemental/guides/systemd.md new file mode 100644 index 0000000..68fb515 --- /dev/null +++ b/supplemental/guides/systemd.md @@ -0,0 +1,125 @@ +# Installing as a Linux systemd service + +This is useful if you want to run the hub or agent in the background continuously, including after a reboot. + +## Install script (recommended) + +There are two scripts, one for the hub and one for the agent. You can run either one, or both. + +The install script creates a dedicated user for the service (`beszel`), downloads the latest release, and installs the service. + +> [!NOTE] +> You need system administrator privileges to run the install script. If you encounter a problem, please [open an issue](https://github.com/henrygd/beszel/issues/new). + +### Hub + +Download the script: + +```bash +curl -sL https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-hub.sh -o install-hub.sh && chmod +x install-hub.sh +``` + +#### Install + +```bash +./install-hub.sh +``` + +#### Uninstall + +```bash +./install-hub.sh -u +``` + +#### Update + +```bash +sudo /opt/beszel/beszel update && sudo systemctl restart beszel +``` + +### Agent + +Download the script: + +```bash +curl -sL https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-agent.sh -o install-agent.sh && chmod +x install-agent.sh +``` + +#### Install + +You may optionally include the SSH key and port as arguments. Run `./install-agent.sh -h` for more info. + +```bash +./install-agent.sh +``` + +#### Uninstall + +```bash +./install-agent.sh -u +``` + +#### Update + +```bash +sudo /opt/beszel-agent/beszel-agent update && sudo systemctl restart beszel-agent +``` + +## Manual install + +1. Create the system service at `/etc/systemd/system/beszel.service` + +```bash +[Unit] +Description=Beszel Hub Service +After=network.target + +[Service] +# update the values in the curly braces below (remove the braces) +ExecStart={/path/to/working/directory}/beszel serve +WorkingDirectory={/path/to/working/directory} +User={YOUR_USERNAME} +Restart=always + +[Install] +WantedBy=multi-user.target +``` + +2. Start and enable the service to let it run after system boot + +```bash +sudo systemctl daemon-reload +sudo systemctl enable beszel.service +sudo systemctl start beszel.service +``` + +## Run the agent as a system service (Linux) + +This runs the agent in the background continuously using systemd. + +1. Create the system service at `/etc/systemd/system/beszel-agent.service` + +```bash +[Unit] +Description=Beszel Agent Service +After=network.target + +[Service] +# update the values in curly braces below (remove the braces) +Environment="PORT={PASTE_YOUR_PORT_HERE}" +Environment="KEY={PASTE_YOUR_KEY_HERE}" +ExecStart={/path/to/directory}/beszel-agent +User={YOUR_USERNAME} +Restart=always + +[Install] +WantedBy=multi-user.target +``` + +2. Start and enable the service to let it run after system boot + +```bash +sudo systemctl daemon-reload +sudo systemctl enable beszel-agent.service +sudo systemctl start beszel-agent.service +``` diff --git a/supplemental/systemd/readme.md b/supplemental/systemd/readme.md deleted file mode 100644 index 14907be..0000000 --- a/supplemental/systemd/readme.md +++ /dev/null @@ -1,60 +0,0 @@ -## Run the hub as a system service (Linux) - -This runs the hub in the background continuously using systemd. - -1. Create the system service at `/etc/systemd/system/beszel.service` - -```bash -[Unit] -Description=Beszel Hub Service -After=network.target - -[Service] -# update the values in the curly braces below (remove the braces) -ExecStart={/path/to/working/directory}/beszel serve -WorkingDirectory={/path/to/working/directory} -User={YOUR_USERNAME} -Restart=always - -[Install] -WantedBy=multi-user.target -``` - -2. Start and enable the service to let it run after system boot - -```bash -sudo systemctl daemon-reload -sudo systemctl enable beszel.service -sudo systemctl start beszel.service -``` - -## Run the agent as a system service (Linux) - -This runs the agent in the background continuously using systemd. - -1. Create the system service at `/etc/systemd/system/beszel-agent.service` - -```bash -[Unit] -Description=Beszel Agent Service -After=network.target - -[Service] -# update the values in curly braces below (remove the braces) -Environment="PORT={PASTE_YOUR_PORT_HERE}" -Environment="KEY={PASTE_YOUR_KEY_HERE}" -ExecStart={/path/to/directory}/beszel-agent -User={YOUR_USERNAME} -Restart=always - -[Install] -WantedBy=multi-user.target -``` - -2. Start and enable the service to let it run after system boot - -```bash -sudo systemctl daemon-reload -sudo systemctl enable beszel-agent.service -sudo systemctl start beszel-agent.service -```