OxiCloud v0.5.4 — Docker Image Fix, UX Polish & OpenAPI
A focused release with 29 commits from 4 contributors, touching 369 files with over 2,000 lines of improvements. This release restores Docker Hub image publishing (missing since v0.5.1), introduces browser history navigation, OpenAPI spec generation, and a wave of UX refinements for file management.
⚠️ Docker Hub is back: The
diocrafts/oxicloud:0.5.4and:latestimages are now available. Images for v0.5.2 and v0.5.3 were never published due to CI pipeline failures — this release fixes all underlying issues. See #250 for details.
Highlights
- Docker Image Publishing Restored — Fixed three cascading CI/CD failures that prevented container images from being published since v0.5.1
- Browser History & URL Bookmarking — Navigate folders with browser back/forward buttons and bookmark any folder URL directly
- OpenAPI Spec Generation — Auto-generated OpenAPI documentation via utoipa for the entire REST API
- Enhanced Drag & Drop — Multi-file drag support with visual drag summary and improved drop targets
- Ctrl/Meta/Alt Multi-Select — Select multiple files using keyboard modifiers, desktop-style
- WOPI PDF Fallback — Graceful fallback to inline viewer when WOPI editor fails for PDF files
- Configurable Server Port —
OXICLOUD_SERVER_PORTenv var replaces hardcoded port 8086 - Login & User Menu Fix — Resolved
.hiddenclass conflict that caused blank login page and missing admin badge/panel in user menu - View Toggle Polish — Refined grid/list view toggle buttons with tighter proportions
Features
- Browser history navigation — Navigate folders with browser back/forward buttons; folder URLs are now bookmarkable (@EdouardVanbelle — #232)
- OpenAPI spec generation with utoipa — Auto-generate
openapi.jsoncovering all REST API endpoints viacargo run --bin generate-openapiorjust openapi(@iltumio — #245) - Ctrl/Meta/Alt key multi-select — Hold modifier keys to toggle individual item selection, matching desktop file manager behavior (@EdouardVanbelle — #261)
- Improved drag & drop — Support for dragging multiple files simultaneously with a visual drag summary showing file count (@EdouardVanbelle — #239)
- Action column with context menu — File list view now includes an action column displaying the context menu inline (@EdouardVanbelle — #255)
- Smart loading indicator — File view loader only appears if requests take more than 100ms, avoiding flicker on fast loads (@EdouardVanbelle — #232)
- Configurable server port — Use
OXICLOUD_SERVER_PORTenv var instead of hardcoded port 8086 (@justDance-everybody — #256)
Bug Fixes
- Docker image publishing restored — Fixed Dockerfile cacher stage failing on
generate-openapibinary target, added explicitref:to workflow checkout steps for correct tag builds, and increased multi-arch build timeout (@DioCrafts — #250) - Blank login page fixed —
.hidden { display: none !important }CSS class overrode inlinestyle.displayassignments, preventing login/register/language panels from appearing. All panel visibility now usesclassList.remove/add(@DioCrafts) - Admin badge & panel missing — Same
.hiddenclass conflict prevented the admin role badge, admin panel link, and admin divider from showing in the user dropdown menu (@DioCrafts) - Profile page not rendering — Profile
main-contentandauth-errorcontainers also had the hidden class conflict and never became visible (@DioCrafts) - WOPI PDF view fallback — WOPI editor now falls back to view mode for PDF files instead of failing (@justDance-everybody — #257)
- WOPI-to-inline viewer fallback — When WOPI editor fails entirely for PDFs, gracefully falls back to the built-in inline viewer (@justDance-everybody — #258)
- Notification bell animation — Fixed bell animation and notification zone now automatically closes on clear (@EdouardVanbelle — #247)
Refactoring & Code Quality
- Merge grid and list builder — Unified grid/list file views into a single builder, using CSS-only switching between view modes (@EdouardVanbelle — #260)
- Simplify multiSelect module — Removed duplicate code and streamlined multi-selection logic (@EdouardVanbelle — #239)
- Rename View into Section — Consistent naming across navigation components (@EdouardVanbelle — #239)
- Simplify empty list rendering — Empty state now works correctly in both grid and list views (@EdouardVanbelle — #239)
- No blink on section re-select — Navigation no longer re-renders when clicking the already-selected section (@EdouardVanbelle — #239)
- Remove executable attributes — Cleaned up file permissions on non-bash files (@EdouardVanbelle — #248)
- Remove generated openapi.json from tracking — The generated spec is no longer committed to the repo (@iltumio — #245)
- View toggle button polish — Reduced gap, padding, and button size for a tighter, more balanced grid/list toggle (@DioCrafts)
- Consistent panel visibility — Added
hiddenclass toadmin-setup-panelin HTML; removed redundant CSSdisplay:nonerule (@DioCrafts)
Stats
| Metric | Value |
|---|---|
| Commits | 29 |
| Contributors | 4 |
| Files changed | 369 |
| Insertions | +2,048 |
| Deletions | −1,021 |
| Issues closed | #250, #243, #254 |
| PRs merged | 11 |
🙏 Contributor Acknowledgements
@EdouardVanbelle — 12 commits ⭐ MVP of this release
Edouard delivered an extraordinary volume of UX improvements in this release. The browser history navigation transforms how users interact with OxiCloud — folder URLs are now bookmarkable and the back/forward buttons work naturally. The unified grid/list builder is an elegant refactor that simplifies the entire file view architecture. Multi-file drag & drop with visual summaries, Ctrl/Meta multi-select, the inline action column, smart loading indicators, and the notification fix round out a comprehensive overhaul of the frontend experience. Every change shows meticulous attention to how real users interact with a file manager. Thank you, Edouard, for raising the bar on OxiCloud's user experience. 🏆
@justDance-everybody — 3 commits
justDance-everybody tackled critical WOPI integration issues, implementing a two-layer fallback strategy for PDF viewing: first falling back from edit mode to view mode, and then from WOPI entirely to the inline viewer. This ensures PDF files always render, regardless of WOPI editor availability. They also made the server port configurable via environment variable — a simple but essential change for Docker and reverse proxy deployments. Thank you for making OxiCloud more resilient and deployment-friendly.
@iltumio (Manuel Tumiati) — 2 commits
Manuel introduced OpenAPI spec generation using utoipa, giving OxiCloud a proper machine-readable API contract for the first time. This unlocks automatic client SDK generation, Swagger UI documentation, and API testing workflows for the entire community. He also cleaned up the repo by removing the generated JSON from version control. Thank you, Manuel, for this foundational developer experience improvement.
@DioCrafts — 2 commits
Root-caused and fixed the Docker Hub publishing pipeline that had been silently failing since v0.5.2, restoring container image availability. Fixed a pervasive .hidden class CSS conflict that caused blank login pages, missing admin UI elements, and broken profile rendering. Polished the view toggle buttons.
New Contributors 🎉
- @justDance-everybody made their first contribution in #256
- @iltumio made their first contribution in #245
What's Changed
- feat: browser history & permits bookmarks URL by @EdouardVanbelle in #232
- feat: permit multiple file on drag 'n' drop by @EdouardVanbelle in #239
- feat: add OpenAPI spec generation with utoipa and justfile by @iltumio in #245
- fix(notification): correct bell animation + automatically close notif… by @EdouardVanbelle in #247
- chore: remove all executable attributes on non bash files by @EdouardVanbelle in #248
- feat(fileList): add action column to display context menu by @EdouardVanbelle in #255
- fix(config): use OXICLOUD_SERVER_PORT env var instead of hardcoded 8086 by @justDance-everybody in #256
- fix(wopi): fall back to view mode for PDF files by @justDance-everybody in #257
- fix(viewer): fallback to inline viewer when WOPI editor fails for PDFs by @justDance-everybody in #258
- Refactor/merge grid and list builder by @EdouardVanbelle in #260
- feat(item-selection): add ctrl/meta/alt key to toggle item selection by @EdouardVanbelle in #261
- fix(release): v0.5.4 — fix Docker build and publish pipeline by @DioCrafts
- fix(ui): resolve hidden class vs style.display conflict, polish toggle buttons by @DioCrafts
Full Changelog: v0.5.3...v0.5.4