Seamless Sync for Linux

The DotNetCloud desktop client runs quietly in your system tray, keeping your files synchronized between your Linux desktop and your DotNetCloud server. Built with Avalonia for a native look and feel on any Linux desktop environment.

  • Bidirectional Sync — Changes on your desktop sync to the server, and vice versa, automatically
  • Chunked Transfers — Large files upload in 4 MB chunks with automatic resume on interruption
  • Delta Sync — Only changed portions of files are transferred, saving bandwidth
  • Conflict Resolution — When files conflict, both versions are preserved as conflict copies
  • Selective Sync — Choose which server folders to sync to your local machine
  • SHA-256 Deduplication — Identical files aren't re-uploaded, saving time and bandwidth
  • Files On-Demand — Browse your entire server file tree without downloading everything. Files are fetched on access, with placeholder entries for offline browsing
  • System Tray Integration — Status visible at a glance in your desktop panel
Linux Tray App Screenshot Screenshot of the DotNetCloud sync tray application on a Linux desktop (GNOME, KDE, or Cinnamon). Show the tray icon in the panel with the dropdown menu open displaying: sync status ("All files synced"), account name, storage usage, Pause/Resume, Open Folder, Settings, and Quit options.

Capture: Right-click the DotNetCloud tray icon on your Linux desktop and screenshot the popup menu with status info.

Tray Icon Status Indicators

The system tray icon changes to reflect the current sync status at a glance.

Idle

All files synced. Green checkmark.

Syncing

Files in progress. Blue spinner.

Paused

Sync paused by user. Rebecca purple.

Conflict

File conflict detected. Orange branch icon.

Error

Sync error. Red warning.

Offline

No server connection. Gray.

Installation

Requirements

  • OS Ubuntu 22.04+, Debian 12+, Linux Mint 21+, or compatible
  • Desktop GNOME, KDE, Cinnamon, XFCE (any with system tray support)
  • RAM 256 MB (additional)
  • Disk 100 MB + disk space for synced files

Prerequisites

  • Server A running DotNetCloud server
  • Account Your DotNetCloud username and password
  • Network Network access to the server (LAN or internet)
1

Download the Client Bundle

Download the latest Linux desktop bundle from GitHub Releases.

Terminal
# Download and unpack the latest Linux client bundle
wget https://github.com/LLabmik/DotNetCloud/releases/latest/download/dotnetcloud-desktop-client-linux-x64.tar.gz
tar -xzf dotnetcloud-desktop-client-linux-x64.tar.gz
cd linux-x64
2

Install as Root

Run the provided installer script. It places binaries under /opt/dotnetcloud-desktop-client and installs a dotnetcloud-sync systemd service.

Terminal
sudo ./install.sh
3

Launch Tray and Connect Account

Start the tray app in your desktop session, then add your server account in Settings. Authentication opens in your browser and returns to the client.

Terminal
dotnetcloud-sync-tray
Account Setup Dialog Screenshot Screenshot of the initial setup dialog where the user enters their server URL (e.g., https://cloud.example.com), username, and password. Show the clean Avalonia form UI.

Capture: Launch fresh client without config and screenshot the account setup dialog.
4

Enable Auto-Start (Recommended)

In the tray app, open Settings -> General and enable Start DotNetCloud Sync at graphical login.

Advanced mode exposes service-level verification, custom install path awareness, and upgrade/rollback-friendly workflows.

Advanced prerequisites: run install steps with root privileges (sudo), expect binaries under /opt/dotnetcloud-desktop-client and the launcher at /usr/local/bin/dotnetcloud-sync-tray, and keep a copy of your current release bundle so you can roll back quickly if a new build fails validation.

1

Download and Verify Artifact Integrity

Terminal
# Download artifact and checksum from the same release
wget https://github.com/LLabmik/DotNetCloud/releases/latest/download/dotnetcloud-desktop-client-linux-x64.tar.gz
wget https://github.com/LLabmik/DotNetCloud/releases/latest/download/dotnetcloud-desktop-client-linux-x64.tar.gz.sha256

# Validate before installation
sha256sum -c dotnetcloud-desktop-client-linux-x64.tar.gz.sha256

# Extract and inspect bundle contents
tar -xzf dotnetcloud-desktop-client-linux-x64.tar.gz
cd linux-x64
ls -la
2

Install and Verify Service Lifecycle

Terminal
# Install binaries + systemd service
sudo ./install.sh

# Confirm service state and boot persistence
sudo systemctl status dotnetcloud-sync --no-pager
sudo systemctl is-enabled dotnetcloud-sync

# Optional: tail service logs while testing sync
sudo journalctl -u dotnetcloud-sync -f
3

Understand Paths and Launch Model

  • Install path — /opt/dotnetcloud-desktop-client/
  • Tray launcher — /usr/local/bin/dotnetcloud-sync-tray
  • System service — dotnetcloud-sync (auto-start enabled)
4

Upgrade In Place Without Losing Sync State

Re-run the installer with a newer release bundle. The script replaces binaries in place and preserves existing account/sync configuration.

Terminal
# Repeat on every update
sudo ./install.sh

How Sync Works

Smart, Efficient, Reliable

The sync engine monitors your local folder for changes using filesystem events. When a file changes, it calculates a SHA-256 hash, checks if the server already has that content, and only uploads what's new or different.

Sync Process

  • File change detected — via OS filesystem events (inotify on Linux)
  • SHA-256 hash computed — to determine if upload is needed
  • Chunked upload — file split into 4 MB chunks for reliability
  • Server assembles — chunks reassembled and verified on server
  • Bidirectional — server changes pulled down on the same schedule

Conflict Handling

If the same file changes on both your desktop and the server simultaneously, neither version is lost. The client creates a conflict copy (e.g., report (conflict 2026-03-31).docx) so you can review and merge manually.

Bidirectional sync flow diagram showing desktop to cloud process: detect change, hash, compare, chunk, upload, reassemble, and verify

Troubleshooting

Tray icon not appearing

Some Linux desktop environments (especially GNOME) don't show tray icons by default. Install the AppIndicator extension for GNOME Shell, or switch to a desktop with native tray support (KDE Plasma, Cinnamon, XFCE).

Connection refused or timeout

Verify that your server URL is correct and that the server is reachable from your desktop. Check firewall rules on both the server and your local machine. If using a reverse proxy, ensure it's forwarding WebSocket connections correctly (needed for SignalR).

Sync seems slow

Initial sync indexes all files and may take time depending on the number of files. Subsequent syncs only transfer changes and are much faster. Check ~/.config/dotnetcloud-client/logs/ for detailed sync logs.

Need Help?

Check the client documentation on GitHub or open an issue if you encounter a bug.

Also Available On

Get DotNetCloud on all your devices.

Windows Client Android App