Docker
Try the demo
docker run -p 8080:8080 -e MODE=collect -e FLOW=/app/demos/demo-collect.mjs walkeros/flow:latest
Output:
INFO Mode: COLLECT
INFO [runner] Loading flow from /app/demos/demo-collect.mjs
INFO [runner] Flow running
INFO [runner] Port: 8080
Test it:
curl -X POST http://localhost:8080/collect \
-H "Content-Type: application/json" \
-d '{"name":"page view","data":{"title":"Test Page"}}'
HTTP event collection
docker run -d -p 8080:8080 \
-e MODE=collect \
-e FLOW=/app/demos/demo-collect.mjs \
walkeros/flow
# Send event
curl -X POST http://localhost:8080/collect \
-H "Content-Type: application/json" \
-d '{"name":"page view","data":{"title":"Home"}}'
Built-in demos
The Docker image includes demo bundles at /app/demos/:
demo-collect.mjs- Server collector demodemo-serve.js- Web bundle demo
Custom flow
Build your flow
Docker runtime requires pre-built bundles, not JSON configs.
Workflow:
- Create JSON config:
flow.json - Bundle with CLI:
walkeros bundle flow.json --output flow.mjs - Run in Docker:
docker run -e MODE=collect -e FLOW=/app/flow.mjs
Build custom image
FROM walkeros/flow:latest
COPY flow.mjs /app/flow.mjs
ENV MODE=collect
ENV BUNDLE=/app/flow.mjs
docker build -t my-walker .
docker run -p 8080:8080 my-walker
Docker compose
version: '3.8'
services:
walkeros:
image: walkeros/flow:latest
environment:
MODE: collect
FLOW: /app/demos/demo-collect.mjs
ports:
- '8080:8080'
restart: unless-stopped
Environment variables
| Variable | Description | Default |
|---|---|---|
MODE | Operational mode: collect or serve | Required |
BUNDLE | Path to pre-bundled flow file | Required |
PORT | Server port | 8080 |
HOST | Server host | 0.0.0.0 |
SERVE_NAME | Filename in URL (serve mode) | walker.js |
SERVE_PATH | URL directory (serve mode) | (empty = root) |
Next steps
💡 Need Professional Support?
Need professional support with your walkerOS implementation? Check out our services.