Skip to content

Agent Installation

Woodstock Backup architecture relies on a central server communicating with agents installed on client machines. This page explains how to install and configure agents on different platforms.

Overview

Woodstock Backup agents are responsible for:

  • Analyzing local filesystems
  • Creating filesystem snapshots when a supported backend is available
  • Executing backup operations
  • Restoring files (if enabled)
  • Secure communication with the central server

Snapshot-backed Backups

To improve consistency, the agent can read files from a snapshot instead of from the live filesystem.

Supported backends today:

  • Linux: Btrfs snapshots
  • Windows: VSS snapshots on local drive-letter volumes such as C:\Data

Current behavior:

  • The agent automatically tries to create a snapshot when a compatible backend is available.
  • If snapshot creation fails, the backup continues from the live filesystem and the agent logs the error.
  • Snapshots are finalized after a successful backup, aborted during cleanup paths, and cleaned again on graceful shutdown or on the next authentication if a previous session left an orphaned snapshot.

Current limitations:

  • Windows VSS support is limited to local drive-letter paths. UNC paths such as \\server\share cannot use VSS.
  • Explicit per-job or per-share snapshot policy is not exposed yet in the server-side host configuration.

Download

When you add a new host in the Woodstock Backup interface, the system automatically generates an installation package containing:

  • config.yml: The configuration file for the agent.
  • Certificates needed for authentication.
  • The agent executable for your operating system (for some platforms).

Windows Installation

After downloading, you will have a zip file containing:

  • config.yml: The configuration file for the agent.
  • ws_client_daemon.exe: The executable for Windows.
  • Certificates needed for authentication.

Installation Steps

  1. Extract the zip file contents to a folder of your choice. For example: C:\ProgramData\woodstock.
  2. Open a Command Prompt with administrative privileges.
  3. Navigate to the folder where you extracted the files:
powershell
cd C:\ProgramData\woodstock
  1. Configure Windows Firewall to allow agent communications:
powershell
.\ws_client_daemon.exe --config-dir C:\ProgramData\woodstock install-fw-rule
  1. Install the agent as a Windows service:
powershell
.\ws_client_daemon.exe --config-dir C:\ProgramData\woodstock install-service

The agent is now installed and running as a Windows service. It will automatically start with your computer and listen for instructions from the server.

Linux Installation (Generic)

After downloading, you will have a zip file containing:

  • config.yml: The configuration file for the agent.
  • ws_client_daemon: The executable for Linux.
  • Certificates needed for authentication.

Installation Steps

  1. Extract the zip file contents to a folder of your choice. For example: /opt/woodstock.
  2. Open a terminal with administrative privileges.
  3. Navigate to the folder where you extracted the files:
bash
cd /opt/woodstock
  1. Make the daemon executable:
bash
chmod +x ws_client_daemon
  1. Create a systemd service file. Open a text editor with administrative privileges and create a file at /etc/systemd/system/woodstock.service with the following content:
systemd
[Unit]
Description=Woodstock Backup Client
After=network.target

[Service]
ExecStart=/opt/woodstock/ws_client_daemon --config-dir /opt/woodstock
Restart=always
User=nobody
Group=nogroup

[Install]
WantedBy=multi-user.target
  1. Reload the systemd daemon to recognize the new service and start it:
bash
sudo systemctl daemon-reload
sudo systemctl enable woodstock.service
sudo systemctl start woodstock.service

The agent is now installed and running as a Linux service. It will automatically start with your computer and listen for instructions from the server.

Linux Installation (Debian/Ubuntu)

After downloading, you will have a zip file containing:

  • config.yml: The configuration file for the agent.
  • Certificates needed for authentication.

Installation Steps

  1. Extract the zip file contents to the /etc/woodstock/ directory.
  2. Open a terminal with administrative privileges.
  3. Install the source package with the following commands:
bash
sudo curl https://gogs.shadoware.org/api/packages/ShadowareOrg/debian/repository.key -o /etc/apt/keyrings/gitea-ShadowareOrg.asc
echo "deb [signed-by=/etc/apt/keyrings/gitea-ShadowareOrg.asc] https://gogs.shadoware.org/api/packages/ShadowareOrg/debian bookworm main" | sudo tee -a /etc/apt/sources.list.d/gitea-shadowareorg.list
sudo apt update
  1. Install the agent package:
bash
sudo apt install woodstock-client-rs

The agent is now installed and running as a Linux service. It will automatically start with your computer and listen for instructions from the server.

Configuration

The main configuration is done in the config.yml file. Here are all the available options:

OptionDescriptionDefault Value
hostnameThe name that identifies this host on the serverSystem hostname
bindThe network address to bind to"0.0.0.0:3657"
passwordPassword for authentication with the server-
secretThe secret key for the clientRandomly generated 64-byte hexadecimal string
backup_timeoutTimeout for backup operations in seconds3600 (1 hour)
max_backup_secondsMaximum duration of a backup operation in seconds43200 (12 hours)
resolution_modeConnection method to the server - "Direct" (default), "Mdns" (if compiled with mDNS support), or "None""Direct"
mdns_interfacesOptional list of network interfaces to use for mDNS discovery-
serverServer address when using Direct mode (required if resolution_mode is Direct)-
disable_restaurationSet to true to disable restore capabilities for security reasonsfalse
xattrSet to true to enable backup of extended attributes on Linuxfalse
aclSet to true to enable backup of ACLs on Linuxfalse
auto_updateEnable automatic updatestrue on Windows, false on other platforms
update_delayTime in seconds between update checks86400 (24 hours)
log_directoryDirectory where logs will be storedSame as the configuration directory
snapshotSnapshot preference flag in the client configuration schematrue

Note: snapshot support is already auto-detected by the current agent implementation. Keep snapshot: true. Explicit end-to-end disabling or per-job control is not fully wired yet.

You can also start the agent with the --config-dir parameter to specify an alternative configuration directory, or set the CLIENT_PATH environment variable.

Command Line Options

The Woodstock Backup agent supports the following options:

OptionDescription
--config-dir <path>Specifies a custom configuration directory
--versionDisplays the agent version

Subcommands (availability depends on platform):

SubcommandPlatformDescription
self-updateAllUpdates the agent to the latest available version
install-serviceWindowsInstalls the agent as a Windows service
remove-serviceWindowsRemoves the Windows service
restart-serviceWindowsRestarts the Windows service
run-serviceWindowsRuns the program as a Windows service
install-fw-ruleWindowsCreates necessary Windows firewall rules
remove-fw-ruleWindowsRemoves Windows firewall rules

Troubleshooting

Agent Unavailable

If the agent appears unavailable in the server interface:

  1. Check that the service is running

    • Windows: Check Services Manager
    • Linux: systemctl status woodstock.service
  2. Check log files in the configuration directory

  3. Ensure certificates were properly installed

  4. Verify that the firewall allows communications on necessary ports

    • TCP port 3657 (default)
    • UDP port 5353 (if mDNS is used)

Snapshot Creation Fails

If backups on Windows or Linux do not use a snapshot:

  1. Verify that the share path is on a supported local filesystem.

    • Windows VSS requires a local drive-letter path such as C:\Data.
    • UNC paths and network shares cannot be snapshotted through VSS.
  2. Check the agent logs for messages similar to Failed to create a snapshot for ....

  3. On Windows, ensure the agent runs with sufficient privileges and that the VSS service is available.

  4. If snapshot creation still fails, the backup should continue from the live filesystem.