- Add host metadata API for custom URL editing on hosts page - Enhance AI routing with unified resource provider lookup - Add encryption key watcher script for debugging key issues - Improve AI service with better command timeout handling - Update dev environment workflow with key monitoring docs - Fix resource store deduplication logic
63 lines
2.1 KiB
Markdown
63 lines
2.1 KiB
Markdown
---
|
|
description: How the development environment works and how to manage it
|
|
---
|
|
|
|
# Pulse Development Environment
|
|
|
|
This is a **development-only machine**. Production is never run here.
|
|
|
|
## Primary Service: `pulse-hot-dev`
|
|
|
|
The dev environment uses a **single systemd service** that runs both backend and frontend with hot-reloading:
|
|
|
|
```bash
|
|
# Status check
|
|
systemctl status pulse-hot-dev
|
|
|
|
# Restart (if needed)
|
|
// turbo
|
|
sudo systemctl restart pulse-hot-dev
|
|
|
|
# View logs
|
|
journalctl -u pulse-hot-dev -f
|
|
```
|
|
|
|
### What `pulse-hot-dev` does:
|
|
1. **Go Backend** (`./pulse`): Monitored by `inotifywait` - auto-rebuilds and restarts when `.go` files change
|
|
2. **Vite Frontend**: HMR enabled - browser updates instantly when frontend files change
|
|
|
|
### Access URLs:
|
|
- **Frontend**: http://192.168.0.123:5173/ (Vite dev server with HMR)
|
|
- **Backend API**: http://192.168.0.123:7655/ (Go server, proxied through Vite)
|
|
|
|
## DO NOT USE these services in development:
|
|
- `pulse.service` - This is for production (runs pre-built binary without hot-reload)
|
|
- Do NOT create separate `pulse-frontend.service` - the hot-dev script handles everything
|
|
|
|
## When things don't work:
|
|
|
|
1. **Frontend not loading at :5173** → Check if `pulse-hot-dev` is running
|
|
2. **Backend changes not reflected** → Check logs: `journalctl -u pulse-hot-dev -f`
|
|
3. **Need full restart** → `sudo systemctl restart pulse-hot-dev`
|
|
|
|
## Key Files:
|
|
- **Hot-dev script**: `/opt/pulse/scripts/hot-dev.sh`
|
|
- **Systemd service**: `/etc/systemd/system/pulse-hot-dev.service`
|
|
- **Makefile targets**: `make dev` or `make dev-hot`
|
|
|
|
## Encryption Key Monitoring
|
|
|
|
A watcher service monitors the encryption key file for any changes or deletions:
|
|
|
|
```bash
|
|
# Check if the watcher is running
|
|
systemctl status encryption-key-watcher
|
|
|
|
# View recent encryption key events
|
|
sudo journalctl -u encryption-key-watcher -n 50
|
|
|
|
# View events around a specific time
|
|
sudo journalctl -u encryption-key-watcher --since "2025-12-09 14:00" --until "2025-12-09 15:00"
|
|
```
|
|
|
|
If the key ever goes missing, the logs will show what event happened and which processes had files open in `/etc/pulse` at that time.
|