Commit Graph

98 Commits

Author SHA1 Message Date
Jake Turner
525eecbbde fix(Benchmark): icon definitions 2026-01-22 21:48:12 -08:00
Jake Turner
8092fb58d8 fix(Benchmark): remove unused seeder definition 2026-01-22 21:48:12 -08:00
Jake Turner
438d683bac fix(Benchmark): cleanup types for SSOT 2026-01-22 21:48:12 -08:00
Chris Sherwood
6efd049424 fix(benchmark): Add settings nav link, fix submission bug, improve UX
- Add Benchmark to Settings sidebar navigation
- Fix Luxon DateTime bug when saving submission timestamp
- Add privacy explanation text before Share button
- Add error handling and display for failed submissions
- Show "Submitting..." state and success confirmation
- Add link to view leaderboard after successful submission

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 21:48:12 -08:00
Chris Sherwood
755807f95e feat: Add system benchmark feature with NOMAD Score
Add comprehensive benchmarking capability to measure server performance:

Backend:
- BenchmarkService with CPU, memory, disk, and AI benchmarks using sysbench
- Database migrations for benchmark_results and benchmark_settings tables
- REST API endpoints for running benchmarks and retrieving results
- CLI commands: benchmark:run, benchmark:results, benchmark:submit
- BullMQ job for async benchmark execution with SSE progress updates
- Synchronous mode option (?sync=true) for simpler local dev setup

Frontend:
- Benchmark settings page with circular gauges for scores
- NOMAD Score display with weighted composite calculation
- System Performance section (CPU, Memory, Disk Read/Write)
- AI Performance section (tokens/sec, time to first token)
- Hardware Information display
- Expandable Benchmark Details section
- Progress simulation during sync benchmark execution

Easy Setup Integration:
- Added System Benchmark to Additional Tools section
- Built-in capability pattern for non-Docker features
- Click-to-navigate behavior for built-in tools

Fixes:
- Docker log multiplexing issue (Tty: true) for proper output parsing
- Consolidated disk benchmarks into single container execution

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 21:48:12 -08:00
dependabot[bot]
6bee84f367 build(deps): bump lodash from 4.17.21 to 4.17.23 in /admin
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 16:44:10 -08:00
Chris Sherwood
24f10ea3d5 feat: Use friendly app names on Dashboard with open source attribution
Updates the Dashboard to use the same user-friendly names as the Easy Setup
Wizard, giving credit to the open source projects powering each capability:

- Kiwix → Information Library (Powered by Kiwix)
- Kolibri → Education Platform (Powered by Kolibri)
- Open WebUI → AI Assistant (Powered by Open WebUI + Ollama)
- FlatNotes → Notes (Powered by FlatNotes)
- CyberChef → Data Tools (Powered by CyberChef)

Also reorders Dashboard cards to prioritize Core Capabilities first, with
Maps promoted to Core Capability status, followed by Additional Tools,
then system items (Easy Setup, Install Apps, Docs, Settings).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 16:43:32 -08:00
Chris Sherwood
6c650a0ded fix(docs): Remove broken service links that pointed to invalid routes
Services like Kiwix, Kolibri, and Open WebUI run on separate ports,
not as paths under the Command Center. Links like /kiwix, /kolibri,
and /openwebui don't exist - users must launch these from the Apps
page or home screen.

- Update home.md to direct users to Apps page or home screen
- Update getting-started.md with correct launch instructions
- Keep /maps link (Maps is embedded in Command Center)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 16:32:03 -08:00
dependabot[bot]
6236b29e1c build(deps): bump tar from 7.5.3 to 7.5.6 in /admin
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.3 to 7.5.6.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.3...v7.5.6)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.6
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 16:31:21 -08:00
Jake Turner
9bb4ff5afc feat: force-reinstall option for apps 2026-01-19 22:50:15 -08:00
Jake Turner
04e169fe7b fix(Easy Setup): add selected model size to storage projection 2026-01-19 22:50:15 -08:00
Jake Turner
937da5d869 feat(Open WebUI): manage models via Command Center 2026-01-19 22:15:52 -08:00
Jake Turner
b3ef977484 feat: [wip] Open WebUI manipulation 2026-01-19 22:15:52 -08:00
Jake Turner
b6e6e10328 fix(CuratedCategories): improve fetching from Github 2026-01-19 14:41:51 -08:00
copilot-swe-agent[bot]
f905871392 Add NOMAD_STORAGE_PATH schema definition to start/env.ts
Co-authored-by: jakeaturner <52841588+jakeaturner@users.noreply.github.com>
2026-01-19 10:29:24 -08:00
Chris Sherwood
d86c78dba5 feat: Add Windows Docker Desktop support for local development
- Detect Windows platform and use named pipe (//./pipe/docker_engine)
  instead of Unix socket for Docker Desktop compatibility
- Add NOMAD_STORAGE_PATH environment variable for configurable
  storage paths across different platforms
- Update seeder to use environment variable with Linux default
- Document new environment variable in .env.example

This enables local development on Windows machines with Docker Desktop
while maintaining Linux production compatibility.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:29:24 -08:00
dependabot[bot]
15aa1f3598 build(deps): bump tar from 7.5.2 to 7.5.3 in /admin
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.2 to 7.5.3.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.2...v7.5.3)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 10:28:58 -08:00
chriscrosstalk
59b45a745a
feat: Redesign Easy Setup wizard Step 1 with user-friendly categories (#65)
- Replace technical app names with user-friendly capability categories:
  - "Information Library" (Kiwix) - offline Wikipedia, medical refs, etc.
  - "Education Platform" (Kolibri) - Khan Academy, K-12 content
  - "AI Assistant" (Open WebUI + Ollama) - local AI chat
- Add bullet point feature lists for each core capability
- Move secondary apps (Notes, Data Tools) to collapsible "Additional Tools"
- Show already-installed capabilities with "Installed" badge and disabled state
- Update terminology: "capabilities" instead of "apps", "content packs" instead of "ZIM collections"
- Update Review step to show capability names with technical names in parentheses

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Jake Turner <52841588+jakeaturner@users.noreply.github.com>
2026-01-19 10:22:46 -08:00
Chris Sherwood
f414d9e1c0 chore: Rename step 3 label from 'ZIM Files' to 'Content'
More user-friendly terminology for non-technical users.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:15:20 -08:00
Chris Sherwood
7bf3f25c47 feat: Add storage projection bar to easy setup wizard
Adds a dynamic storage projection bar that shows users how their
selections will impact disk space:

- Displays current disk usage and projected usage after installation
- Updates in real-time as users select maps, ZIM collections, and tiers
- Color-coded warnings (green→tan→orange→red) based on projected usage
- Shows "exceeds available space" warning if selections exceed capacity
- Works on both Linux (disk array) and Windows (fsSize array)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:15:20 -08:00
Chris Sherwood
1027bd8e0f chore: Switch categories URL to raw GitHub for dev reliability
jsDelivr CDN was aggressively caching old data during development.
Raw GitHub URLs provide more immediate updates when pushing changes
to the feature branch.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:15:20 -08:00
Chris Sherwood
c9c29955ee chore: Add cache-busting parameter to categories URL
jsDelivr aggressively caches branch references. Adding version
parameter ensures fresh data is fetched when categories are updated.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:15:20 -08:00
Chris Sherwood
8e6e44e688 fix: Use jsDelivr CDN for categories JSON to avoid CORS issues
GitHub raw URLs don't allow cross-origin requests from localhost.
Using jsDelivr CDN which serves GitHub content with proper CORS headers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:15:20 -08:00
Chris Sherwood
3cb5dceb1d feat: Add tiered collection categories UI
- Add kiwix-categories.json with Medicine category and 3 tiers
- Create CategoryCard component for displaying category cards
- Create TierSelectionModal for tier selection UI
- Integrate categories into Easy Setup wizard (Step 3)
- Add TypeScript types for categories and tiers
- Fallback to legacy flat collections if categories unavailable

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:15:20 -08:00
Chris Sherwood
6f0c829d36 fix: Notification auto-dismiss not working due to stale closure
The removeNotification function was using a stale reference to the
notifications array from the closure scope, causing the setTimeout
callback to filter against an outdated state.

Changed to use functional update pattern (prev => prev.filter(...))
which correctly references the current state when the timeout fires.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:06:44 -08:00
Chris Sherwood
109bad9b6e docs: Add installation instructions and CLI maintenance commands
- Add Installation section to getting-started.md with system requirements
- Add install commands, post-install access info
- Add privacy and security notes
- Add Command-Line Maintenance section to FAQ with helper scripts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:05:59 -08:00
Chris Sherwood
adecb66fa8 docs: Replace placeholder content with comprehensive documentation
- Replace Lorem Ipsum home.md with proper welcome page
- Add getting-started.md: New user onboarding guide
- Add faq.md: FAQ and troubleshooting for offline use
- Add use-cases.md: Use case examples (emergency prep, homeschool, etc.)

Documentation written with non-technical users in mind, focusing on
clarity and self-sufficiency when offline.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:05:59 -08:00
Jake Turner
08d0f88737 feat: auto-fetch latest curated collections 2026-01-16 10:35:37 -08:00
Jake Turner
003902b84b fix(Docker): improve container state management 2026-01-16 10:35:37 -08:00
Jake Turner
393c177af1 feat: [wip] self updates 2026-01-15 15:54:59 -08:00
Jake Turner
b6ac6b1e84 feat(Maps): enhance missing assets warnings 2026-01-15 15:54:59 -08:00
Jake Turner
400cd740bd fix: curated collections ui tweak 2026-01-15 15:54:59 -08:00
Jake Turner
4b74118fd9 feat: easy setup wizard 2026-01-15 15:54:59 -08:00
dependabot[bot]
6500599c6d build(deps): bump @adonisjs/lucid from 21.6.1 to 21.8.2 in /admin
Bumps [@adonisjs/lucid](https://github.com/adonisjs/lucid) from 21.6.1 to 21.8.2.
- [Release notes](https://github.com/adonisjs/lucid/releases)
- [Commits](https://github.com/adonisjs/lucid/compare/v21.6.1...v21.8.2)

---
updated-dependencies:
- dependency-name: "@adonisjs/lucid"
  dependency-version: 21.8.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-15 15:54:59 -08:00
Jake Turner
bb67bab9a9 feat: improved app cards and custom icons 2026-01-15 15:54:59 -08:00
Jake Turner
5793fc2139 feat: [wip] easy setup wizard 2026-01-15 15:54:59 -08:00
Jake Turner
6a9ede1776 fix(admin): disk info mount and stability 2026-01-13 07:59:45 -08:00
Jake Turner
fb8598ff55 fix(admin): improve service install status management 2026-01-13 06:58:05 -08:00
Jake Turner
c46b75e63d fix(admin): improve duplicate install request handling 2026-01-13 06:58:05 -08:00
Jake Turner
3e4985c3c7 fix(admin): missing Zim download API client method 2026-01-13 06:58:05 -08:00
Jake Turner
2440d23986 fix(admin): base map assets download url 2026-01-13 06:58:05 -08:00
Jake Turner
5a19882273 fix(admin): port binding for OpenWebUI 2026-01-13 06:58:05 -08:00
Jake Turner
1cc695ff75 fix(admin): improve memory usage indicators 2026-01-13 06:58:05 -08:00
Jake Turner
da23acbe5e fix(admin): add favicons 2026-01-13 06:58:05 -08:00
Jake Turner
df55b48e1c fix(admin): container healthcheck 2026-01-13 06:58:05 -08:00
dependabot[bot]
aa8516c92d build(deps): bump qs from 6.14.0 to 6.14.1 in /admin
Bumps [qs](https://github.com/ljharb/qs) from 6.14.0 to 6.14.1.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.14.0...v6.14.1)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-13 06:57:38 -08:00
dependabot[bot]
bfddc793ba build(deps): bump @adonisjs/bodyparser from 10.1.0 to 10.1.2 in /admin
Bumps [@adonisjs/bodyparser](https://github.com/adonisjs/bodyparser) from 10.1.0 to 10.1.2.
- [Release notes](https://github.com/adonisjs/bodyparser/releases)
- [Commits](https://github.com/adonisjs/bodyparser/compare/v10.1.0...v10.1.2)

---
updated-dependencies:
- dependency-name: "@adonisjs/bodyparser"
  dependency-version: 10.1.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-13 06:57:13 -08:00
Jake Turner
a2206b8c13 feat(System): check internet status on backend and allow custom test url 2025-12-24 12:00:32 -08:00
Jake Turner
b020d925ad fix(Maps): custom pmtiles file downloads 2025-12-23 23:45:56 -08:00
dependabot[bot]
51880d0a46 build(deps): bump systeminformation from 5.27.7 to 5.27.14 in /admin
Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.27.7 to 5.27.14.
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.27.7...v5.27.14)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.27.14
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-23 16:01:22 -08:00