-
unraid-podman v0.1.5
StableBuild Packages / Build .txz packages (push) Successful in 8m36sLint / ShellCheck (push) Successful in 10sLint / Validate .plg XML (push) Successful in 12sLint / EditorConfig (push) Successful in 6sRelease / Build release packages (push) Successful in 7m50sRelease / Publish Gitea Release (push) Failing after 6sreleased this
2026-07-13 23:53:59 +02:00 | 2 commits to main since this release[0.1.5] - 2026-07-13
Install: paste into Unraid Plugins → Install Plugin:
https://git.mp-mueller.de/magges/unraid-podman/releases/download/latest/podman.plgAdded
- Containers panel: folders to group containers (name + optional icon
URL), purely cosmetic organizational metadata stored in the plugin's
ownfolders.json— podman itself has no such concept, same as
Unraid's own Docker page's folders. "+ New Folder", a "Move to Folder"
submenu on each container's row menu, and per-folder rename/delete
(deleting a folder only ungroups its containers, never touches them).
A folder with nothing assigned yet still shows up (so there's
somewhere to move a container into); one that's merely hidden by the
current search/filter does not. A folder's header always shows an
icon+name+status chip per member — collapsed or expanded, matching how
Unraid's own Docker page folders behave — rather than hiding everything
behind a bare count; clicking a chip opens the same row menu the "⋮"
button does (Details is now a menu item there too, alongside
Pause/Kill/Rename/Edit/Remove) rather than jumping straight to the
detail modal. "Move to Folder" only shows for a container that isn't
grouped yet — once it's in one, that item becomes a direct "Remove
from Folder" instead, since "move to a folder" reads as "add" and is
ambiguous/redundant once it's already in one. Containers can also
carry an icon URL (settable in the create/edit form, auto-filled when
creating from a template) shown in the table instead of the 2-letter
initials avatar. - Containers can now carry a WebUI URL too (create/edit form, preserved
through Update/Update All the same way the icon URL is), shown as a
small open-in-new-tab button next to the name in the Containers table
when set. Both this and the icon are stored as the plugin's own
container labels (podman-webui.weburl/.icon), read straight off
the already-fetched container list — no extra per-container calls. - Container detail modal: 5 new tabs (Resources, Logs, Console, Events,
Healthcheck), rounding it out from 6 to 11 of prompt.md's 12 requested
tabs (Volumes was left merged into the existing Mounts tab — same
underlying source/destination data, a separate tab would just repeat
it). Resources shows live CPU/memory alongside configured limits
(memory/swap/CPU/PIDs/block-I/O — a0in podman's own HostConfig
means "unlimited", not zero). Logs reuses the existing per-container
logs endpoint. Console opens a real ttyd/podman-exec session scoped to
the modal, cleaned up (killing the ttyd process server-side) on every
way of leaving — switching tabs, Close, backdrop click, or Escape —
not just on an explicit Disconnect, so peeking at a console doesn't
leak an orphaned ttyd process. Events and Healthcheck are both one-shot
historical queries (libpod's/events?stream=falsefor the last 7
days, and inspect's ownState.Health.Log) rather than a live stream,
which stays out of scope (see dashboard.js's own note on why). - A real toast notification system (success/warning/error/info, auto-
dismissing, stacked bottom-right, dismissible early) replacing every
alert()used for one-way feedback across Containers, Images, Volumes,
Networks, Pods, Templates, Compose, and Settings — confirmations stay
nativeconfirm()(a decision, not a notice), and long command output
(podman compose up/down, previously also analert()) now goes to
the existing scrolling log-modal instead, which fits it better than a
toast ever could. - Dashboard reworked: a clean 6-tile row of plain counts (Running,
Stopped, Pods, Images, Volumes, Networks — colored green/red on
Running/Stopped so fleet health reads at a glance), a single "Resource
Usage" card with aligned CPU/Memory/Swap/Storage meter rows (bars shift
to warn/bad colors above 75%/90% instead of staying accent-colored at
any value), and an "Autostart Queue" table (reusing
podman-autostart.sh's own per-container failure counters, so it shows
exactly what that script would decide, not a second tracked history).
Bar-and-percentage metrics were kept out of the plain-count tile grid
entirely after an earlier attempt at combining them (a tile spanning
multiple grid columns) left dead, empty cells in the layout. - Dashboard and Containers now auto-refresh every ~2s (paused while the
tab is hidden or a modal is open) instead of requiring a manual
Refresh click to see current state. - Settings: an "Add container" dropdown + button above the Autostart
order table — previously that table could only reorder/remove
containers already in the chain, with no way to add one in the first
place. - Containers: "Update All" now also removes the old, now-unused image
version each updated container leaves behind (only when at least one
container actually updated), instead of leaving stale images to pile up
on disk after every update run.
Fixed
- Dashboard memory usage was calculated from libpod's raw
memFree(which
excludes reclaimable buffers/cache), showing usage far higher than
reality — e.g. 67% "used" wherefree -hreported 19%. Now reads
/proc/meminfo'sMemAvailabledirectly, matching whatfree -hand
most monitoring tools show. - Dashboard CPU usage never changed — libpod's own
/infocomputes
cpuUtilizationonce and never resamples it (confirmed live: three
calls seconds apart returned byte-identical numbers). Now computed from
/proc/statdeltas between successive requests, the same technique
top/htopuse, which auto-refresh's ~2s cadence fits naturally. - Context menus (a container's "⋮", a folder's "⋮") always dropped down
from the anchor at a fixed position — opened from a row near the
bottom of the viewport, the menu ran off-screen with its last items
unreachable. Now measures its own actual rendered size (which varies
with item count) after appending and flips above the anchor instead
when there isn't enough room below, clamped horizontally too. - Expanding/collapsing a folder shifted every column (including the
header text) in the Containers table — its defaulttable-layout: autosizes each column from the widest content among only the
currently-visible rows, so adding/removing a folder's rows changed
what counted as "widest" on every toggle. Columns now use explicit
fixed widths that don't depend on row content at all. - The Name column's content (icon + name + WebUI button) was
misaligned with its own header, drifting further off with every row —
puttingdisplay:flexdirectly on the<td>(to keep the WebUI
button on the same line as the name) pulls that cell out of
table-cell layout entirely, so withtable-layout:fixedit stopped
respecting the column width its<th>assigns. The flex layout now
lives on a<div>inside the<td>instead, so the<td>itself
stays a normal, fixed-width table cell.
Downloads
- Containers panel: folders to group containers (name + optional icon
-
unraid-podman v0.1.3
Stablereleased this
2026-07-13 01:36:13 +02:00 | 5 commits to main since this releaseInstall: paste into Unraid Plugins → Install Plugin:
https://git.mp-mueller.de/magges/unraid-podman/releases/download/v0.1.3/podman.plgAdded
- Settings: a "Podman Service" card with live status plus Start/Stop/Restart,
each shown in a progress log modal — diagnosing and recovering a podman
that failed to start no longer needs SSH/terminal access at all. - Settings: "Format a Disk for Podman Storage", for a single-disk system
with no cache pool. Only ever lists disks with no existing partition,
filesystem, or RAID/ZFS membership signature, and never the Unraid boot
flash — both excluded by multiple independent checks, not just one.
Formatted disks are remounted by UUID on every boot.
Fixed
STORAGE_PATHwas never auto-created, even when its parent (a real,
already-mounted cache pool) existed — only failed if genuinely nothing
was mounted at all. Root cause of a real "cannot reach the Podman API
socket" report on a fresh install with a perfectly normal cache pool.- Cache-busting for the WebUI's own JS/CSS never actually worked, at all,
the entire time — Unraid runs.pagePHP througheval(), and
__DIR__insideeval()'d code resolves to the eval() call site's
directory, not the plugin's. Every "hard refresh" this project's own
docs/commits ever recommended only worked because Ctrl+Shift+R bypasses
the browser cache directly, independent of this (broken) mechanism. - Settings' service status chip showed "Not running" immediately after a
successful Start, because the "is it running" check only recognized
rc.podman status's own wording, notstart/stop/restart's. - The Podman Service log showed
rc.podman's multi-line output as one
run-together paragraph (missingwhite-space: pre-wrapon the pane
itself, not just its per-line children).
Downloads
- Settings: a "Podman Service" card with live status plus Start/Stop/Restart,
-
unraid-podman v0.1.1
Pre-Releasereleased this
2026-07-13 00:14:59 +02:00 | 13 commits to main since this releaseFixes v0.1.0's broken plugin install (see CHANGELOG.md v0.1.1 entry). Package contents are identical to v0.1.0 — only plugin/podman.plg's XML formatting was fixed.
Install
Paste into Unraid Plugins → Install Plugin:
https://git.mp-mueller.de/magges/unraid-podman/releases/download/v0.1.1/podman.plgWhat was wrong in v0.1.0
Every package download failed ("download failure: zero-length file") because / entity values were split across their own lines, breaking the wget command the plugin manager builds internally. Verified against a real Unraid host by running the plugin manager's own CLI directly.
Downloads
-
unraid-podman v0.1.0
Pre-ReleaseBuild Packages / Build .txz packages (push) Successful in 7m29sLint / ShellCheck (push) Successful in 11sLint / Validate .plg XML (push) Successful in 12sLint / EditorConfig (push) Successful in 5sRelease / Build release packages (push) Successful in 7m23sRelease / Publish GitHub Release (push) Failing after 19sreleased this
2026-07-12 23:59:01 +02:00 | 14 commits to main since this releaseFirst testable release of unraid-podman — a native Podman plugin for Unraid with its own WebUI, built as an alternative to Docker.
This is a pre-release for testers. Expect rough edges.
What's in
- Containers: create/start/stop/restart/pause/kill/rename/remove, edit, live CPU/Mem stats, update checking against the real registry (Docker Hub/GHCR/self-hosted), GPU passthrough (AMD/Intel), macvlan networking with static IPs.
- Pods: full lifecycle management.
- Images: pull, tag, prune, layer/history info.
- Volumes & Networks: create/remove, including macvlan network creation matching Unraid's own "Custom: br0" style.
- Templates: import/export Unraid-style container templates (XML), create containers from them.
- Compose: edit/create/delete projects with a real YAML editor and validation, backed by
podman-compose(vendored, pure Python). - Live Terminal: a genuinely interactive console per container (arrow-key history, tab completion, vim — not a fake one-shot exec), using the same ttyd mechanism Unraid's own Docker "Console" button uses.
- Settings: storage path/size, autostart order, lifecycle timeouts.
Install
Paste this URL into Unraid's Plugins → Install Plugin:
https://git.mp-mueller.de/magges/unraid-podman/releases/download/v0.1.0/podman.plgRequires
podman system servicerunning (seeplugin/rc.d/rc.podman, started automatically after install).Known gaps
- Registry-Verwaltung (saved credentials/login), live event stream, and richer resource-limit editing are not built yet.
.github/workflows/release.yml's automated GitHub-Release publishing doesn't apply here — this repo lives on Gitea, and this release was cut and published manually.
Downloads