mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-02-18 00:17:39 +01:00
This commit includes comprehensive codebase cleanup and refactoring: ## Code Cleanup - Remove dead TypeScript code (types/monitoring.ts - 194 lines duplicate) - Remove unused Go functions (GetClusterNodes, MigratePassword, GetClusterHealthInfo) - Clean up commented-out code blocks across multiple files - Remove unused TypeScript exports (helpTextClass, private tag color helpers) - Delete obsolete test files and components ## localStorage Consolidation - Centralize all storage keys into STORAGE_KEYS constant - Update 5 files to use centralized keys: * utils/apiClient.ts (AUTH, LEGACY_TOKEN) * components/Dashboard/Dashboard.tsx (GUEST_METADATA) * components/Docker/DockerHosts.tsx (DOCKER_METADATA) * App.tsx (PLATFORMS_SEEN) * stores/updates.ts (UPDATES) - Benefits: Single source of truth, prevents typos, better maintainability ## Previous Work Committed - Docker monitoring improvements and disk metrics - Security enhancements and setup fixes - API refactoring and cleanup - Documentation updates - Build system improvements ## Testing - All frontend tests pass (29 tests) - All Go tests pass (15 packages) - Production build successful - Zero breaking changes Total: 186 files changed, 5825 insertions(+), 11602 deletions(-)
2.5 KiB
2.5 KiB
Development Quick Start
Prerequisites
- Go 1.24.9 or newer
- Node.js 20+
- pnpm 9+ (for frontend work)
Hot-Reload Development Mode
Start the development environment with hot-reload:
./scripts/hot-dev.sh
This starts:
- Backend API on port 7656
- Frontend on port 7655 with hot-reload
- Both backend and frontend automatically reload on code changes
Access the app at: http://localhost:7655 or http://192.168.0.123:7655
Toggle Between Mock and Production Data
Switch modes seamlessly without manually restarting services:
# Enable mock mode (test with fake data)
npm run mock:on
# Disable mock mode (use real Proxmox nodes)
npm run mock:off
# Check current mode
npm run mock:status
# Edit mock configuration
npm run mock:edit
Or use the script directly:
./scripts/toggle-mock.sh on # Enable mock mode
./scripts/toggle-mock.sh off # Disable mock mode (use production data)
./scripts/toggle-mock.sh status # Show current status
The toggle script automatically:
- Updates
mock.envconfiguration - Restarts the backend with new settings
- Keeps the frontend running (no restart needed)
- Syncs production config when switching to production mode
- Switches
PULSE_DATA_DIRbetween/opt/pulse/tmp/mock-data(mock) and/etc/pulse(production) so test data never touches real credentials
Mock Mode Configuration
Edit mock.env to customize mock data:
PULSE_MOCK_MODE=false # Enable/disable mock mode
PULSE_MOCK_NODES=7 # Number of mock nodes
PULSE_MOCK_VMS_PER_NODE=5 # Average VMs per node
PULSE_MOCK_LXCS_PER_NODE=8 # Average containers per node
PULSE_MOCK_RANDOM_METRICS=true # Enable metric fluctuations
PULSE_MOCK_STOPPED_PERCENT=20 # Percentage of stopped guests
Prefer mock.env.local for personal tweaks (cp mock.env mock.env.local). The toggle script honours .local first, keeping the shared defaults untouched.
Development Workflow
- Start hot-dev:
./scripts/hot-dev.sh - Switch to mock mode for testing:
npm run mock:on - Develop and test your changes
- Switch to production mode to verify:
npm run mock:off - Code changes auto-reload, no manual restarts needed!
Troubleshooting
If the backend doesn't pick up changes:
npm run mock:off # Force restart with production data
npm run mock:on # Force restart with mock data
Check backend logs:
tail -f /tmp/pulse-backend.log
Check if services are running:
lsof -i :7656 # Backend
lsof -i :7655 # Frontend