Just released Servy 10.7 - New architecture, per-service isolation, new PS module features, and bug fixes
It's been about two months of hard work since my last post about Servy here, and I wanted to share this release, which includes an architecture redesign, per-service isolation, automated ACL hardening, new PS module features, and bug fixes.
If you haven't heard of Servy before, it's a tool that lets you run any app as a native Windows service with real-time monitoring and advanced recovery options. It comes with a GUI, a CLI, and a PS module.
What I've added/updated from v10.0 (last post on r/PowerShell) to v10.7 (current version):
- Full Per-Service Security Isolation: Custom service accounts can no longer read or modify other service configurations, runtime states, or logs. Decryption and database access are now proxied through the isolated Servy host Windows service (Servy.Host.exe) via a DACL-restricted local Named Pipe.
- Per-Service Log Isolation: Each wrapped service now writes its wrapper and restarter logs to an isolated subfolder (%ProgramData%\Servy\logs\services\<ServiceName>\). Custom service accounts hold permissions strictly within their own log subfolder and cannot access or tamper with logs from other services.
- Automated Vault & Binary Hardening: Servy now automatically enforces strict ACL lockdown rules on the %ProgramData%\Servy root vault and core binaries (.exe/.dll), removing the need for manual sysadmin hardening scripts or elevated permission setups.
- New Show-ServyService and Show-ServyServices PS Functions & CLI show Command: Inspect and print service configurations directly from the terminal in a clean, human-readable format.
- Servy Manager: Improved user experience, including the ability to show or hide columns in the Services and Logs grids by right-clicking a column header (with preferences automatically saved across sessions), an optional Display Name column in the Services grid, and double-clicking a service row to open its configuration.
- Third-Party Tools: Replaced handle64.exe / handle64a.exe with native P/Invoke, eliminating all third-party executable dependencies and licensing constraints.
- Bug Fixes: Fixed many issues across the CLI, PS module, Windows service wrapper, core components, and GUI.
- Documentation Updates: Added a new walkthrough for embedding Servy into custom installers, and updated docs.
Check it out on GitHub: aelassas/servy
Any feedback is welcome.
12 points · 1 comment
I built a tool that lets you run any app as a native Windows service
You have a server built in Java, Python, Node.js, or any other language? Ever wondered how to run it as a native Windows service so it runs automatically at startup and recovers automatically from failures?
Many people turn to NSSM or WinSW. These tools get the job done, but they lack security as well as advanced monitoring and recovery features.
NSSM stores service configs in the Windows registry, so any user can read process arguments and environment variables containing API keys and secrets. So, it is definitely not recommended for production use.
WinSW stores service configs in XML files, which can be read by any user with file access. It also lacks a graphical UI.
That's why I built Servy. Servy provides 100% isolation of service configs running under non-admin service accounts. All sensitive configs are encrypted and stored in a secure vault. Servy also provides advanced configuration, monitoring options, real-time CPU/RAM monitoring, stdout/stderr streaming, heartbeat pings, notifications, and CPU affinity.
I've been working on this tool for over a year now.
Check it out on GitHub: aelassas/servy
2 points · 4 comments
Mentions
Servy v10.7 - Windows service wrapper with focus on security and monitoring Servy v10.7 released. Servy is a tool that lets you run any app as a native Windows service with real-time monitoring and advanced recovery options. It comes with a GUI, a CLI, and a PS module. Check it out on GitHub: aelassas/servy Any feedback is welcome.
Just released Servy 10.7 - New architecture, per-service isolation, new PS module features, and bug fixes It's been about two months of hard work since my last post about Servy here, and I wanted to share this release, which includes an architecture redesign, per-service isolation, automated ACL hardening, new PS module features, and bug fixes. If you haven't heard of Servy before, it's a tool that lets you run any app as a native Windows service with real-time monitoring and advanced recovery options. It comes with a GUI, a CLI, and a PS module. What I've added/updated from v10.0 (last post on r/PowerShell) to v10.7 (current version): - Full Per-Service Security Isolation: Custom service accounts can no longer read or modify other service configurations, runtime states, or logs. Decryption and database access are now proxied through the isolated Servy host Windows service (Servy.Host.exe) via a DACL-restricted local Named Pipe. - Per-Service Log Isolation: Each wrapped service now writes its wrapper and restarter logs to an isolated subfolder (%ProgramData%\Servy\logs\services\<ServiceName>\). Custom service accounts hold permissions strictly within their own log subfolder and cannot access or tamper with logs from other services. - Automated Vault & Binary Hardening: Servy now automatically enforces strict ACL lockdown rules on the %ProgramData%\Servy root vault and core binaries (.exe/.dll), removing the need for manual sysadmin hardening scripts or elevated permission setups. - New Show-ServyService and Show-ServyServices PS Functions & CLI show Command: Inspect and print service configurations directly from the terminal in a clean, human-readable format. - Servy Manager: Improved user experience, including the ability to show or hide columns in the Services and Logs grids by right-clicking a column header (with preferences automatically saved across sessions), an optional Display Name column in the Services grid, and double-clicking a service row to open its configuration. - Third-Party Tools: Replaced handle64.exe / handle64a.exe with native P/Invoke, eliminating all third-party executable dependencies and licensing constraints. - Bug Fixes: Fixed many issues across the CLI, PS module, Windows service wrapper, core components, and GUI. - Documentation Updates: Added a new walkthrough for embedding Servy into custom installers, and updated docs. Check it out on GitHub: aelassas/servy Any feedback is welcome.
I built a tool that lets you run any app as a native Windows service You have a server built in Java, Python, Node.js, or any other language? Ever wondered how to run it as a native Windows service so it runs automatically at startup and recovers automatically from failures? Many people turn to NSSM or WinSW. These tools get the job done, but they lack security as well as advanced monitoring and recovery features. NSSM stores service configs in the Windows registry, so any user can read process arguments and environment variables containing API keys and secrets. So, it is definitely not recommended for production use. WinSW stores service configs in XML files, which can be read by any user with file access. It also lacks a graphical UI. That's why I built Servy. Servy provides 100% isolation of service configs running under non-admin service accounts. All sensitive configs are encrypted and stored in a secure vault. Servy also provides advanced configuration, monitoring options, real-time CPU/RAM monitoring, stdout/stderr streaming, heartbeat pings, notifications, and CPU affinity. I've been working on this tool for over a year now. Check it out on GitHub: aelassas/servy