Upgrade safely
Update a Just Dashboard installation while keeping its settings, accounts, and data.
These instructions describe an installation running Just Dashboard 0.8.4. The installed version and release history appear under Settings → Version. Read the release notes before moving to a newer build.
Before an upgrade
Back up the dashboard's data directory (JD_DATA_DIR, normally /var/lib/just-dashboard) and preserve its .env and JD_MASTER_KEY. The SQLite database contains dashboard state; the master key decrypts its stored secrets. A database copy without that key cannot restore those secrets. Check the Coverage list on Backups for the dashboard's own backup job.
Keep an SSH session to the server available during the update, especially if you normally reach the panel through its own interface.
Update in the dashboard
When a newer release exists, a notice appears at the foot of the sidebar with the installed and latest versions. View patch notes opens Settings → Version, which lists every release between them. An administrator can choose Update now in the notice or Update to the new version on the Version page, then confirm with Update in the dialog. There is no version to type.
The update runs in a separate container, just-dashboard-updater, so it survives the dashboard's restart. It fast-forwards the checkout to the configured branch, builds the images one at a time, recreates the stack, and waits for the dashboard to answer again. Its progress and result appear on the Version page and in the sidebar notice. The new build keeps the existing settings, accounts, sessions, and data. If the dashboard does not come back, run docker logs just-dashboard-updater on the server to read the same transcript.
The updater never resets your checkout. Local edits that don't collide with the release are kept; if your checkout carries local commits or edits to files the release also changes, the update stops before building and says what is in the way. The Version page warns when the install directory has uncommitted changes.
Leave JD_UPDATE_BRANCH at its main default: that is where 0.8.4 is released, and the installer does not write the variable. The updater follows JD_UPDATE_BRANCH, even if your checkout is already on another branch, so set it only to follow a fork or a branch of your own — then move the checkout and the setting together.
Turning off Check for new versions under Settings → Configuration (or setting JD_UPDATE_CHECK=false) stops the dashboard from discovering newer releases; notes compiled into your installed build remain available. An in-app update also needs a discoverable checkout. If it can't find one, the Version page says the install is updated by hand and gives the reason; set JD_UPDATE_DIR to the cloned directory only in that case.
Update from just-dashboard.com
A server linked at the Maintain scope can be updated from its page under Servers on the site: Install runs the same update as the dashboard's own button, after you type the server's name. Automatic updates there sets a policy the server keeps and runs itself, installing patch releases or every release inside a window of its local time, and never a release marked breaking. The site being unreachable never starts or blocks an update.
Update from the server
In the original cloned directory, on the branch you follow:
git pull
docker compose up -d --buildYou can run sudo ./install.sh again instead. Accept its default to keep the existing .env. It rebuilds the stack and also installs host tools newer releases may need. The installer preserves an existing database and account set when it keeps that environment file. It must not replace your master key.
After the stack returns, open Settings → Version to check the installed version, then verify the pages you rely on. For version 0.8.4, the release notes summarize the user-visible changes.
Coming from 0.7.0
A few changes since 0.7.0 affect what you find after the upgrade:
- Sidebar. Accounts that existed before 0.7.3 keep every section. Only accounts created afterwards are asked what the server is for at first sign-in. Anyone can hide sections later under Account → Workspace.
- Stickyboard. It was added in 0.7.2 and removed in 0.8; Excalidraw is the Workspace's board. Boards made with Stickyboard stay in the dashboard's database through the update, but no page opens them.
- Uninstall. Since 0.7.2, an administrator can uninstall the dashboard from Settings → Configuration.