Skip to content

Installation ​

This guide covers installing Probestyx on Linux, macOS, and Windows systems.

Prerequisites ​

Before installing Probestyx, you need:

  • A config.yaml file (see Configuration)
  • Root/Administrator access (for system service installation)
  • Network access to GitHub (for downloading releases)

Important

The installation scripts require you to provide your own config.yaml file. The scripts will NOT create a default configuration for you.

Quick Installation ​

Linux ​

bash
# 1. Create your config.yaml first
nano config.yaml

# 2. Install with your config
wget -O - https://raw.githubusercontent.com/devatlogstyx/probestyx/main/install.sh | sudo bash -s ./config.yaml

macOS ​

bash
# 1. Create your config.yaml first
nano config.yaml

# 2. Install with your config
curl -fsSL https://raw.githubusercontent.com/devatlogstyx/probestyx/main/install.sh | sudo bash -s ./config.yaml

Windows (PowerShell as Administrator) ​

powershell
# 1. Create your config.yaml first
notepad config.yaml

# 2. Install with your config
irm https://raw.githubusercontent.com/devatlogstyx/probestyx/main/install.ps1 | iex -ArgumentList ".\config.yaml"

What the Installation Does ​

The installation script automatically:

  1. Downloads the latest Probestyx release binary from GitHub
  2. Installs to the appropriate directory:
    • Linux: /opt/probestyx
    • macOS: /opt/probestyx
    • Windows: C:\probestyx
  3. Copies your provided config.yaml to the installation directory
  4. Creates a system service:
    • Linux: systemd service
    • macOS: launchd service
    • Windows: NSSM service
  5. Starts the service with auto-restart enabled

Manual Installation ​

If you prefer manual installation or need more control:

Step 1: Download Binary ​

Visit the releases page and download the appropriate binary for your platform:

  • probestyx-linux-amd64
  • probestyx-linux-arm64
  • probestyx-darwin-amd64 (macOS Intel)
  • probestyx-darwin-arm64 (macOS Apple Silicon)
  • probestyx-windows-amd64.exe

Step 2: Install Binary ​

Linux/macOS:

bash
# Create installation directory
sudo mkdir -p /opt/probestyx

# Move binary
sudo mv probestyx-* /opt/probestyx/probestyx
sudo chmod +x /opt/probestyx/probestyx

# Copy your config
sudo cp config.yaml /opt/probestyx/config.yaml

Windows:

powershell
# Create installation directory
New-Item -ItemType Directory -Path "C:\probestyx" -Force

# Move binary
Move-Item probestyx-windows-amd64.exe C:\probestyx\probestyx.exe

# Copy your config
Copy-Item config.yaml C:\probestyx\config.yaml

Step 3: Create System Service ​

Linux (systemd):

Create /etc/systemd/system/probestyx.service:

ini
[Unit]
Description=Probestyx Metrics Agent
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/probestyx
ExecStart=/opt/probestyx/probestyx
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Enable and start:

bash
sudo systemctl daemon-reload
sudo systemctl enable probestyx
sudo systemctl start probestyx

macOS (launchd):

Create /Library/LaunchDaemons/com.probestyx.plist:

xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.probestyx</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/probestyx/probestyx</string>
    </array>
    <key>WorkingDirectory</key>
    <string>/opt/probestyx</string>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/var/log/probestyx.log</string>
    <key>StandardErrorPath</key>
    <string>/var/log/probestyx.log</string>
</dict>
</plist>

Enable and start:

bash
sudo launchctl load /Library/LaunchDaemons/com.probestyx.plist

Windows (NSSM):

Download NSSM and install Probestyx as a service:

powershell
# Install NSSM service
nssm install Probestyx "C:\probestyx\probestyx.exe"
nssm set Probestyx AppDirectory "C:\probestyx"
nssm set Probestyx AppStdout "C:\probestyx\probestyx.log"
nssm set Probestyx AppStderr "C:\probestyx\probestyx.log"
nssm set Probestyx Start SERVICE_AUTO_START

# Start service
nssm start Probestyx

Verifying Installation ​

After installation, verify Probestyx is running:

Check Service Status ​

Linux:

bash
sudo systemctl status probestyx

macOS:

bash
sudo launchctl list | grep probestyx

Windows:

powershell
nssm status Probestyx

Test HTTP Endpoint ​

bash
# Check health endpoint
curl http://localhost:9100/health

# Expected output:
# OK

# Check metrics endpoint
curl http://localhost:9100/metrics

# Expected: JSON with metrics

If using authentication:

bash
# Generate timestamp and signature
timestamp=$(date +%s)
signature=$(echo -n "$timestamp" | openssl dgst -sha256 -hmac "your-secret-key" | cut -d' ' -f2)

# Request with auth headers
curl -H "X-Timestamp: $timestamp" \
     -H "X-Signature: $signature" \
     http://localhost:9100/metrics

Post-Installation ​

View Logs ​

Linux:

bash
sudo journalctl -u probestyx -f

macOS:

bash
tail -f /var/log/probestyx.log

Windows:

powershell
Get-Content C:\probestyx\probestyx.log -Tail 50 -Wait

Update Configuration ​

After changing config.yaml, restart the service:

Linux:

bash
sudo systemctl restart probestyx

macOS:

bash
sudo launchctl stop com.probestyx
sudo launchctl start com.probestyx

Windows:

powershell
nssm restart Probestyx

Upgrading ​

To upgrade to a new version:

Using Install Script ​

Simply run the install script again with your config:

bash
# Linux/macOS
wget -O - https://raw.githubusercontent.com/devatlogstyx/probestyx/main/install.sh | sudo bash -s /opt/probestyx/config.yaml

Manual Upgrade ​

  1. Download the new binary
  2. Stop the service
  3. Replace the binary
  4. Start the service

Linux:

bash
sudo systemctl stop probestyx
sudo mv probestyx-linux-amd64 /opt/probestyx/probestyx
sudo chmod +x /opt/probestyx/probestyx
sudo systemctl start probestyx

Uninstalling ​

Linux ​

bash
# Stop and disable service
sudo systemctl stop probestyx
sudo systemctl disable probestyx

# Remove files
sudo rm /etc/systemd/system/probestyx.service
sudo rm -rf /opt/probestyx
sudo systemctl daemon-reload

macOS ​

bash
# Stop and remove service
sudo launchctl unload /Library/LaunchDaemons/com.probestyx.plist
sudo rm /Library/LaunchDaemons/com.probestyx.plist

# Remove files
sudo rm -rf /opt/probestyx
sudo rm /var/log/probestyx.log

Windows ​

powershell
# Stop and remove service
nssm stop Probestyx
nssm remove Probestyx confirm

# Remove files
Remove-Item -Recurse -Force C:\probestyx

Troubleshooting ​

Binary Not Found ​

Make sure the binary is executable:

bash
chmod +x /opt/probestyx/probestyx

Service Won't Start ​

Check the logs for errors:

bash
# Linux
sudo journalctl -u probestyx -n 50

# macOS
cat /var/log/probestyx.log

# Windows
Get-Content C:\probestyx\probestyx.log

Common issues:

  • Invalid config.yaml syntax
  • Port 9100 already in use
  • Missing file permissions

Port Already in Use ​

Change the port in config.yaml:

yaml
server:
  port: 9101  # Use a different port

Permission Denied ​

Ensure the service runs with appropriate permissions (usually root/Administrator).

Next Steps ​

Released under the MIT License.