Added service configuration generator with .env as primary config source: ## Config Generator v1.0.0 - Generates service-specific configs for GitLab stack projects - Primary configuration source: .env (NOT separate config files per environment) - Service templates: Nginx (3 variants), PostgreSQL (3 variants), Redis (3 variants) - Each service gets own directory with flat config structure inside - Meta files generation: CLAUDE.md, .gitignore, .dockerignore ## Key Features - Service templates with user-selectable defaults - Strict .env and .env.example synchronization (CRITICAL) - No secrets in configs (integrates with secrets-manager) - Path validation (all referenced paths must exist) - Docker validation (uses docker-validation skill) - CLAUDE.md generation with commit message rule (NO "Claude" mentions) - Comprehensive validation before completion ## Service Templates ### Nginx - Simple Reverse Proxy (default) - SSL Termination (certificates from Docker secrets) - Static Files + API Proxy ### PostgreSQL - Basic (default) - development-friendly - Production - optimized settings, monitoring - With Extensions - PostGIS, UUID, etc. ### Redis - Cache (default) - no persistence - Persistent - RDB + AOF - Pub/Sub - messaging-optimized ## Documentation - SKILL.md: Complete 7-phase configuration workflow - service-templates.md: All templates with complete examples - validation-rules.md: Validation rules reference - README.md: User guide with workflows ## Integration - secrets-manager: Called when secrets detected in configs - docker-validation: Validates docker-compose.yml (ALWAYS) - stack-validator: Complete stack validation after generation ## Versioning - Marketplace: 0.6.2 (0.6.x = skill management features)
6.3 KiB
GitLab Stack Config Generator
Generate service-specific configuration files for GitLab stack projects with .env as the primary configuration source
Overview
The Config Generator skill creates service configurations for GitLab stack projects, ensuring all configs use .env variables, never contain secrets, and follow proper patterns. It also generates essential project meta files (CLAUDE.md, .gitignore, .dockerignore).
Core Principle: .env is the single source of configuration truth.
Features
- Service Templates: Nginx, PostgreSQL, Redis (more services supported)
- Meta Files: CLAUDE.md, .gitignore, .dockerignore generation
- .env Management: All config from .env, strict .env/.env.example sync
- Security: No secrets in configs (uses secrets-manager)
- Validation: Syntax, paths, Docker configs (uses docker-validation)
- Directory Structure: Service-specific directories with flat configs
When to Use
- Generate configuration files for services
- Set up new stack configurations
- Create project meta files (CLAUDE.md, .gitignore)
- Ensure .env and .env.example are synchronized
- Validate existing configurations
Installation
/plugin marketplace add rknall/Skills
/plugin install config-generator
Quick Start
Generate Service Configs
# Generate nginx and PostgreSQL configs
claude "generate nginx and postgres configs"
# User will be prompted for template selection
Generate Meta Files Only
# Create CLAUDE.md, .gitignore, .dockerignore
claude "generate project meta files"
Available Templates
Nginx
- Simple Reverse Proxy (default) - Basic proxy to backend
- SSL Termination - HTTPS with certificates from Docker secrets
- Static + API Proxy - Serve static files + proxy API
- Custom - User-specified requirements
PostgreSQL
- Basic (default) - Standard settings for development
- Production - Optimized for production with monitoring
- With Extensions - PostGIS, UUID, etc.
- Custom - User-specified
Redis
- Cache (default) - No persistence, memory-only
- Persistent - RDB + AOF persistence
- Pub/Sub - Optimized for messaging
- Custom - User-specified
Configuration Principles
1. .env as Configuration Source
All configuration variables in .env:
# .env
NGINX_PORT=80
NGINX_HOST=localhost
POSTGRES_DB=myapp_db
REDIS_MAXMEMORY=256mb
2. No Secrets in Configs
Secrets ONLY in ./secrets via Docker secrets:
# ❌ BAD - Secret in config
password: supersecret123
# ✅ GOOD - Reference to Docker secret
# Password loaded from /run/secrets/db_password
3. .env and .env.example Sync
CRITICAL: Must always match:
# Both files must have identical variable names
# Values in .env.example can be defaults/examples
4. Service Directory Structure
./config/
├── nginx/
│ └── nginx.conf # Flat inside service dir
├── postgres/
│ ├── postgresql.conf
│ └── init.sql
└── redis/
└── redis.conf
Example Usage
Complete Stack Setup
claude "Set up config for nginx, postgres, and redis"
Workflow:
- Checks current state
- Creates ./config/ directories
- Generates meta files (CLAUDE.md, .gitignore, .dockerignore)
- Asks for template selection
- Generates configs with .env variables
- Syncs .env.example
- Updates docker-compose.yml
- Validates (secrets, paths, Docker)
- Provides comprehensive report
Update Existing Config
claude "Update nginx config to use SSL"
Validation
Automatic Checks
-
Secret Detection (CRITICAL)
- Scans all configs for secret patterns
- Uses secrets-manager if found
-
.env Sync (CRITICAL)
- Ensures .env and .env.example match
- Reports any mismatches
-
Path Validation
- All referenced paths exist
- Volume mounts are valid
-
Docker Validation
- Uses docker-validation skill
- Addresses all findings
-
Syntax Validation
- Nginx:
nginx -t - PostgreSQL: SQL syntax
- Redis: Config test
- Nginx:
Meta Files Generated
CLAUDE.md
CRITICAL CONTENT:
- "NEVER mention Claude in commit messages"
- Stack architecture overview
- Configuration patterns
- Secrets management rules
- Directory structure
- Available skills
.gitignore
Excludes:
/secrets/*(except .gitkeep).env/_temporary/*- IDE files, OS files
- Logs, backups
.dockerignore
Excludes from Docker builds:
.git/,.env,secrets/- Documentation (
*.md) - IDE files
- Logs
Integration with Companion Skills
secrets-manager
Called when:
- Secrets detected in configs
- SSL certificates needed
- Any secret-related operations
docker-validation
Called for:
- docker-compose.yml validation (ALWAYS)
- Dockerfile validation if present
stack-validator
Used for:
- Complete stack validation after generation
- Ensure all patterns followed
Common Workflows
New Stack Setup
# 1. Generate configs
claude "generate nginx, postgres, redis configs with SSL for nginx"
# 2. Review generated files
ls -la config/
cat .env
cat CLAUDE.md
# 3. Validate
docker compose config
# 4. Start
docker compose up -d
Add Service to Existing Stack
claude "add redis config to my stack"
Troubleshooting
Issue: .env and .env.example out of sync
Fix:
claude "sync .env.example with .env"
Issue: Secret detected in config
Response:
❌ CRITICAL: Secret detected in ./config/nginx/nginx.conf
Line 15: password=abc123
Action: Use secrets-manager to move to Docker secrets
Issue: Docker validation fails
Response: Address docker-validation findings before completing
Reference Documentation
- SKILL.md - Complete workflow and validation
- service-templates.md - All templates with examples
- validation-rules.md - Validation rules reference
Version History
v1.0.0 (2025-10-20)
- Initial release
- Nginx, PostgreSQL, Redis templates
- Meta files generation (CLAUDE.md, .gitignore, .dockerignore)
- Strict secret and .env validation
- Integration with secrets-manager and docker-validation
Generate secure, validated service configurations following GitLab stack patterns.