Repository navigation
Home
Servy is a Windows tool that lets you run any executable as a Windows service, with full control over configuration, monitoring, management, and recovery, all via a clean graphical interface, CLI, or PowerShell.
The modern build supports Windows 10 (1809+), Windows 11, and Windows Server 2016+. Legacy systems such as Windows 7 SP1 and Windows Server 2008 R2 are also supported via a dedicated .NET Framework 4.8 build. See the Installation Guide to choose the right version for your OS.
Starting from v10.2, Servy provides enterprise-grade per-service isolation between custom accounts, authenticated encryption, and automated ACL hardening. All releases feature signed binaries, SBOMs, and continuous vulnerability scanning. See Security and Architecture for details.
Tip
Use the sidebar to browse installation guides, configuration options, and more.
Applications written in Node.js, Python, Java, Go, PHP, Ruby, Rust, or similar environments are usually started as ordinary console or desktop programs. They run inside a user session, which causes problems on servers and other unattended machines:
- Logoff: When the user logs off, Windows ends all processes in that session, including the application.
- Reboot: After a restart, the application does not run until someone logs in and starts it manually.
- Crashes and hangs: If the process exits unexpectedly or stops responding, nothing restarts it.
- Output growth: If console output is redirected to a file, the file grows without limit unless something rotates it.
A Windows service wrapper registers an ordinary executable with the Windows Service Control Manager (SCM) and runs it as a service. The application then starts at boot, runs without a logged-in user, and is restarted on failure, without any change to its source code.
See examples and recipes for real-world usage and configurations across different environments.
Servy covers the basics of running an executable as a service, plus the operational tasks that usually come with it.
| Problem | How Servy addresses it |
|---|---|
| Application stops at logoff or does not start after reboot | Runs the application as a Windows service in Session 0. It starts at boot, before any user logs in, on both x64 and ARM64. |
| Application crashes or hangs | Monitors the process with health checks and heartbeats, restarts it according to a configurable recovery policy, and sends failure alerts through Windows notifications or email. |
| Child processes left running after a stop | Stops the application with a Ctrl+C or close-window signal, forwards the stop request to its child processes, and terminates any that remain. |
| Log files that grow without limit | Writes stdout and stderr to files and rotates them by size or by date. |
| Limited visibility into running services | Servy Manager shows CPU and RAM usage graphs, live console output, the status of service dependencies, and searchable logs. |
| Setup and cleanup around startup and shutdown | Runs pre-launch, post-launch, pre-stop, and post-stop programs, with configurable retries, timeouts, and failure handling. |
| Process and environment settings | Supports a working directory, startup parameters, environment variables with expansion, process priority, CPU affinity, and service dependencies. |
| Service accounts and permissions | Runs services as Local System, a local or domain user, or a Group Managed Service Account (gMSA). |
| Deployment and management | Provides a desktop app, a CLI (servy-cli), a PowerShell module, and service import and export. It supports current Windows versions as well as Windows 7 SP1 and Windows Server 2008 R2 through the .NET Framework 4.8 build. |
Service configuration
- Set the name, display name, description, startup type, process priority, CPU affinity, working directory, parameters, environment variables, and dependencies of each service.
- Use environment variables in parameters, process paths, and startup directories.
- Run services as Local System, a local or domain account, or a group managed service account (gMSA).
- Run pre-launch, post-launch, pre-stop, and post-stop hooks, with retries, timeouts, and failure handling.
Reliability
- Restart the process automatically when it crashes, hangs, or stops, based on health checks.
- Send heartbeat pings to an external URL such as healthchecks.io.
- Stop processes cleanly:
Ctrl+Cfor console apps, a close request for GUI apps,Ctrl+Cpropagation to child processes, and force termination when a process does not respond. - Terminate the whole process tree on stop so that no orphaned processes remain.
- Send notifications on service events through OS notifications and email, and through Slack, Microsoft Teams, WhatsApp, webhooks and other channels via a Heartbeat URL provider such as healthchecks.io.
Logging and monitoring
- Capture stdout and stderr to log files, with size-based or date-based rotation.
- View CPU and RAM usage as live graphs.
- View, tail, and search stdout and stderr in real time.
- View service dependencies as a tree with the status of each service.
Management tools
- Manage services with the desktop app, the Manager app, the CLI (
servy-cli), or the PowerShell module (Servy.psm1). - Script deployments and use Servy in CI/CD pipelines.
- Export and import service configurations for backup and migration.
Security
- Isolate each service through Windows named pipes, with kernel-level PID validation and DACL access checks.
- Restrict access to vault data, logs, and IPC endpoints with automated ACL hardening.
- Protect sensitive data with DPAPI, HKDF, and AES-256 with HMAC authenticated encryption.
Supported platforms
- Modern build (default, self-contained): Windows 10 (1809 or later), Windows 11, and Windows Server 2016 or later, on x64 and ARM64.
- Legacy build (
net48, requires .NET Framework 4.8): Windows 7 SP1, Windows 8.x, and Windows Server 2008 R2 or later, on x64 only. See the version comparison.
Copyright © Akram El Assas. All rights reserved.
Getting Started
Core Suite
Configuration & Features
- Advanced Configuration
- Logging & Log Rotation
- Health Monitoring & Recovery
- Environment Variables
- Service Dependencies
- Export / Import Services
Lifecycle Hooks
Automation & Production
- Servy Automation & CI/CD
- Embedding in Custom Installers
- Integration with Monitoring Tools
- Service Event Notifications
- Backup / Restore & VM Cloning
Reference & Support