chore: rename quicproquo → quicprochat in docs, Docker, CI, and packaging

Rename all project references from quicproquo/qpq to quicprochat/qpc
across documentation, Docker configuration, CI workflows, packaging
scripts, operational configs, and build tooling.

- Docker: crate paths, binary names, user/group, data dirs, env vars
- CI: workflow crate references, binary names, artifact names
- Docs: all markdown files under docs/, SDK READMEs, book.toml
- Packaging: OpenWrt Makefile, init script, UCI config (file renames)
- Scripts: justfile, dev-shell, screenshot, cross-compile, ai_team
- Operations: Prometheus config, alert rules, Grafana dashboard
- Config: .env.example (QPQ_* → QPC_*), CODEOWNERS paths
- Top-level: README, CONTRIBUTING, ROADMAP, CLAUDE.md
This commit is contained in:
2026-03-07 18:46:43 +01:00
parent a710037dde
commit 2e081ead8e
179 changed files with 1645 additions and 1645 deletions

View File

@@ -1,6 +1,6 @@
# Monitoring Guide
This document covers metrics collection, alerting, and dashboards for quicproquo.
This document covers metrics collection, alerting, and dashboards for quicprochat.
## Enabling Metrics
@@ -8,10 +8,10 @@ The server exports Prometheus metrics via HTTP when configured:
```bash
# Environment variables
QPQ_METRICS_LISTEN=0.0.0.0:9090
QPQ_METRICS_ENABLED=true
QPC_METRICS_LISTEN=0.0.0.0:9090
QPC_METRICS_ENABLED=true
# Or in qpq-server.toml
# Or in qpc-server.toml
metrics_listen = "0.0.0.0:9090"
metrics_enabled = true
```
@@ -48,9 +48,9 @@ global:
evaluation_interval: 15s
scrape_configs:
- job_name: 'qpq-server'
- job_name: 'qpc-server'
static_targets:
- targets: ['qpq-server:9090']
- targets: ['qpc-server:9090']
scrape_interval: 10s
```
@@ -59,17 +59,17 @@ scrape_configs:
```yaml
# prometheus-alerts.yml
groups:
- name: qpq-server
- name: qpc-server
rules:
# Server down
- alert: QpqServerDown
expr: up{job="qpq-server"} == 0
expr: up{job="qpc-server"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "qpq-server is down"
description: "Prometheus cannot scrape qpq-server metrics for > 1 minute."
summary: "qpc-server is down"
description: "Prometheus cannot scrape qpc-server metrics for > 1 minute."
# High auth failure rate (potential brute force)
- alert: QpqHighAuthFailureRate
@@ -136,7 +136,7 @@ groups:
## Key Dashboard Panels
See `dashboards/qpq-overview.json` for the full Grafana dashboard. Key panels:
See `dashboards/qpc-overview.json` for the full Grafana dashboard. Key panels:
### Message Throughput
- **Enqueue rate**: `rate(enqueue_total[5m])`
@@ -160,10 +160,10 @@ See `dashboards/qpq-overview.json` for the full Grafana dashboard. Key panels:
## Grafana Dashboard
Import the dashboard from `dashboards/qpq-overview.json`:
Import the dashboard from `dashboards/qpc-overview.json`:
1. Open Grafana -> Dashboards -> Import
2. Upload `docs/operations/dashboards/qpq-overview.json`
2. Upload `docs/operations/dashboards/qpc-overview.json`
3. Select your Prometheus data source
4. Save
@@ -176,7 +176,7 @@ The server uses `tracing` with `RUST_LOG` environment variable:
RUST_LOG=info
# Debug specific modules
RUST_LOG=info,quicproquo_server::node_service=debug
RUST_LOG=info,quicprochat_server::node_service=debug
# Verbose debugging
RUST_LOG=debug
@@ -189,7 +189,7 @@ RUST_LOG=debug
| `"TLS certificate expires within 30 days"` | Cert expiring soon | Rotate certificate |
| `"TLS certificate is self-signed"` | Self-signed cert in use | Replace with CA-signed cert in production |
| `"connection rate limit exceeded"` | IP being rate limited | Check for DDoS |
| `"running without QPQ_AUTH_TOKEN"` | Insecure mode | Must not appear in production |
| `"running without QPC_AUTH_TOKEN"` | Insecure mode | Must not appear in production |
| `"db_key is empty; SQL store will be plaintext"` | Unencrypted DB | Must not appear in production |
| `"shutdown signal received"` | Graceful shutdown started | Expected during deploys |
| `"generated and persisted new OPAQUE ServerSetup"` | Fresh OPAQUE setup | Expected on first start only |
@@ -200,13 +200,13 @@ For production, pipe logs to a log aggregator:
```bash
# Systemd -> journald -> Loki/Elasticsearch
journalctl -u qpq-server -f --output=json | \
journalctl -u qpc-server -f --output=json | \
promtail --stdin --client.url=http://loki:3100/loki/api/v1/push
# Docker -> Loki driver
docker run --log-driver=loki \
--log-opt loki-url="http://loki:3100/loki/api/v1/push" \
qpq-server
qpc-server
```
## Health Checking
@@ -221,5 +221,5 @@ ss -ulnp | grep 7000
curl -sf http://localhost:9090/metrics > /dev/null
# Full client connection test
qpq-client --server 127.0.0.1:7000 --auth-token "$TOKEN" --ping
qpc-client --server 127.0.0.1:7000 --auth-token "$TOKEN" --ping
```