mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-02-18 00:17:39 +01:00
Implements server-side persistence for AI chat sessions, allowing users to continue conversations across devices and browser sessions. Related to #1059. Backend: - Add chat session CRUD API endpoints (GET/PUT/DELETE) - Add persistence layer with per-user session storage - Support session cleanup for old sessions (90 days) - Multi-user support via auth context Frontend: - Rewrite aiChat store with server sync (debounced) - Add session management UI (new conversation, switch, delete) - Local storage as fallback/cache - Initialize sync on app startup when AI is enabled
2.5 KiB
2.5 KiB
Deployment Models
Pulse supports multiple deployment models. This page clarifies what differs between them and where “truth” lives (paths, updates, and operational constraints).
Summary
| Model | Recommended for | Data/config path | Updates |
|---|---|---|---|
| Proxmox VE LXC (installer) | Proxmox-first deployments | /etc/pulse |
In-app updates supported |
| systemd (bare metal / VM) | Traditional Linux hosts | /etc/pulse |
In-app updates supported |
| Docker | Quick evaluation and container stacks | /data (bind mount / volume) |
Image pull + restart |
| Kubernetes (Helm) | Cluster operators | /data (PVC) |
Helm upgrade |
Common Ports
- UI/API:
7655/tcp - Prometheus metrics:
9091/tcp(/metricson a separate listener)
Docker and Kubernetes do not publish 9091 unless you explicitly expose it.
Where Configuration Lives
Pulse uses a split config model:
- Local auth and secrets:
.env(managed by Quick Security Setup or environment overrides, not shown in the UI) - Encryption key:
.encryption.key(required to decrypt.encfiles) - System settings:
system.json(editable in the UI unless locked by env) - Nodes and credentials:
nodes.enc(encrypted) - Notification config:
email.enc,webhooks.enc,apprise.enc(encrypted) - API tokens:
api_tokens.json - Legacy token suppressions:
env_token_suppressions.json - AI config:
ai.enc(encrypted) - AI patrol data:
ai_findings.json,ai_patrol_runs.json,ai_usage_history.json - Pulse Pro license:
license.enc(encrypted) - Host metadata:
host_metadata.json - Docker metadata:
docker_metadata.json - Guest metadata:
guest_metadata.json - Agent profiles:
agent_profiles.json - Agent profile assignments:
agent_profile_assignments.json - Sessions:
sessions.json(persistent sessions, sensitive) - Recovery tokens:
recovery_tokens.json - Update history:
update-history.jsonl - Metrics history:
metrics.db(SQLite)
Path mapping:
- systemd/LXC:
/etc/pulse/* - Docker/Helm:
/data/*
Updates by Model
systemd and Proxmox LXC
Use the UI:
- Settings → System → Updates
These deployments can apply updates by downloading a release and swapping binaries/config safely with backups and history.
Docker
Pull a new image and restart:
docker pull rcourtman/pulse:latest
docker compose up -d
Kubernetes (Helm)
Upgrade the chart (OCI):
helm upgrade pulse oci://ghcr.io/rcourtman/pulse-chart -n pulse