How ohcnetwork/care_clinic works
CARE Clinic is a Go/Wails desktop application with a React interface for hosting or joining an offline-first clinic. The main workflow runs from choosing server or client mode through prerequisite checks and setup, then into clinic operations such as backups, updates, storage, and settings; client mode instead discovers a clinic and installs its trusted certificate. The README documents these capabilities, while sampled source confirms selected UI and backend relationships. Several larger modules were not sampled, so their internal call paths are not asserted here.
Main entry points: app.go App API · app_client.go Client connection API · app_storage.go Storage reporting · setup-screen.tsx Setup wizard
Components 24
Desktop shell
- Desktop app
app/main.go - App API
app/app.go - React interface
app/frontend/src/main.tsx
Server setup
- Setup wizard
app/frontend/src/screens/setup/setup-screen.tsx - Setup steps
app/frontend/src/screens/setup/setup-layout.tsx - Requirement checks
app/frontend/src/screens/setup/requirement-step.tsx - Setup model
app/frontend/src/screens/setup/setup-model.ts - Host provisioning
app/internal/prereq/provision.go
Clinic operations
- Clinic engine
app/internal/clinic - Backup recovery
app/app_recovery.go - Plugin catalog
app/internal/plugins/plugins.go - Plugin transactions
app/internal/clinic/plugin_transaction.go - Compose builds
app/internal/compose/build.go - Storage reporting
app/app_storage.go - Storage assessment
app/internal/storage/storage.go - Storage page
app/frontend/src/screens/panel/storage-tab.tsx - Control panel
app/frontend/src/screens/panel/panel-ui.tsx
Client connection
- Client setup
app/frontend/src/screens/client-screen.tsx - Client connection API
app/app_client.go - Certificate trust
app/internal/sys/trust/client.go
Host integrations
- Legacy cleanup
app/internal/residue/residue.go - Hosts repair
app/internal/sys/hosts/hosts.go - Local discovery
app/internal/sys/mdns/responder.go
Other components
- Clinic staff
Connections 22
- Clinic staff → React interface: uses
- React interface → Desktop app: invokes
- Desktop app → App API: binds
app/main.go - Setup wizard → Setup steps: renders
app/frontend/src/screens/setup/setup-screen.tsx - Setup wizard → Requirement checks: renders
app/frontend/src/screens/setup/setup-screen.tsx - Requirement checks → Setup model: uses
app/frontend/src/screens/setup/requirement-step.tsx - App API → Host provisioning: provisions host
- Host provisioning → Clinic engine: prepares runtime
- Clinic staff → Client setup: connects
- Client setup → Client connection API: calls
- Client connection API → Certificate trust: verifies certificate
app/app_client.go - Client connection API → Local discovery: resolves clinic
app/app_client.go - Client connection API → Hosts repair: checks overrides
app/app_client.go - App API → Backup recovery: handles restore
app/app_recovery.go - Plugin transactions → Plugin catalog: uses catalog
app/internal/clinic/plugin_transaction.go - Plugin transactions → Compose builds: uses builds
app/internal/clinic/plugin_transaction.go - App API → Storage reporting: reports storage
app/app_storage.go - Storage reporting → Storage assessment: assesses space
app/app_storage.go - Storage page → Storage reporting: requests checks
- Clinic staff → Control panel: operates clinic
- App API → Clinic engine: controls services
- Client connection API → Legacy cleanup: cleans leftovers