A distributed Elixir application consisting of a central server and multiple workspace nodes.
This project demonstrates a distributed Elixir application with:
- A central Phoenix server that collects and displays events
- Multiple workspace nodes that can connect to the server
- Event logging system for tracking activities across nodes
- PostgreSQL database for persistent storage
- Elixir 1.14+
- Erlang/OTP 25+
- PostgreSQL (via Docker)
- just command runner
- tmux (optional, for running server and workspace in split windows)
- Install dependencies:
just setup
- Set up the database:
just db-setup
Or run the full setup:
just full-setup
just server
just workspace
Or specify a custom workspace name:
just workspace workspace2
just start
- Start the database:
just db-start
- Stop the database:
just db-stop
- Check database status:
just db-status
- Reset the database:
just db-reset
Send test events from a workspace node:
just test-events
Or specify a custom workspace node:
just test-events [email protected]
Run just --list
to see all available commands:
Available recipes:
db-reset # Reset the database
db-setup # Set up the database
db-start # Start the database
db-status # Check database status
db-stop # Stop the database
default # List available commands
full-setup # Full system setup
full-start # Full system start
server # Start the server node
setup # Install dependencies
start # Start both server and workspace
test-events node="[email protected]" # Run test events
workspace node="workspace1" # Start a workspace node
Once the server is running, you can access the web interface at:
- Dashboard: http://localhost:4000/
- Event History: http://localhost:4000/events