The agent on Linux
The Linux agent is a systemd service installed from a native package. It enrols from a JSON file the package never overwrites, updates itself through the package manager it was installed with, and mounts cloud drives through FUSE.
Requirements #
- A systemd distribution: Debian 11+, Ubuntu 20.04+, RHEL/Rocky/Alma 8+, Fedora 39+. x86-64 (
amd64/x86_64) or 64-bit ARM (arm64/aarch64). - Outbound HTTPS to
console.caryvane.com. fuse3for cloud drives (a package dependency, installed with the agent).
Install and enrol #
# Debian / Ubuntu
sudo apt install ./caryvane-agent_<ver>_amd64.deb
# RHEL / Rocky / Fedora
sudo dnf install ./caryvane-agent-<ver>-1.x86_64.rpm
# Enrol: the file is a conffile, so upgrades leave it alone
echo '{"DeploymentToken":"<token>"}' | sudo tee /etc/caryvane/agent.json >/dev/null
sudo systemctl restart caryvane-agent
sudo systemctl status caryvane-agent
sudo journalctl -u caryvane-agent -n 50
Install with apt/dnf rather than dpkg -i/rpm -U so dependencies resolve. agent.json can also carry "ServerUrl" for a self-hosted server.
What lands where #
| Item | Location |
|---|---|
| Binary | /opt/caryvane/agent/ |
| Unit | caryvane-agent.service, runs as root (it must read every user's files) |
| Enrolment settings | /etc/caryvane/agent.json |
| Token, database, manifests, cache | /var/lib/caryvane/ |
| Logs | the journal (journalctl -u caryvane-agent); also shipped to the console |
| Cloud drives | /mnt/caryvane/<drive name> |
Self-update #
The agent detects whether it was installed with dpkg or rpm and upgrades through apt-get or dnf, handing the command to systemd as a transient unit so that stopping the old service does not kill the installer that is replacing it. Your package manager's history therefore shows every version the machine has run. Remove with apt remove caryvane-agent / dnf remove caryvane-agent; purge removes the data directory too.
Linux specifics #
- There is no VSS; open files are read as they are. For a database, dump it in a pre-script.
- Continuous backup uses inotify; deep trees may need
fs.inotify.max_user_watchesraised. - Snapshot-capable filesystems (LVM, Btrfs) are detected and reported on check-in; the agent uses them where it can for consistent reads.
- Paths are case-sensitive and are kept as-is at the destination.