ServerAlyzer is a local-first Windows app for monitoring your own Linux and macOS servers over SSH. It is designed so that your data stays on your PC and under your control.
In short
- No account. There is no sign-up, sign-in or user identifier.
- No ServerAlyzer servers. The app has no backend and sends nothing to the developer: no metrics, no server list, no credentials, no usage data.
- No telemetry, analytics, crash reporting or advertising in the app.
- No cloud. There is no cloud sync and no online account.
- The only network connections the app makes on its own initiative are SSH connections to the servers you add and, only when you start it, a search of your local network (see "Local network search").
- Name resolution. To connect to a server you entered by name, Windows resolves that name through your network's DNS service, or through mDNS for
.localnames. For a server reached through a jump host, the jump host resolves the server's name. No ServerAlyzer service is involved.
Who is responsible
ServerAlyzer is developed and published on the Microsoft Store by Pedro Loyola, a natural person resident in Portugal, under the publisher name Pedro Loy (the "publisher").
Contact for privacy questions: serveralyzer@pedroloyola.com. You can also open an issue at github.com/pedroloyola/ServerMonitor/issues. Report security issues privately through GitHub Security Advisories on the same repository (Security tab), not in a public issue.
What the publisher can and cannot receive
ServerAlyzer involves four kinds of data, and this policy keeps them apart.
- Data that stays only on your device. Everything described in "What is stored on your PC", "Files the app reads on your PC", "Local network search", "Encrypted backup" and "Notifications and widget" is processed by the app on your PC. The app never sends it to the publisher, so the publisher never receives, holds or sees it.
- Messages you choose to send to the publisher. An e-mail to serveralyzer@pedroloyola.com, or an issue, comment or private security report on GitHub.
- Information Microsoft shows the publisher in Partner Center. Reports about the Store app that Microsoft compiles itself, and the ratings and reviews published in the Store (see "Windows and Microsoft components"). They are not ServerAlyzer telemetry.
- Data processed by Microsoft and other independent services. The Microsoft Store, Windows (including its diagnostic data and the Widgets board), GitHub and the e-mail service you use process data under their own terms and privacy statements, for example the Microsoft Privacy Statement, not under this policy.
How the publisher handles the data it receives
Controller. For the messages in point 2, and for its own use of the information in point 3, the controller under the EU General Data Protection Regulation (GDPR) is the publisher: Pedro Loyola (publisher name Pedro Loy), a natural person resident in Portugal, contact serveralyzer@pedroloyola.com. Microsoft's collection and compilation of the Partner Center information is governed by the Microsoft Privacy Statement.
Messages you send (point 2)
Data What you write; your name and e-mail address as your e-mail program sends them, or your GitHub user name; and any technical details you choose to include.
Purpose To read and answer your message, and to investigate, fix or improve what you report.
Legal basis Legitimate interests (GDPR Art. 6(1)(f)): answering people who contact the publisher voluntarily and supporting the app. You start the contact, you expect a reply, and only what you choose to send is used.
How long E-mails: kept while needed to handle your message and any follow-up, and deleted at the latest 12 months after the last message in the conversation, unless they are needed for the establishment, exercise or defence of legal claims. GitHub issues and comments: public, and kept on GitHub until they are deleted; you can edit or delete your own comments, or ask the publisher to delete an issue or comment. Private security reports: kept confidential on GitHub until the problem is resolved; GitHub offers you a credit on the resulting advisory, and you are named only if you accept it; you can ask the publisher to remove it; e-mails about a report follow the e-mail rule.
Recipients For e-mail: Cloudflare, Inc., whose Email Routing service receives the messages sent to the publisher's address and forwards them to the publisher's mailbox, and Microsoft, whose Outlook service hosts that mailbox. Cloudflare states that Email Routing does not look into, queue or store e-mails, that messages are delivered in real time, and that it handles the message envelope to deliver them while keeping the headers and body intact (Cloudflare). For content on GitHub, GitHub, Inc., which states that it acts as a controller under its own privacy statement. The publisher shares your messages with no one else. Issues and comments you post publicly on GitHub are visible to everyone. If a report concerns a third-party component, the publisher may pass on the technical details, without your personal data, to that component's maintainers.
Partner Center information (point 3)
Data Statistics about the Store app, such as page views, installs, sessions, crashes and hangs and the devices affected; and the ratings and reviews published in the Store, with the name Microsoft shows for each review.
Purpose To understand how the app is installed and used, find and fix crashes and hangs, and read and answer reviews. Occasional exports of reports are used only for audit and diagnostics.
Legal basis Legitimate interests (GDPR Art. 6(1)(f)): keeping the app reliable and answering feedback. Microsoft provides this information to every Store publisher, it is mostly statistical, and reviews are already public.
How long The publisher views this information in Partner Center and may occasionally export reports, only for audit and diagnostics. Exported reports are deleted when they are no longer needed for that purpose. Microsoft may also e-mail the publisher notifications about the app, such as health alerts; those e-mails follow the e-mail rule. Inside Partner Center, Microsoft's terms apply.
Recipients Microsoft, which operates the Store and Partner Center. Reviews are public in the Store; Microsoft states that the name and picture of your Microsoft account may be shown with them. No one else.
No automated decisions. No automated decision-making or profiling is carried out.
Your rights. Under the GDPR you can ask the publisher for access to your data, its rectification or erasure, the restriction of its processing and, where the GDPR provides for it, its portability.
Your right to object. Because the publisher relies on legitimate interests, you can object at any time, on grounds relating to your particular situation, to the processing of your data described above. The publisher will then no longer process it, unless it demonstrates compelling legitimate grounds for the processing which override your interests, rights and freedoms, or the processing is for the establishment, exercise or defence of legal claims (GDPR Art. 21(1)).
How to make a request. Send your request by e-mail to serveralyzer@pedroloyola.com and say what you are asking for. Requests are free of charge. If the publisher has reasonable doubts about who you are, it may ask only for the information needed to confirm your identity. The publisher replies without undue delay and within one month. That period may be extended by up to two further months where necessary, taking into account the complexity and number of requests; if so, the publisher tells you within the first month, with the reasons. For data that Microsoft or GitHub hold, such as your Microsoft account, your Store reviews or your GitHub account, contact them directly.
Complaints. You can lodge a complaint with a data protection supervisory authority; in Portugal, the Comissão Nacional de Proteção de Dados (CNPD, www.cnpd.pt).
International transfers. The publisher is in Portugal. GitHub states that it stores and processes personal data in several locations, including the United States, and relies on the European Commission's standard contractual clauses and on its certification under the EU-U.S. Data Privacy Framework (GitHub privacy statement). Microsoft, which also hosts the publisher's mailbox (Outlook), states that it may store and process personal data in your region, the United States and other countries, and relies on the standard contractual clauses and on the EU-U.S. Data Privacy Framework (Microsoft Privacy Statement). Cloudflare states that, for transfers from the European Economic Area, it relies on the EU standard contractual clauses and on its certification under the EU-U.S. Data Privacy Framework, and that its standard Data Processing Addendum is incorporated by reference into its Self-Serve Subscription Agreement (Cloudflare GDPR FAQ).
Brazil (LGPD). Under its Article 3, Brazil's General Data Protection Law (LGPD) applies when the processing is carried out in Brazil, when it aims to offer or supply goods or services to, or process the data of, individuals located in Brazil, or when the personal data was collected in Brazil. Whether that is the case depends on these facts, for example whether ServerAlyzer is offered in the Brazilian Microsoft Store; the existence of a Brazilian Portuguese version of this policy does not, on its own, make the LGPD apply. Where the LGPD applies, you also have the rights in its Article 18, which you can exercise at serveralyzer@pedroloyola.com, and you can complain to the Autoridade Nacional de Proteção de Dados (ANPD).
How monitoring works
- ServerAlyzer connects directly from your PC to each server you add, over SSH. If you set up a jump host for a server, the connection goes through that jump host. No ServerAlyzer service sits in between.
- Before it trusts a server, the app shows the server's host key fingerprint and asks you to confirm it. Trusted keys are stored on your PC.
- The app runs read-only commands: system metrics (CPU, memory, disk, uptime, host name, OS version), the Docker container list and the list of system services (systemd or launchd). It does not install anything, change settings or use
sudoon your servers. - It connects while the app is open and, if you turn on background monitoring, while it runs in the notification area.
What is stored on your PC
All the app's data files are stored locally, in a folder named ServerMonitor in your user account's local application data. On a clean install from the Microsoft Store (no such folder yet), Windows keeps that folder inside the app's own package data folder (%LOCALAPPDATA%\Packages\<package name>\LocalCache\Local\ServerMonitor). If a %LOCALAPPDATA%\ServerMonitor folder already exists (for example, from an earlier development or test version), the app uses that folder instead of the package folder. The app does not store data in a roaming profile and does not sync it anywhere.
Servers
File: servers.json, routed-servers.json
Contents: Name, host, port, SSH user, sign-in method, the path of a private key you choose, jump host, and server preferences (operating system, refresh interval, hidden or not, date added, an internal reference to the saved password). No passwords.
Trusted host keys
File: known-hosts.json, known-hosts.routes.json
Contents: Host, port, key type and fingerprint.
Metrics history
File: history.db (SQLite)
Contents: Per server: time, health state, CPU %, memory %, disk %. Kept for 30 days: older entries are deleted automatically while the app runs (when it starts, then once a day). You can clear it in Settings › Data and servers.
Widget snapshot
File: widget-state.json
Contents: For the Windows widget: an internal server id, the name you gave the server (the app never replaces it with the host or IP address), health, CPU, memory and disk usage (percent, and GB used and total), uptime and last update time.
Ignored network devices
File: ignored-devices.json
Contents: One-way fingerprints (SHA-256 hashes) of devices you chose to ignore. No names or addresses.
Preferences
File: language-settings.json, notification-settings.json, background-settings.json, window-placement.json
Contents: Language, notification and background monitoring choices, window position.
Restore safety copy
File: restore-journal folder
Contents: A temporary copy used only while a backup is being restored, so that an interrupted restore can be undone.
Passwords and key passphrases are stored in Windows Credential Manager, for your Windows account on this PC. They are never written to the files above. The contents of private key files are never copied: the app keeps only the path you chose.
Docker container and service lists are shown in the app and are not saved.
The app writes no log files. The widget component can emit technical Windows event tracing (operation names and error types only, never server names, server data or file paths); the app writes it to no file and sends it nowhere, and it can only be read on your PC with Windows diagnostic tools (event tracing or a debugger).
Files the app reads on your PC
%USERPROFILE%\.ssh\config, and the files it includes from inside%USERPROFILE%\.ssh, only when you choose Import from SSH. Included files outside that folder, and linked files, are not read.- To suggest a key, the app checks whether the default key files
id_ed25519,id_ecdsaorid_rsaexist in%USERPROFILE%\.ssh, using file information only (name and size). It does not open them. A key file is read only to sign in to a server you configured with that key.
Local network search
- You can ask ServerAlyzer to look for SSH servers that announce themselves on your local network (mDNS/DNS-SD, service type
_ssh._tcp). The search never starts on its own, only when you choose Search local network. - While it runs, the app sends standard mDNS queries on your local network and listens for answers (UDP port 5353). It does not scan ports or address ranges, and it does not connect to the devices it finds.
- The search stops when you stop it, leave the page or hide the window; after about 40 seconds if it finds nothing new; and in any case after 10 minutes.
- Found devices (name, host name, addresses, port) are kept in memory only and are discarded when the search ends. Additional (TXT) announcement data is ignored.
- The first time you search, Windows Firewall may ask whether to allow ServerAlyzer on your networks. The app needs this to receive the answers. If you do not allow it, the search may find nothing; everything else keeps working. Windows saves your answer as Windows Firewall rules for the app, which stay after the search; you can review or remove them in the Windows Firewall settings.
- Adding a found server goes through the same connection test and host key confirmation as any other server.
Encrypted backup
- If you create a backup, the file contains your server list, routes, trusted host keys, notification and background monitoring settings, and your saved passwords and passphrases.
- The file's contents are encrypted with AES-256-GCM, with a key derived from a backup passphrase you choose (PBKDF2-HMAC-SHA256, 1,000,000 iterations). The file cannot be read without that passphrase, and it cannot be recovered if you forget it. A short header with the technical encryption parameters (format version, algorithms, number of iterations, salt, nonce and length) is stored unencrypted, as this method requires; it contains none of your data.
- The file is saved only where you choose. The app never uploads it. If you save it in a cloud-synced folder, that service's terms apply to the file.
- Private key files and the metrics history are not included.
Notifications and widget
- Alerts are local Windows notifications. They show the name you gave the server and its state (for example "is in a warning state") and stay in the Windows notification center until they expire or you clear them. The app uses no push notification service.
- The ServerAlyzer widget shows the data in
widget-state.json. To display it, the app hands the card content (an internal server id, the name you gave the server, health, metrics, uptime) to Windows on your PC, which shows it in the Widgets board, a Windows feature provided by Microsoft. ServerAlyzer sends it to no online service. Microsoft states that Windows diagnostic data is collected from the Widgets board according to your Windows diagnostic data settings, and that each widget is controlled by the settings of the app that powers it, here ServerAlyzer (Microsoft Support: Widgets).
Windows and Microsoft components
- The app is distributed and updated through the Microsoft Store. Installs, updates, ratings and reviews are handled by Microsoft under the Microsoft Privacy Statement.
- Reports Microsoft shows the publisher. In Partner Center, Microsoft shows the publisher reports about the ServerAlyzer Store app that Microsoft compiles itself: acquisitions (such as Store page views and installs), usage (such as sessions), health (such as crashes and hangs, the devices affected and technical failure details) and the ratings and reviews published in the Store (Partner Center analytics, Health report). Microsoft collects this data under the Microsoft Privacy Statement and, for crashes and hangs, according to your Windows diagnostic data settings. These reports are not ServerAlyzer telemetry: the app sends nothing for them, does not use the Microsoft Store Services SDK and logs no custom events.
- Diagnostic data. The app is built on Windows and the Windows App SDK, a Microsoft runtime installed with it. Windows may send diagnostic data to Microsoft, including reports of app crashes and hangs through Windows Error Reporting, according to your Windows diagnostic data settings and under the Microsoft Privacy Statement. ServerAlyzer adds nothing to it.
- ServerAlyzer is a Windows desktop app and declares the Microsoft Store
runFullTrustcapability, so it runs as a regular desktop program rather than inside the Store app sandbox. It uses this to connect over SSH to the servers you add, to look for servers on your local network only when you start a search, to keep your server passwords and passphrases in Windows Credential Manager on your device, and to provide notifications, the notification-area (tray) icon and the Windows widget. This capability does not give the app administrator rights.
Links that open your browser
Links in the app, such as the GitHub project page in Settings › Data and servers, open in your web browser only when you click them. The privacy terms of that website apply there.
Open-source components
ServerAlyzer includes open-source components that run on your PC and send nothing to their authors: SSH.NET, Tmds.MDns, Microsoft.Data.Sqlite and SQLitePCLRaw (SQLite), WinUIEx, the Windows App SDK, .NET libraries and Hugeicons icons. Licenses are listed in THIRD-PARTY-NOTICES.md in the repository.
Your control over your data
- In the app you can remove a server and, in Settings › Data and servers, clear the metrics history (Clear history) and show ignored devices again (Show ignored devices again).
- You can also see the entries for your saved passwords and passphrases in Windows Credential Manager and remove them.
- Uninstalling: on a clean install, Windows removes the app's package data folder and, with it, the files listed above. If the app used an existing
%LOCALAPPDATA%\ServerMonitorfolder instead (see "What is stored on your PC"), Windows does not remove that folder: it stays with its files until you delete it yourself. To remove it, type%LOCALAPPDATA%\ServerMonitorin the File Explorer address bar and delete that folder; this removes your server list, trusted host keys, history and settings. Two other things stay until you remove them yourself: - The SSH passwords and passphrases you saved, in Windows Credential Manager. The entry names contain no server name, address or user name. To remove them, open Control Panel → Credential Manager → Windows Credentials → Generic Credentials and remove each entry that starts with
ServerMonitor:v1:ssh(or, if you used an early version,pedroloyola.ServerMonitor:v1:ssh). - The Windows Firewall rules named
ServerMonitor.App, if you allowed access when Windows Firewall asked during a local network search. Windows creates these rules; the app neither creates nor removes them. To remove them, open Windows Security → Firewall & network protection → Advanced settings → Inbound Rules and delete the rules namedServerMonitor.App.
The app never changes your .ssh folder. Backup files you saved elsewhere are never touched.
Children
ServerAlyzer is a technical tool for the general public and is not directed at children; it has no features aimed at children. The app collects no personal data from anyone, including children.
Changes to this policy
Changes are published in this file with a new "Last updated" date, and the file's history is public in the repository. If an optional cloud feature is ever added, it will be described here before it is released, and it will be opt-in.