Commit graph

63 commits

Author SHA1 Message Date
d7481dc0fd
Silence debconf warnings in Docker builds
Set DEBIAN_FRONTEND=noninteractive for all apt-get operations
to prevent interactive frontend warnings in build logs
2026-01-03 16:00:54 -06:00
547b7f1f14
Auto-cancel redundant builds on new commits
- Add workflow auto_cancel to cancel old pipelines
- Mark build job as interruptible
- Deploy jobs remain non-interruptible for safety
2026-01-03 15:57:03 -06:00
7a3bb1bde1
Add yaml_elixir dependency to fix snmpkit compile warning
Resolves YamlElixir.read_from_file/1 undefined warning during compilation
2026-01-03 15:56:42 -06:00
1ea4496e95
Add BuildKit cache mounts to speed up Docker builds
- Cache Hex packages across builds
- Cache Mix archives across builds
- Cache npm packages for asset tooling
- Speeds up dependency installation significantly
2026-01-03 15:55:24 -06:00
f050fb0eea
Enable LiveDashboard at /dashboard with authentication
LiveDashboard is now available at /dashboard in all environments
and requires user authentication to access
2026-01-03 15:53:18 -06:00
d80c10fa5d
Make deploy dependency on build explicit
Adds needs clause to ensure deploy waits for build to complete
2026-01-03 15:51:56 -06:00
2e3094634c
Exclude /health endpoint from SSL redirect
Prevents excessive 301 redirect logs from Kubernetes health probes
2026-01-03 15:50:31 -06:00
7339ac7eec
Add automatic database migrations on deployment
- Create Kubernetes Job to run migrations before deployment
- Update GitLab CI to execute migration job and wait for completion
- Ensures migrations run once per deployment in clustered environment
- Migration job uses PostgreSQL advisory locks to prevent race conditions
2026-01-03 15:50:01 -06:00
570c6d03b3
Dockerfile improvements 2026-01-03 15:38:14 -06:00
80cc5e937e
add sendgrid 2026-01-03 15:26:48 -06:00
d6a9bb11d7
Redesign equipment view with compact LibreNMS-style dashboard
- Add real-time updates with 10-second refresh and PubSub integration
- Implement pure SVG charts: response time sparkline and uptime gauge
- Create compact dashboard layout with status cards, metrics, and graphs
- Add relative time display (e.g., '5s ago') for last check
- Redesign SNMP data display: compact device info, sensors grid, interfaces table
- Calculate and display uptime percentage and average response time
- Update tests to match new compact layout
2026-01-03 15:11:47 -06:00
7772ff9a4a
fix a few bits 2026-01-03 14:58:06 -06:00
8cbca259fc
snmp bits 2026-01-03 14:41:28 -06:00
0f9266027f
fix dialyzer things 2026-01-03 12:56:40 -06:00
5ae974d7aa
Fix Dialyzer unmatched return warning in trigger_check handler
- Explicitly discard return value from trigger_check call
- The return value is not needed for this fire-and-forget operation
- Resolves unmatched_return warning at line 58
2026-01-03 12:43:05 -06:00
ba75c7313d
Fix Dialyzer unmatched return warning in log_out_user
- Explicitly discard return value from Endpoint.broadcast call
- Broadcast is fire-and-forget, return value not needed
- Resolves unmatched_return warning at line 54
2026-01-03 12:42:21 -06:00
7cdb93ef31
Fix Dialyzer opaque type warning in register_user_with_organization
- Create changeset before Multi pipeline for better type inference
- Pass changeset directly to Multi.insert instead of using function form
- Resolves call_without_opaque warning at line 97
2026-01-03 12:41:28 -06:00
d345d7df30
Fix Dialyzer pattern match coverage warning
- Replace catch-all pattern with explicit :unknown status handling
- Makes status transitions more explicit and type-safe
- Resolves pattern_match_cov warning at line 174
2026-01-03 12:40:32 -06:00
287fd8064a
Add Dialyzer for static type analysis
- Added dialyxir dependency for static analysis
- Configured PLT file location and analysis flags
- Added priv/plts/ to .gitignore
- Enabled unmatched_returns, error_handling, and unknown type checks
2026-01-03 12:39:02 -06:00
e066c3bf64
add test watch 2026-01-03 12:35:26 -06:00
2967cfadce
Add mix test.watch configuration
- Run only stale tests (affected by changes)
- Clear screen before running tests for better visibility
2026-01-03 12:35:00 -06:00
6986a14e13
Add mix_test_watch for automatic test running
- Added mix_test_watch dependency for dev/test environments
- Enables 'mix test.watch' command to run tests on file changes
2026-01-03 12:34:19 -06:00
5d9ebb14f9
Change organization slugs to random IDs independent of name
- Organization names can now be freely duplicated
- Slugs are generated as random 8-character lowercase alphanumeric IDs
- Provides ~218 trillion possible combinations
- Updated tests to not rely on name-based slug patterns
2026-01-03 12:33:11 -06:00
fec4fa65fe
Fix test redirect expectations and datetime handling
- Update LiveView tests to match actual redirect behavior
- Fix equipment and site form redirect test expectations
- Update organization tests to reflect slug-based uniqueness
- All datetime truncation fixes for Ecto :utc_datetime fields
2026-01-03 12:31:04 -06:00
7d4f7dd7d4
Add active page navigation highlighting
- Add active_page attribute to authenticated layout
- Update nav_link component to show active state with border and text styling
- Update all LiveView templates to pass active_page parameter
- Fix datetime truncation issues in tests and schemas for :utc_datetime fields
- Fix dashboard test assertions for equipment status text
2026-01-03 12:28:26 -06:00
d283f4ac6c
Fix dropdown menu position to appear below button 2026-01-03 12:18:56 -06:00
424b82ca4c
Add z-index to dropdown menu to appear above page content 2026-01-03 12:18:03 -06:00
7e6c190904
Fix vertical alignment of organization dropdown menu 2026-01-03 12:17:06 -06:00
28ac30a48f
Add dropdown menu for organization name with Switch Org, Settings, and Log out options 2026-01-03 12:16:29 -06:00
b0a17e7ea6
Add comprehensive test coverage for LiveView modules and contexts
- Add LiveView tests for DashboardLive, AlertLive, SiteLive, EquipmentLive, OrgLive
- Add comprehensive tests for Organizations context (memberships, invitations, auth)
- Add tests for AlertNotifier email delivery
- Improve test coverage from 54.78% to 86.65%
- Add 101 new tests (256 total tests)
2026-01-03 11:21:53 -06:00
c27aa4f5f8
Change default organization name to "Personal" 2026-01-03 11:10:34 -06:00
aff602e7dd
Fix active alerts filter to exclude recovery notifications
Only equipment_down alerts should be counted as "active alerts that need attention".
Equipment_up alerts are informational recovery notifications and don't require action.
2026-01-03 11:09:13 -06:00
f7b681e8f7
Add authenticated layout to form and show pages
- Add authenticated layout with navigation to equipment/site forms and show pages
- Remove remaining DaisyUI classes from detail pages
- Update buttons to use proper component variants
- Ensure consistent styling across all authenticated pages
2026-01-03 11:06:21 -06:00
dffa46dfde
Improve UI styling and remove DaisyUI dependencies
- Remove default Phoenix branding and create custom layouts
- Replace DaisyUI classes with custom Tailwind components throughout
- Add authenticated layout with navigation bar for organization pages
- Redesign all core components (buttons, forms, tables, alerts)
- Make dashboard stat cards clickable to navigate to respective pages
- Update alert acknowledge button to only show for equipment down alerts
- Add consistent dark mode support across all pages
- Implement modern design with zinc color palette and improved spacing
2026-01-03 11:02:38 -06:00
da42d64494
cluster 2026-01-02 15:29:02 -06:00
faffc050c2
Add imagePullSecrets for GitLab registry 2026-01-02 15:10:47 -06:00
a8bcd4d411
Remove www subdomain from certificate and IngressRoute 2026-01-02 15:06:21 -06:00
c0a163ae25
Fix CI pipeline stages 2026-01-02 14:54:37 -06:00
ed0e98fb4f
Add GitLab CI/CD pipeline for automated Docker build and Kubernetes deployment 2026-01-02 14:53:11 -06:00
9e20cbc33f
Add .sourceignore to exclude non-k8s files from Flux 2026-01-02 14:43:57 -06:00
92c5160f6e
Add Kubernetes deployment manifests for towerops.net 2026-01-02 14:38:52 -06:00
1970f3c928
add release 2026-01-02 14:36:38 -06:00
glab
3ac8a1a083 Update towerops/gitlab-agent-helm-release.yaml via glab file sync 2026-01-02 14:23:15 -06:00
glab
1ab8bef29d Update towerops/gitlab-helm-repository.yaml via glab file sync 2026-01-02 14:23:14 -06:00
glab
3af184c3c3 Update .gitlab/agents/towerops/config.yaml via glab file sync 2026-01-02 14:23:10 -06:00
glab
8623e59707 Update towerops/gitlab-agent-helm-release.yaml via glab file sync 2026-01-02 14:22:44 -06:00
glab
aad5bb0ecc Update towerops/gitlab-helm-repository.yaml via glab file sync 2026-01-02 14:22:40 -06:00
glab
bfdc6360ee Update .gitlab/agents/towerops/config.yaml via glab file sync 2026-01-02 14:22:35 -06:00
glab
8b633cfbd8 Add towerops/gitlab-agent-helm-release.yaml via glab file sync 2026-01-02 14:22:22 -06:00
glab
92431696ad Add towerops/gitlab-helm-repository.yaml via glab file sync 2026-01-02 14:22:21 -06:00