Skip to content

Widget can't reach API when Syncthing GUI has tls="true" — baseUrl hardcodes http:// #14

Description

@bendecastro

Service.qml:9 hardcodes the API base URL:

readonly property string baseUrl: "http://127.0.0.1:8384"

If the Syncthing GUI is configured with tls="true", every REST call is redirected and the widget never gets data:

http  -> HTTP 307  redirect=https://127.0.0.1:8384/rest/system/status
https -> HTTP 200

The redirect isn't recoverable in practice: Syncthing's GUI cert is self-signed (O=Syncthing, OU=Automatically Generated), so following it from Qt's XMLHttpRequest fails verification.

The API key lookup is unaffected (it shells out to syncthing cli config gui apikey get), so the widget loads and then stalls rather than failing visibly — which makes this look like a broken plugin rather than a config mismatch. There's also no user-facing override: the only schema option is refreshIntervalSec.

Suggested fix: read the tls attribute from config.xml (alongside the existing key lookup) and select the scheme from it, accepting Syncthing's self-signed GUI cert.

Why it's worth fixing: tls="true" is a supported, one-flag Syncthing setting, and it silently breaks the plugin with no error surfaced and no way to configure around it. The fix is scheme selection from config that the plugin already reads.

Environment: plugin 0.1.2 (aac0700) · Syncthing v2.1.3 · Quickshell 0.3.0 · Qt 6.11.1 · Omarchy 4.0.0-1 · Arch

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions