3 Commits
Author SHA1 Message Date
Chris Lee 3ba73ec1a4 Update references to the old plugin/ path
- README.md: plugin section, layout block
- plugins/prusa/README.md: install path, run-tests.sh location
- plugins/prusa/tests/add_fin_test.lua: run instructions
- .dockerignore: plugin/ -> plugins/
2026-09-24 14:35:55 -05:00
matthewtrahan fcd01de99c chore: remove duplicate web/dev-server.py
The repo had two near-duplicate no-cache dev servers. The root dev-server.py
(serves web/ via directory=, documented in the README) is canonical; web/dev-server.py
was a later re-implementation that served CWD and required 'cd web' first. Keeping
both meant every change had to be written twice and drifted — PR #16 had to paste
--host into both files.

Delete the web/ copy and drop its now-stale .dockerignore entry. No docs or scripts
reference it; the README and Docker path both point at the root server.
2026-09-22 07:40:08 -05:00
kodin00 b401a656d1 docker: add compose + nginx image for one-command local deploy
The web app is a buildless static SPA (three.js is vendored in web/), so the
deploy image is just nginx serving web/ on :80. This adds:

- Dockerfile: nginx:stable-alpine, copies web/ + LICENSE, OCI labels.
- nginx.conf: port 80 site config that mirrors web/_redirects
  (/index.html and /index 301 -> /) via a $request_uri guard that cannot
  loop with the `index` directive's internal redirect; cache policy mirrors
  dev-server.py (no-store on the app's own JS/CSS/HTML) while long-caching
  the vendored three.js tree (immutable per image tag); absolute_redirect
  off so the redirect stays relative behind a reverse proxy.
- docker-compose.yml: one `web` service, host 8731:80 so the URL matches
  `python3 dev-server.py`, with a wget healthcheck.
- .dockerignore: excludes prototype/, plugin/, tests/, docs/, the dev
  servers and model files so the build context is just the web artifact.
- README: "Run with Docker" block pointing at the new files.

Validated: image builds, `nginx -t` passes, GET / -> 200 no-store,
GET /index.html|/index -> 301 relative /, GET /vendor/... -> immutable
long-cache, no redirect loop on /.
2026-09-21 20:29:14 +07:00