See:
docker compose up
# or
docker compose up --build
# in other tab
docker compose watch
localhost:4000 - Monitor
localhost:8080 - The game. Open in two browsers
docker system prune --all --force --volumes
# tictactoe backend
iex --sname tictactoe@localhost -S mix run --no-halt
# tictactoe fronted
npm run serve
# monitor
NODE=tictactoe@localhost iex --sname monitor@localhost -S mix phx.server
Simple websockets: https://medium.com/@loganbbres/elixir-websocket-chat-example-c72986ab5778