Add VPN configuration tools and agent documentation

Created comprehensive VPN setup tooling for Peaceful Spirit L2TP/IPsec connection
and enhanced agent documentation framework.

VPN Configuration (PST-NW-VPN):
- Setup-PST-L2TP-VPN.ps1: Automated L2TP/IPsec setup with split-tunnel and DNS
- Connect-PST-VPN.ps1: Connection helper with PPP adapter detection, DNS (192.168.0.2), and route config (192.168.0.0/24)
- Connect-PST-VPN-Standalone.ps1: Self-contained connection script for remote deployment
- Fix-PST-VPN-Auth.ps1: Authentication troubleshooting for CHAP/MSChapv2
- Diagnose-VPN-Interface.ps1: Comprehensive VPN interface and routing diagnostic
- Quick-Test-VPN.ps1: Fast connectivity verification (DNS/router/routes)
- Add-PST-VPN-Route-Manual.ps1: Manual route configuration helper
- vpn-connect.bat, vpn-disconnect.bat: Simple batch file shortcuts
- OpenVPN config files (Windows-compatible, abandoned for L2TP)

Key VPN Implementation Details:
- L2TP creates PPP adapter with connection name as interface description
- UniFi auto-configures DNS (192.168.0.2) but requires manual route to 192.168.0.0/24
- Split-tunnel enabled (only remote traffic through VPN)
- All-user connection for pre-login auto-connect via scheduled task
- Authentication: CHAP + MSChapv2 for UniFi compatibility

Agent Documentation:
- AGENT_QUICK_REFERENCE.md: Quick reference for all specialized agents
- documentation-squire.md: Documentation and task management specialist agent
- Updated all agent markdown files with standardized formatting

Project Organization:
- Moved conversation logs to dedicated directories (guru-connect-conversation-logs, guru-rmm-conversation-logs)
- Cleaned up old session JSONL files from projects/msp-tools/
- Added guru-connect infrastructure (agent, dashboard, proto, scripts, .gitea workflows)
- Added guru-rmm server components and deployment configs

Technical Notes:
- VPN IP pool: 192.168.4.x (client gets 192.168.4.6)
- Remote network: 192.168.0.0/24 (router at 192.168.0.10)
- PSK: rrClvnmUeXEFo90Ol+z7tfsAZHeSK6w7
- Credentials: pst-admin / 24Hearts$

Files: 15 VPN scripts, 2 agent docs, conversation log reorganization,
guru-connect/guru-rmm infrastructure additions

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-18 11:51:47 -07:00
parent b0a68d89bf
commit 6c316aa701
272 changed files with 37068 additions and 2 deletions

View File

@@ -0,0 +1,80 @@
# GuruRMM Production Deployment for Jupiter (Unraid)
#
# Deployment steps:
# 1. Copy this directory to Jupiter: /mnt/user/appdata/gururmm/
# 2. Copy .env.example to .env and configure
# 3. Login to Gitea registry: docker login git.azcomputerguru.com
# 4. Run: docker-compose up -d
#
# For Unraid Docker UI, you can also create individual containers manually
# using the settings in this file as reference.
version: '3.8'
services:
# PostgreSQL Database
# On Unraid, you might prefer to use the existing PostgreSQL from Community Apps
# If so, remove this service and update DATABASE_URL in .env
postgres:
image: postgres:16-alpine
container_name: gururmm-db
restart: unless-stopped
environment:
POSTGRES_DB: ${DB_NAME:-gururmm}
POSTGRES_USER: ${DB_USER:-gururmm}
POSTGRES_PASSWORD: ${DB_PASSWORD:?DB_PASSWORD is required}
volumes:
- /mnt/user/appdata/gururmm/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-gururmm} -d ${DB_NAME:-gururmm}"]
interval: 10s
timeout: 5s
retries: 5
networks:
- gururmm
# GuruRMM Server (API + WebSocket)
server:
image: git.azcomputerguru.com/azcomputerguru/gururmm-server:latest
container_name: gururmm-server
restart: unless-stopped
environment:
DATABASE_URL: postgres://${DB_USER:-gururmm}:${DB_PASSWORD}@postgres/${DB_NAME:-gururmm}
JWT_SECRET: ${JWT_SECRET:?JWT_SECRET is required}
SERVER_HOST: 0.0.0.0
SERVER_PORT: 3001
RUST_LOG: ${RUST_LOG:-info}
depends_on:
postgres:
condition: service_healthy
ports:
- "3001:3001"
labels:
# For Nginx Proxy Manager or Traefik
- "traefik.enable=true"
- "traefik.http.routers.gururmm-api.rule=Host(`rmm-api.azcomputerguru.com`)"
- "traefik.http.services.gururmm-api.loadbalancer.server.port=3001"
networks:
- gururmm
# GuruRMM Dashboard (when ready)
# dashboard:
# image: git.azcomputerguru.com/azcomputerguru/gururmm-dashboard:latest
# container_name: gururmm-dashboard
# restart: unless-stopped
# environment:
# VITE_API_URL: ${VITE_API_URL:-https://rmm-api.azcomputerguru.com}
# ports:
# - "3000:80"
# depends_on:
# - server
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.gururmm-dashboard.rule=Host(`rmm.azcomputerguru.com`)"
# - "traefik.http.services.gururmm-dashboard.loadbalancer.server.port=80"
# networks:
# - gururmm
networks:
gururmm:
driver: bridge