Updated install scripts
This commit is contained in:
@@ -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
@@ -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."
|
||||||
|
|||||||
Reference in New Issue
Block a user