- Add Dockerfile, .dockerignore, and docker-compose.yml to containerize the app
- Add toroid.service systemd unit (uses docker compose)
- Mount presets/ as a bind volume for persistence outside the container
- Fix all fetch() calls in templates to use relative paths (no leading /)
so they resolve correctly when served under /toroid/ via nginx proxy
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>