# Update Tilecast Player

Use **Settings** > **Player updates** to deploy signed Tilecast Player releases. This updates Player apps; it does not update Tilecast Server, containers, or the host operating system. Owners manage releases. Owners and Administrators can create deployments.

## Add a release

1. Choose **Android**, **Linux**, or **Tilecast Edge** under **Player platform**.
2. Select **Sync from GitHub** to import releases from [Tilecast releases](https://github.com/gbyo/tilecast/releases), or select **Upload release** to add signed files directly.
3. For a direct upload, choose all three files from the same signed release:

   | Platform      | Player file                              | Manifest                            | Signature                               |
   | ------------- | ---------------------------------------- | ----------------------------------- | --------------------------------------- |
   | Android       | `tilecast-player.apk`                    | `tilecast-player-update.json`       | `tilecast-player-update.json.sig`       |
   | Linux         | `tilecast-player.AppImage`               | `tilecast-player-update-linux.json` | `tilecast-player-update-linux.json.sig` |
   | Tilecast Edge | `tilecast-edge-<version>-<arch>.tar.zst` | `tilecast-edge-update.json`         | `tilecast-edge-update.json.sig`         |

   Select **Upload and verify**. Tilecast verifies the files before adding the release to its update cache.

GitHub releases show verification and cache status. If a release is verified but not cached, select **Download** to cache it. A release must be verified and cached before you can deploy it.

## Deploy a release

1. Select **Deploy update**.
2. Choose a **Verified release** and select screen and/or Display Group targets for the selected platform.
3. Choose **Download only**, **Download and request installation**, or **Maintenance window**. For a maintenance window, choose the local time at which each Player may install.
4. Set **Canary screens** if you want the remaining targets to wait until every canary reconnects. Use `0` to deploy to all selected targets at once.
5. Review the confirmation, then select **Deploy update**.

Offline Players begin after they reconnect. Canceling a deployment stops screens that haven't finished; screens already updated stay on the new release.

## Platform limits

The operating system may require local installation permission or approval on each TV. Plan for someone to handle the prompt at the display.

This update path applies to Players running as a managed AppImage. Each Linux Player restarts into the new version.

Tilecast Edge releases are built for one architecture, `x86_64` or `aarch64`. A release reaches only Edge screens that report the same architecture, and never reaches an Electron Linux or Android screen. Upload one release for each architecture you use.

An Edge screen installs the release beside the current one, restarts into it, and keeps it only after it reconnects and shows content for two minutes. If it can't, or if it loses power before then, it returns to its previous release on its own and the deployment shows the screen as failed. See [Update Tilecast Edge](#update-tilecast-edge).

## Update Tilecast Edge

An Edge update finishes only when the screen confirms it. In **Deployment history**, an Edge screen moves through downloading, installing, and reconnecting, and becomes succeeded only after the new release has run for two minutes with a server connection and content on screen.

If the new release doesn't start, keeps restarting, can't reconnect, or the screen restarts before it confirms, the screen goes back to the release it ran before. The deployment shows that screen as failed with the reason, and the same deployment doesn't try that release on that screen again. Deploy a fixed release when one is available.

An update never needs the screen to be paired again. See [Update Tilecast Edge](../../edge/updates/) for what happens on the screen, the rollback reasons, and recovery.
