# Project Directory

**Generated:** 2026-01-26
**Purpose:** Comprehensive directory of all active and completed projects
**Source:** CATALOG_PROJECTS.md, CATALOG_SESSION_LOGS.md

---

## Table of Contents

1. [Active Development Projects](#active-development-projects)
   - [GuruRMM](#gururmm)
   - [GuruConnect](#guruconnect)
   - [MSP Toolkit (Rust)](#msp-toolkit-rust)
   - [Website2025](#website2025)
2. [Production/Operational Projects](#productionoperational-projects)
   - [Dataforth DOS Test Machines](#dataforth-dos-test-machines)
   - [MSP Toolkit (PowerShell)](#msp-toolkit-powershell)
   - [Cloudflare WHM DNS Manager](#cloudflare-whm-dns-manager)
   - [ClaudeTools API](#claudetools-api)
3. [Troubleshooting Projects](#troubleshooting-projects)
   - [Seafile Microsoft Graph Email Integration](#seafile-microsoft-graph-email-integration)
4. [Completed Projects](#completed-projects)
   - [WHM DNS Cleanup](#whm-dns-cleanup)
5. [Reference Projects](#reference-projects)
   - [Autocode Remix](#autocode-remix)
   - [Claude Settings](#claude-settings)

---

## Active Development Projects

### GuruRMM

#### Status
**Active Development** - Phase 1 MVP

#### Purpose
Custom RMM (Remote Monitoring and Management) system for MSP operations

#### Technologies
- **Server:** Rust + Axum
- **Agent:** Rust (cross-platform)
- **Dashboard:** React + Vite + TypeScript
- **Database:** PostgreSQL 16
- **Communication:** WebSocket
- **Authentication:** JWT

#### Repository
https://git.azcomputerguru.com/azcomputerguru/gururmm

#### Infrastructure
- **Server:** 172.16.3.20 (Jupiter/Unraid) - Container deployment
- **Build Server:** 172.16.3.30 (Ubuntu 22.04) - Cross-platform builds
- **External URL:** https://rmm-api.azcomputerguru.com
- **Internal URL:** http://172.16.3.20:3001
- **Database:** gururmm-db container (172.16.3.20:5432)

#### Key Components
- **Agent:** Rust-based monitoring agent (Windows/Linux/macOS)
- **Server:** Rust + Axum WebSocket server
- **Dashboard:** React + Vite web interface
- **Tray:** System tray application (planned)

#### Features Implemented
- Real-time metrics (CPU, RAM, disk, network)
- WebSocket-based agent communication
- JWT authentication
- Cross-platform support (Windows/Linux)
- Auto-update system for agents
- Temperature metrics (CPU/GPU)
- Policy system (Client → Site → Agent)
- Authorization system (multi-tenant)

#### Features Planned
- Remote commands execution
- Patch management
- Alerting system
- ARM architecture support
- Additional OS versions
- System tray implementation

#### CI/CD Pipeline
- **Webhook URL:** http://172.16.3.30/webhook/build
- **Webhook Secret:** gururmm-build-secret
- **Build Script:** /opt/gururmm/build-agents.sh
- **Build Log:** /var/log/gururmm-build.log
- **Trigger:** Push to main branch
- **Builds:** Linux (x86_64) and Windows (x86_64) agents
- **Deploy Path:** /var/www/gururmm/downloads/

#### Clients & Sites
| Client | Site | Site Code | API Key |
|--------|------|-----------|---------|
| Glaztech Industries | SLC - Salt Lake City | DARK-GROVE-7839 | grmm_Qw64eawPBjnMdwN5UmDGWoPlqwvjM7lI |
| AZ Computer Guru | Internal | SWIFT-CLOUD-6910 | (internal) |

#### Credentials
- **Dashboard Login:** admin@azcomputerguru.com / GuruRMM2025
- **Database:** gururmm / 43617ebf7eb242e814ca9988cc4df5ad
- **JWT Secret:** ZNzGxghru2XUdBVlaf2G2L1YUBVcl5xH0lr/Gpf/QmE=
- **Entra SSO App ID:** 18a15f5d-7ab8-46f4-8566-d7b5436b84b6
- **Client Secret:** gOz8Q~J.oz7KnUIEpzmHOyJ6GEzYNecGRl-Pbc9w

#### Progress
- [x] Phase 0: Server skeleton (Axum WebSocket)
- [x] Phase 1: Basic agent (system metrics collection)
- [x] Phase 2: Dashboard (React web interface)
- [x] Authentication system (JWT)
- [x] Auto-update mechanism
- [x] CI/CD pipeline with webhooks
- [x] Policy system (hierarchical)
- [x] Authorization system (multi-tenant)
- [ ] Remote commands
- [ ] Patch management
- [ ] Alerting
- [ ] System tray

#### Key Files
- `docs/FEATURE_ROADMAP.md` - Complete feature roadmap with priorities
- `tray/PLAN.md` - System tray implementation plan
- `session-logs/2025-12-15-build-server-setup.md` - Build server setup
- `session-logs/2025-12-20-v040-build.md` - Version 0.40 build

---

### GuruConnect

#### Status
**Planning/Early Development**

#### Purpose
Remote desktop solution (ScreenConnect alternative) for GuruRMM integration

#### Technologies
- **Agent:** Rust (Windows remote desktop agent)
- **Server:** Rust + Axum (relay server)
- **Dashboard:** React (web viewer, integrate with GuruRMM)
- **Protocol:** Protocol Buffers
- **Communication:** WebSocket (WSS)
- **Encoding:** H264 (hardware), VP9 (software)

#### Architecture
```
Dashboard (React) ↔ WSS ↔ GuruConnect Server (Rust) ↔ WSS ↔ Agent (Rust)
```

#### Key Components
- **Agent:** Windows remote desktop agent (DXGI capture, input injection)
- **Server:** Relay server (Rust + Axum)
- **Dashboard:** Web viewer (React, integrate with GuruRMM)
- **Protocol:** Protocol Buffers for efficiency

#### Encoding Strategy
- **LAN (<20ms RTT):** Raw BGRA + Zstd + dirty rects
- **WAN + GPU:** H264 hardware encoding
- **WAN - GPU:** VP9 software encoding

#### Infrastructure
- **Server:** 172.16.3.30 (GuruRMM build server)
- **Database:** PostgreSQL (guruconnect / gc_a7f82d1e4b9c3f60)
- **Static Files:** /home/guru/guru-connect/server/static/
- **Binary:** /home/guru/guru-connect/target/release/guruconnect-server

#### Security
- TLS for all connections
- JWT auth for dashboard
- API key auth for agents
- Audit logging

#### Progress
- [x] Architecture design
- [x] Database setup
- [x] Server skeleton
- [ ] Agent DXGI capture implementation
- [ ] Agent input injection
- [ ] Protocol Buffers integration
- [ ] Dashboard integration with GuruRMM
- [ ] Testing and optimization

#### Related Projects
- RustDesk reference at ~/claude-projects/reference/rustdesk/

---

### MSP Toolkit (Rust)

#### Status
**Active Development** - Phase 2

#### Purpose
Integrated CLI for MSP operations connecting multiple platforms with automatic documentation and time tracking

#### Technologies
- **Language:** Rust
- **Runtime:** async/tokio
- **Encryption:** AES-256-GCM (ring crate)
- **Rate Limiting:** governor crate
- **CLI:** clap
- **HTTP:** reqwest

#### Integrated Platforms
- **DattoRMM:** Remote monitoring
- **Autotask PSA:** Ticketing and time tracking
- **IT Glue:** Documentation
- **Kaseya 365:** M365 management
- **Datto EDR:** Endpoint security

#### Key Features
- Unified CLI for all MSP platforms
- Automatic documentation to IT Glue
- Automatic time tracking to Autotask
- AES-256-GCM encrypted credential storage
- Workflow automation
- Rate limiting for API calls

#### Architecture
```
User Command → Execute Action → [Success] → Workflow:
  ├─→ Document to IT Glue
  ├─→ Add note to Autotask ticket
  └─→ Log time to Autotask
```

#### Configuration
- **File Location:** ~/.config/msp-toolkit/config.toml
- **Credentials:** Encrypted with AES-256-GCM

#### Progress
- [x] Phase 1: Core CLI structure
- [ ] Phase 2: Core integrations
  - [ ] DattoRMM client implementation
  - [ ] Autotask client implementation
  - [ ] IT Glue client implementation
  - [ ] Workflow system implementation
- [ ] Phase 3: Advanced features
- [ ] Phase 4: Testing and documentation

#### Key Files
- `CLAUDE.md` - Complete development guide
- `README.md` - User documentation
- `ARCHITECTURE.md` - System architecture and API details

---

### Website2025

#### Status
**Active Development**

#### Purpose
Company website rebuild for Arizona Computer Guru MSP

#### Technologies
- HTML, CSS, JavaScript (clean static site)
- Apache (cPanel)

#### Infrastructure
- **Server:** ix.azcomputerguru.com (cPanel/Apache)
- **Production:** https://www.azcomputerguru.com (WordPress - old)
- **Dev (original):** https://dev.computerguru.me/acg2025/ (WordPress)
- **Working copy:** https://dev.computerguru.me/acg2025-wp-test/ (WordPress test)
- **Static site:** https://dev.computerguru.me/acg2025-static/ (Active development)

#### File Paths on Server
- **Dev site:** /home/computergurume/public_html/dev/acg2025/
- **Working copy:** /home/computergurume/public_html/dev/acg2025-wp-test/
- **Static site:** /home/computergurume/public_html/dev/acg2025-static/
- **Production:** /home/azcomputerguru/public_html/

#### Business Information
- **Company:** Arizona Computer Guru
- **Tagline:** "Any system, any problem, solved"
- **Phone:** 520.304.8300
- **Service Area:** Statewide (Tucson, Phoenix, Prescott, Flagstaff)
- **Services:** Managed IT, network/server, cybersecurity, remote support, websites

#### Design Features
- CSS Variables for theming
- Mega menu dropdown with blur overlay
- Responsive breakpoints (1024px, 768px)
- Service cards grid layout
- Fixed header with scroll-triggered shrink

#### SSH Access
- **Method 1:** ssh root@ix.azcomputerguru.com
- **Method 2:** ssh claude-temp@ix.azcomputerguru.com
- **Password (claude-temp):** Gptf*77ttb

#### Progress
- [x] Design system (CSS Variables)
- [x] Fixed header with mega menu
- [x] Service cards layout
- [ ] Complete static site pages (services, about, contact)
- [ ] Mobile optimization
- [ ] Content migration from old WordPress site
- [ ] Testing and launch

#### Key Files
- `CLAUDE.md` - Development notes and SSH access
- `static-site/` - Clean static rebuild

---

## Production/Operational Projects

### Dataforth DOS Test Machines

#### Status
**Production** - 90% complete, operational

#### Purpose
SMB1 proxy system for ~30 legacy DOS test machines at Dataforth Corporation

#### Technologies
- **NAS:** Netgear ReadyNAS (SMB1)
- **Server:** Windows Server 2022 (AD2)
- **DOS:** DOS 6.22
- **Language:** QuickBASIC (test software), PowerShell (sync scripts)

#### Problem Solved
Crypto attack disabled SMB1 on production servers; deployed NAS as SMB1 proxy to maintain connectivity to legacy DOS test machines

#### Infrastructure
| System | IP | Purpose | Credentials |
|--------|-----|---------|-------------|
| D2TESTNAS | 192.168.0.9 | NAS/SMB1 proxy | admin / Paper123!@#-nas |
| AD2 | 192.168.0.6 | Production server | INTRANET\sysadmin / Paper123!@# |
| UDM | 192.168.0.254 | Gateway | root / Paper123!@#-unifi |

#### Key Features
- **Bidirectional sync** every 15 minutes (NAS ↔ AD2)
- **PULL:** Test results from DOS machines → AD2 → Database
- **PUSH:** Software updates from AD2 → NAS → DOS machines
- **Remote task deployment:** TODO.BAT
- **Centralized software management:** UPDATE.BAT

#### Sync System
- **Script:** C:\Shares\test\scripts\Sync-FromNAS.ps1
- **Log:** C:\Shares\test\scripts\sync-from-nas.log
- **Status:** C:\Shares\test\_SYNC_STATUS.txt
- **Scheduled:** Windows Task Scheduler (every 15 min)

#### DOS Machine Management
- **Software deployment:** Place files in TS-XX\ProdSW\ on NAS
- **One-time commands:** Create TODO.BAT in TS-XX\ root (auto-deletes after run)
- **Central management:** T:\UPDATE TS-XX ALL (from DOS)

#### Test Database
- **URL:** http://192.168.0.6:3000

#### SSH Access
- **Method:** ssh root@192.168.0.9 (ed25519 key auth)

#### Engineer Access
- **SMB:** \\192.168.0.9\test
- **SFTP:** Port 22
- **User:** engineer / Engineer1!

#### Machines Status
- **Working:** TS-27, TS-8L, TS-8R (tested operational)
- **Pending:** ~27 DOS machines need network config updates

#### Project Time
~11 hours implementation

#### Progress
- [x] NAS deployment and configuration
- [x] SMB1 share setup
- [x] Bidirectional sync system
- [x] TODO.BAT and UPDATE.BAT implementation
- [x] Testing with 3 DOS machines
- [ ] Datasheets share creation on AD2 (BLOCKED - waiting for Engineering)
- [ ] Update network config on remaining ~27 DOS machines
- [ ] DattoRMM monitoring integration
- [ ] Future: VLAN isolation, modernization planning

#### Key Files
- `PROJECT_INDEX.md` - Quick reference guide
- `README.md` - Complete project overview
- `CREDENTIALS.md` - All passwords and SSH keys
- `NETWORK_TOPOLOGY.md` - Network diagram and data flow
- `REMAINING_TASKS.md` - Pending work and blockers
- `SYNC_SCRIPT.md` - Sync system documentation
- `DOS_BATCH_FILES.md` - UPDATE.BAT and TODO.BAT details

#### Repository
https://git.azcomputerguru.com/azcomputerguru/claude-projects (dataforth-dos folder)

#### Implementation Date
2025-12-14

---

### MSP Toolkit (PowerShell)

#### Status
**Production** - Web-hosted scripts

#### Purpose
PowerShell scripts for MSP technicians, web-accessible for remote execution

#### Technologies
- PowerShell
- Web hosting (www.azcomputerguru.com/tools/)

#### Access Methods
- **Interactive menu:** `iex (irm azcomputerguru.com/tools/msp-toolkit.ps1)`
- **Direct execution:** `iex (irm azcomputerguru.com/tools/Get-SystemInfo.ps1)`
- **Parameterized:** `iex (irm azcomputerguru.com/tools/msp-toolkit.ps1) -Script systeminfo`

#### Available Scripts
- Get-SystemInfo.ps1 - System information report
- Invoke-HealthCheck.ps1 - Health diagnostics
- Create-LocalAdmin.ps1 - Create local admin account
- Set-StaticIP.ps1 - Configure static IP
- Join-Domain.ps1 - Join Active Directory
- Install-RMMAgent.ps1 - Install RMM agent

#### Configuration Files (JSON)
- applications.json
- presets.json
- scripts.json
- themes.json
- tweaks.json

#### Deployment
- **Script:** deploy.bat uploads to web server
- **Server:** ix.azcomputerguru.com
- **SSH:** claude@ix.azcomputerguru.com

#### Key Files
- `README.md` - Usage and deployment guide
- `msp-toolkit.ps1` - Main launcher
- `scripts/` - Individual PowerShell scripts
- `config/` - Configuration files

---

### Cloudflare WHM DNS Manager

#### Status
**Production**

#### Purpose
CLI tool and WHM plugin for managing Cloudflare DNS from cPanel/WHM servers

#### Technologies
- **CLI:** Bash
- **WHM Plugin:** Perl
- **API:** Cloudflare API

#### Components
- **CLI Tool:** `cf-dns` bash script
- **WHM Plugin:** Web-based interface

#### Features
- List zones and DNS records
- Add/delete DNS records
- One-click M365 email setup (MX, SPF, DKIM, DMARC, Autodiscover)
- Import new zones to Cloudflare
- Email DNS verification

#### CLI Commands
- `cf-dns list-zones` - Show all zones
- `cf-dns list example.com` - Show records
- `cf-dns add example.com A www 192.168.1.1` - Add record
- `cf-dns add-m365 clientdomain.com tenantname` - Add M365 records
- `cf-dns verify-email clientdomain.com` - Check email DNS
- `cf-dns import newclient.com` - Import zone

#### Installation
- **CLI:** Copy to /usr/local/bin/, create ~/.cf-dns.conf
- **WHM:** Run install.sh from whm-plugin/ directory

#### Configuration
- **File:** ~/.cf-dns.conf
- **Required:** CF_API_TOKEN

#### WHM Access
Plugins → Cloudflare DNS Manager

#### Key Files
- `docs/README.md` - Complete documentation
- `cli/cf-dns` - CLI script
- `whm-plugin/cgi/addon_cloudflareDNS.cgi` - WHM interface
- `whm-plugin/lib/CloudflareDNS.pm` - Perl module

---

### ClaudeTools API

#### Status
**Production Ready** - Phase 5 Complete

#### Purpose
MSP work tracking system with encrypted credential storage and infrastructure management

#### Technologies
- **Framework:** FastAPI (Python)
- **Database:** MariaDB 10.6.22
- **Encryption:** AES-256-GCM (Fernet)
- **Authentication:** JWT (Argon2 password hashing)
- **Migrations:** Alembic

#### Infrastructure
- **Database:** 172.16.3.30:3306 (RMM Server)
- **API Server:** http://172.16.3.30:8001 (production)
- **Database Name:** claudetools
- **User:** claudetools
- **Password:** CT_e8fcd5a3952030a79ed6debae6c954ed

#### API Endpoints (95+)
- Core Entities: `/api/machines`, `/api/clients`, `/api/projects`, `/api/sessions`, `/api/tags`
- MSP Work: `/api/work-items`, `/api/tasks`, `/api/billable-time`
- Infrastructure: `/api/sites`, `/api/infrastructure`, `/api/services`, `/api/networks`, `/api/firewall-rules`, `/api/m365-tenants`
- Credentials: `/api/credentials`, `/api/credential-audit-logs`, `/api/security-incidents`

#### Database Structure
- **Tables:** 38 tables (fully migrated)
- **Phases:** 0-5 complete

#### Security
- **Authentication:** JWT tokens
- **Password Hashing:** Argon2
- **Encryption:** AES-256-GCM for credentials
- **Audit Logging:** All credential operations logged

#### Encryption Key
- **Location:** D:\ClaudeTools\.env (or shared-data/.encryption-key)
- **Key:** 319134ddb79fa44a6751b383cb0a7940da0de0818bd6bbb1a9c20a6a87d2d30c

#### JWT Secret
- **Secret:** NdwgH6jsGR1WfPdUwR3u9i1NwNx3QthhLHBsRCfFxcg=

#### Progress
- [x] Phase 0: Database setup
- [x] Phase 1: Core entities
- [x] Phase 2: Session tracking
- [x] Phase 3: Work tracking
- [x] Phase 4: Core API endpoints
- [x] Phase 5: MSP work tracking, infrastructure, credentials
- [ ] Phase 6: Advanced features (optional)
- [ ] Phase 7: Additional entities (optional)

#### Key Files
- `SESSION_STATE.md` - Complete project history and status
- `credentials.md` - Infrastructure credentials
- `test_api_endpoints.py` - Phase 4 tests
- `test_phase5_api_endpoints.py` - Phase 5 tests

#### API Documentation
http://172.16.3.30:8001/api/docs (Swagger UI)

---

## Troubleshooting Projects

### Seafile Microsoft Graph Email Integration

#### Status
**Partial Implementation** - Troubleshooting

#### Purpose
Custom Django email backend for Seafile using Microsoft Graph API

#### Technologies
- **Platform:** Seafile Pro 12.0.19
- **Backend:** Python/Django
- **API:** Microsoft Graph API

#### Infrastructure
- **Server:** 172.16.3.21 (Saturn/Unraid) - Container: seafile
- **Migrated to:** Jupiter (172.16.3.20) on 2025-12-27
- **URL:** https://sync.azcomputerguru.com

#### Problem
- Direct Django email sending works (tested)
- Password reset from web UI fails (seafevents background process issue)
- Seafevents background email sender not loading custom backend properly

#### Architecture
- **Synchronous (Django send_mail):** Uses EMAIL_BACKEND setting - WORKING
- **Asynchronous (seafevents worker):** Not loading custom path - BROKEN

#### Files on Server
- **Custom backend:** /shared/custom/graph_email_backend.py
- **Config:** /opt/seafile/conf/seahub_settings.py
- **Seafevents:** /opt/seafile/conf/seafevents.conf

#### Azure App Registration
- **Tenant:** ce61461e-81a0-4c84-bb4a-7b354a9a356d
- **App ID:** 15b0fafb-ab51-4cc9-adc7-f6334c805c22
- **Client Secret:** rRN8Q~FPfSL8O24iZthi_LVJTjGOCZG.DnxGHaSk
- **Sender:** noreply@azcomputerguru.com
- **Permission:** Mail.Send (Application)

#### SSH Access
root@172.16.3.21 (old) or root@172.16.3.20 (new Jupiter location)

#### Pending Tasks
- [ ] Fix seafevents background email sender (move backend to Seafile Python path)
- [ ] OR disable background sender, rely on synchronous email
- [ ] Test password reset functionality

#### Key Files
- `README.md` - Status, problem description, testing commands

---

## Completed Projects

### WHM DNS Cleanup

#### Status
**Completed** - One-time project

#### Purpose
WHM DNS cleanup and recovery project

#### Key Files
- `WHM-DNS-Cleanup-Report-2025-12-09.md` - Cleanup report
- `WHM-Recovery-Data-2025-12-09.md` - Recovery data

#### Completion Date
2025-12-09

---

## Reference Projects

### Autocode Remix

#### Status
**Reference/Development**

#### Purpose
Fork/remix of Autocoder project

#### Contains Multiple Versions
- Autocode-fork/ - Original fork
- autocoder-master/ - Master branch
- Autocoder-2.0/ - Version 2.0
- Autocoder-2.0 - Copy/ - Backup copy

#### Key Files
- `CLAUDE.md` files in each version
- `ARCHITECTURE.md` - System architecture
- `.github/workflows/ci.yml` - CI/CD configuration

---

### Claude Settings

#### Status
**Configuration**

#### Purpose
Claude Code settings and configuration

#### Key Files
- `settings.json` - Claude Code settings

---

## Project Statistics

### By Status
- **Active Development:** 4 (GuruRMM, GuruConnect, MSP Toolkit Rust, Website2025)
- **Production/Operational:** 4 (Dataforth DOS, MSP Toolkit PS, Cloudflare WHM, ClaudeTools API)
- **Troubleshooting:** 1 (Seafile Email)
- **Completed:** 1 (WHM DNS Cleanup)
- **Reference:** 2 (Autocode Remix, Claude Settings)

### By Technology
- **Rust:** 3 (GuruRMM, GuruConnect, MSP Toolkit Rust)
- **PowerShell:** 2 (MSP Toolkit PS, Dataforth DOS sync)
- **Python:** 2 (ClaudeTools API, Seafile Email)
- **Bash:** 1 (Cloudflare WHM)
- **Perl:** 1 (Cloudflare WHM)
- **JavaScript/TypeScript:** 2 (GuruRMM Dashboard, Website2025)
- **DOS Batch:** 1 (Dataforth DOS)

### By Infrastructure
- **Self-Hosted Servers:** 6 (Jupiter, Saturn, Build Server, pfSense, WebSvr, IX)
- **Containers:** 4 (GuruRMM, Gitea, NPM, Seafile)
- **Databases:** 5 (PostgreSQL x2, MariaDB x2, MySQL x1)

---

**Last Updated:** 2026-01-26
**Source Files:** CATALOG_PROJECTS.md, CATALOG_SESSION_LOGS.md
**Status:** Complete import from claude-projects catalogs
