2023-10-25 20:42:51 +03:00
2024-10-27 22:07:15 +02:00
2023-10-25 20:42:51 +03:00
2024-10-27 22:07:15 +02:00
2024-10-27 22:07:15 +02:00
2023-10-26 07:58:37 +03:00
2023-10-26 07:58:37 +03:00
2024-10-27 22:07:15 +02:00

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

Description
An example Node.js, Express.js and Socket.io project showing how to build a stopwatch.
Readme 92 KiB
Languages
JavaScript 61%
CSS 23.7%
EJS 12.9%
Dockerfile 2.4%