github Crosstalk-Solutions/project-nomad v1.31.0

5 hours ago

Version 1.31.0 - April 3, 2026

Features

  • AI Assistant: Added support for remote OpenAI-compatible hosts (e.g. Ollama, LM Studio, etc.) to support running models on seperate hardware from the Command Center host. Thanks @hestela for the contribution!
  • AI Assistant: Disabled Ollama Cloud support (not compatible with NOMAD's architecture) and added support for flash_attn to improve performance of compatible models. Thanks @hestela for the contribution!
  • Information Library (Kiwix): The Kiwix container now uses an XML library file approach instead of a glob-based approach to inform the Kiwix container of available ZIM files. This allows for much more robust handling of ZIM files and avoids issues with the container failing to start due to incomplete/corrupt ZIM files being present in the storage directory. Thanks @jakeaturner for the contribution!
  • RAG: Added support for EPUB file embedding into the Knowledge Base. Thanks @arn6694 for the contribution!
  • RAG: Added support for multiple file uploads (<=5, 100mb each) to the Knowledge Base. Thanks @jakeaturner for the contribution!
  • Maps: Added support for customizable location markers on the map with database persistence. Thanks @chriscrosstalk for the contribution!
  • Maps: The global map file can now be downloaded directly from PMTiles for users who want to the full map and/or regions outside of the U.S. that haven't been added to the curated collections yet. Thanks @bgauger for the contribution!
  • Maps: Added a scale bar to the map viewer with imperial and metric options. Thanks @chriscrosstalk for the contribution!
  • Downloads: Added support/improvements for rich progress, friendly names, cancellation, and live status updates for active downloads in the UI. Thanks @chriscrosstalk for the contribution!
  • UI: Converted all PNGs to WEBP for reduced image sizes and improved performance. Thanks @hestela for the contribution!
  • UI: Added an Installed Models section to AI Assistant settings. Thanks @chriscrosstalk for the contribution!

Bug Fixes

  • Maps: The maps API endpoints now properly check for "X-Forwarded-Proto" to support scenarios where the Command Center is behind a reverse proxy that terminates TLS. Thanks @davidgross for the fix!
  • Maps: Fixed an issue where the maps API endpoints could fail with an internal error if a hostname was used to access the Command Center instead of an IP address or localhost. Thanks @jakeaturner for the fix!
  • Queue: Increased the BullMQ lockDuration to prevent jobs from being killed prematurely on slower systems. Thanks @bgauger for the contribution!
  • Queue: Added better handling for very large downloads and user-initated cancellations. Thanks @bgauger for the contribution!
  • Install: The install script now checks for the presence of gpg (required for NVIDIA toolkit install) and automatically attempts to install it if it's missing. Thanks @chriscrosstalk for the fix!
  • Security: Added key validation to the settings read API endpoint. Thanks @LuisMIguelFurlanettoSousa for the fix!
  • Security: Improved URL validation logic for ZIM downloads to prevent SSRF vulnerabilities. Thanks @sebastiondev for the fix!
  • UI: Fixed the activity feed height in Easy Setup and added automatic scrolling to the latest message during installation. Thanks @chriscrosstalk for the contribution!

Improvements

  • Dependencies: Updated various dependencies to close security vulnerabilities and improve stability
  • Docker: NOMAD now adds 'com.docker.compose.project': 'project-nomad-managed' and 'io.project-nomad.managed': 'true' labels to all containers installed via the Command Center to improve compatibility with other Docker management tools and make it easier to identify and manage NOMAD containers. Thanks @techyogi for the contribution!
  • Docs: Added a simple API reference for power users and developers. Thanks @hestela for the contribution!
  • Docs: Re-formatted the Quick Install command into multiple lines for better readability in the README. Thanks @samsara-02 for the contribution!
  • Docs: Updated the CONTRIBUTING and FAQ guides with the latest information and clarified some common questions. Thanks @jakeaturner for the contribution!
  • Ops: Bumped GitHub Actions to their latest versions. Thanks @salmanmkc for the contribution!
  • Performance: Shrunk the bundle size of the Command Center UI significantly by optimizing dependencies and tree-shaking, resulting in faster load times and a snappier user experience. Thanks @jakeaturner for the contribution!
  • Performance: Implemented gzip compression by default for all HTTP registered routes from the Command Center backend to further improve performance, especially on slower connections. The DISABLE_COMPRESSION environment variable can be used to turn off this feature if needed. Thanks @jakeaturner for the contribution!
  • Performance: Added light caching of certain Docker socket interactions and custom AI Assistant name resolution to improve performance and reduce redundant calls to the Docker API. Thanks @jakeaturner for the contribution!
  • Performance: Switched to Inertia router navigation calls where appropriate to take advantage of Inertia's built-in caching and performance optimizations for a smoother user experience. Thanks @jakeaturner for the contribution!

📝 All Changes

  • docs: update release notes (d666b24)
  • feat(maps): add imperial/metric toggle for scale bar (#641) (a813468)
  • feat(maps): add scale bar and location markers (#636) (0183b42)
  • fix(Maps): ensure proper parsing of hostnames (#640) (6287755)
  • docs: update release notes (afbe4c4)
  • fix(downloads): improved handling for large file downloads and user-initiated cancellation (#632) (d7e3d92)
  • fix: cache docker list requests, aiAssistantName fetching, and ensure inertia used properly (cb4fa00)
  • feat: gzip compression by default for all registered routes (877fb12)
  • fix(UI): manual import map for DynamicIcon to avoid huge bundle of Tabler icons (1e4b7ae)
  • feat(KnowledgeBase): support up to 5 files upload of 100mb each per req (a14dd68)
  • docs: update release notes (3e92287)
  • docs: update CONTRIBUTING.md (9964a82)
  • docs: update FAQ (91a0b8b)
  • feat(Kiwix): migrate to Kiwix library mode for improved stability (#622) (9e3828b)
  • feat(docs): add simple API reference (#615) (43c8876)
  • chore(deps): bump yaml, fast-xml-parser, pmtiles, tailwindcss, @types/dockerode (31986d7)
  • feat(AI): enable flash_attn by default and disable ollama cloud (#616) (0edfdea)
  • fix(Jobs): improved error handling and robustness (2e3253b)
  • feat(UI): add Installed Models section to AI Assistant settings (#612) (a6c257a)
  • fix(Maps): remove unused import (f4beb9a)
  • feat(downloads): rich progress, friendly names, cancel, and live status (#554) (bac53e2)
  • fix(queue): increase BullMQ lockDuration to prevent download stalls (#604) (2609530)
  • fix(Maps): add x-forwarded-proto support to handle https termination (#600) (b65b6d6)
  • feat: switch all PNG images to WEBP (#575) (7711b5f)
  • fix: block IPv4-mapped IPv6 and IPv6 all-zeros in SSRF check (#520) (e9af7a5)
  • fix(security): validate key parameter on settings read endpoint#517 (b183bc6)
  • feat: support adding labels on dynamic container creation (#620) (fc6152c)
  • fix(UI): constrain install activity feed height with auto-scroll (#611) (6a0195b)
  • feat(maps): add global map download from Protomaps (#525) (789fdfe)
  • docs(readme): format Quick Install command as multiline bash (#569) (1def8c0)
  • fix(install): add gpg as a required dependency (#574) (9ba1bbf)
  • build: regen lockfile (328453c)
  • feat(rag): add EPUB file support for Knowledge Base uploads (#257) (ed8918f)
  • ci: upgrade GitHub Actions to latest versions (#362) (d474c14)
  • build(deps): bump file-type from 21.3.0 to 21.3.2 in /admin (#283) (32f8b0f)
  • feat(AI): enable remote AI chat host (69c15b8)
  • Revert "feat: support adding labels on dynamic container creation (#610)" (#619) (d25292a)
  • feat: support adding labels on dynamic container creation (#610) (f32ba3b)
  • Add model download to FAQ.md (44ecf41)

Don't miss a new project-nomad release

NewReleases is sending notifications on new releases.