Windows Binary Installation
SolidPing can be run on Windows systems as a standalone executable or as a Windows Service.
Download
Download the latest Windows release from GitHub:
- Go to the SolidPing Releases page
- Download
solidping-windows-amd64.exe - Rename to
solidping.exefor convenience
Or use PowerShell:
# Download the latest release
Invoke-WebRequest -Uri "https://github.com/fclairamb/solidping/releases/latest/download/solidping-windows-amd64.exe" -OutFile "solidping.exe"
Running
Quick Start with SQLite
Open Command Prompt or PowerShell in the directory containing solidping.exe:
# Run with SQLite (data stored in current directory)
.\solidping.exe serve
With PostgreSQL
# Set environment variables
$env:SP_DB_TYPE = "postgres"
$env:SP_DB_URL = "postgresql://user:password@localhost:5432/solidping"
# Run the server
.\solidping.exe serve
Run Database Migrations
.\solidping.exe migrate
Windows Service
Using NSSM (Recommended)
NSSM (Non-Sucking Service Manager) is the easiest way to run SolidPing as a Windows Service.
- Download NSSM from https://nssm.cc/download
- Extract and add to your PATH, or use the full path
Install the service:
# Install the service
nssm install SolidPing "C:\Program Files\SolidPing\solidping.exe" serve
# Set environment variables
nssm set SolidPing AppEnvironmentExtra SP_DB_TYPE=postgres
nssm set SolidPing AppEnvironmentExtra +SP_DB_URL=postgresql://user:password@localhost:5432/solidping
nssm set SolidPing AppEnvironmentExtra +SP_SERVER_LISTEN=:4000
# Set working directory
nssm set SolidPing AppDirectory "C:\Program Files\SolidPing"
# Configure logging
nssm set SolidPing AppStdout "C:\Program Files\SolidPing\logs\stdout.log"
nssm set SolidPing AppStderr "C:\Program Files\SolidPing\logs\stderr.log"
# Start the service
nssm start SolidPing
Manage the service:
# Check status
nssm status SolidPing
# Stop service
nssm stop SolidPing
# Restart service
nssm restart SolidPing
# Remove service
nssm remove SolidPing confirm
Using sc.exe (Native)
You can also use the native Windows Service Control Manager:
# Create the service
sc.exe create SolidPing binPath= "C:\Program Files\SolidPing\solidping.exe serve" start= auto
# Note: Environment variables must be set system-wide or use a wrapper script
Directory Structure
Recommended directory structure:
C:\Program Files\SolidPing\
├── solidping.exe
├── config.yml (optional)
├── data\
│ └── solidping.db (if using SQLite)
└── logs\
├── stdout.log
└── stderr.log
Create the directories:
New-Item -ItemType Directory -Path "C:\Program Files\SolidPing\data" -Force
New-Item -ItemType Directory -Path "C:\Program Files\SolidPing\logs" -Force
Configuration File
Instead of environment variables, you can use a configuration file:
Create C:\Program Files\SolidPing\config.yml:
db:
type: postgres
url: postgresql://user:password@localhost:5432/solidping
server:
listen: ":4000"
email:
enabled: true
host: smtp.example.com
port: 587
username: noreply@example.com
password: smtp-password
from: noreply@example.com
Firewall
Allow incoming connections through Windows Firewall:
# Allow inbound on port 4000
New-NetFirewallRule -DisplayName "SolidPing" -Direction Inbound -Protocol TCP -LocalPort 4000 -Action Allow
Or through the Windows Firewall GUI:
- Open "Windows Defender Firewall with Advanced Security"
- Click "Inbound Rules" → "New Rule"
- Select "Port" → TCP → Specific port: 4000
- Allow the connection
- Name it "SolidPing"
IIS Reverse Proxy
If you're using IIS, you can configure it as a reverse proxy:
- Install the URL Rewrite and Application Request Routing modules
- Enable proxy in ARR
- Add a rewrite rule in
web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="SolidPing Proxy" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:4000/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Logs
View logs:
# View stdout log
Get-Content "C:\Program Files\SolidPing\logs\stdout.log" -Tail 100 -Wait
# View stderr log
Get-Content "C:\Program Files\SolidPing\logs\stderr.log" -Tail 100 -Wait
Updating
# Stop the service
nssm stop SolidPing
# Download new version
Invoke-WebRequest -Uri "https://github.com/fclairamb/solidping/releases/latest/download/solidping-windows-amd64.exe" -OutFile "C:\Program Files\SolidPing\solidping.exe"
# Start the service
nssm start SolidPing
Troubleshooting
Service Won't Start
- Check the logs in
C:\Program Files\SolidPing\logs\ - Verify environment variables are set correctly
- Ensure the database is accessible
- Check port 4000 is not in use:
netstat -an | findstr :4000
Permission Issues
Run PowerShell as Administrator when installing the service or modifying Program Files.
Next Steps
- Configuration Guide - All configuration options
- Check Types - Configure your first checks