Updates
The version card, update channels, and the Update button — how your instance learns about new releases and applies them.
#Updates
Your instance checks itself against EmuView's tagged releases and tells you when a newer one exists. What happens when you act on that depends on your update channel.
#The version card
The System dashboard shows the running version (with its build commit) and, when a newer release is published, an Update available badge linking to the release notes. The check runs server-side and is cached for an hour; the refresh button forces a fresh look.
Only tagged releases count. Development activity on main never nags your instance — a new version exists only when one is deliberately released.
If the card says update checks not configured, set a GITHUB_TOKEN secret on the gateway worker — the badge needs it to read releases.
#Update channels
Choose how your instance deploys in Settings → System → Update Channel:
| Channel | The card shows | What "Update now" does |
|---|---|---|
| Manual (default) | The exact commands to run | Nothing — you stay in full control |
| Workers Builds | An Update now button | Syncs your GitHub fork with upstream; your connected Cloudflare Workers Builds redeploys automatically |
| GitHub Actions | An Update now button | Dispatches your fork's deploy workflow with the new release tag, deploying exactly that version |
The design principle behind all three: the app never deploys itself. The button only nudges git — a fork sync or a workflow dispatch — and your own pipeline does the deploying. That's why using the button never conflicts with deploying by hand later.
The git channels need two settings besides the channel itself: the Update Repository (your fork, as owner/repo) and the Update Branch (usually main), plus a GITHUB_TOKEN with write access to that fork. Setup details, including the one-time fork configuration, are in the upgrade guide.
#Triggering and results
The Update button requires the system/settings:update permission and every press is audit-logged. The card reports exactly what happened:
- Fork synced — Workers Builds will redeploy shortly / deploy workflow dispatched
- Already up to date — your fork matches upstream
- Merge conflict — your fork has local changes that clash with upstream; resolve on GitHub, then try again
- Configuration problems, with what to fix
#Before you update
An update can include database migrations, and those — unlike code — can't be rolled back. Make it a habit:
- Read the release notes the badge links to
- Back up before updating
- Know the rollback path for the code side
#What you learned
- Instances compare themselves against tagged releases only —
mainnever triggers anything - The update channel decides whether you get commands or a real one-click button
- The button nudges git; your own pipeline deploys — manual deploys stay possible on every channel
- Back up first: code rolls back, migrations don't