releasesURL setting and the new discovery server

Is there any more specific guideline to setup my own releasesURL thingy so that my remote sites that doesn’t have internet access can update via my private sector?

I’ve tried update a json file manually and run on a web server but I just don’t know what info is require, the setup on both the source and the syncthing client.

I noticed that the url is a description, but is it necessary? how will the client determine the path for the update package?

also, how to config the new discovery server, I changed the port on the client but I don’t see any traffic on the discovery server.

Syncthing have a notice says: “Global discovery: unsupported scheme”

It uses tag_name for working out the version, then constructs a file it’s expecting to find based on the tag_name: https://github.com/syncthing/syncthing/blob/master/lib/upgrade/upgrade_common.go#L220

Then checks for each asset name against that string generated, and if it matches, uses the download URL for the given asset.

It’s explained in the docs.

The Server device ID did not show on run. Am I missing something?

{
    "tag_name": "v0.12.1",
    "prerelease": false,
    "assets": [
      {
        "url": "http://10.x.x.x",
        "name": "syncthing-windows-386-v0.12.1.zip",
      }
    ]
  }

I made a json with these, is my path for the file is simply the “url”? or do I have to make another json file like the original one does.

Because the doc says “Syncthing looks for a version number in tag_name, then for an asset name matching syncthing-$os-$arch-$version.$ext”

and I simply put the file on the web server as http://10.x.x.x/syncthing-windows-386-v0.12.1.zip

The Server device ID did not show on run. Am I missing something?

Seen the same yesterday. Make fresh version from github, this issue was fixed recently.

1 Like

The “url” under “assets” should be the one for the actual download. It’s what Syncthing will load when it wants that file.

Run something like STTRACE=upgrade syncthing -upgrade to see what’s going on internally.

you mean the “browser_download_url”?

because the “url” in github is another json file which include all the info for that particular file.

I think you should have mention it in the doc, lol

https://developer.github.com/v3/repos/releases/#get-a-single-release-asset

ok, let’s say I have a file http://10.x.x.x/syncthing-windows-386-v0.12.1.zip

what do I need to do? and which field needs to update for each release?

can you make a clearer tutorial/doc?

No we definitely follow the url field. We do however also add an Accept: application/octet-stream header.

I already made both json file and the asset file(also in json format) but I got this:

INFO: Automatic upgrade: couldn’t fetch release information

am I using a wrong path or couldn’t it reach the destination? how am I supposed to tell syncthing the path?

right now the path I entered into synthing is: http://10.x.x.x/release.json this is what the file looks like: release.json:

[
  {
    "tag_name": "v0.12.2",
    "prerelease": false,
    "assets": [
      {
        "url": "http://10.x.x.x/v12-2.json",
        "name": "syncthing-windows-386-v0.12.2.zip",
        "content_type": "application/octet-stream",
        "created_at": "2015-11-09T13:28:44Z",
        "updated_at": "2015-11-09T13:28:46Z",
        "browser_download_url": "http://10.x.x.x/syncthing-windows-386-v0.12.2.zip"
      }
    ]
  }
]

v12-2.json:

{
  "url": "http://10.x.x.x/v12-2.json",
  "name": "syncthing-windows-386-v0.12.2.zip",
  "content_type": "application/octet-stream",
  "created_at": "2015-11-09T13:28:44Z",
  "updated_at": "2015-11-09T13:28:46Z",
  "browser_download_url": "http://10.x.x.x/syncthing-windows-386-v0.12.2.zip"
}

what else do I need to put into there.

and yes, I tested on that computer with a browser and it can access 10.x.x.x and see the json file.

url in release.json is supposed to point at the archive, not another json. The only reason you see json when you are opening it in a browser is because your browser hasn’t sent the right header. If it had, accessing the asset url would start a download.

We’ve already explained this twice, and we’ve pointed at a link that explains it as well, and yet you are still doing the wrong thing.

I read the two links you posted, I understand how it parse with the right header but I just don’t quite catch the point you mean archive…

you mean folder(path)? or there’re something more?

In the url attribute, put the URL to the zip file Syncthing should download.

it still say couldn’t fetch release information

and there’s nothing to show even I typed STTRACE=upgrade

Paste your JSON and the output from the upgrade command you’re doing and we may be able to help.

oh wow,

some show up a blue upgrade icon after a few hours :facepalm:

(but did not upgrade automatically) :facepalm:

and it(cannot upgrade) happens on some machines only, guess I’ll have to do some more testing check my networks again

Given we’ve helped you out setting this up (and can help you further if you have issues), you could be a good citizen and contribute a guide in the documentation repo, in return.

1 Like

after a few testes,

I’d recommend the following:

The json format it read may have issue on more than one version tag, at least mine’s don’t work if I stack more than one version it says it can’t find the release information instead

recommend keeping the version list to the minimum as everyone tailor for their own usage. (since you own upgrade server mostly are private sector limit your own network to specific version you control)

The multiple assets should run without problem but the one I tested are only windows files, plus I didn’t test on both 32bit and 64bit versions

I think the usage in the doc only need a small correction: show the url in file format so other people may understand it more easily.

That’s fair! I’ve updated the documentation to reflect this more clearly.

1 Like