A minimal Docker app: one interactive star field. Stars fly toward your cursor; click to reverse and they spew from the cursor like a firehose. Click again to switch back. Purely pointless, purely fun.
Every click is logged on the server so you can see usage in the log:
- On each click the app sends a GET request to
/_log?stars=N&mode=in|out. - stars = current star count when the user clicked.
- mode =
in(stars moving toward cursor) orout(firehose from cursor).
Nginx returns 204 for /_log and logs each request. View interactivity with the usual container log:
docker logs -f pointless-interactive-webEach click appears as a request line, e.g. "GET /_log?stars=220&mode=out HTTP/1.1" 204.
Run from GHCR (after CI pushes on main):
docker run -d -p 8080:80 --name pointless-interactive-web ghcr.io/<owner>/pointless-docker:latestBuild locally:
docker build -t pointless-web:latest .
docker run -d -p 8080:80 --name pointless-interactive-web pointless-web:latestOpen http://localhost:8080.
Launcher script:
chmod +x pointlessdocker
./pointlessdockerStarts the container (if needed) and opens the app in your browser.
Pushes to main trigger a GitHub Actions workflow that builds the image and pushes it to GitHub Container Registry (ghcr.io). The workflow is in .github/workflows/docker-publish.yml. Image name: ghcr.io/<owner>/pointless-docker:latest (and a tag with the short SHA).
pointless-docker/
├── Dockerfile
├── docker-compose.yml
├── nginx.conf
├── pointlessdocker
├── .dockerignore
├── README.md
└── public/
├── index.html
├── css/
│ └── styles.css
├── js/
│ └── stars-cursor.js
└── assets/
- Base image:
nginx:alpine - Frontend: one HTML page, one CSS file, one JS file (vanilla Canvas)
- Logging: GET
/_log?stars=N&mode=in|out→ nginx access log