Managing Daemons
Create, upgrade, and remove daemons.
Requirements
- Linux: Docker with host networking OR standalone binary
- macOS: Standalone binary only — Docker Desktop doesn't allow access to host interfaces
- Windows: Standalone binary only — Docker Desktop doesn't allow access to host interfaces
Creating a Daemon
Go to Discover > Daemons and click Create Daemon. The wizard walks you through setup and generates a ready-to-copy install command with the correct API key, server URL, and daemon name.
When choosing a daemon mode:
- DaemonPoll (default): The daemon initiates all connections to the server. It periodically heartbeats outbound to request work. No firewall rules needed for inbound connections to the daemon — it just needs outbound HTTPS access to the server. Best for most deployments.
- ServerPoll: The server initiates all connections to the daemon. An admin configures the daemon's reachable URL in the Scanopy UI. Use this for DMZ or restricted environments where the daemon cannot make outbound connections. Requires firewall rules allowing the server to reach the daemon on the configured port.
Updating Daemon Properties
You can update daemon properties after creation by editing the daemon config file. Restart the daemon for changes to take effect.
The daemon's name is the only property that propagates to the server. All other config properties are local to the daemon.
To update daemon capabilities (docker socket integration and interfaced subnets), run a SelfReport discovery to report the new capabilities to the server.
Daemon Capabilities
Each daemon reports its capabilities:
Docker Socket Access
- True: Can discover Docker containers
- False: Cannot access Docker socket
Interfaced Subnets
- Lists which subnets the daemon has network interfaces with
- The daemon will scan these subnets by default during network discovery
Upgrading
When an update is available, the daemon card in Discover > Daemons shows an Update button. Click it to see platform-specific upgrade steps. Configuration is preserved across upgrades.
For upgrading self-hosted server and integrated daemon together, see Upgrading.
Removing a Daemon
To fully remove a daemon, delete it from the UI and uninstall it from the host.
Delete from the UI: Go to Discover > Daemons and click the delete icon on the daemon card.
Deleting or uninstalling a daemon does not delete discovered data. Hosts, services, subnets, and topology remain on the server until you explicitly delete them.
Uninstall from the host:
Docker:
docker stop scanopy-daemon
docker rm scanopy-daemonLinux/macOS binary:
# Stop systemd service (if installed)
sudo systemctl stop scanopy-daemon
sudo systemctl disable scanopy-daemon
sudo rm /etc/systemd/system/scanopy-daemon.service
# Remove binary
sudo rm /usr/local/bin/scanopy-daemon
# Remove configuration
rm -rf ~/.config/scanopy/ # Linux
rm -rf ~/Library/Application\ Support/com.scanopy.daemon/ # macOSWindows:
- Stop the daemon process
- Delete the executable
- Remove configuration from
%APPDATA%\scanopy\daemon\
Can I migrate a daemon?
No. Daemons discover host-specific data (network interfaces, Docker containers, local services) tied to the machine they run on. Moving a daemon's identity to a different host would produce inaccurate data.
If you're replacing a host, create a new daemon on the new machine and delete the old one.
Integrated daemon (self-hosted)
Self-hosted Docker Compose deployments include an integrated daemon that runs alongside the server. This daemon is managed as part of your Compose stack — it upgrades when you upgrade the server and doesn't need separate installation or API key setup. For upgrading the integrated daemon along with your server, see Upgrading a Self-Hosted Server.