Skip to content
Back to skills

Configuration Generator

ASecurity

Generate configuration files for applications, services, and infrastructure. Use when: (1) Setting up new projects (package.json, requirements.txt, tsconfig.json), (2) Creating Docker or Kubernetes configurations, (3) Configuring CI/CD pipelines (GitHub Actions, GitLab CI, CircleCI), (4) Setting up web servers (Nginx, Apache), (5) Defining infrastructure as code (Terraform, CloudFormation), (6) Generating linter/formatter configs (ESLint, Prettier, Black). Provides templates and custom-genera...

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
developmenttypescriptpythongobashsqlnodeexpressfastapidjangodocker

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 6 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add ArabelaTso/Skills-4-SE --skill configuration-generator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Configuration Generator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Configuration Generator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/arabelatso-configuration-generator/badge)](https://www.skillsdirectory.com/skills/arabelatso-configuration-generator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: configuration-generator
description: "Generate configuration files for applications, services, and infrastructure. Use when: (1) Setting up new projects (package.json, requirements.txt, tsconfig.json), (2) Creating Docker or Kubernetes configurations, (3) Configuring CI/CD pipelines (GitHub Actions, GitLab CI, CircleCI), (4) Setting up web servers (Nginx, Apache), (5) Defining infrastructure as code (Terraform, CloudFormation), (6) Generating linter/formatter configs (ESLint, Prettier, Black). Provides templates and custom-generated configs for diverse tech stacks."
---

# Configuration Generator

Generate configuration files for applications, services, and infrastructure across various formats and frameworks.

## Quick Start

### Use Built-in Templates

Access ready-to-use configuration templates from assets:

```bash
# Docker Compose
cat assets/docker-compose.yml

# Kubernetes
cat assets/kubernetes-deployment.yaml

# GitHub Actions
cat assets/github-actions-workflow.yml
```

### Generate Custom Configuration

Specify your requirements to get tailored configuration files.

## Common Configuration Types

### Application Configurations

#### Package Managers

**Node.js (package.json)**
```json
{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "test": "jest",
    "build": "tsc"
  },
  "dependencies": {
    "express": "^4.18.0"
  },
  "devDependencies": {
    "typescript": "^5.0.0",
    "jest": "^29.0.0"
  }
}
```

**Python (requirements.txt)**
```
django==4.2.0
djangorestframework==3.14.0
psycopg2-binary==2.9.5
pytest==7.3.0
black==23.3.0
```

See **[app_configs.md](references/app_configs.md)** for:
- Package managers (npm, pip, cargo)
- Build tools (TypeScript, Webpack, Vite)
- Linters/formatters (ESLint, Prettier, Black)
- Testing frameworks (Jest, pytest)
- Environment files (.env, .editorconfig, .gitignore)

#### Build Configurations

**TypeScript (tsconfig.json)**
```json
{
  "compilerOptions": {
    "target": "ES2022",
    "module": "commonjs",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}
```

### Infrastructure Configurations

#### Docker

**Dockerfile (Multi-stage)**
```dockerfile
FROM node:18-alpine as builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
USER node
EXPOSE 3000
CMD ["node", "dist/index.js"]
```

**Docker Compose** - See `assets/docker-compose.yml`:
- Multi-service setup (web, database, cache)
- Environment variable configuration
- Volume management
- Network configuration

#### Kubernetes

**Deployment Configuration** - See `assets/kubernetes-deployment.yaml`:
- Deployment with replicas
- ConfigMap and Secret management
- Service and Ingress configuration
- Health probes
- Resource limits

**Example Deployment**:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web-app
  template:
    spec:
      containers:
      - name: web
        image: myapp:latest
        ports:
        - containerPort: 8000
        resources:
          requests:
            memory: "256Mi"
            cpu: "250m"
          limits:
            memory: "512Mi"
            cpu: "500m"
```

See **[infra_configs.md](references/infra_configs.md)** for:
- Docker and Kubernetes
- Terraform (AWS, GCP, Azure)
- CI/CD pipelines
- Web servers (Nginx, Apache)

#### CI/CD Pipelines

**GitHub Actions** - See `assets/github-actions-workflow.yml`:
- Test, build, and deploy workflow
- Service containers (PostgreSQL, Redis)
- Docker image building
- Deployment automation

**Example Workflow**:
```yaml
name: CI/CD Pipeline

on:
  push:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: '3.11'
      - run: pip install -r requirements.txt
      - run: pytest
```

## Configuration Decision Tree

```
What type of configuration do you need?

├─ Application Config
│  ├─ Package manager? → package.json, requirements.txt, Cargo.toml
│  ├─ Build tool? → tsconfig.json, webpack.config.js, vite.config.ts
│  ├─ Linter/formatter? → .eslintrc, .prettierrc, pyproject.toml
│  └─ Environment? → .env, .editorconfig, .gitignore
│
├─ Container/Orchestration
│  ├─ Docker? → Dockerfile, docker-compose.yml
│  └─ Kubernetes? → deployment.yaml, service.yaml, ingress.yaml
│
├─ Infrastructure as Code
│  ├─ Terraform? → main.tf, variables.tf, outputs.tf
│  └─ CloudFormation? → template.yaml
│
├─ CI/CD
│  ├─ GitHub Actions? → .github/workflows/ci.yml
│  ├─ GitLab CI? → .gitlab-ci.yml
│  └─ CircleCI? → .circleci/config.yml
│
└─ Web Server
   ├─ Nginx? → nginx.conf
   └─ Apache? → httpd.conf, .htaccess
```

## Generation Approaches

### Approach 1: Template-Based

Use pre-built templates from `assets/`:

**When to use**:
- Standard setups
- Quick prototyping
- Learning/reference

**How**:
1. Identify needed template
2. Copy from assets
3. Customize variables
4. Deploy

**Example**:
```bash
# Copy Docker Compose template
cp assets/docker-compose.yml ./

# Edit environment variables
# Deploy
docker-compose up -d
```

### Approach 2: Requirements-Based Generation

Generate from scratch based on specific needs:

**When to use**:
- Custom requirements
- Complex setups
- Specific tech stack

**How**:
1. Specify requirements
2. Choose tech stack
3. Define constraints
4. Generate configuration

**Example Request**: "Generate a GitHub Actions workflow for a Python Django app with PostgreSQL, Redis, and deployment to AWS ECS"

**Generated Output**: Custom workflow with:
- Python 3.11 setup
- PostgreSQL and Redis services
- Django test suite
- Docker image build
- AWS ECS deployment

### Approach 3: Hybrid

Combine templates with customization:

**When to use**:
- Partially standard setup
- Template needs modification
- Best practices + customization

**How**:
1. Start with template
2. Identify customization points
3. Modify specific sections
4. Validate configuration

## Best Practices

### 1. Use Environment Variables

Separate configuration from code:

**Application**:
```python
# settings.py
import os

DATABASE_URL = os.getenv('DATABASE_URL')
SECRET_KEY = os.getenv('SECRET_KEY')
DEBUG = os.getenv('DEBUG', 'False') == 'True'
```

**.env file**:
```bash
DATABASE_URL=postgresql://localhost/mydb
SECRET_KEY=your-secret-key
DEBUG=true
```

### 2. Version Control Best Practices

**Do commit**:
- `.env.example` (template)
- Configuration templates
- Development configs

**Don't commit**:
- `.env` (secrets)
- `.env.local` (local overrides)
- Production credentials

**.gitignore**:
```
.env
.env.local
.env.*.local
```

### 3. Validate Configurations

Check syntax before deploying:

```bash
# Docker Compose
docker-compose config

# Kubernetes
kubectl apply --dry-run=client -f deployment.yaml

# Terraform
terraform validate

# YAML syntax
yamllint config.yml
```

### 4. Document Configuration

Add comments explaining purpose:

```yaml
# docker-compose.yml
services:
  web:
    # Application server - handles HTTP requests
    image: myapp:latest
    ports:
      # Expose on port 8000 for development
      - "8000:8000"
    environment:
      # Database connection string
      - DATABASE_URL=${DATABASE_URL}
```

### 5. Use Sensible Defaults

Provide defaults for optional values:

```yaml
# Kubernetes ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  # Default to info level logging
  LOG_LEVEL: "info"
  # Default connection pool size
  DB_POOL_SIZE: "10"
```

## Common Patterns

### Multi-Environment Configuration

**Development**:
```yaml
# docker-compose.dev.yml
services:
  web:
    build: .
    volumes:
      - ./app:/app  # Hot reload
    environment:
      - DEBUG=true
```

**Production**:
```yaml
# docker-compose.prod.yml
services:
  web:
    image: registry/myapp:latest
    environment:
      - DEBUG=false
    deploy:
      replicas: 3
```

### Secret Management

**Kubernetes Secrets**:
```yaml
apiVersion: v1
kind: Secret
metadata:
  name: app-secrets
type: Opaque
stringData:
  database-url: "postgresql://..."
  api-key: "secret-key"
```

**Docker Compose (with env file)**:
```yaml
services:
  web:
    env_file:
      - .env.production
```

### Health Checks

**Docker Compose**:
```yaml
services:
  web:
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
```

**Kubernetes**:
```yaml
livenessProbe:
  httpGet:
    path: /health
    port: 8000
  initialDelaySeconds: 30
  periodSeconds: 10
readinessProbe:
  httpGet:
    path: /ready
    port: 8000
  initialDelaySeconds: 5
  periodSeconds: 5
```

## Complete Example

**Request**: "Create complete configuration for a Python FastAPI application with PostgreSQL and Redis, using Docker Compose for development and Kubernetes for production"

**Generated Configurations**:

1. **Dockerfile**
2. **docker-compose.yml** (development)
3. **requirements.txt**
4. **kubernetes/deployment.yaml** (production)
5. **.env.example**
6. **.github/workflows/deploy.yml**

These files work together to provide:
- Local development environment
- CI/CD pipeline
- Production deployment
- Secret management
- Health monitoring

## Troubleshooting

### Configuration Validation Errors

**YAML syntax errors**:
```bash
# Check YAML syntax
python -c "import yaml; yaml.safe_load(open('config.yml'))"

# Or use yamllint
yamllint config.yml
```

**Docker Compose issues**:
```bash
# Validate and view resolved config
docker-compose config

# Check for errors
docker-compose config --quiet
```

### Environment Variable Issues

**Missing variables**:
```bash
# List all required variables
grep -o '\${[^}]*}' docker-compose.yml

# Check if variable is set
echo $DATABASE_URL
```

### Port Conflicts

**Find process using port**:
```bash
# Linux/macOS
lsof -i :8000

# Windows
netstat -ano | findstr :8000
```

## Reference Materials

### Application Configs
See **[app_configs.md](references/app_configs.md)** for complete templates:
- Package managers (package.json, requirements.txt, Pipfile, Cargo.toml)
- Build tools (tsconfig.json, webpack.config.js, vite.config.ts)
- Linters and formatters (.eslintrc, .prettierrc, .flake8, pyproject.toml)
- Testing frameworks (jest.config.js, pytest.ini)
- Environment files (.env.example, .editorconfig, .gitignore)

### Infrastructure Configs
See **[infra_configs.md](references/infra_configs.md)** for:
- Docker (Dockerfile multi-stage, docker-compose.yml, .dockerignore)
- Kubernetes (Deployment, Service, Ingress, ConfigMap, Secret, HPA)
- Terraform (AWS, GCP, Azure infrastructure)
- CI/CD (GitHub Actions, GitLab CI, CircleCI)
- Web servers (Nginx, Apache configuration)

Files in this skill

  • SKILL.md10.9 KB
  • assets/docker-compose.yml1.4 KB
  • assets/github-actions-workflow.yml3.4 KB
  • assets/kubernetes-deployment.yaml1.7 KB
  • references/app_configs.md8.3 KB
  • references/infra_configs.md13.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.