User confirmed test_dev is the correct database for invyone (the
old TEST-VEX project), matching what the previous mac compose was
using. Same host (211.115.91.141:11134), same credentials, just a
different database name.
Verified end-to-end: real login (POST /api/auth/login from the
browser path) returns 200 with a valid JWT, meaning the full chain
browser → next dev rewrites → backend-spring → HikariCP → test_dev
works and the user table lookup + password check both pass.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
NEXT_PUBLIC_API_URL was hardcoded to http://localhost:8083/api which
gets baked into webpack bundles at build time. NEXT_PUBLIC_* vars
run in the browser, so "localhost" resolves to the *user's own PC*,
not the office host running the container — connect refused for
anyone hitting the site over Tailscale or LAN.
Use a relative URL (/api) and let next dev's rewrites proxy to
SERVER_API_URL (invyone-backend-spring:8081 inside invyone-net).
This way the request always lands on whatever host the browser is
already talking to (localhost / 100.126.230.80 / public domain),
and the Next dev server forwards it to the backend container.
Verified: POST /api/auth/login from browser path returns the spring
controller's 400 response, confirming the full
browser → frontend → backend chain works.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
next dev mode was throwing ENOENT for routes-manifest.json and other
chunk files, leaving /login and other routes permanently 404 after
the first compile. Root cause:
- output: "standalone" is a prod build option; combined with next dev
it produces chunk paths and manifests that don't match what dev
expects.
- experimental.webpackMemoryOptimizations evicts compiled modules to
save memory, but in dev that includes already-served SSR chunks,
so requests after the eviction window 404 even though the page
compiled successfully.
Wrap both options in an isDev check so prod build behavior is
preserved while dev no longer self-destructs its own chunks.
Verified on the office Ubuntu invyone-frontend container: /, /login
return 200 and the chunk-loss errors are gone.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
invyone (= old TEST-VEX) is React + Java only; backend-node belongs
to a different project (PMS) and was bundled by mistake. Remove the
backend-node service from docker-compose.invyone.yml, drop the
backend-node.Dockerfile, and clean up the now-unused frontend env
vars that pointed at the node API.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds backend-node.Dockerfile (Node 20-alpine + nodemon) and a single
docker-compose.invyone.yml that brings up all three services on
invyone-net with restart unless-stopped, intended for the office
Ubuntu host. Uses vexplor_dev DB for both backends and exposes
9772 (frontend) / 8083 (spring) / 8082 (node) on the host.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move ignore patterns to .stignore-shared (syncs across machines).
.stignore becomes a per-machine stub with #include directive.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>