Release history
Rackula releases
Open-source drag-and-drop rack layout designer
All releases
30 shown
- nginx DNS resolver is now configurable for Kubernetes deployments
- Fix escape order in NetBox importer to prevent double‑escaping, scope CodeQL to src (#1595)
- Bump hono to 4.12.14 and dompurify to 3.4.0, closing 7 CVEs (#1594)
- Separate layout naming from rack naming allowing independent names
- Auto‑detect IPv6 availability to avoid nginx startup failure
Full changelog
Added
- Separate layout naming from rack naming — layouts and racks can now have independent names (#1005)
Fixed
- Device type auto-import integrates with command system for proper undo/redo (#1470)
- Batch auto-import with placement command for atomic undo/redo
- Context menu move up/down now checks collisions (#1462, PR #1504)
- Unique SVG pattern IDs per rack instance to prevent cross-rack rendering conflicts (#1466, PR #1505)
- Auto-detect IPv6 availability to prevent nginx startup failure (#1516, PR #1527)
- Show error/warning toasts for device import failures (#1391, PR #1506)
- Preserve slot_position and slot_width in YAML serialization (#1564, contributed by @lorenzowood)
- Guard preset shortcuts when custom-height input is focused in new-rack wizard (#1580, PR #1604)
- Double bay device selection (#1522, PR #1545)
- Storage resilience — use safeStorage for all web storage access (#1392, PR #1530)
- Make nginx DNS resolver configurable for Kubernetes (#1535, PR #1538)
Security
- Fix escape order in NetBox importer to prevent double-escaping, scope CodeQL to src (#1595, PR #1601)
- Bump hono to 4.12.14 and dompurify to 3.4.0, closing 7 CVEs (#1594, PR #1596)
Technical
- Decompose App.svelte and Rack.svelte into rendering and interaction layers (#1395, #1451)
- Extract drag-drop and context menu logic from Rack.svelte
- Centralise E2E CSS selectors into locators.ts (#1458)
- E2E test suite recovery — 58 failures resolved (#1508)
- Remove root npm package-lock.json (project uses bun) (#1603)
- Dependency updates: Svelte 5.55.5, Vite 8.0.10, marked 18.0.2, hono 4.12.14
Fixed nginx startup failures in environments without IPv6 support. Multiple security-focused dependency upgrades for package currency.
Technical release with refactored components, improved E2E test infrastructure, and centralized CSS selectors. No user-facing changes.
- multi-rack share URL support (v2 schema)
- session save on pagehide
- CRLF injection prevention in layout names
- OIDC issuer pinning requirement
- local authentication mode (username/password)
- jsPDF 4.2.0 CVE patches
- Svelte 5.53.0 with patched devalue 5.6.3
- Hono 4.12.0
Production deployment workflow now properly gates security severity levels to prevent medium/low advisories from blocking deployment.
### Technical - Recut release after the deploy workflow was cancelled during , to republish and container tags
- separate Save vs Save As user action
- separate Save and Save As actions
- ProxmoxVE LXC distribution groundwork
- mobile UI redesign
- various UX changes
- API CORS hardening
- write-route authentication defaults
- mobile bottom navigation
- swipe navigation
- touch long-press menus
- @isaacs/brace-expansion ReDoS (CVSS 9.2)
- jsPDF race condition, XMP injection, PDF injection, BMP DoS CVEs
- nginx security header inheritance bug
- HSTS header
- Referrer-Policy
- Permissions-Policy
Fixed persistence mode data loss with proper YAML serialization, auto-save cloud status integration, and layout auto-loading on startup.
- device palette hides incompatible devices instead of graying out
- rack width selector with smart defaults
- configurable nginx listen port via RACKULA_API_PORT
- Cisco brand pack
- 8 new brand icons
- :persist Docker image tag
Fixed splash screen blocking localStorage persistence, canvas sizing issues, and multi-rack layout focus positioning and alignment problems.
### Fixed - Canvas not filling available space with small racks (#931, #897)
- automatic layout format migration on first save
- multi-rack support
- persistent storage API
- UUID-based layout storage
Fixed Safari bugs including coordinate conversion when zoomed, text selection during device drag, and logo disappearance in party mode; migrated foreignObject elements to SVG-native implementations for better compatibility.
- tooltips on hover
- IP address field
- half-width device support
Fixed critical Safari WebKit bug preventing device selection and drag-and-drop functionality with workaround for pointer events.
- PlacedPort schema and instantiation
- Connection model with port references
- Multi-architecture Docker builds
### Fixed - Face override not working on full-depth devices (#383, PR #385)
- Network interface port indicators
- Fuzzy search with Fuse.js
- Cable data model