- Set Spanish as default language with ephemeral/encrypted privacy focus - Translate all user-facing strings and legal pages to Spanish - Replace Norwegian flag with Spanish flag in footer - Remove Hemmelig/terces.cloud links, add cloudhost.es sponsorship - Rewrite PrivacyPage: zero data collection, ephemeral design emphasis - Rewrite TermsPage: Spanish law, RGPD, paste.es/CloudHost.es references - Update PWA manifest, HTML meta tags, package.json branding - Rename webhook headers to X-Paste-Event / X-Paste-Signature - Update API docs title and contact to paste.es / cloudhost.es Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
96 lines
1.9 KiB
Markdown
96 lines
1.9 KiB
Markdown
# Health Check Endpoints
|
|
|
|
Hemmelig provides health check endpoints for monitoring and container orchestration.
|
|
|
|
## Endpoints
|
|
|
|
### Liveness Probe
|
|
|
|
```
|
|
GET /api/health/live
|
|
```
|
|
|
|
Simple check confirming the process is running. Use for Kubernetes liveness probes.
|
|
|
|
**Response:** `200 OK`
|
|
|
|
```json
|
|
{
|
|
"status": "healthy",
|
|
"timestamp": "2024-01-15T10:30:00.000Z"
|
|
}
|
|
```
|
|
|
|
### Readiness Probe
|
|
|
|
```
|
|
GET /api/health/ready
|
|
```
|
|
|
|
Comprehensive check verifying all dependencies are operational. Use for Kubernetes readiness probes.
|
|
|
|
**Checks performed:**
|
|
|
|
| Check | Description |
|
|
| ------------ | ---------------------------------------- |
|
|
| **Database** | Executes `SELECT 1`, measures latency |
|
|
| **Storage** | Verifies uploads directory is read/write |
|
|
| **Memory** | Checks RSS is below 1GB threshold |
|
|
|
|
**Response:** `200 OK` (all healthy) or `503 Service Unavailable` (one or more failed)
|
|
|
|
```json
|
|
{
|
|
"status": "healthy",
|
|
"timestamp": "2024-01-15T10:30:00.000Z",
|
|
"checks": {
|
|
"database": { "status": "healthy", "latency_ms": 2 },
|
|
"storage": { "status": "healthy" },
|
|
"memory": {
|
|
"status": "healthy",
|
|
"heap_used_mb": 128,
|
|
"heap_total_mb": 256,
|
|
"rss_mb": 312,
|
|
"rss_threshold_mb": 1024
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Legacy Endpoint
|
|
|
|
```
|
|
GET /api/healthz
|
|
```
|
|
|
|
Kept for backwards compatibility. Consider using `/api/health/live` instead.
|
|
|
|
## Kubernetes Configuration
|
|
|
|
```yaml
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /api/health/live
|
|
port: 3000
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /api/health/ready
|
|
port: 3000
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 30
|
|
```
|
|
|
|
## Docker Compose
|
|
|
|
```yaml
|
|
healthcheck:
|
|
test: ['CMD', 'curl', '-f', 'http://localhost:3000/api/health/ready']
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 10s
|
|
```
|