ajnart 1b544f599c fix: address review findings in the v2 stack fix PR
Board scaling: no sideways scrolling
- Revert the pannable narrow canvas. The canvas fits the viewport again and
  `.viewport` goes back to `overflow: clip`, so a board can never widen the
  document or scroll horizontally.
- Fix the unreadable-narrow-board regression at the real cause instead: cap the
  inverse UI compensation at 2x (50% canvas scale). Down to 50% text and
  controls keep their physical size; below it the board zooms out as a whole, so
  a 200x200 logical tile hosts at most 28px logical text rather than 96px and
  content stops overlapping its neighbours.

Touch editing
- Add `touch-action: none` to `.board-grid-entry`, the dnd-kit draggable and its
  own drag handle. The 200ms touch activation delay is useless if the browser
  has already handed the gesture to page panning and emitted `pointercancel`.
  Only edit mode renders this element.

Custom widgets
- Memoize the merged `data`/`status`/`options` passed to `CustomJsxRenderer`.
  They were rebuilt every render, so the compiled-template memo never hit and
  the new reference-identity boundary key changed on every render, resetting the
  error boundary and forcing an extra reconciliation of the widget subtree.
- Keep the cache key when the shared Redis cache is unavailable so the
  process-local cache still absorbs polling instead of sending every widget
  refresh upstream.
- Reclaim the shared cache's LRU/size/byte bookkeeping for TTL-expired entries
  and touch the LRU in the same script, so expired ghosts stop consuming the
  64 MiB budget and a read costs one round trip instead of two.

Forwarded IP
- Restore `ipAddressFromHeaders` to the full forwarding chain and add
  `trustedIpAddressFromHeaders` for the last hop. Repointing the shared helper
  had collapsed MCP failed-auth rate limiting into a single bucket for every
  client behind a reverse proxy and replaced the client IP with the proxy IP in
  API-key auth logs.

Runtime and restore
- Make the new /appdata ownership migration best-effort. Under `set -e` a mount
  that rejects chown (CIFS/SMB, fixed-uid NFS) turned into a container that
  refuses to start, and /appdata was never chowned before.
- Report malformed metadata.json as such instead of blaming the archive.
2026-08-21 01:40:46 +02:00
2026-08-14 11:32:11 +02:00
2026-08-07 17:41:07 +00:00
2026-08-13 19:51:25 +02:00
2026-08-14 11:32:12 +02:00
2024-11-05 21:11:14 +01:00
2026-07-13 18:32:48 +02:00

  Latest Release (Semver)   CI Status  

Live Demo 🎮 • Install 💻 • Translations 🈺 • Discord 👋

  • 🖌️ Highly customizable with an extensive drag and drop grid system
  • ✨ Integrates seamlessly with your favorite self-hosted applications
  • 📌 Easy and fast app management - no YAML involved
  • 👤 Detailed and easy to use user management with permissions and groups
  • 👥 Support for single sign on via OIDC / LDAP
  • 🙊 Safe encryption using BCrypt and AES-256-CBC for your valuable data
  • 🕔 Realtime widget updates using WebSockets, tRPC and Redis
  • 🔍 Search through thousands of data points in supported integrations or your data in Homarr using the fast built-in search
  • 🦞 Icon picker with over 11K icons
  • 🚀 Compatible with any major consumer hardware (x86, Raspberry Pi, old laptops, ...) and most OS (Windows, Linux, TrueNAS, Unraid)
  • 🖥️ Extensive Kubernetes support with Helm for efficient scaling & high reliability




Please click here for official installation instructions




Homarr is a free-to-use open source project maintained by volunteers and developers from all over the world. We publish under the Apache License 2.0 license which allows commercial usage. We invest multiple hours daily in providing support, developing Homarr, integrating to third party software and more. We also pay for licensing and server hosting fees. Please consider helping us cover these costs to enable the future development of Homarr. Thank you!

Please click here to sponsor us at OpenCollective

You can also support us by helping with translating the entire project to as many languages as possible or contributing directly to the code or documentation. Please read our Contribution Guidelines. All contributions, regardless of their size or scope, are welcome and highly appreciated! Thank you ❤️

Sponsors

Thanks to your generous sponsors, we can continue to build Homarr. Check them out for high-quality and easy-to-use development tools. Feel free to contact us at homarr-labs@proton.me if you wish to become a sponsor.

Covered by Argos Visual Testing
Supported by PikaPods

S
Description
A modern and easy to use dashboard. 40+ integrations. 20K+ icons built in. Authentication out of the box. No YAML, drag and drop configuration.
https://homarr.dev Readme Apache-2.0
243 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 89.5%
MDX 7%
Go 1.8%
CSS 0.9%
JavaScript 0.4%
Other 0.3%