/uptime-client

A simple health check client for Uptime Kuma

Primary LanguageGo

Uptime Client

Uptime Client

Powered by Golang Build and Release

English | 简体中文

A Network Health Checking tools built with Golang.

✳️ Support API Provider

☑️ Support Protocol List

Tip

If you want to add a new protocol, create a new PR, please.

Protocol Version Support Status
ICMP v1.0.1-alpha+ ☑️
TCP/UDP v1.0.1-alpha+ ☑️
HTTP(S) (GET) v1.0.1-alpha+ ☑️
DNS over UDP/QUIC Beta ☑️
Custom Command Todo

🖱️ One-click Deploy

Warning

One-Click Deploy is not currently supported for Windows.
Please check the contents of the script before running it.

Install

curl -fsSL https://raw.githubusercontent.com/Yuiinars/uptime-client/main/script/install.sh | sudo bash

Update

curl -fsSL https://raw.githubusercontent.com/Yuiinars/uptime-client/main/script/update.sh | sudo bash

🔽 Download

Warning

DO NOT USE THE BINARY IF THE HASH CHECKSUM IS DIFFERENT.

These binaries are built from the latest commit of the main branch by GitHub Action.

Icon Platform Architecture Download Link Checksum File
🐧 Linux AMD64 (x64) ✈️ 🔒
🐧 Linux ARM64 ✈️ 🔒
😈 FreeBSD AMD64 (x64) ✈️ 🔒
😈 FreeBSD ARM64 ✈️ 🔒
🪟 Windows AMD64 (x64) ✈️ 🔒
🪟 Windows ARM64 ✈️ 🔒
🍎 macOS AMD64 (Beta) ✈️ 🔒
🍎 macOS ARM64 (Beta) ✈️ 🔒

⬇️ Running

📦 Binary

  1. Download binary from Download
  2. Run the binary

🐙 Compile from source code

mkdir /etc/uptime-client/ && cd /etc/uptime-client/
git clone https://github.com/Yuiinars/uptime-client .

go mod download
go mod verify
go mod tidy
go mod vendor

go build -o ...

🔨 Support Platform List

Tip

If you want to add a new platform, please create a new Pull Request.

Icon Platform Architecture Support Note
🐧 Linux AMD64 (x64) ☑️ Tested
🐧 Linux ARM64 ☑️ Tested
😈 FreeBSD AMD64 (x64) 🟡 Not Tested
😈 FreeBSD ARM64 🟡 Not Tested
🪟 Windows AMD64 (x64) ☑️ Tested
🪟 Windows ARM64 ☑️ Tested
🍎 macOS AMD64 (x64) 🔵 Beta, Not Tested
🍎 macOS ARM64 🔵 Beta, Not Tested
  • 🐳 Docker
    • RUN @TODO
    • Compose @TODO
    • Dockerfile @TODO

🧰 Usage

  1. Create and edit config file to binary directory
  • Edit config.example.yaml
  • Rename config.example.yaml to config.yaml
  1. Run binary
  • ./etc/uptime-client/bin/main-*
  1. Init daemon
cat <<EOF > /etc/systemd/system/uptime-client.service
[Unit]
Description=Uptime Client
After=network.target

[Service]
Type=simple
User=root # Root user required for ICMP
WorkingDirectory=/etc/uptime-client
ExecStart=/etc/uptime-client/bin/main
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now uptime-client.service

📄License