Het Zeus Overzicht met Uitgebreide Toestanden ("Zeus Overview Using exTensive states")
The aim of this project is to provide an "uptime monitor" for Zeus projects. Why use an existing solution, when you can build it yourself?
Anyway, this application is rather simple. It has a list of projects, for which it pings some URL every X time, and saves the result in a big PostgreSQL table (we use TimescaleDB, so we can save all the things). We then show this with a simple UI.
Note: Once the server runs, it will ping registered services every minute or so, so don't leave it running too long in the background.
Combine any of the following:
Enlightened people can use the nix flake.
After setting up the database, run the webserver as follows:
mix setup
mix phx.serverNow, visit http://localhost:4000
Slightly more enlightened people can run the webserver like this:
guix shell -mmanifest.scm -CFN -ETERM -- sh -c "mix setup; mix phx.server"Now, visit http://localhost:4000
Install the following:
- Elixir 1.19
- Node.js 24
Start the webserver:
mix setup
mix phx.serverNow, visit http://localhost:4000
Start a development postgres, accessible on postgresql://postgres:postgres@localhost :
podman compose -fdocker-compose.dev.yml up -d --buildSet up a PostgreSQL 17 with the TimescaleDB extension.
Make sure it's accessible on: postgresql://postgres:postgres@localhost
Note: This is done automatically upon pushing to master.
See workflows/deploy.yml and deploy.ssh.
- SSH to the server
- Pull the repo
- Take the application down with
podman-compose down. - Build a new docker image with
podman-compose build - Start the application with
podman-compose up -d
- Official website: https://www.phoenixframework.org/
- Guides: https://hexdocs.pm/phoenix/overview.html
- Docs: https://hexdocs.pm/phoenix
- Forum: https://elixirforum.com/c/phoenix-forum
- Source: https://github.com/phoenixframework/phoenix