Installing a Daemon
Daemons are lightweight agents that perform network discovery. Deploy daemons on each network segment you want to scan.
Requirements
Section titled “Requirements”Linux: Docker with host networking OR standalone binary macOS: Standalone binary only — Docker Desktop can’t see your network Windows: Standalone binary only — Docker Desktop can’t see your network
- Additional Windows Requirement: Install Npcap to enable ARP-based host discovery. Without Npcap, the daemon will use port scanning as a fallback (slower, less reliable for detecting hosts without open ports).
Creating a Daemon
Section titled “Creating a Daemon”- Navigate to Manage > Daemons in the Scanopy UI
- Click “Create Daemon”
- Select the target network
- Select daemon mode:
- Pull (recommended): Daemon polls server for work — no inbound firewall rules needed
- Push: Server initiates scans — daemon must be reachable from server
- Click “Generate Key” to create an API key
- Copy either the Docker Compose or binary installation command
Docker Installation (Linux)
Section titled “Docker Installation (Linux)”Docker is the easiest way to run a daemon on Linux with host networking support.
services: scanopy-daemon: image: ghcr.io/scanopy/scanopy/daemon:latest container_name: scanopy-daemon network_mode: host environment: - SCANOPY_SERVER_URL=https://your-server-url - SCANOPY_DAEMON_API_KEY=your-api-key - SCANOPY_MODE=pull volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # Optional: for Docker discovery restart: unless-stoppedOr run directly:
docker run -d \ --name scanopy-daemon \ --network host \ -e SCANOPY_SERVER_URL=https://your-server-url \ -e SCANOPY_DAEMON_API_KEY=your-api-key \ -e SCANOPY_MODE=pull \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ ghcr.io/scanopy/scanopy/daemon:latestBinary Installation (All Platforms)
Section titled “Binary Installation (All Platforms)”Download the appropriate binary from the releases page:
- Linux x86_64:
scanopy-daemon-linux-amd64 - Linux ARM64:
scanopy-daemon-linux-arm64 - macOS x86_64:
scanopy-daemon-darwin-amd64 - macOS ARM64:
scanopy-daemon-darwin-arm64 - Windows x86_64:
scanopy-daemon-windows-amd64.exe
Make it executable (Linux/macOS):
chmod +x scanopy-daemonsudo mv scanopy-daemon /usr/local/bin/Run the daemon:
scanopy-daemon \ --server-url https://your-server-url \ --daemon-api-key your-api-key \ --mode pullSystemd Service (Linux)
Section titled “Systemd Service (Linux)”For automatic startup on Linux, create a systemd service.
- Download the service file:
curl -o scanopy-daemon.service https://raw.githubusercontent.com/scanopy/scanopy/main/scanopy-daemon.service- Edit the service file with your configuration:
sudo nano scanopy-daemon.serviceUpdate the ExecStart line with your parameters.
- Install and enable:
sudo mv scanopy-daemon.service /etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl enable scanopy-daemonsudo systemctl start scanopy-daemon- Check status:
sudo systemctl status scanopy-daemonsudo journalctl -u scanopy-daemon -fManaging Daemons
Section titled “Managing Daemons”
Viewing daemons:
- Navigate to Manage > Daemons
- See all daemons and their capabilities
- Check last seen timestamps
Updating daemon properties:
You can update all daemon properties after creation; however, you’ll need to restart the daemon for property updates to take effect.
Name, Mode, and URL will be propagated to the server if changed. All other properties are local to the daemon and not stored on the server.
To update daemon capabilities (docker socket integration and interfaced subnets), you’ll need to run a SelfReport discovery to report the new capabilities to the server.
Deleting a daemon: Click the delete icon. You’ll also need to uninstall the daemon from the host it’s running on.
Important: Deleting a daemon does NOT delete discovered data. Hosts, services, and topology remain until explicitly deleted.
Daemon Capabilities
Section titled “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
Uninstalling
Section titled “Uninstalling”Docker:
docker stop scanopy-daemondocker rm scanopy-daemonLinux/macOS binary:
# Stop systemd service (if installed)sudo systemctl stop scanopy-daemonsudo systemctl disable scanopy-daemonsudo rm /etc/systemd/system/scanopy-daemon.service
# Remove binarysudo rm /usr/local/bin/scanopy-daemon
# Remove configurationrm -rf ~/.config/scanopy/ # Linuxrm -rf ~/Library/Application\ Support/com.scanopy.daemon/ # macOSWindows:
- Stop the daemon process
- Delete the executable
- Remove configuration from
%APPDATA%\scanopy\daemon\