Documentation
Getting Started
Documentation Index Installation Details Quickstart
Architecture
Alert Geometry Coverage Data Flow Sequences Design Standards Display System Architecture Eas Decoding Summary Eas Monitor V3 Architecture Sdr Service Architecture System Architecture Theory Of Operation
Development
Agents Certification Reliability Plan Component Library Contributing Fcc Part11 Compliance Matrix Javascript Api Large File Refactor Plan Navigation Releasing Sdr Frequency Validation User Interface Guide
Hardware
Alpha Led Guide Argon40 Zigbee Setup Capacity And Sizing Gpio Guide Gps Hat Setup Hwsetup Helper Neopixel Led Control Sdr Setup Serial To Ethernet Adapters Vfd Display Setup Waveshare Rs232 Wifi Setup
Guides
Alert Signals Analytics And Reporting Api Key Management Application Settings Audio Monitoring Audit Log Review Database Backups Database Browser Disk Space Cleanup Eas Config Tool Eas Test Signal Pipeline Gated Alerts Hardware Quickstart Health Monitoring Help Https Setup Icecast Streaming Setup Ipaws Feed Integration Local Authorities Local Mail Server Manual Eas Events Mfa Totp Setup Notifications One Button Upgrade Setup Instructions Smart Setup Sms Opt In Ssl Web Ui Guide Tailscale Setup Tts Normalization
Troubleshooting
Audio Sdr Fix Tool Firewall Requirements Polling Not Working Sdr Master Troubleshooting Guide Troubleshooting 504 Timeout Tts Troubleshooting
Security
Audit Log Integrity Public Routes Security
Reference
About Alpha M Protocol Changelog Dependency Attribution Diagrams Ecig Cap To Eas Implementation Guide V1 0 Fcc 26 38 Eas Cybersecurity Fips Data Sources Mdc1200 Nrsc4B Same Standard Nws Alert Parameters Nws Zone Catalog Ohio Eas Documentation Overview Protocols Overview Rbds Standard Repository Statistics Sage Endec Same Site Reorganization Vtec Event Linking
Policies
Privacy Policy Sms Messaging Terms Of Use Trademark Policy

One-Click System Upgrade

Admin → System Upgrade (/admin/system-upgrade, requires the system.configure permission) runs the same upgrade update.sh would perform from a terminal (sudo bash update.sh), without needing shell access to the station. This page documents what the button actually does — it previously described a Docker-based container pipeline this project does not use; EAS Station is deployed bare-metal via install.sh/update.sh, not containers.

System Upgrade used to be one card on the Admin Operations page (/admin/operations, still there for database optimization and a quick backup shortcut) but was split out into its own full page — upgrading is a bigger, riskier operation with its own live progress/log-streaming UI than the routine maintenance chores that page still handles.

What it does

Clicking Start Upgrade launches update.sh --non-interactive as its own transient systemd unit (eas-station-update.service, via bin/eas-station-run-update) rather than as a direct child of the web process. That indirection matters: update.sh's own "Restarting Services" step restarts eas-station-web.service itself, and if the upgrade ran as a subprocess of that service it would be killed mid-run by its own restart before ever reaching its summary. Running it as an independent unit lets it survive that restart and keep writing to the journal the whole time, which is what the page polls to show live progress.

Concretely, the same script performs:

  1. Pulls the target ref (see "Choosing what to install" below).
  2. Updates Python dependencies in the venv.
  3. Applies pending Alembic database migrations.
  4. Refreshes systemd unit files and reloads the daemon.
  5. Restarts every EAS Station service.

Using the page

  • Update check. On page load the card checks whether the selected target has anything new to offer, via a read-only git fetch (it updates only this checkout's remote-tracking ref — never the working tree) — showing Up to date or Update available with a version and commit-count comparison. This is informational only; it doesn't gate the button, since a custom ref (a specific commit, for example) can't always be compared this way. Use Check again to re-run it after changing the version picker.
  • Choosing what to install. The Version to install dropdown offers:
    • Track main (latest) — the default. Runs a plain git pull on whatever branch is currently checked out (main on a standard install) — identical to the upgrade button's original behavior.
    • One of the most recent release tags (vX.Y.Z), fetched live from the repository — see Releasing EAS Station for how those tags get cut. Picking one pins the upgrade to that exact published version instead of whatever main currently looks like.
    • Custom branch, tag, or commit…, which reveals a free-text field for anything else — a feature branch, a specific commit SHA, etc.
  • Skip pre-upgrade backup. update.sh takes a full tar.gz backup of the install before upgrading by default; check this box to skip it (not recommended — see Database Backups if you need to browse, restore, or schedule backups instead of the quick one-off this page also offers).
  • Start Upgrade asks for confirmation, then streams the same step-by-step output the CLI would print to a terminal into the log box below, with a progress bar driven by update.sh's own --- Step N/M --- markers. Expect a brief disconnect partway through, when the "Restarting Services" step restarts the very page you're looking at — progress resumes automatically once the web service is back, and reloading the page later picks the log up from where it left off (it's read from the systemd journal, not in-memory state).

Notes for operators

  • Take the default backup unless you have a specific reason not to — an upgrade that fails partway through a migration is exactly what it's for.
  • Pinning to a release tag is the right choice for a station that shouldn't ride whatever landed on main this week; track main if you want the latest fixes as soon as they merge.
  • If the upgrade fails, the log box shows exactly where — check sudo journalctl -u eas-station-update.service for the full output, or restore the pre-upgrade backup from Admin → Backups.

This document is served from docs/guides/one_button_upgrade.md in the EAS Station™ installation.