timer/README.md

1.7 KiB

OpenFest Timer

Deployment

Configuration

Configuration is done by environmental variables:

HALLS: "/hall-a:Hall A;/hall-b:Hall B"
TITLE: "Hall A"  # not in use if HALLS is set to non-empty
PREFIX: /hall-a  # not in use if HALLS is set to non-empty
BASIC_AUTH: "admin:password"  # user:plaintext-password

Prod Deployment

cd timer-repo/
git pull
podman build -t timer .

cat > .config/containers/systemd/timer.container <<EOF
[Container]
ContainerName=timer
Image=timer:latest

Environment=PORT=5050
Environment=HALLS="/hall-a:Hall A;/hall-b:Hall B;/test-hall:TEST"
Environment=BASIC_AUTH="user:password"

PublishPort=127.0.0.1:5050:5050

Network=INSERT_THE_NETWORK

[Install]
WantedBy=default.target
EOF

systemctl --user daemon-reload
systemctl --user restart timer

Local Development

docker-compose up --build

Based on Defcon

Defcon

Defcon is a stopwatch running on Node.js, Express.js, and Socket.io. It is intended to be a good starting point if you're just learning to use web sockets. It currently uses xhr-polling so it is compatible with Heroku.

Who's it for?

I originally wrote Defcon over four blog posts introducing Socket.io and deploying to Heroku. Please checkout the posts on my site, robdodson.me