138 lines
3.7 KiB
Markdown
138 lines
3.7 KiB
Markdown
# Probod Operations Documentation
|
|
|
|
This documentation provides operational guidance for deploying, configuring, and managing the Probod compliance management daemon.
|
|
|
|
## Service Components
|
|
|
|
Probod requires the following components for operation:
|
|
|
|
- **probod**: Main service daemon
|
|
- **PostgreSQL**: Database backend (version 17+)
|
|
- **S3-Compatible Storage**: Object storage (AWS S3, MinIO, etc.)
|
|
- **Chrome DevTools Protocol**: PDF generation service
|
|
|
|
## Deployment Guide
|
|
|
|
- **[Installation Guide](./INSTALLATION.md)** - Docker and binary deployment procedures
|
|
- **[Configuration Reference](./CONFIGURATION.md)** - Complete configuration options and examples
|
|
|
|
## Quick Deployment
|
|
|
|
### Docker Deployment
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name probod \
|
|
-p 8080:8080 \
|
|
-v /path/to/config.yaml:/etc/probod/config.yaml \
|
|
ghcr.io/getprobo/probo:latest
|
|
```
|
|
|
|
### Service Verification
|
|
|
|
```bash
|
|
# Health check
|
|
curl http://localhost:8080/health
|
|
|
|
# Service logs
|
|
docker logs probod
|
|
```
|
|
|
|
## System Requirements
|
|
|
|
### Minimum Requirements
|
|
|
|
- **CPU**: 1 core, 2 GHz
|
|
- **Memory**: 1 GB RAM
|
|
- **Storage**: 10 GB available space
|
|
- **Database**: PostgreSQL 12+
|
|
- **Storage Backend**: S3-compatible object storage
|
|
|
|
### Recommended for Production
|
|
|
|
- **CPU**: 2+ cores, 2.4 GHz
|
|
- **Memory**: 4 GB RAM
|
|
- **Storage**: 50 GB SSD
|
|
- **Database**: Managed PostgreSQL with backups
|
|
- **Load Balancer**: For high availability deployments
|
|
|
|
## External Dependencies
|
|
|
|
### Required Services
|
|
|
|
- **PostgreSQL Database**: Primary data storage
|
|
- **S3-Compatible Storage**: File and document storage (AWS S3, MinIO, etc.)
|
|
- **Chrome/Chromium**: PDF generation via DevTools Protocol
|
|
|
|
### Optional Integrations
|
|
|
|
- **SMTP Server**: Email notifications
|
|
- **OpenAI API**: AI-powered features
|
|
- **OAuth2 Providers**: External service integrations (GitHub, Slack, etc.)
|
|
|
|
## Production Deployment
|
|
|
|
### High Availability
|
|
|
|
- Deploy multiple probod instances behind a load balancer
|
|
- Use managed PostgreSQL with read replicas
|
|
- Configure distributed object storage
|
|
- Implement monitoring and alerting
|
|
|
|
### Security Configuration
|
|
|
|
- Enable TLS for all external communications
|
|
- Use strong, unique secrets for authentication components
|
|
- Configure network security groups and firewalls
|
|
- Regular security updates and vulnerability scanning
|
|
|
|
## Operations
|
|
|
|
### Monitoring
|
|
|
|
- **Health Check**: `GET /health`
|
|
- **Metrics**: Prometheus-compatible metrics at `/metrics` endpoint
|
|
- **Tracing**: OpenTelemetry distributed tracing support
|
|
- **Logging**: Structured JSON logging with configurable levels
|
|
|
|
#### Configuration-Based Observability
|
|
|
|
Probod provides built-in observability configured through the main configuration file:
|
|
|
|
- **Prometheus Metrics**: Configure `unit.metrics.addr` for metrics endpoint
|
|
- **OpenTelemetry Tracing**: Configure `unit.tracing` section for trace collection
|
|
- **Structured Logging**: Automatic JSON logging with correlation IDs
|
|
|
|
#### Configuration Example
|
|
|
|
```yaml
|
|
unit:
|
|
metrics:
|
|
addr: "0.0.0.0:8081"
|
|
tracing:
|
|
addr: "tempo:4317"
|
|
```
|
|
|
|
See [Configuration Reference](./CONFIGURATION.md#telemetry-and-observability) for complete details.
|
|
|
|
### Backup and Recovery
|
|
|
|
- **Database**: Regular PostgreSQL backups with point-in-time recovery
|
|
- **Object Storage**: S3 versioning and cross-region replication
|
|
- **Configuration**: Version control all configuration files
|
|
|
|
### Troubleshooting
|
|
|
|
Common operational issues:
|
|
|
|
- Verify database connectivity and credentials
|
|
- Check S3 storage access permissions
|
|
- Validate configuration file syntax
|
|
- Review service logs for startup errors
|
|
|
|
## Support
|
|
|
|
- **Repository**: [getprobo/probo](https://github.com/getprobo/probo)
|
|
- **Issues**: Report operational problems on GitHub
|
|
- **Releases**: [GitHub releases](https://github.com/getprobo/probo/releases)
|