Files and repositories

This page lists where a Nexus Telemetry Fleet server and a collector keep their files on each platform, and where the packages and images come from. Each path is created by the package at install, or by the fleet server or collector at its first run.

Fleet server

Debian, Ubuntu, RHEL and Fedora

What Where Created by
Binary /usr/bin/nf-server the package
Config directory /etc/nexus-fleet, mode 0750, root:nexus-fleet the package
Environment file /etc/nexus-fleet/server.env, mode 0640, seeded from server.example.env beside it the package
Data directory /var/lib/nexus-fleet, mode 0700, nexus-fleet:nexus-fleet the package
Registry <data>/fleet.db the fleet server
Data key <data>/dek.key the fleet server
Per-organisation databases <data>/orgs/<org-id>.db, with <org-id>.dek beside each the fleet server
Certificate authority <data>/ca/. In it, ca.crt and ca.key.enc are the platform organisation’s CA certificate and its encrypted key, stream-server.crt and stream-server.key.enc are the fleet server’s own certificate and key, <org-id>/ is each organisation’s CA, and transport/ is the certificate chain collectors check the fleet server against the fleet server
Backups <data>/backups/nexus-fleet-<UTC stamp>/ nf-server backup
Last successful scheduled backup <data>/backups/.last-success the scheduled backup
Service nf-server. The unit file is /lib/systemd/system/nf-server.service from the deb and /usr/lib/systemd/system/nf-server.service from the rpm the package
Scheduled backup /usr/bin/backup-stream-to-r2.sh, /etc/nexus-fleet/backup.example.env, and the timers nf-backup, nightly, and nf-backup-check, twice a day. See Backup and restore the package
Logs none on disk. JSON to standard output, read with journalctl -u nf-server n/a

The fleet server deb leaves the service stopped and disabled after installing. The collector packages start theirs. It is enabled and started with systemctl enable --now nf-server. dpkg --purge removes /var/lib/nexus-fleet and /etc/nexus-fleet. Removing the rpm leaves both directories in place.

Docker and compose

What Where
Binary /usr/local/bin/nf-server
Data directory /var/lib/nexus-fleet, a declared volume, named nf-data by the compose files
Config environment only, no file
Ports 3000 for the dashboard, 9443 for the collector stream
Runs as uid 10001, user nexus
Logs standard output, so docker compose logs

Everything the packaged install keeps under the data directory is at the same path inside the volume.

Run by hand

The data directory is ./data in the working directory, unless NF_DATA_DIR names another. Every other path is under it.

Collector

What Debian, Ubuntu, RHEL and Fedora macOS Windows Docker
Binary /usr/bin/nf-collector /usr/local/bin/nf-collector, with nf-collector-uninstall beside it C:\Program Files\NexusFleet\nf-collector.exe /usr/local/bin/nf-collector
Config /etc/nexus-fleet/collector.toml, mode 0640 /Library/Application Support/NexusFleet/collector.toml C:\ProgramData\NexusFleet\collector.toml none, environment only
Data directory /var/lib/nexus-fleet /Library/Application Support/NexusFleet C:\ProgramData\NexusFleet /var/lib/nexus-fleet, the nf-data volume
Local store <data>/collector.db <data>/collector.db <data>\collector.db <data>/collector.db
Log <data>/logs/collector.log, kept to 5 files of 10 MB <data>/logs/collector.log, kept to 5 files of 10 MB. The system also writes the collector’s console output to /Library/Logs/NexusFleet/collector.log <data>\logs\collector.log, kept to 5 files of 10 MB <data>/logs/collector.log, kept to 5 files of 10 MB
Service nf-collector, and nf-collector-updater.path with its .service, which run the updates the dashboard triggers com.nexustelemetry.nf-collector, a launch daemon defined in /Library/LaunchDaemons NexusFleetCollector none. The container is restarted by Docker, with --restart always
Reading the log journalctl -u nf-collector -f tail -f /Library/Logs/NexusFleet/collector.log open the log file, or the Logs panel on the setup page docker logs nf-collector

These paths are inside every data directory, whatever the platform.

File What it is
certs/collector.crt the device certificate
certs/collector.key.enc its private key, encrypted
certs/ca.crt the CA certificate that signed it
certs/transport-root.crt the root certificate the collector checks the fleet server against when it connects
dek.key the key that decrypts the local store
device.id the collector’s identity. A collector that still has this file attaches to its existing record when it enrols again
enrolled.json the enrolment record: the collector id, the fleet server address and the interval
status.json the status file the running collector writes, which nf-collector status reads

Run by hand, the collector uses ./data in the working directory unless NF_DATA_DIR names another.

Note: the Linux packages create /var/log/nexus-fleet and give the service write access to it, and nothing writes there. The log is <data>/logs/collector.log.

Repositories, channels and images

Fact Value
Download host https://fleet-downloads.nexustelemetry.com
Repository signing key, served from the marketing site https://nexustelemetry.com/nexustelemetry-public.asc
Image signing key, for cosign https://nexustelemetry.com/cosign.pub
Local keyring path /usr/share/keyrings/nexustelemetry.gpg
apt source file /etc/apt/sources.list.d/nexustelemetry-fleet.list
apt source line deb [signed-by=/usr/share/keyrings/nexustelemetry.gpg] https://fleet-downloads.nexustelemetry.com/apt stable main
rpm repository file /etc/yum.repos.d/nexustelemetry-fleet.repo
rpm base URL https://fleet-downloads.nexustelemetry.com/rpm/stable/, with gpgcheck and repo_gpgcheck both on
Channels alpha, beta, stable
Registry registry.nexustelemetry.com
Collector image registry.nexustelemetry.com/nf-collector, amd64 and arm64, anonymous pull, cosign-signed
Fleet server image registry.nexustelemetry.com/nf-server, amd64 and arm64, cosign-signed
Image tags :<version>, fixed to that release. :alpha, :beta and :latest point at the newest release on the alpha, beta and stable channels
Compose files Rendered and served on Install, not on the download host: docker-compose.production.yml with Caddyfile beside it for the TLS reverse proxy, and docker-compose.yml for the plain HTTP path
macOS package NexusFleetCollector-<version>.pkg
Windows installer NexusFleetCollector-<version>.msi
deb <package>_<version>-1_<arch>.deb. In the version, a pre-release hyphen such as 0.0.1-alpha.25 is written as a tilde, 0.0.1~alpha.25
rpm <package>-<version>-<release>.<arch>.rpm, with the same tilde

A release is built and signed once. Promotion publishes the same files to the next channel and moves the image tag to the same image. Nothing is rebuilt.

Release paths

Path Contains
https://fleet-downloads.nexustelemetry.com/fleet/<channel>/<version>/ Every file of that release, with SHA256SUMS and its signature. Never changed once written
https://fleet-downloads.nexustelemetry.com/fleet/<channel>/latest.json The manifest: the current version, and each file’s address and SHA-256. Rewritten on every publish and promotion
https://fleet-downloads.nexustelemetry.com/apt/dists/<channel>/, https://fleet-downloads.nexustelemetry.com/apt/pool/ The apt repository
https://fleet-downloads.nexustelemetry.com/rpm/<channel>/packages/, .../repodata/ The rpm repository

There is no latest directory. https://fleet-downloads.nexustelemetry.com/fleet/<channel>/current/ holds the macOS package and the Windows installer without a version in the name, each beside a .sha256 file with its checksum and version, so a download link never changes. The fleet server’s update check and the collector’s update both read the manifest.

See Release channels for which channel a collector follows and how to change it, and Server updates for the fleet server.