Skip to content

Updates & backups

The apps update themselves

New app versions are published to the releases page. Apps check a few times a day, download the update in the background and offer Restart to update, never while a movie is playing. There's nothing for you to do.

Updating the server

What changed in each server version is on the server releases page, with the image tag to pin if you want one. The server updates the Docker way:

terminal
docker compose pull
docker compose up -d

Or automatically with Watchtower, limited to containers you label:

docker-compose.yml (excerpt)
services:
moovo:
  # …
  labels: [com.centurylinklabs.watchtower.enable=true]

watchtower:
  image: containrrr/watchtower
  restart: unless-stopped
  volumes: [/var/run/docker.sock:/var/run/docker.sock]
  command: --label-enable --cleanup --schedule "0 0 5 * * *"   # 05:00 daily

Which app works with which server

The apps and the server tell each other their versions every time they connect, so each side knows when the other is too old and says so plainly. Most releases work with everything. Version 1.1, which brought connections and privacy, is the first that doesn't: an older app would offer to invite everyone, and a newer app on an older server would promise privacy the server doesn't enforce.

AppWorks with serversNotes
1.01.0On a 1.1 server it keeps working for 14 days after the update, then asks to be updated.
1.1 and later1.1 and laterOn a 1.0 server it keeps working for 60 days, with connections, privacy and the reaction tools off and a notice with the date, then asks for the server to be updated.

Server 1.1 and later need apps 1.1 or later. The releases page marks app versions that need a newer server ("Needs server 1.1 or later"), and the server releases page marks the ones that need newer apps.

Update the apps first, then the server

The apps update themselves, and app 1.1 is a required update. Update the server soon after it arrives: an app 1.1 on a 1.0 server works for 60 days, and an older app on a 1.1 server works for 14. Admin → Updates in the app shows which version each device runs, when it was last seen, and says so once no older app has been seen for 30 days.

Grace periods

Nobody gets locked out the moment something updates:

  • Older apps on a newer server: 14 days from the first start of the new server version. During that time they keep working with only what they're allowed to see; after it, they're asked to update. The period survives restarts. Change it with MOOVO_APP_GRACE_DAYS.
  • Newer apps on an older server: 60 days after the app release that needs a newer server. Everyone sees a small notice with the date ("This server will need an update by 12 Dec"), and the owner also sees it on Admin → Overview.
  • Downloaded movies always play offline, whatever the versions. Only syncing, Watch Together and browsing the library wait for the update.
  • A Watch Together session is never interrupted. If an update becomes required during one, it waits for the session to end.

The two update screens

When the grace period is over, the app shows one of two screens instead of the library:

  • "Update Moovo to keep watching", when the app is too old for the server. Update now downloads, checks and installs the new version, then restarts.
  • "This server needs an update", when the server is too old for the app. People see "Ask the server owner to update Moovo. Your downloads still play." The owner and admins get Open Admin → Updates on the same screen, so it's one click to fix.

Important and security releases

Release notes can mark a version as:

  • Important: install soon. The app shows its update banner without a "Later" button, and after 72 hours the update is required.
  • Security: fixes a security or data-loss problem. It's required as soon as it has downloaded, but never interrupts a movie or a Watch Together session. For the server, Admin → Updates turns red, the owner gets an email, and a scheduled auto-update runs at the next moment nothing is playing.

Backups

Everything the server knows lives in the data folder: the database, artwork and fetched subtitles. Your media stays where it is. Back up data with whatever you already use (Hyper Backup, Time Machine, restic…). To move to a new machine, copy data over and start the same compose file.

Before every update from Admin → Updates, the server saves a copy of its database in data/backups (pre-update-….db). To undo an update, stop the server and put that copy back rather than running an older version on the newer database. This matters most for 1.1: a server older than 1.1 ignores connections and privacy, so everyone would see everyone again. Admin → Updates says so and names the backup from before 1.1.