81 lines
2.1 KiB
Markdown
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
|