{"id":30180214,"url":"https://github.com/aelassas/servy","last_synced_at":"2026-04-03T12:05:10.691Z","repository":{"id":307947320,"uuid":"1030897854","full_name":"aelassas/servy","owner":"aelassas","description":"Turn Any App into a Native Windows Service - Full-Featured Alternative to NSSM, WinSW \u0026 FireDaemon Pro","archived":false,"fork":false,"pushed_at":"2026-02-09T15:14:58.000Z","size":941633,"stargazers_count":1310,"open_issues_count":0,"forks_count":51,"subscribers_count":13,"default_branch":"main","last_synced_at":"2026-02-09T17:51:35.260Z","etag":null,"topics":["service-manager","service-wrapper","servy","watchdog"],"latest_commit_sha":null,"homepage":"https://servy-win.github.io","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aelassas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"aelassas","buy_me_a_coffee":"aelassas","custom":["https://www.paypal.me/aelassaspp"]}},"created_at":"2025-08-02T15:09:07.000Z","updated_at":"2026-02-09T15:34:42.000Z","dependencies_parsed_at":"2025-10-30T15:13:43.067Z","dependency_job_id":"53e7728b-3d80-4ccc-a433-97916250a7a2","html_url":"https://github.com/aelassas/servy","commit_stats":null,"previous_names":["aelassas/servy"],"tags_count":55,"template":false,"template_full_name":null,"purl":"pkg:github/aelassas/servy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aelassas%2Fservy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aelassas%2Fservy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aelassas%2Fservy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aelassas%2Fservy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aelassas","download_url":"https://codeload.github.com/aelassas/servy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aelassas%2Fservy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29455612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["service-manager","service-wrapper","servy","watchdog"],"created_at":"2025-08-12T07:01:55.167Z","updated_at":"2026-04-03T12:05:10.676Z","avatar_url":"https://github.com/aelassas.png","language":"C#","funding_links":["https://github.com/sponsors/aelassas","https://buymeacoffee.com/aelassas","https://www.paypal.me/aelassaspp","https://www.buymeacoffee.com/aelassas"],"categories":["C# #","others","Windows Services","System Utilities","NET Conf"],"sub_categories":["GUI - other"],"readme":"[![build](https://github.com/aelassas/servy/actions/workflows/build.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/build.yml)\n[![test](https://github.com/aelassas/servy/actions/workflows/test.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/test.yml)\n[![codecov](https://img.shields.io/codecov/c/github/aelassas/servy/main?label=coverage\u0026t=2)](https://codecov.io/gh/aelassas/servy)\n[![release](https://github.com/aelassas/servy/actions/workflows/release.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/release.yml)\n[![](https://img.shields.io/badge/docs-wiki-brightgreen)](https://github.com/aelassas/servy/wiki)\n\n\u003c!--\n[![build](https://github.com/aelassas/servy/actions/workflows/build.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/build.yml) \n[![test](https://github.com/aelassas/servy/actions/workflows/test.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/test.yml)\n[![Build Status](https://aelassas.visualstudio.com/servy/_apis/build/status%2Faelassas.servy?branchName=main)](https://aelassas.visualstudio.com/servy/_build/latest?definitionId=4\u0026branchName=main) \n[![](https://raw.githubusercontent.com/aelassas/servy/refs/heads/loc/badge.svg)](https://github.com/aelassas/servy/actions/workflows/loc.yml) \n[![codecov](https://codecov.io/gh/aelassas/servy/graph/badge.svg?token=26WZX2V4BG)](https://codecov.io/gh/aelassas/servy)\n[![codecov](https://img.shields.io/codecov/c/github/aelassas/servy/main?label=coverage)](https://codecov.io/gh/aelassas/servy)\n[![coveralls](https://coveralls.io/repos/github/aelassas/servy/badge.svg?branch=main)](https://coveralls.io/github/aelassas/servy?branch=main)\n\n[![scoop](https://github.com/aelassas/servy/actions/workflows/scoop.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/scoop.yml)\n[![](https://img.shields.io/badge/docs-wiki-brightgreen)](https://github.com/aelassas/servy/wiki)\n\n[![sonar](https://img.shields.io/sonar/quality_gate/aelassas_servy?server=https%3A%2F%2Fsonarcloud.io\u0026label=sonar)](https://sonarcloud.io/summary/new_code?id=aelassas_servy)\n[![winget](https://github.com/aelassas/servy/actions/workflows/winget.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/winget.yml)\n[![choco](https://github.com/aelassas/servy/actions/workflows/choco.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/choco.yml)\n[![bump-version](https://github.com/aelassas/servy/actions/workflows/bump-version.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/bump-version.yml)\n[![release](https://github.com/aelassas/servy/actions/workflows/release.yml/badge.svg)](https://github.com/aelassas/servy/actions/workflows/release.yml)\n\n[![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/aelassas/servy/total)](https://github.com/aelassas/servy/releases)\n[![GitHub Release](https://img.shields.io/github/v/release/aelassas/servy)](https://github.com/aelassas/servy/releases/latest)\n[![License](https://img.shields.io/github/license/aelassas/servy)](https://github.com/aelassas/servy/blob/main/LICENSE.txt)\n\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/aelassas/servy/pulls)\n[![](https://img.shields.io/badge/docs-wiki-brightgreen)](https://github.com/aelassas/servy/wiki)\n--\u003e\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://servy-win.github.io/servy-tiny.png?v=3\" alt=\"Servy\"\u003e\n  ⭐ Don't forget to give us a star on GitHub. It costs nothing but means a lot and helps the project grow!\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.youtube.com/watch?v=biHq17j4RbI\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Watch%20Demo-0C0C0C?style=for-the-badge\u0026logo=youtube\" alt=\"Watch Demo on YouTube\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Servy\n\nServy lets you run any app as a native Windows service with full control over the working directory, startup type, process priority, logging, health checks, environment variables, dependencies, pre-launch and post-launch hooks, pre-stop and post-stop hooks, and parameters. It's designed to be a full-featured alternative to NSSM, WinSW, and FireDaemon Pro.\n\nServy is digitally signed using a trusted code-signing certificate provided by the SignPath Foundation. This ensures that all Servy executables and installers are verified and secure, giving you peace of mind when using the tool.\n\nServy offers a desktop app, a CLI, and a PowerShell module that let you create, configure, and manage Windows services interactively or through scripts and CI/CD pipelines. It also includes a Manager app for easily monitoring and managing all installed services in real time.\n\nServy continuously monitors your app, restarting it automatically if it crashes, hangs, or stops. It is perfect for keeping non-service apps running in the background and ensuring they start automatically at system boot, even before logon, without rewriting them as services. Use it to run Node.js, Python, .NET, Java, Go, Rust, PHP, or Ruby applications; keep web servers, background workers, sync tools, or daemons alive after reboots; and automate task runners, schedulers, or scripts in production with built-in health checks, logging, and restart policies.\n\n## Why?\n\nSee the [project notes](NOTES.md).\n\n## Getting Started\nDownload the latest release from [GitHub](https://github.com/aelassas/servy/releases/latest) or install via a package manager:\n\n**WinGet**\n```powershell\nwinget install servy\n```\n\n**Chocolatey**\n```powershell\nchoco install -y servy\n```\n\n**Scoop**\n```powershell\nscoop bucket add extras\nscoop update innounp\nscoop install servy\n```\n\n## Quick Example\n\nYou can manage services using the [desktop app (GUI)](https://github.com/aelassas/servy/wiki/Servy-Desktop-App), the [CLI](https://github.com/aelassas/servy/wiki/Servy-CLI), or [PowerShell](https://github.com/aelassas/servy/wiki/Servy-PowerShell-Module).\n\nHere's a minimal example using the CLI to turn a Node.js app into a Windows service:\n\n```powershell\nservy-cli install `\n--name=\"MyService\" `\n--path=\"C:\\Program Files\\nodejs\\node.exe\" `\n--startupDir=\"C:\\MyServer\" `\n--params=\"C:\\MyServer\\server.js\"    \n```\n\nThis creates a service named `MyService` that runs your Node.js server in the background and starts automatically with Windows.\n\nThen start the service:\n\n```powershell\nservy-cli start --name=\"MyService\"    \n```\n\nExplore more [examples and recipes](https://github.com/aelassas/servy/wiki/Examples-\u0026-Recipes) for Python, Java, Go, and other popular frameworks.\n\n## Quick Links\n* [Download](https://github.com/aelassas/servy/releases/latest)\n* [Installation Guide](https://github.com/aelassas/servy/wiki/Installation-Guide)\n* [Overview](https://github.com/aelassas/servy/wiki/Overview)\n* [Usage](https://github.com/aelassas/servy/wiki/Usage)\n* [FAQ](https://github.com/aelassas/servy/wiki/FAQ)\n* [Full Documentation](https://github.com/aelassas/servy/wiki)\n\n## Features\n\u003c!--\nWhen it comes to features, Servy brings together the best parts of tools like NSSM, WinSW, and FireDaemon Pro, all in one easy-to-use package. It combines the simplicity of open-source tools with the flexibility and power you'd expect from professional service managers. Below is a detailed list of all the features Servy supports.\n--\u003e\n* Clean, simple UI\n* Monitor and manage all installed services with Servy Manager\n* Real-time CPU and RAM monitoring with live performance graphs for installed services\n* Real-time service stdout and stderr output preview in Servy Console\n* Service dependency tree visualization with status indicators\n* CLI and PowerShell module for full scripting and automated deployments\n* Run any executable as a Windows service\n* Set service name, description, startup type, priority, working directory, environment variables, and dependencies\n* Environment variable expansion supported in parameters, process paths and startup directories\n* Run services as Local System, local or domain accounts, Active Directory accounts, or gMSAs\n* Redirect stdout/stderr to log files with automatic size-based and date-based rotations\n* Run pre-launch hook before starting the service, with retries, timeout, logging and failure handling\n* Run post-launch hook after the application starts successfully\n* Run pre-stop and post-stop hooks before the application stops and after the application stops\n* Supports `Ctrl+C` for command-line apps, close-window for GUI apps, and force kill if unresponsive\n* Supports `Ctrl+C` propagation to descendant processes of the wrapped process\n* Prevent orphaned/zombie processes with improved lifecycle management and ensuring resource cleanup\n* Health checks and automatic service recovery\n* Browse and search logs by level, date, and keyword for faster troubleshooting from Servy Manager\n* Export/Import service configurations for easy backups and automation\n* Service Event Notification alerts on service failures via Windows notifications and email\n* Compatible with Windows 7-11 x64 and Windows Server editions\n\n## Roadmap\n\nSee the [project roadmap](ROADMAP.md).\n\n## Support \u0026 Contributing\n\nServy is free and open-source. If you are using it in a commercial or revenue-generating context, or simply find it valuable, consider supporting the project via [GitHub Sponsors](https://github.com/sponsors/aelassas), [PayPal](https://www.paypal.me/aelassaspp), or [Buy Me a Coffee](https://www.buymeacoffee.com/aelassas).\n\nOpen-source software requires time, effort, and resources to maintain. Every contribution, big or small, makes a difference and motivates continued work on features, bug fixes, and new ideas.\n\nIf you have suggestions, issues, or would like to contribute, feel free to [open an issue](https://github.com/aelassas/servy/issues) or [submit a pull request](https://github.com/aelassas/servy/pulls).\n\n## Stats for Nerds\n\n[![LoC – Prod](https://raw.githubusercontent.com/aelassas/servy/refs/heads/loc/loc-prod.svg)](https://github.com/aelassas/servy/actions/workflows/loc.yml)\n[![LoC – Tests](https://raw.githubusercontent.com/aelassas/servy/refs/heads/loc/loc-tests.svg)](https://github.com/aelassas/servy/actions/workflows/loc.yml)\n[![LoC – Total](https://raw.githubusercontent.com/aelassas/servy/refs/heads/loc/loc-total.svg)](https://github.com/aelassas/servy/actions/workflows/loc.yml)\n[![GitHub Downloads](https://img.shields.io/github/downloads/aelassas/servy/total)](https://servy-win.github.io/stats)\n\n## License\n\nServy is [MIT licensed](https://github.com/aelassas/servy/blob/main/LICENSE.txt).\n\n## Acknowledgments\n\nThanks to [SignPath](https://signpath.io/?utm_source=foundation\u0026utm_medium=github\u0026utm_campaign=servy) for providing a free code signing service, and to the [SignPath Foundation](https://signpath.org/?utm_source=foundation\u0026utm_medium=github\u0026utm_campaign=servy) for supplying a free code signing certificate.\n\nThanks to [JetBrains](https://www.jetbrains.com/) for providing an [open-source license](https://www.jetbrains.com/community/opensource/) for their tools. Their software made it much easier to profile, debug, and optimize Servy, helping improve its performance and stability. Having access to these professional tools really made a difference during development and saved a lot of time.\n\nSpecial thanks to everyone who tested Servy, reported issues, and suggested improvements on GitHub and Reddit. Your feedback and contributions have shaped the project and made it better with every release.\n\n\u003cp\u003e\n  \u003ca href=\"https://signpath.org/?utm_source=foundation\u0026utm_medium=github\u0026utm_campaign=servy\"\u003e\n    \u003cimg alt=\"SignPath Foundation\" src=\"https://aelassas.github.io/content/signpath.png?v=2\" width=\"54\" height=\"51\"\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://www.jetbrains.com/community/opensource/\"\u003e\n    \u003cimg alt=\"JetBrains Open Source\" src=\"https://aelassas.github.io/content/jetbrains.svg?v=3\" width=\"54\" height=\"51\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faelassas%2Fservy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faelassas%2Fservy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faelassas%2Fservy/lists"}