A Vue.js frontend application with Rust/WebAssembly components for TART telescope visualization.
tart-viewer/- Vue3 frontend with Vite build systemrust/- Rust code compiled to WebAssemblywithoutBundler/- Minimal WASM usage example
pnpm dev
Expects bare api (no api/v1/)
ssh -L 1234:localhost:5000 tart@nz-elec # (optional for local model)
The app builds two Docker image variants:
- Root deployment (
viewer-root): Served at/(e.g., TART devices) - Subpath deployment (
viewer-subpath): Served at/viewer/(e.g., hosted sites)
make build-allmake build-deps # Build shared dependencies
make build-variants # Build app variants
make build-docker # Build multi-platform imagesmake test # Test with docker-compose
make local # Build locally
make clean # Clean build artifactsThe build system creates multi-platform images (amd64 + arm64):
- Shared Dependencies: Rust compilation, npm install, wasm-pack (once)
- App Variants: Different BASE_URL builds using shared deps
- Multi-Platform: Copy static assets to nginx containers for both architectures
Automated builds on push/PR:
build-docker.yml- Full build and push to GHCRtest-build.yml- Test builds without pushing
Built images are available at:
ghcr.io/tart-telescope/web_app/viewer-root:latestghcr.io/tart-telescope/web_app/viewer-subpath:latest
For deployment to tart.elec.ac.nz:
make deploy # Requires SSH access