Installation
Deployment options for UPAS (prototype)
Prototype Documentation: These deployment instructions describe the intended production architecture. The prototype may have additional development dependencies.
UPAS is designed to be deployed in several ways depending on your requirements.
Static Hosting
UPAS is a Progressive Web App that can be served from any static hosting provider:
# Clone the repository
git clone https://github.com/NuwaStudios/upas-oss.git
cd upas-core/upas-app
# Serve the web directory
npx serve webPopular static hosting options:
- GitHub Pages — Free, integrates with GitHub Actions
- Netlify — Free tier, automatic SSL
- Vercel — Free tier, edge network
- Cloudflare Pages — Free tier, global CDN
Static hosting is sufficient for UPAS because all inference happens on-device. There are no server-side APIs to deploy.
Local Development
For development and testing:
# Clone the repository
git clone https://github.com/NuwaStudios/upas-oss.git
cd upas-core/upas-app
# Install dependencies (if any)
pnpm install
# Start local server
pnpm devThe application will be available at http://localhost:3000.
Container Deployment
For containerised environments:
FROM nginx:alpine
COPY upas-app/web /usr/share/nginx/html
EXPOSE 80
HEALTHCHECK --interval=30s --timeout=3s \
CMD wget --no-verbose --tries=1 --spider http://localhost/ || exit 1Build and run:
docker build -t upas .
docker run -p 8080:80 upasService Worker Requirements
UPAS requires service worker support. Ensure your hosting:
- Serves over HTTPS (required for service workers in production)
- Does not strip or modify the
sw.jsfile - Sets appropriate cache headers for static assets
Storage Considerations
UPAS caches significant data locally:
| Component | Typical Size |
|---|---|
| Application shell | ~1MB |
| AI model (WebGPU) | 500MB–2GB |
| AI model (WASM fallback) | 50–500MB |
| Procedure packs | 10–100MB each |
Ensure devices have sufficient storage before deployment.
Storage Quota: Browsers impose storage quotas. Chrome typically allows up to 80% of available disk space. Safari has stricter limits, especially in private browsing mode.
Next Steps
- Configuration — Model and pack settings
- Deployment — Production deployment guidance