Skip to content

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