No description
Find a file
root d8514bb64f Update daily Linux to 20251026
Signed-off-by: root <root@portal.portal.nextcloud.com>
2025-10-26 04:00:38 +01:00
.github chore: update CODEOWNERS 2025-07-31 11:08:27 +02:00
config Update daily Linux to 20251026 2025-10-26 04:00:38 +01:00
LICENSES add code owners configuration file 2025-04-28 15:52:27 +02:00
src Add required sparkle:installationType to response Sparkle enclosure 2025-02-06 13:50:27 +08:00
tests/unit Add sparkle installationtype info to test responses 2025-02-06 13:51:32 +08:00
.gitignore docs(reuse): Add SPDX header 2024-10-28 19:46:27 +01:00
.htaccess docs(reuse): Add SPDX header 2024-10-28 19:46:27 +01:00
AUTHORS.md docs(reuse): Add SPDX header 2024-10-28 19:46:27 +01:00
composer.json update phpunit 2021-06-17 13:00:59 +02:00
index.php default macOS + daily => stable 2025-04-07 10:07:39 +02:00
LICENSE Initial commit 2016-07-13 16:06:28 +02:00
README.md Extend the README with more info about testing the server locally. 2025-01-16 12:17:33 +01:00
REUSE.toml docs(reuse): Add SPDX header 2024-10-28 19:46:27 +01:00

Nextcloud Client Updater Server

REUSE status

This is the Nextcloud client update server.

Ship config of other OEMs

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
    }
  }
}

Development

  1. Create the json file in config/ with the name of the OEM that contains the same entries as the config.php, e.g. nextcloudev.json.
  2. To test this update server locally use composer start, which then will run the server on localhost port 1234.
  3. Alternativately, you can directly execute: php -S 0.0.0.0:1234 -t ..
  4. To generate debug logs while developing:
    • Create a php.ini in 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 ..

Desktop client

  • For all platforms, with cmake:
    • Enable BUILD_UPDATER.
    • Set APPLICATION_UPDATE_URL with http://0.0.0.0:1234 or the following environment variable when running the client: export OCC_UPDATE_URL="http://0.0.0.0:1234".
  • On mac OS:
    • Build the app bundle and codesign it using mac-crafter.
    • Alternativately, with cmake:
      • Enable BUILD_OWNCLOUD_OSX_BUNDLE.
      • Set SPARKLE_LIBRARY.
      • codesign the Sparkle.framework and the app bundle.

Deployment

The updater server is deployed via Github webhooks. The state in master is deployed to https://updates.nextcloud.com/client/.