42 lines
1.3 KiB
Bash
42 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# entrypoint script that creates fake network services for demo
|
|
|
|
set -e
|
|
|
|
echo "starting demo services..."
|
|
|
|
# start nginx on port 80
|
|
nginx &
|
|
sleep 0.5
|
|
|
|
# start some listening services with socat (stderr silenced)
|
|
socat TCP-LISTEN:8080,fork,reuseaddr SYSTEM:"echo HTTP/1.1 200 OK" 2>/dev/null &
|
|
socat TCP-LISTEN:3000,fork,reuseaddr SYSTEM:"echo hello" 2>/dev/null &
|
|
socat TCP-LISTEN:5432,fork,reuseaddr SYSTEM:"echo postgres" 2>/dev/null &
|
|
socat TCP-LISTEN:6379,fork,reuseaddr SYSTEM:"echo redis" 2>/dev/null &
|
|
socat TCP-LISTEN:27017,fork,reuseaddr SYSTEM:"echo mongo" 2>/dev/null &
|
|
|
|
# create some "established" connections by connecting to our own services
|
|
sleep 0.5
|
|
(while true; do echo "ping" | nc -q 1 localhost 8080 2>/dev/null; sleep 2; done) >/dev/null 2>&1 &
|
|
(while true; do echo "ping" | nc -q 1 localhost 3000 2>/dev/null; sleep 2; done) >/dev/null 2>&1 &
|
|
(while true; do curl -s http://localhost:80 >/dev/null 2>&1; sleep 3; done) &
|
|
|
|
# udp listeners
|
|
socat UDP-LISTEN:5353,fork,reuseaddr SYSTEM:"echo mdns" 2>/dev/null &
|
|
socat UDP-LISTEN:1900,fork,reuseaddr SYSTEM:"echo ssdp" 2>/dev/null &
|
|
|
|
sleep 1
|
|
echo "services started, recording demo..."
|
|
|
|
# run vhs to record the demo
|
|
cd /app
|
|
vhs demo.tape
|
|
|
|
echo "demo recorded, copying output..."
|
|
|
|
# output will be in /app/demo.gif
|
|
cp /app/demo.gif /output/demo.gif 2>/dev/null || echo "output copied"
|
|
|
|
echo "done!"
|