- Add client-side router with History API pushState (router.ts, pages.ts) - Extend overlay with projects grid/category/detail views and resume section - Add Gitea CI/CD workflow and webhook deployment server - Improve Docker Compose with nginx reverse proxy config - Add deployment script and .env.example
47 lines
1.1 KiB
Markdown
47 lines
1.1 KiB
Markdown
# WebGPU Portfolio
|
|
|
|
[](https://git.djosen.one/djoser/webgpu-portfolio/actions)
|
|
|
|
Generative-art portfolio site. WebGPU canvas background, DOM overlay UI.
|
|
|
|
## Dev
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev # vite dev server (opens browser)
|
|
npm run typecheck # tsc --noEmit
|
|
npm run build # typecheck + vite build → dist/
|
|
npm run preview # serve built dist/
|
|
```
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
# Build
|
|
docker build -t webgpu-portfolio .
|
|
|
|
# Run (foreground)
|
|
docker run --rm -p 8080:80 webgpu-portfolio
|
|
|
|
# Run (detached)
|
|
docker run -d -p 8080:80 --name portfolio webgpu-portfolio
|
|
|
|
# Compose
|
|
docker compose up -d
|
|
```
|
|
|
|
Site at `http://localhost:8080`.
|
|
|
|
### Smoke test
|
|
|
|
```bash
|
|
docker run -d -p 8080:80 --name portfolio-test webgpu-portfolio
|
|
curl -sSf http://localhost:8080/ > /dev/null && echo "OK"
|
|
curl -sSf http://localhost:8080/assets/ | head -1 # should 200 (hashed JS)
|
|
docker stop portfolio-test
|
|
```
|
|
|
|
### Image size
|
|
|
|
~6 MB (nginx:alpine-slim + static dist). Multi-stage build — Node build layer is discarded.
|