UCloud logo UCloud logo UCloud
v2026.3.0
  1. UCloud/Core
  2. 1. Introduction
  3. 2. Projects
  4. 3. Accounting
  5. 4. Orchestration
  6. 5. Frontend
  7. UCloud/IM for Slurm-based HPC
  8. 6. Installation
  9. 7. Architecture and Networking
  10. 8. User and Project Management
  11. 9. Filesystem Integration
    1. 9.1. Inter-provider file transfers
  12. 10. Slurm Integration
    1. 10.1. Application Management
    2. 10.2. Built-in Applications
  13. 11. Reference
    1. 11.1. Configuration
    2. 11.2. CLI
  14. 12. Appendix
    1. 12.1. Built-in Application Index
  15. UCloud/IM for Kubernetes
  16. 13. Installation
  17. 14. Architecture and Networking
  18. 15. Filesystem Integration
  19. 16. Compute Jobs
    1. 16.1. Public Links
    2. 16.2. Public IPs
    3. 16.3. License Servers
    4. 16.4. SSH Servers
    5. 16.5. Job Audit Log
    6. 16.6. Virtual machines
  20. 17. Integrated applications
    1. 17.1. Syncthing
    2. 17.2. Integrated terminal
  21. 18. UCX applications
    1. 18.1. Hello world
    2. 18.2. Data binding
    3. 18.3. UI events
    4. 18.4. Component reference
    5. 18.5. API reference
  22. 19. Reference
    1. 19.1. Configuration
    2. 19.2. CLI
  23. Branding for UCloud
  24. 20. Branding and identity for UCloud
  25. H: Procedures
  26. 21. H: Procedures
  27. 22. H: Introduction
  28. 23. H: Auditing
  29. 24. H: Auditing scenario
  30. 25. H: GitHub actions
  31. 26. H: Deployment
  32. 27. H: 3rd party dependencies (risk assesment)
  1. Links
  2. Source Code
  3. Releases

Syncthing integration

The Syncthing integrated application provides file synchronization for a user’s storage. It runs as a dedicated job and is configured by defining folders and devices.

Syncthing is exposed similarly to public IP features: it uses a Kubernetes Service with service.spec.externalIPs and a per-instance port from a configured port range.

When Syncthing is configured and eligible to run:

  • A dedicated Syncthing job is registered.
  • A Syncthing state folder is created under the user’s filesystem.
  • A port is allocated from a configured range and stored on the pod as an annotation.
  • A Kubernetes Service is created that exposes the instance on: syncthing.ipAddress:<assignedPort>
  • A NetworkPolicy is updated to allow inbound TCP traffic from the outside world to the assigned port.
  • A configuration file is written into the Syncthing state folder for the job to consume.

The Syncthing configuration is contains:

  • folders: list of folders to sync
  • devices: list of devices to sync with

Syncthing will only run when:

  • At least one folder is configured
  • At least one device is configured
  • All configured folders are valid and accessible to the owner
  • Referenced drives are not locked and can be used by the owner

This pod will only be scheduled on nodes labeled with ucloud.dk/machine=syncthing.

Requirements and prerequisites

For Syncthing to function correctly:

  1. syncthing.ipAddress must be routable to Kubernetes nodes
  2. External routing must ensure traffic for that IP reaches appropriate nodes
  3. The cluster network must support service.spec.externalIPs
  4. Firewalls and network policy must allow inbound TCP traffic to the assigned port
  5. The system must have at least one node reserved for syncthing jobs. Syncthing jobs will be placed on nodes labeled with ucloud.dk/machine=syncthing.

Configuration

The Syncthing feature must be enabled through the configuration. Below is an example configuration:

services:
  type: Kubernetes
  compute:
    syncthing:
      enabled: true
      ipAddress: 10.56.32.4
      portMin: 8000
      portMax: 16000
      relaysEnabled: false
Previous Integrated applications
Next Integrated terminal