No description
Find a file
Graham McIntire fd317770fe
Fix health check logging with dynamic log level in endpoint
Use Plug.Telemetry's dynamic log level feature to disable logging for
/health requests. This is the proper Phoenix way to exclude specific
endpoints from request logs.

- Add log_level/1 function to endpoint that returns false for /health
- Configure Plug.Telemetry to use dynamic log level
- Remove log: false from router (handled by endpoint now)

This prevents Kubernetes health probe spam in application logs.
2026-01-06 13:57:32 -06:00
.gitlab/agents Add GitLab CI/CD pipeline for automated Docker build and Kubernetes deployment 2026-01-02 14:53:11 -06:00
assets Add parameter filtering to redact SNMP community strings from logs 2026-01-05 13:48:39 -06:00
config Set logger level to info in development to prevent credential exposure 2026-01-05 14:35:09 -06:00
k8s Fix health check logging with dynamic log level in endpoint 2026-01-06 13:57:32 -06:00
lib Fix health check logging with dynamic log level in endpoint 2026-01-06 13:57:32 -06:00
priv Add superuser system with user impersonation for admin support 2026-01-06 12:50:10 -06:00
rel/overlays/bin add release 2026-01-02 14:36:38 -06:00
test Fix credo warnings and software design suggestions 2026-01-06 12:55:22 -06:00
towerops Add towerops/gitlab-agent-helm-release.yaml via glab file sync 2026-01-02 14:22:22 -06:00
.credo.exs Add superuser system with user impersonation for admin support 2026-01-06 12:50:10 -06:00
.dockerignore add release 2026-01-02 14:36:38 -06:00
.formatter.exs format 2025-12-21 11:31:08 -06:00
.gitignore add sendgrid 2026-01-03 15:26:48 -06:00
.gitlab-ci.yml Upgrade Docker to version 27 for API compatibility 2026-01-05 12:57:02 -06:00
.sourceignore Add .sourceignore to exclude non-k8s files from Flux 2026-01-02 14:43:57 -06:00
.test-watch.exs add test watch 2026-01-03 12:35:26 -06:00
.tool-versions add release 2026-01-02 14:36:38 -06:00
AGENTS.md 1. User Authentication 2025-12-21 13:31:59 -06:00
DEPLOYMENT.md more features 2026-01-02 14:06:44 -06:00
Dockerfile Silence debconf warnings in Docker builds 2026-01-03 16:00:54 -06:00
gitlab-agent-helm-release.yaml Add gitlab-agent-helm-release.yaml via glab file sync 2026-01-02 14:19:12 -06:00
gitlab-helm-repository.yaml Add gitlab-helm-repository.yaml via glab file sync 2026-01-02 14:19:11 -06:00
IMPLEMENTATION_PLAN.md more features 2026-01-02 14:06:44 -06:00
mix.exs Add input validation for port numbers and SNMP testing 2026-01-06 13:28:30 -06:00
mix.lock Add input validation for port numbers and SNMP testing 2026-01-06 13:28:30 -06:00
README.md timescaledb 2025-12-21 17:17:26 -06:00
TIMESCALEDB.md more features 2026-01-02 14:06:44 -06:00

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

# Install dependencies
mix setup

# Start the server
mix phx.server

Visit 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.

# 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 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

mix ecto.create       # Create database
mix ecto.migrate      # Run migrations
mix ecto.reset        # Drop, create, and migrate

Testing

mix test              # Run all tests
mix test --trace      # Run with detailed output

Code Quality

mix format            # Format code with Styler
mix compile --warnings-as-errors

Learn more