fix(docker): build web/ dashboard assets in image#12180
Merged
Conversation
The Dockerfile installs root-level npm dependencies (for Playwright) and the whatsapp-bridge bundle, but never builds the web/ Vite project. As a result, 'hermes dashboard' starts FastAPI on :9119 but serves a broken SPA because hermes_cli/web_dist/ is empty and requests to /assets/index-<hash>.js 404. Add a build step inside web/ so the Vite output is baked into the image. Reproduce (before): docker build -t hermes-repro -f Dockerfile . docker run --rm -p 9119:9119 hermes-repro hermes dashboard curl -sI http://localhost:9119/assets/ | head -1 # -> 404 After: /assets/ returns the built asset path.
Collaborator
|
thanks for your PR @bluefishs! |
Blazenetic
added a commit
to Blazenetic/hermes-agent
that referenced
this pull request
Apr 19, 2026
- Add repeat count field to cron job creation - Add skills field with multi-select capability - Add model override dropdown - Add toolset toggle endpoint - Add skill detail inspection modal - Fix pre-existing bug: @api.post > @app.post for cron jobs - Add toggle switches to toolset cards in SkillsPage - Add skill inspection modal with description, tags, path, linked files Closes NousResearch#12180, NousResearch#12194 Includes comprehensive documentation and testing setup
bluefishs
added a commit
to bluefishs/hermes-agent
that referenced
this pull request
Apr 24, 2026
- docs/plans/upstream-sync-cadence.md: per-release-tag sync rhythm (replacing monthly), check command, conflict handling, escalation - docs/plans/upstream-feature-eval-2026-04-18.md: evaluate /steer (adopt), execute_code project/strict (default accept, re-eval with ADR-0017), Tool Gateway (decline) - docs/plans/upstream-pr-web-build.md: PR draft and checklist used to submit NousResearch#12180 and NousResearch#12181
ulasbilgen
pushed a commit
to ulasbilgen/hermes-adhd-agent
that referenced
this pull request
May 1, 2026
The Dockerfile installs root-level npm dependencies (for Playwright) and the whatsapp-bridge bundle, but never builds the web/ Vite project. As a result, 'hermes dashboard' starts FastAPI on :9119 but serves a broken SPA because hermes_cli/web_dist/ is empty and requests to /assets/index-<hash>.js 404. Add a build step inside web/ so the Vite output is baked into the image. Reproduce (before): docker build -t hermes-repro -f Dockerfile . docker run --rm -p 9119:9119 hermes-repro hermes dashboard curl -sI http://localhost:9119/assets/ | head -1 # -> 404 After: /assets/ returns the built asset path.
aj-nt
pushed a commit
to aj-nt/hermes-agent
that referenced
this pull request
May 1, 2026
The Dockerfile installs root-level npm dependencies (for Playwright) and the whatsapp-bridge bundle, but never builds the web/ Vite project. As a result, 'hermes dashboard' starts FastAPI on :9119 but serves a broken SPA because hermes_cli/web_dist/ is empty and requests to /assets/index-<hash>.js 404. Add a build step inside web/ so the Vite output is baked into the image. Reproduce (before): docker build -t hermes-repro -f Dockerfile . docker run --rm -p 9119:9119 hermes-repro hermes dashboard curl -sI http://localhost:9119/assets/ | head -1 # -> 404 After: /assets/ returns the built asset path.
02356abc
pushed a commit
to 02356abc/hermes-agent
that referenced
this pull request
May 14, 2026
The Dockerfile installs root-level npm dependencies (for Playwright) and the whatsapp-bridge bundle, but never builds the web/ Vite project. As a result, 'hermes dashboard' starts FastAPI on :9119 but serves a broken SPA because hermes_cli/web_dist/ is empty and requests to /assets/index-<hash>.js 404. Add a build step inside web/ so the Vite output is baked into the image. Reproduce (before): docker build -t hermes-repro -f Dockerfile . docker run --rm -p 9119:9119 hermes-repro hermes dashboard curl -sI http://localhost:9119/assets/ | head -1 # -> 404 After: /assets/ returns the built asset path.
gweeteve
pushed a commit
to gweeteve/hermes-agent
that referenced
this pull request
Jun 2, 2026
The Dockerfile installs root-level npm dependencies (for Playwright) and the whatsapp-bridge bundle, but never builds the web/ Vite project. As a result, 'hermes dashboard' starts FastAPI on :9119 but serves a broken SPA because hermes_cli/web_dist/ is empty and requests to /assets/index-<hash>.js 404. Add a build step inside web/ so the Vite output is baked into the image. Reproduce (before): docker build -t hermes-repro -f Dockerfile . docker run --rm -p 9119:9119 hermes-repro hermes dashboard curl -sI http://localhost:9119/assets/ | head -1 # -> 404 After: /assets/ returns the built asset path.
Egavasyug
pushed a commit
to Egavasyug/hermes-agent
that referenced
this pull request
Jun 10, 2026
The Dockerfile installs root-level npm dependencies (for Playwright) and the whatsapp-bridge bundle, but never builds the web/ Vite project. As a result, 'hermes dashboard' starts FastAPI on :9119 but serves a broken SPA because hermes_cli/web_dist/ is empty and requests to /assets/index-<hash>.js 404. Add a build step inside web/ so the Vite output is baked into the image. Reproduce (before): docker build -t hermes-repro -f Dockerfile . docker run --rm -p 9119:9119 hermes-repro hermes dashboard curl -sI http://localhost:9119/assets/ | head -1 # -> 404 After: /assets/ returns the built asset path.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
The
Dockerfileinstalls root-level npm dependencies (for Playwright) and thewhatsapp-bridgebundle, but never builds theweb/Vite project. As a result,hermes dashboardstarts FastAPI on:9119but serves a broken SPA becausehermes_cli/web_dist/is empty and requests to/assets/index-<hash>.jsreturn 404.This PR adds a
RUNstep that installsweb/dependencies and runsnpm run build, so the Vite output is baked into the image.Related Issue
Fixes #12177
Type of Change
Changes Made
Dockerfile: add aRUN cd /opt/hermes/web && npm install --prefer-offline --no-audit && npm run build && npm cache clean --forcelayer between the existing npm install block and thechownstep.How to Test
Before:
After this patch:
/assets/returns the Vite-built asset path (non-404), and the dashboard SPA loads cleanly.Checklist
Code
fix(docker): ...)scripts/install.sh(closed). No existing PR touches the Docker image path.Dockerfile)pytest tests/ -qnot run — this PR touches onlyDockerfile; no Python code surface is modified and no Python behavior can change. Happy to run it if maintainers prefer.Cross-platform
npm install && npm run buildidentical to the existing adjacentwhatsapp-bridgelayer.