# TowerOps Network monitoring and alerting platform built with Phoenix LiveView. ## Features - **Multi-tenant architecture** - Organizations with role-based permissions - **Site hierarchy** - Organize equipment across multiple sites - **Automated monitoring** - Real-time ping monitoring with configurable intervals - **Time-series data** - Efficient storage with TimescaleDB (optional) - **Real-time updates** - LiveView dashboard with PubSub - **Equipment tracking** - Monitor network devices by IP address ## Quick Start ### Prerequisites - Elixir 1.14+ - PostgreSQL 14+ - (Optional) TimescaleDB for production-grade time-series performance ### Setup ```bash # Install dependencies mix setup # Start the server mix phx.server ``` Visit [`localhost:4000`](http://localhost:4000) from your browser. ### TimescaleDB (Production Only) **Development**: Uses standard PostgreSQL (no TimescaleDB required). **Production**: TimescaleDB is automatically enabled for optimal performance with time-series data. ```bash # Production deployment - install TimescaleDB first brew tap timescale/tap && brew install timescaledb # macOS # Then run migrations with MIX_ENV=prod MIX_ENV=prod mix ecto.migrate ``` See [TIMESCALEDB.md](TIMESCALEDB.md) for detailed installation and configuration. **How it works**: Migrations detect the environment (`MIX_ENV`) and only enable TimescaleDB features (hypertables, compression, retention policies, continuous aggregates) in production. ## Development ### Database ```bash mix ecto.create # Create database mix ecto.migrate # Run migrations mix ecto.reset # Drop, create, and migrate ``` ### Testing ```bash mix test # Run all tests mix test --trace # Run with detailed output ``` ### Code Quality ```bash mix format # Format code with Styler mix compile --warnings-as-errors ``` ## Learn more * 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