Skip to content

Latest commit

 

History

History
52 lines (40 loc) · 1.93 KB

File metadata and controls

52 lines (40 loc) · 1.93 KB

Development

Prerequisites

Dev Workflow

wails dev              # Hot-reload dev mode (Go + TypeScript)
go test -race ./...    # Run Go tests

Build from Source

git clone https://github.com/GeiserX/CashPilot-Desktop.git
cd CashPilot-Desktop
wails build

Running Tests

make test

Architecture overview

The full design, grounded in the code, is in How it works.

CashPilot Desktop (Wails 2.x)
├── Go Backend (app.go, internal/)
│   ├── Container runtime    — Docker/Podman detection, deploy/stop/restart
│   ├── Earnings collectors  — Polls service APIs for earnings
│   ├── internal/exchange    — FX rates (crypto + fiat → display currency)
│   ├── Fleet management     — Multi-node coordination via HTTP
│   ├── fleet_server.go      — Token-auth worker/mobile heartbeat API
│   └── SQLite database      — Config, credentials (OS keychain), earnings history
├── Frontend (vanilla TypeScript + Vite)
│   ├── Dashboard            — Real-time earnings and service status
│   ├── Setup wizard         — Onboarding flow with runtime detection
│   ├── Service catalog      — Browse and deploy services
│   ├── Settings             — Display currency and preferences
│   └── Fleet                — Connected worker/node status
└── Wails Runtime            — Window management, system tray, native bindings

The Go backend handles all business logic, container orchestration, and data collection. The TypeScript frontend communicates via Wails bindings (direct Go function calls, no HTTP). State is persisted in a local SQLite database, with credentials encrypted at rest (AES-256-GCM) under a master key held in the OS keychain.