Skip to main content

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:

  1. Go to the SolidPing Releases page
  2. Download solidping-windows-amd64.exe
  3. Rename to solidping.exe for 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

NSSM (Non-Sucking Service Manager) is the easiest way to run SolidPing as a Windows Service.

  1. Download NSSM from https://nssm.cc/download
  2. 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:

  1. Open "Windows Defender Firewall with Advanced Security"
  2. Click "Inbound Rules" → "New Rule"
  3. Select "Port" → TCP → Specific port: 4000
  4. Allow the connection
  5. Name it "SolidPing"

IIS Reverse Proxy

If you're using IIS, you can configure it as a reverse proxy:

  1. Install the URL Rewrite and Application Request Routing modules
  2. Enable proxy in ARR
  3. 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

  1. Check the logs in C:\Program Files\SolidPing\logs\
  2. Verify environment variables are set correctly
  3. Ensure the database is accessible
  4. 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