This is the Nextcloud client update server.
Just create a json file in config/ with the name of the OEM that contains the same entries as the config.php.
If the default config.php doesn't hold update information for this OEM, the config is read from the JSON file.
{
"stable": {
"release": "2022-01-01 13:00",
"linux": {
"version": "3.2.1",
"versionstring": "Nextcloud Client 3.2.1",
"downloadurl": "https://download.nextcloud.com/desktop/releases/Linux/Nextcloud-3.2.1.AppImage",
"web": "https://nextcloud.com/install/?pk_campaign=clientupdate#install-clients"
},
"win32": {
"version": "3.2.1.0",
"versionstring": "Nextcloud Client 3.2.1 (build 1234)",
"downloadurl": "https://download.nextcloud.com/desktop/releases/Windows/Nextcloud-3.2.1-x64.msi",
"web": "https://nextcloud.com/install/?pk_campaign=clientupdate#install-clients"
},
"macos": {
"version": "3.5.2",
"versionstring": "Nextcloud Client 3.5.2",
"downloadurl": "https://download.nextcloud.com/desktop/releases/Mac/Installer/Nextcloud-3.15.2.pkg",
"sparkleDownloadUrl": "https://download.nextcloud.com/desktop/releases/Mac/Installer/Nextcloud-3.15.2.pkg.tbz",
"signature": "AAAaaaAAA001AAA001AAA001AAA001AAA123456001AAA+001AAA01+001AAA001AAA12345+001AAA001AAAA==",
"length": 123123123
}
},
"beta": {
"release": "2022-01-27 14:31",
"linux": {
"version": "3.5.6-rc1",
"versionstring": "Nextcloud Client 3.5.6 RC1",
"downloadurl": "https://download.nextcloud.com/desktop/releases/Linux/Nextcloud-3.5.6-rc1-setup.AppImage",
"web": "https://nextcloud.com/install/?pk_campaign=clientupdate#install-clients"
},
"win32": {
"version": "3.5.6-rc1",
"versionstring": "Nextcloud Client 3.5.6 RC1",
"downloadurl": "https://download.nextcloud.com/desktop/releases/Windows/Nextcloud-3.5.6-rc1-setup.exe",
"web": "https://nextcloud.com/install/?pk_campaign=clientupdate#install-clients"
},
"macos": {
"version": "3.5.0-rc1",
"versionstring": "Nextcloud Client 3.5.0 RC1",
"downloadurl": "https://download.nextcloud.com/desktop/releases/Mac/Installer/Nextcloud-3.15.0-rc1.pkg",
"sparkleDownloadUrl": "https://download.nextcloud.com/desktop/releases/Mac/Installer/Nextcloud-3.15.0-rc1.pkg.tbz",
"signature": "AAAaaaAAA001AAA001AAA001AAA001AAA123456001AAA+001AAA01+001AAA001AAA12345+001AAA001AAAA==",
"length": 123123123
}
}
}- Create the json file in
config/with the name of the OEM that contains the same entries as theconfig.php, e.g.nextcloudev.json. - To test this update server locally use
composer start, which then will run the server on localhost port 1234. - Alternativately, you can directly execute:
php -S 0.0.0.0:1234 -t .. - To generate debug logs while developing:
- Create a
php.iniin the root folder with the following content:error_log = /Users/camila/client_updater_server/test.log log_errors = on - Start the development php server with:
php -S 0.0.0.0:1234 -c php.ini -t ..
- Create a
- For all platforms, with cmake:
- Enable
BUILD_UPDATER. - Set
APPLICATION_UPDATE_URLwithhttp://0.0.0.0:1234or the following environment variable when running the client:export OCC_UPDATE_URL="http://0.0.0.0:1234".
- Enable
- On mac OS:
- Build the app bundle and codesign it using mac-crafter.
- Alternativately, with cmake:
- Enable
BUILD_OWNCLOUD_OSX_BUNDLE. - Set
SPARKLE_LIBRARY. codesigntheSparkle.frameworkand the app bundle.
- Enable
The updater server is deployed via Github webhooks. The state in master is deployed to https://updates.nextcloud.com/client/.