towerops/README.md
2025-12-21 17:17:26 -06:00

81 lines
2.1 KiB
Markdown

# 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