Clear NDR Templates

June 8, 2026 · View on GitHub

Note: This repository contains configuration templates for stamusctl. For CLI tool issues, please report them to the main stamusctl repository.

Overview

This repository provides public templates for deploying Stamus Networks security solutions using stamusctl. Templates are consumed by the CLI tool to generate Docker Compose configurations and related deployment files.

For comprehensive documentation, visit https://docs.clearndr.io/.

Available Templates

Clear NDR

The clearndr template deploys Clear NDR Community with the following components:

  • Suricata: Network intrusion detection system
  • Scirius: Web-based rule management and event analysis
  • OpenSearch: Search and analytics engine
  • OpenSearch Dashboards: Data visualization interface
  • Arkime: Network packet capture and analysis
  • Evebox: Event and alert management
  • AI Chat (LibreChat): AI-powered chat interface (optional)
  • NGINX: Web proxy and SSL termination

Template Structure

data/
├── clearndr/               # Clear NDR template
│   ├── compose.yml         # Main Docker Compose template
│   ├── config.yaml         # Template configuration
│   └── [components]/       # Component-specific configs
└── tests/                  # Test configurations

Configuration Values

Clear NDR Template

KeyDefaultUsage
aichatfalseEnable AI Chat (LibreChat) functionality
aichat.openPorttrueExpose AI Chat port
aichat.port3000Port to expose AI Chat on host
aichat.anthropic_api_keyAnthropic API key for Claude models
aichat.openai_api_keyOpenAI API key for GPT-4/GPT-4o models
aichat.google_api_keyGoogle API key for Gemini models
aichat.default_user_emailadmin@clearndr.localDefault user email (auto-created on first start)
aichat.default_user_passwordclearndrDefault user password (minimum 8 characters)
aichat.default_user_nameAdminDefault user display name
arkime.openportfalseOpen port for Arkime Viewer ?
cron.logrotate.enabledtrueEnable logrotate for Suricata logs
cron.logrotate.perioddailyLogrotate period (1min, daily, weekly, monthly)
cron.updatesurirules.enabledtrueEnable automatic update of Suricata rules
cron.updatesurirules.perioddailyUpdate period (1min, daily, weekly, monthly)
evebox.versionmasterEvebox version to install
globals.restartmodeunless-stoppedRestart mode for all services
globals.proxy.enabledfalseEnable proxy support for all services
globals.proxy.httpHTTP proxy URL (e.g., http://proxy.company.com:3128)
globals.proxy.httpsHTTPS proxy URL (e.g., http://proxy.company.com:3128)
globals.proxy.no_proxylocalhost,127.0.0.1,opensearch,opensearch-dashboards,scirius,scout,nginxComma-separated list of hosts that should not use proxy
nginx.ssl.certnamescirius.crtName of the certificate file. Used only if ssl.enabled is true.
nginx.ssl.enabledtrueEnable SSL for NGINX
nginx.ssl.folderFolder on host containing SSL certificates. If set, disable automatic generation of self-signed certificates. Use absolute path.
nginx.ssl.keynamescirius.keyName of the private key file. Used only if ssl.enabled is true.
opensearch.dashboards.openporttrueExpose OpenSearch Dashboards port
opensearch.datapathopensearch-dataData path on host to store OpenSearch data
opensearch.ism.delete_min_index_age15dMinimum index age before transitioning to delete state
opensearch.ism.warm_min_index_age7dMinimum index age before transitioning to warm state
opensearch.memory2gMemory limit for OpenSearch
opensearch.openportfalseExpose OpenSearch port
rabbitmq.openportfalseExpose RabbitMQ port
scirius.celery.beat.restartunless-stoppedCelery beat restart mode
scirius.celery.worker.restartunless-stoppedCelery worker restart mode
scirius.debugfalseEnable debug mode
scirius.registryghcr.io/stamusnetworks/sciriusImage registry where to find scirius image
scirius.versionclear-ndr-rc3Scirius version to install
suricata.additionalconfigAdditional configuration for Suricata
suricata.homenet192.168.0.0/16,10.0.0.0/8,172.16.0.0/12Home network CIDR ranges
suricata.interfacesList of interfaces to monitor
suricata.unixsocket.enabledfalseEnable Unix Socket Output for Suricata Eve logs ?
KeyDefaultUsage

Template Variables

Templates use Go template syntax with the following top-level variables:

VariableDescription
.ValuesUser-provided configuration values
.Release.nameName of the release
.Release.userUser creating the release
.Release.groupUser's group creating the release
.Release.locationRelease deployment location
.Release.isUpgradeWhether the release is an upgrade
.Release.isInstallWhether the release is an install
.Release.serviceService creating the release (stamusctl/stamusd)
.Template.nameName of the current template
.Release.versionVersion of the current template

Usage

Templates are consumed by stamusctl:

# Initialize with default template (clearndr)
stamusctl compose init

# Initialize with custom values
stamusctl compose init suricata.interfaces=eth0 opensearch.memory=4g

# Use specific template version
stamusctl compose init --version v1.2.0

# View available configuration keys
stamusctl config keys --markdown

Development

Template Development

Templates use Go's text/template package with Sprig functions.

Key Guidelines:

  • Use descriptive configuration keys
  • Provide sensible defaults
  • Include comprehensive documentation
  • Test with various configuration scenarios

Testing

Test templates locally:

# Build and test template
make -C bin/tests

# Test specific configuration
stamusctl compose init --template ./data/clearndr suricata.interfaces=eth0

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

Issues

Report template-related issues to this repository:

  • Template configuration problems
  • Missing template features
  • Documentation improvements
  • New template requests

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for details.

Support