Available Containers¶
The Solti-Containers collection provides the following containerized services:
Elasticsearch¶
Purpose: Search and analytics engine
Image: docker.io/elasticsearch:8.12.1
Ports: - 9200: Elasticsearch API - 8080: Elasticvue GUI
Key Features: - X-Pack security enabled - Optional TLS support - Elasticvue web interface included - Configurable JVM heap size
Use Cases: - Testing search functionality - Log aggregation testing - Full-text search development - Analytics pipeline testing
Documentation: See Elasticsearch Role
HashiVault¶
Purpose: Secrets management
Image: docker.io/hashicorp/vault:1.15
Ports: - 8200: API and Web UI - 8201: Cluster port
Key Features: - File or Raft storage backend - Auto-initialization support - Multiple secret engines (KV, PKI, SSH, Transit) - Built-in audit logging
Use Cases: - Testing secrets injection - Certificate authority testing - Encryption as a service development - Dynamic credentials testing
Documentation: See HashiVault Role
Mattermost¶
Purpose: Team collaboration and notification platform
Image: mattermost/mattermost-team-edition:latest
Ports: - 8065: Web interface and API
Key Features: - PostgreSQL database included - Webhook integrations - Bot API support - TLS support
Use Cases: - Test result notifications - CI/CD integration testing - Bot development - Webhook testing
Documentation: See Mattermost Role
Redis¶
Purpose: In-memory data store
Image: redis:alpine
Ports: - 6379: Redis server - 8081: RedisInsight GUI
Key Features: - Password authentication - Configurable memory limits - RedisInsight web interface - Persistence options
Use Cases: - Cache testing - Session store testing - Queue implementation testing - Key-value storage testing
Documentation: See Redis Role
Traefik¶
Purpose: HTTP reverse proxy and load balancer
Image: traefik:latest
Ports: - 8080: HTTP (or 80 if privileged) - 8443: HTTPS (or 443 if privileged) - 9999: Dashboard
Key Features: - Automatic service discovery - Let's Encrypt integration - Dynamic configuration - Metrics and monitoring
Use Cases: - Reverse proxy testing - SSL/TLS termination testing - Multi-service routing - Load balancing testing
Documentation: See Traefik Role
MinIO¶
Purpose: S3-compatible object storage
Image: minio/minio:latest
Ports: - 9000: S3 API - 9001: Web console
Key Features: - S3-compatible API - Web-based management console - Versioning support - Policy-based access control
Use Cases: - S3 integration testing - Backup workflow testing - Object storage development - Multi-cloud compatibility testing
Documentation: See MinIO Role
Wazuh (In Development)¶
Purpose: Security monitoring and threat detection
Image: wazuh/wazuh-manager:4.7.2
Status: Role exists but containers are not stable yet
Planned Features: - Manager, Indexer, and Dashboard containers - Agent enrollment testing - Security event collection - Compliance monitoring
Use Cases (when complete): - Security monitoring testing - Compliance workflow testing - Intrusion detection testing - Log analysis testing
Documentation: See Wazuh Role
Common Features Across All Containers¶
Management Scripts¶
All containers support these standard commands:
# Prepare host system (one-time)
./manage-svc.sh <service> prepare
# Deploy container
./manage-svc.sh <service> deploy
# Remove container (keep data)
./manage-svc.sh <service> remove
# Verify deployment
./svc-exec.sh <service> verify
# Service-specific tasks
./svc-exec.sh <service> <task-name>
Directory Structure¶
All services create a consistent directory layout:
~/<service>-data/
├── config/ # Configuration files
├── data/ # Persistent data
└── logs/ # Log files
Systemd Integration¶
All services use Podman Quadlets for systemd integration:
- Pod definition:
~/.config/containers/systemd/<service>.pod - Container definitions:
~/.config/containers/systemd/<service>-*.container - Service management:
systemctl --user <operation> <service>-pod
Platform Support¶
- RHEL/CentOS 9+
- Debian 12+
- Ubuntu 22.04+
- SELinux support on RHEL-based systems
Quick Comparison¶
| Service | Memory | Startup Time | Complexity | Best For |
|---|---|---|---|---|
| Redis | Low | Seconds | Simple | Caching, queues |
| MinIO | Low | Seconds | Simple | Object storage |
| Traefik | Low | Seconds | Medium | Reverse proxy |
| Mattermost | Medium | ~30 sec | Medium | Notifications, webhooks |
| HashiVault | Low | Seconds | Medium | Secrets management |
| Elasticsearch | High | ~60 sec | Complex | Search, analytics |
| Wazuh | High | ~90 sec | Complex | Security monitoring |