Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] junkerderprovinz - ShipLog

Featured Replies

ShipLog

Read the log before you set sail.

shiplog-banner-logo.png

Install on Unraid   View on GitHub   Buy me a coffee

What is this?

ShipLog is a read-only update advisor that lives right inside Unraid's native Docker tab. Unraid already tells you that an update is available and lets you apply it — ShipLog tells you what actually changes and how risky it is first. Next to each container it adds a small changelog bubble: the version jump, a deterministic risk badge, the release notes, and a DEPRECATED badge when the upstream project is archived.

It is a plugin (not a container): a tiny daemon on the host plus the bubble in the Docker tab. It never pulls, recreates, or stops anything — the Docker socket is read-only. Updating stays Unraid's own job.

Highlights

  • Changelog where you need it — a per-container bubble in the native Docker tab, no separate dashboard to open

  • What changes, not just “an update exists” — the release notes between your running image and the newest one

  • Deterministic risk badge — patch / minor / major / digest, computed from the version jump (no guessing)

  • Remembers the running version — even a rolling :latest image shows a real 1.7 → 1.8 jump once ShipLog has seen one update under its watch

  • DEPRECATED badge when the upstream repository is archived (end-of-life)

  • Read-only by construction — the Docker socket is mounted read-only; ShipLog cannot start, stop, recreate or pull anything

  • Optional AI summaries via a local Ollama — a short, plain-language “what changed” per update (off by default)

  • Optional Matrix notifications when a new update is first seen (off by default)

  • Follows your Unraid light/dark theme and language (English + German, English fallback)

  • Runs as a lightweight host daemon — no extra container

Requirements

  • Unraid 6.10+

  • Outbound HTTPS to image registries and GitHub (to fetch changelogs). A free GitHub token (no scopes) in the settings raises the anonymous API limit — useful if you watch many GitHub-sourced images

  • Optional: a reachable Ollama instance for AI summaries, and/or a Matrix account for notifications

Install / update

Install from Community Applications (search for ShipLog), or add the plugin by URL under Plugins → Install Plugin:

https://raw.githubusercontent.com/junkerderprovinz/shiplog/main/plugin/shiplog.plg

Open the Docker tab to see the bubble, or Settings → ShipLog for the options (poll interval, GitHub token, Ollama, Matrix). If you ever tested an early date-versioned build, remove the plugin and reinstall it once from the URL above.

Posting a bug report

Please post:

  • Unraid version (Settings → System Information)

  • ShipLog version (Plugins page) — currently v1.0.4

  • Daemon state and log: /usr/local/emhttp/plugins/shiplog/scripts/rc.shiplog status and tail -200 /var/log/shiplog.log

  • Browser + OS (the bubble is rendered in your browser)

  • Whether you set a GitHub token, Ollama, or Matrix — and, for a specific container, its image reference (e.g. ghcr.io/owner/app:latest)

GitHub issues with the same info are equally welcome: github.com/junkerderprovinz/shiplog/issues

Credits

Built in Go (engine) + a thin Unraid plugin for the Docker-tab bubble. Changelogs come from each image's org.opencontainers.image.source label and GitHub releases; optional summaries run on your own Ollama. If ShipLog saves you from a surprise update, you can buy me a coffee.


Self-hosted, MIT-licensed, read-only by design — it advises, you decide.

Edited by Junker der Provinz

Container logs are inconsistent
Some of them have a spot on changelog from github (dockhnad, Dozzle, abs, qui)
Some of them only lsio changelog (plex, radarr, sonarr, which is not ideal tbh, as most of the time it contains only info about updated dependency, not actual capp hangelog.
Some of them completely missing (seerr from hotio, media-preview-generar)

Some of them have completely wrong link to repository:
media-preview-generator link takes me to https://github.com/linuxserver/docker-ffmpeg
image.png


Wondering if we can have option to override links in shiplog UI - IP:8484

Unraid 7.2.3

ShipLog 2.0.2

Daemon state and log: /usr/local/emhttp/plugins/shiplog/scripts/rc.shiplog status and tail -200 /var/log/shiplog.log

Chrome 150.0.7871.115
Win 10 LTSC IoT

GitHub token

  • Author
9 hours ago, btTeddy said:

Container logs are inconsistent
Some of them have a spot on changelog from github (dockhnad, Dozzle, abs, qui)
Some of them only lsio changelog (plex, radarr, sonarr, which is not ideal tbh, as most of the time it contains only info about updated dependency, not actual capp hangelog.
Some of them completely missing (seerr from hotio, media-preview-generar)

Some of them have completely wrong link to repository:
media-preview-generator link takes me to https://github.com/linuxserver/docker-ffmpeg
image.png


Wondering if we can have option to override links in shiplog UI - IP:8484

Unraid 7.2.3

ShipLog 2.0.2

Daemon state and log: /usr/local/emhttp/plugins/shiplog/scripts/rc.shiplog status and tail -200 /var/log/shiplog.log

Chrome 150.0.7871.115
Win 10 LTSC IoT

GitHub token

Thanks for the really precise report, @btTeddy. That per-symptom breakdown made the root cause obvious. All of it traces back to one thing: ShipLog took the changelog repo straight from the image's OCI source label (org.opencontainers.image.source), which for a lot of images is the packaging wrapper (the LinuxServer docker-* repo), inherited wrong from a base image (that's your media-preview-generator pointing at linuxserver/docker-ffmpeg), or simply missing (hotio/seerr).

Fixed in v2.1.0, pretty much exactly as you suggested:

- Per-image source override, right on the status page at IP:8484. Click "source" on any row and point it at the correct GitHub repo (owner/repo or a full github.com URL). The engine then mines the changelog and the link from there for that image, and it sticks to the image so it survives container recreation. That covers the wrong-link and missing-changelog cases.

- Common LinuxServer apps now resolve to their upstream project out of the box (Radarr, Sonarr, Lidarr, Prowlarr, Readarr, Whisparr, Bazarr) instead of the wrapper's dependency-bump log. A manual override always wins over that.

Precedence is: override > curated default > OCI source label > version-delta fallback.

Update the plugin (or reinstall from the .plg URL below) and it's there. If you find an image where the override or a curated default is off, tell me the image and the repo it should point at and I'll sort it.

.plg: https://raw.githubusercontent.com/junkerderprovinz/shiplog/main/plugin/shiplog.plg

EDIT: I've Reinstalled Ship og and some issues are fixed. Added REINSTALL notes

Thanks for quick fix. Shiplog is getting better, but still a few flaws here and there.

Observations after the update:

Some of them have a spot on changelog from github (dockhnad, Dozzle, abs, qui)
Some of them only lsio changelog (plex,
radarr, sonarr)
Some of them completely missing (
seerr from hotio, media-preview-generar)

Crossed off those that are correct now.
Issues:
media-preview-generator - still ffmpeg changelog https://github.com/linuxserver/docker-ffmpeg
plex - no changelog at all REINSTALL: lsio changelog. Could be correct as the update it's only to lsio image, not plex itself

Plex Labels:

build_version = Linuxserver.io version:- 1.43.2.10687-563d026ea-ls313 Build-date:- 2026-07-13T12:12:29+00:00

maintainer = thelamer

net.unraid.docker.icon = https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/plex-logo.png

net.unraid.docker.managed = dockerman

net.unraid.docker.webui = http://[IP]:[PORT:32400]/web/index.html

org.opencontainers.image.authors = linuxserver.io

org.opencontainers.image.created = 2026-07-13T12:12:29+00:00

org.opencontainers.image.description = [Plex](https://plex.tv) organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. Straightforward design and bulk actions mean getting things done faster.

org.opencontainers.image.documentation = https://docs.linuxserver.io/images/docker-plex

org.opencontainers.image.licenses = GPL-3.0-only

org.opencontainers.image.ref.name = 6ccc773971c4256022d98a036c24d9a15ea88565

org.opencontainers.image.revision = 6ccc773971c4256022d98a036c24d9a15ea88565

org.opencontainers.image.source = https://github.com/linuxserver/docker-plex

org.opencontainers.image.title = Plex

org.opencontainers.image.url = https://github.com/linuxserver/docker-plex/packages

org.opencontainers.image.vendor = linuxserver.io

org.opencontainers.image.version = 1.43.2.10687-563d026ea-ls313



Wondering if assigning top priority to what shown in unraid docker ui as Project Page wouldn't be the best options, as most containers have a proper link to the github repo in there
In the unraid template.xml this is stored under <Project>https://github.com/owner/repo</Project>

Precedence could be:
override in UI > curated default > Project Page > OCI source label > version-delta fallback.


I'm guessing curated default going to be hardcoded in shiplog?

====================================================================================
REINSTALL: Appears that it's fixed after

I noticed that some containers have plenty duplicate entries in shiplog ui
thelounge have 6 of them, another container have 8 of them in total.
TBH Shiplog page is about as long as a toilet roll :)
image.png

====================================================================================

I believe we need some basic markdown support (or whatever is needed) as some of the changelogs are barely readable

shiplog:
image.png

Github:

image.png

image.png

Edited by btTeddy

When uninstalling I noticed that removing Shiplog plugin blindly deletes /mnt/user/cache/shiplog folder.

It kind of contradicts with this statement.
image.png


Shouldn't at least prompt user to confirm directory deletion?

  • Author

Thanks for the thorough second round, @btTeddy, and for marking what the reinstall already fixed. That kind of testing is gold.

ShipLog 2.3.0 is out with the rest of your list:

Readable changelogs. Release notes are now rendered properly (headings, bold, code, links, bullet lists), and stray HTML entities like the literal &nbsp; from your screenshot are cleaned up. Everything gets escaped before rendering, so no upstream HTML ever runs in the page.

Your precedence idea is in, exactly as proposed. The chain is now: manual override, then curated default, then the template's Project page (when it points at GitHub), then the OCI source label. And yes, the curated defaults are a small hardcoded map in the engine, currently the common LinuxServer apps with real GitHub releases; a manual override always beats everything. With the Project page in the chain, media-preview-generator should now pick up its own repo instead of the ffmpeg base label, and seerr from hotio gets a source at all. Plex staying on the LinuxServer changelog is correct, as you guessed: those updates really are image rebuilds.

Uninstall no longer touches your data. You are right that a read-only advisor should not delete a user-visible folder on its own. Removing the plugin now keeps /mnt/user/appdata/shiplog, so a reinstall resumes with the full version history, and the removal message tells you where it lives if you want it gone.

One small ask: bug reports and ideas like these are very welcome on GitHub too (https://github.com/junkerderprovinz/shiplog/issues). They are much easier to track and work through there, and you can see exactly when something ships. The thread stays open for everything else, of course.

Thanks again, this round made ShipLog noticeably better.

1 hour ago, Junker der Provinz said:

Thanks again, this round made ShipLog noticeably better.


Indeed those changes are amazing.
I'll stick to the github in the future.

An idea for another safety switch.
Some apps introduce breaking changes even with minor version upgrade (e.g. immich v1). Probably some even with patch. You never know..

What about implementing =exclusion words in auto updater functionality?
e..g
If the recent changelog contains the a word from the list, e.g. breaking, major, Pre-release, Beta etc -> don't update.

Edited by btTeddy

  • Author
1 hour ago, btTeddy said:


Indeed those changes are amazing.
I'll stick to the github in the future.

An idea for another safety switch.
Some apps introduce breaking changes even with minor version upgrade (e.g. immich v1). Probably some even with patch. You never know..

What about implementing =exclusion words in auto updater functionality?
e..g
If the recent changelog contains the word "breaking" -> don't update.

Great idea, and a smart one — you're right that SemVer level alone isn't enough. It's live in v2.4.0.

New setting in the Updates tab: "Never if changelog mentions" — a comma-separated word list (e.g. breaking, migration required). If the pending update's own release notes contain any of those words, ShipLog blocks it — never applies it — no matter what your level policy would otherwise allow. So "breaking" catches exactly the immich-v1 case: a minor or patch bump that calls out a breaking change in its own notes.

Blocked updates aren't silent — they show up in the run summary (ShipLog log + Matrix, if you use it), including in Dry run, so you can watch the safety switch actually catch something before you trust it on a real schedule. It's off by default (empty list = no effect on anyone who hasn't opted in).

Thanks again for pushing on this — this is exactly the kind of feature that's better for having a real use case behind it. Looking forward to see your feature requests on GitHub. 😉

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.