No description
Find a file
Graham McIntire fa591fde05
Revert manual data directory setup instructions from agent modal
The Docker agent now handles permissions automatically via the
entrypoint script, so users don't need to manually create the
data directory or run chown commands.

Reverted the UI back to the simple docker-compose example.
2026-01-14 09:36:59 -06:00
.gitlab/agents Rename GitLab agent config to match home-cluster-agent 2026-01-11 15:37:49 -06:00
assets Fix clipboard copy functionality for Docker Compose example 2026-01-14 09:30:09 -06:00
config Make agent Docker image configurable and update success criteria 2026-01-14 09:16:48 -06:00
k8s change replicas 2026-01-12 10:43:24 -06:00
lib Revert manual data directory setup instructions from agent modal 2026-01-14 09:36:59 -06:00
priv Implement hierarchical agent assignment for SNMP polling 2026-01-14 08:38:50 -06:00
rel/overlays/bin add release 2026-01-02 14:36:38 -06:00
test Add comprehensive test suite for Agents.Stats module 2026-01-14 09:22:32 -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 update gitignore 2026-01-09 13:17:43 -06:00
.gitlab-ci.yml Rename GitLab agent config to match home-cluster-agent 2026-01-11 15:37:49 -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 Streamline login flow and fix test failures 2026-01-13 13:08:24 -06:00
AGENT_IMPLEMENTATION.md set up ses 2026-01-09 16:52:11 -06:00
AGENT_NEXT_STEPS.md Make agent Docker image configurable and update success criteria 2026-01-14 09:16:48 -06:00
AGENTS.md 1. User Authentication 2025-12-21 13:31:59 -06:00
AWS_SES_SETUP.md set up ses 2026-01-09 16:52:11 -06:00
CLAUDE.md add claude.md to git 2026-01-13 13:21:33 -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
IMPLEMENTATION_PLAN.md more features 2026-01-02 14:06:44 -06:00
mix.exs Add gen_smtp dependency for Swoosh AmazonSES adapter 2026-01-11 15:41:21 -06:00
mix.lock update deps 2026-01-12 17:07:33 -06:00
README.md timescaledb 2025-12-21 17:17:26 -06:00
tail_logs.sh add logs helper script 2026-01-11 15:45:02 -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