Josef Straßl a0bd994c4b Codex attempt to unify updater 1 månad sedan
..
includes a0bd994c4b Codex attempt to unify updater 1 månad sedan
packages 86f4a2f579 adding updater functionality 1 månad sedan
.htaccess 86f4a2f579 adding updater functionality 1 månad sedan
README.md a0bd994c4b Codex attempt to unify updater 1 månad sedan
config.sample.php a0bd994c4b Codex attempt to unify updater 1 månad sedan
index.php 86f4a2f579 adding updater functionality 1 månad sedan
manage.php a0bd994c4b Codex attempt to unify updater 1 månad sedan
manifest.json 86f4a2f579 adding updater functionality 1 månad sedan
manifest.php a0bd994c4b Codex attempt to unify updater 1 månad sedan
package.php a0bd994c4b Codex attempt to unify updater 1 månad sedan

README.md

PHP Update Server

This folder can be deployed as the central update server.

Release ZIPs can be managed through manage.php:

  1. Copy config.sample.php to config.php.
  2. Change UPDATE_SERVER_PASSWORD.
  3. Set UPDATE_SERVER_PACKAGE_PREFIX to the project/package name.
  4. Open index.php or manage.php, log in with the configured password, and upload a ZIP with a vX.Y.Z version.

The management UI stores the ZIP under packages/, calculates SHA-256 and size, and updates manifest.json.

Manual release management is also possible:

  1. Put the package under packages/, for example packages/my-app-v1.3.3.zip.
  2. Calculate its SHA-256 checksum and byte size.
  3. Edit manifest.json and set latest to the version clients should install.

Example release entry:

{
    "latest": "v1.3.3",
    "releases": {
        "v1.3.3": {
            "version": "v1.3.3",
            "package": "packages/my-app-v1.3.3.zip",
            "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
            "size": 123456,
            "published_at": "2026-06-23T00:00:00+00:00"
        }
    }
}

Clients should use manifest.php, not manifest.json, as their UPDATE_MANIFEST_URL.

The server code is intentionally project-agnostic. To reuse it in another PHP project, copy this folder, keep includes/update-server.php with the public PHP files, and adjust only config.php.