Updated install scripts

This commit is contained in:
2026-05-14 05:42:14 +00:00
parent 624d8d8e44
commit 4cfd7159bf
2 changed files with 81 additions and 45 deletions
+12 -2
View File
@@ -10,6 +10,16 @@ A single static binary contains the daemon, the CLI, and everything in
between. Inter-node traffic is mutual TLS with SSH-style fingerprint between. Inter-node traffic is mutual TLS with SSH-style fingerprint
trust — no central CA, no shared secret. trust — no central CA, no shared secret.
## Installation
### From pre-built binary
This can be done in one step, either by downloading the latest release from
the [Gitea releases page](https://git.cer.sh/axodouble/quptime/releases) or by running the following script:
```sh
curl -fsSL https://git.cer.sh/Axodouble/QUptime/raw/branch/master/install.sh | sudo bash
```
## Why ## Why
Most uptime monitors are either a SaaS or a single box that, by Most uptime monitors are either a SaaS or a single box that, by
@@ -211,7 +221,7 @@ every two seconds.
Keybindings: Keybindings:
| Key | Action | | Key | Action |
|---|---| | ------------------- | --------------------------------------------------------- |
| `↑` / `↓` | move cursor within a tab | | `↑` / `↓` | move cursor within a tab |
| `Tab` / `Shift+Tab` | next / previous tab | | `Tab` / `Shift+Tab` | next / previous tab |
| `1` / `2` / `3` | jump to Peers / Checks / Alerts | | `1` / `2` / `3` | jump to Peers / Checks / Alerts |
@@ -248,7 +258,7 @@ qu alert add smtp ops --host ... --from ... --to ... \
Available template variables: Available template variables:
| Variable | Meaning | | Variable | Meaning |
|---|---| | ----------------------- | ------------------------------------------ |
| `{{.Check.Name}}` | check name | | `{{.Check.Name}}` | check name |
| `{{.Check.Type}}` | `http` / `tcp` / `icmp` | | `{{.Check.Type}}` | `http` / `tcp` / `icmp` |
| `{{.Check.Target}}` | URL or host:port being probed | | `{{.Check.Target}}` | URL or host:port being probed |
+44 -18
View File
@@ -1,24 +1,50 @@
#!/bin/bash #!/bin/bash
# Check if ~/.local/bin exists, if not, create it # Helper function which echo's all commands before executing them in grayscale prefixed with >
if [ ! -d "$HOME/.local/bin" ]; then echo_cmd() {
mkdir -p "$HOME/.local/bin" echo -e "\033[90m> $1\033[0m"
fi eval "$1"
}
# Check if ~/.local/bin is in the PATH, if not, give the user a command to add it # Check if the user is allowed to write to /usr/local/bin, if so, install qu there, else error out and ask the user to install qu manually
if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then if [ -w "/usr/local/bin" ]; then
echo "Please add the following line to your shell configuration file (e.g., ~/.bashrc, ~/.zshrc) to include ~/.local/bin in your PATH:" # Download the latest release binary from the Git repository and save it to /usr/local/bin/qu
echo 'export PATH="$HOME/.local/bin:$PATH"' if command -v curl > /dev/null; then
echo "After adding the line, please restart your terminal or run 'source ~/.bashrc' (or the appropriate command for your shell) to apply the changes." release_tag=$(curl -s https://git.cer.sh/api/v1/repos/axodouble/quptime/releases/latest | jq -r '.tag_name')
fi echo_cmd "curl -L -o \"/usr/local/bin/qu\" \"https://git.cer.sh/axodouble/quptime/releases/latest/download/qu-$(release_tag)-$(uname -m)\""
echo_cmd "chmod +x \"/usr/local/bin/qu\""
# Download the binary from git.cer.sh/axodouble/quptime echo "> qu has been installed to /usr/local/bin/qu"
# Check whether curl or wget is available exit 0
if command -v curl > /dev/null; then else
curl -L -o "$HOME/.local/bin/quptime" "https://git.cer.sh/axodouble/quptime/-/raw/main/quptime" echo "Error: curl is not installed. Please install curl and try again."
elif command -v wget > /dev/null; then exit 1
wget -O "$HOME/.local/bin/quptime" "https://git.cer.sh/axodouble/quptime/-/raw/main/quptime" fi
else else
echo "Error: Neither curl nor wget is installed. Please install one of these tools to download the quptime binary." echo "Error: You are not allowed to write to /usr/local/bin. Please install qu manually, or run this script with sudo."
exit 1 exit 1
fi fi
# Check if the user has systemd, if so create a systemd service file for qu serve
if command -v systemctl > /dev/null; then
echo "> Creating systemd service file for qu serve..."
cat <<EOL > /etc/systemd/system/qu-serve.service
[Unit]
Description=QUptime Serve
After=network.target
[Service]
ExecStart=/usr/local/bin/qu serve
Restart=always
User=$(whoami)
[Install]
WantedBy=multi-user.target
EOL
echo_cmd "systemctl daemon-reload"
echo_cmd "systemctl enable qu-serve.service"
echo "> qu serve service has been created and enabled. You can start it with 'systemctl start qu-serve.service'"
else
echo "> Warning: systemd is not available on this system. qu serve will not be automatically started on boot. You can start it manually with '/usr/local/bin/qu serve'"
fi
echo "Installation complete, before starting `qu serve`, make sure to run `qu init` and read the documentation."