syncthing-map: a tool to map syncthing devices and folders

So I tried executing

syncthing-map-master-windows-amd64.exe server

after removing (renaming) the syncthing-map-server.yaml file, here is the output:

2023-01-14T16:10:27-05:00 INFO starting server on port 3000
2023-01-14T16:10:34-05:00 FATAL cannot read server configuration file: open syncthing-map-server.yaml: The system cannot find the file specified.

Thus, I am confused.

Oh sorry, my bad! I read .html inserted of .yaml

Yes of course it must be created by hand because it provides information that only the user knows: the name of the device and the location of config.xml.

Apologies for the confusion.

1 Like

No wild characters in path or device names. The device names in the .yaml file are short versions of the device names used in each config.xml.

The executable is in the parent directory of all the config directories, so at first I only gave relative paths. The .json and the server output source all contain relevant data from each config, so it seems to parse the names and directories/config files ok.

I will PM you the files so we can debug this and then we can report back solutions/fixes as appropriate.

1 Like

Thank you very much for your help.

Fixes for the above are available in the 1.2.1 version.

The assumption was correct! :sweat_smile:

I’ve finally found some time to try testing the tool with our full network that consists of 20+ devices and probably 80+ folders (haven’t actually counted the exact number). I’m running into a few warning messages when trying to add all the config files, so I’d like to ask about them first.

  1. The output if basically filled with these.

    WARN provided device name XXX matches XXX caseless

    Is this something to worry about or can I ignore them?

  2. There a few of these.

    FATAL could not match the provided device name Device1 with known devices in the config file. Check for a warning above if this is not just a matter of case
    FATAL could not match the provided device name Device2 with known devices in the config file. Check for a warning above if this is not just a matter of case
    FATAL could not match the provided device name Device3 with known devices in the config file. Check for a warning above if this is not just a matter of case

    Any idea what the problem here could be?

  3. Does the order of adding the config files matter? I’m basically using a PowerShell script/command that adds all of them one by one sorted alphabetically.

Please get the latest version (Release v1.4 · wsw70/syncthing-map · GitHub today). I fixed that multiple warning that was really annoying.

Now for the naming, the problem is that config.xml does not know the device it comes from. So the name must be provided and syncthing-map tries to match that name to an ID in config.xml. If it does not it will complain.

No, it does not matter, the data is added to an object/dict/hash in the JSON file. This also mean that you can run the command several times - the value with your device name (key) will be added or updated.

You may want to consider the automatic mode, it is much better.

With the number of your devices and folders, you will also hit an issue with the lack of zoom which is a limitation of mermaid.js (the graphing library). I intend to code a workaround once I understand it. I will probably change the graph lib someday (it could be an opportunity to learn d3)

Everything is working now! :slightly_smiling_face:

The main problem here seems to be that the graph is rendered to match the browser window size. With this number of devices and folders, it gets shrunken too much horizontally, making it difficult to read. Is there a way to increase the width? I wouldn’t mind it overflowing the screen and having to scroll to see the whole thing better…

I’m attaching the actual HTML file for reference. I’ve used a quick regex to obfuscate IDs, device names, and folder labels.

syncthing-map-cli.html (157.7 KB)

Yes, this is really bad. And a limitation of Mermaid.js which does graphing. I found a workaround and hope to publish it this week-end when I am done with a bug in another open-source program of mine.

I am now hiding in the library so that nobody finds me and so that I code :slight_smile:

Woah, that’s an impressive graph! I will use it to test the zooming when I get to it.