container-superposition 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +843 -0
- package/dist/scripts/init.d.ts +3 -0
- package/dist/scripts/init.d.ts.map +1 -0
- package/dist/scripts/init.js +1190 -0
- package/dist/scripts/init.js.map +1 -0
- package/dist/scripts/migrate-to-manifests.d.ts +12 -0
- package/dist/scripts/migrate-to-manifests.d.ts.map +1 -0
- package/dist/scripts/migrate-to-manifests.js +230 -0
- package/dist/scripts/migrate-to-manifests.js.map +1 -0
- package/dist/tool/questionnaire/composer.d.ts +6 -0
- package/dist/tool/questionnaire/composer.d.ts.map +1 -0
- package/dist/tool/questionnaire/composer.js +1232 -0
- package/dist/tool/questionnaire/composer.js.map +1 -0
- package/dist/tool/readme/markdown-parser.d.ts +30 -0
- package/dist/tool/readme/markdown-parser.d.ts.map +1 -0
- package/dist/tool/readme/markdown-parser.js +139 -0
- package/dist/tool/readme/markdown-parser.js.map +1 -0
- package/dist/tool/readme/readme-generator.d.ts +9 -0
- package/dist/tool/readme/readme-generator.d.ts.map +1 -0
- package/dist/tool/readme/readme-generator.js +422 -0
- package/dist/tool/readme/readme-generator.js.map +1 -0
- package/dist/tool/schema/custom-loader.d.ts +17 -0
- package/dist/tool/schema/custom-loader.d.ts.map +1 -0
- package/dist/tool/schema/custom-loader.js +149 -0
- package/dist/tool/schema/custom-loader.js.map +1 -0
- package/dist/tool/schema/overlay-loader.d.ts +47 -0
- package/dist/tool/schema/overlay-loader.d.ts.map +1 -0
- package/dist/tool/schema/overlay-loader.js +252 -0
- package/dist/tool/schema/overlay-loader.js.map +1 -0
- package/dist/tool/schema/types.d.ts +212 -0
- package/dist/tool/schema/types.d.ts.map +1 -0
- package/dist/tool/schema/types.js +5 -0
- package/dist/tool/schema/types.js.map +1 -0
- package/docs/README.md +308 -0
- package/docs/architecture.md +233 -0
- package/docs/creating-overlays.md +549 -0
- package/docs/custom-patches.md +540 -0
- package/docs/dependencies.md +279 -0
- package/docs/examples/custom-patches-example.md +85 -0
- package/docs/examples.md +576 -0
- package/docs/messaging-comparison.md +265 -0
- package/docs/messaging-quick-start.md +385 -0
- package/docs/observability-workflow.md +537 -0
- package/docs/overlay-manifest-refactoring.md +214 -0
- package/docs/overlay-metadata-archive.md +54 -0
- package/docs/overlays.md +523 -0
- package/docs/presets-architecture.md +498 -0
- package/docs/presets.md +366 -0
- package/docs/publishing.md +476 -0
- package/docs/quick-reference.md +326 -0
- package/docs/ux.md +170 -0
- package/features/README.md +85 -0
- package/features/cross-distro-packages/README.md +146 -0
- package/features/cross-distro-packages/devcontainer-feature.json +20 -0
- package/features/cross-distro-packages/install.sh +58 -0
- package/features/local-secrets-manager/devcontainer-feature.json +18 -0
- package/features/local-secrets-manager/install.sh +127 -0
- package/features/project-scaffolder/devcontainer-feature.json +24 -0
- package/features/project-scaffolder/install.sh +100 -0
- package/features/team-conventions/devcontainer-feature.json +24 -0
- package/features/team-conventions/install.sh +93 -0
- package/overlays/.registry/README.md +14 -0
- package/overlays/.registry/base-images.yml +26 -0
- package/overlays/.registry/base-templates.yml +7 -0
- package/overlays/README.md +155 -0
- package/overlays/alertmanager/.env.example +5 -0
- package/overlays/alertmanager/README.md +465 -0
- package/overlays/alertmanager/alert-rules.yml +56 -0
- package/overlays/alertmanager/alertmanager.yml +42 -0
- package/overlays/alertmanager/devcontainer.patch.json +12 -0
- package/overlays/alertmanager/docker-compose.yml +20 -0
- package/overlays/alertmanager/overlay.yml +17 -0
- package/overlays/alertmanager/setup.sh +53 -0
- package/overlays/alertmanager/verify.sh +31 -0
- package/overlays/aws-cli/README.md +473 -0
- package/overlays/aws-cli/devcontainer.patch.json +13 -0
- package/overlays/aws-cli/overlay.yml +13 -0
- package/overlays/azure-cli/README.md +551 -0
- package/overlays/azure-cli/devcontainer.patch.json +8 -0
- package/overlays/azure-cli/overlay.yml +13 -0
- package/overlays/bun/README.md +312 -0
- package/overlays/bun/devcontainer.patch.json +41 -0
- package/overlays/bun/overlay.yml +16 -0
- package/overlays/bun/setup.sh +79 -0
- package/overlays/bun/verify.sh +30 -0
- package/overlays/codex/README.md +128 -0
- package/overlays/codex/devcontainer.patch.json +3 -0
- package/overlays/codex/overlay.yml +14 -0
- package/overlays/codex/setup.sh +24 -0
- package/overlays/codex/verify.sh +30 -0
- package/overlays/commitlint/README.md +333 -0
- package/overlays/commitlint/devcontainer.patch.json +8 -0
- package/overlays/commitlint/overlay.yml +16 -0
- package/overlays/commitlint/setup.sh +234 -0
- package/overlays/direnv/README.md +504 -0
- package/overlays/direnv/devcontainer.patch.json +6 -0
- package/overlays/direnv/overlay.yml +13 -0
- package/overlays/direnv/setup.sh +139 -0
- package/overlays/docker-in-docker/README.md +534 -0
- package/overlays/docker-in-docker/devcontainer.patch.json +10 -0
- package/overlays/docker-in-docker/overlay.yml +13 -0
- package/overlays/docker-sock/README.md +256 -0
- package/overlays/docker-sock/devcontainer.patch.json +9 -0
- package/overlays/docker-sock/docker-compose.yml +8 -0
- package/overlays/docker-sock/overlay.yml +13 -0
- package/overlays/dotnet/README.md +147 -0
- package/overlays/dotnet/devcontainer.patch.json +51 -0
- package/overlays/dotnet/global-tools.txt +24 -0
- package/overlays/dotnet/overlay.yml +13 -0
- package/overlays/dotnet/setup.sh +51 -0
- package/overlays/dotnet/verify.sh +26 -0
- package/overlays/gcloud/README.md +269 -0
- package/overlays/gcloud/devcontainer.patch.json +14 -0
- package/overlays/gcloud/overlay.yml +14 -0
- package/overlays/gcloud/verify.sh +52 -0
- package/overlays/git-helpers/README.md +168 -0
- package/overlays/git-helpers/devcontainer.patch.json +33 -0
- package/overlays/git-helpers/overlay.yml +15 -0
- package/overlays/git-helpers/setup.sh +91 -0
- package/overlays/go/README.md +293 -0
- package/overlays/go/devcontainer.patch.json +43 -0
- package/overlays/go/overlay.yml +15 -0
- package/overlays/go/setup.sh +33 -0
- package/overlays/go/verify.sh +40 -0
- package/overlays/grafana/.env.example +9 -0
- package/overlays/grafana/README.md +462 -0
- package/overlays/grafana/dashboard-provider.yml +11 -0
- package/overlays/grafana/dashboards/observability-overview.json +263 -0
- package/overlays/grafana/devcontainer.patch.json +12 -0
- package/overlays/grafana/docker-compose.yml +27 -0
- package/overlays/grafana/grafana-datasources.yml +57 -0
- package/overlays/grafana/overlay.yml +21 -0
- package/overlays/grafana/verify.sh +34 -0
- package/overlays/jaeger/.env.example +7 -0
- package/overlays/jaeger/README.md +867 -0
- package/overlays/jaeger/devcontainer.patch.json +12 -0
- package/overlays/jaeger/docker-compose.yml +17 -0
- package/overlays/jaeger/overlay.yml +19 -0
- package/overlays/java/README.md +267 -0
- package/overlays/java/devcontainer.patch.json +44 -0
- package/overlays/java/overlay.yml +16 -0
- package/overlays/java/setup.sh +41 -0
- package/overlays/java/verify.sh +42 -0
- package/overlays/just/README.md +443 -0
- package/overlays/just/devcontainer.patch.json +3 -0
- package/overlays/just/overlay.yml +13 -0
- package/overlays/just/setup.sh +182 -0
- package/overlays/kubectl-helm/README.md +660 -0
- package/overlays/kubectl-helm/devcontainer.patch.json +10 -0
- package/overlays/kubectl-helm/overlay.yml +13 -0
- package/overlays/loki/.env.example +5 -0
- package/overlays/loki/README.md +1156 -0
- package/overlays/loki/devcontainer.patch.json +12 -0
- package/overlays/loki/docker-compose.yml +18 -0
- package/overlays/loki/loki-config.yaml +45 -0
- package/overlays/loki/overlay.yml +17 -0
- package/overlays/minio/.env.example +9 -0
- package/overlays/minio/README.md +639 -0
- package/overlays/minio/devcontainer.patch.json +30 -0
- package/overlays/minio/docker-compose.yml +28 -0
- package/overlays/minio/overlay.yml +18 -0
- package/overlays/minio/setup.sh +61 -0
- package/overlays/minio/verify.sh +64 -0
- package/overlays/mkdocs/README.md +309 -0
- package/overlays/mkdocs/devcontainer.patch.json +24 -0
- package/overlays/mkdocs/overlay.yml +15 -0
- package/overlays/modern-cli-tools/README.md +556 -0
- package/overlays/modern-cli-tools/devcontainer.patch.json +3 -0
- package/overlays/modern-cli-tools/overlay.yml +13 -0
- package/overlays/modern-cli-tools/setup.sh +153 -0
- package/overlays/mongodb/.env.example +9 -0
- package/overlays/mongodb/README.md +481 -0
- package/overlays/mongodb/devcontainer.patch.json +32 -0
- package/overlays/mongodb/docker-compose.yml +44 -0
- package/overlays/mongodb/overlay.yml +17 -0
- package/overlays/mongodb/verify.sh +48 -0
- package/overlays/mysql/.env.example +11 -0
- package/overlays/mysql/README.md +542 -0
- package/overlays/mysql/devcontainer.patch.json +34 -0
- package/overlays/mysql/docker-compose.yml +55 -0
- package/overlays/mysql/overlay.yml +16 -0
- package/overlays/mysql/verify.sh +48 -0
- package/overlays/nats/.env.example +5 -0
- package/overlays/nats/README.md +762 -0
- package/overlays/nats/devcontainer.patch.json +24 -0
- package/overlays/nats/docker-compose.yml +31 -0
- package/overlays/nats/overlay.yml +18 -0
- package/overlays/nats/verify.sh +50 -0
- package/overlays/ngrok/README.md +503 -0
- package/overlays/ngrok/devcontainer.patch.json +3 -0
- package/overlays/ngrok/overlay.yml +14 -0
- package/overlays/ngrok/setup.sh +125 -0
- package/overlays/nodejs/README.md +192 -0
- package/overlays/nodejs/devcontainer.patch.json +49 -0
- package/overlays/nodejs/global-packages.txt +16 -0
- package/overlays/nodejs/overlay.yml +14 -0
- package/overlays/nodejs/setup.sh +46 -0
- package/overlays/nodejs/verify.sh +32 -0
- package/overlays/otel-collector/.env.example +9 -0
- package/overlays/otel-collector/README.md +1257 -0
- package/overlays/otel-collector/devcontainer.patch.json +28 -0
- package/overlays/otel-collector/docker-compose.yml +22 -0
- package/overlays/otel-collector/otel-collector-config.yaml +68 -0
- package/overlays/otel-collector/overlay.yml +21 -0
- package/overlays/otel-collector/setup.sh +49 -0
- package/overlays/otel-demo-nodejs/.env.example +2 -0
- package/overlays/otel-demo-nodejs/Dockerfile-otel-demo-nodejs +17 -0
- package/overlays/otel-demo-nodejs/README.md +409 -0
- package/overlays/otel-demo-nodejs/devcontainer.patch.json +12 -0
- package/overlays/otel-demo-nodejs/docker-compose.yml +19 -0
- package/overlays/otel-demo-nodejs/overlay.yml +23 -0
- package/overlays/otel-demo-nodejs/package-otel-demo-nodejs.json +20 -0
- package/overlays/otel-demo-nodejs/server-otel-demo-nodejs.js +259 -0
- package/overlays/otel-demo-nodejs/tracing-otel-demo-nodejs.js +57 -0
- package/overlays/otel-demo-nodejs/verify.sh +31 -0
- package/overlays/otel-demo-python/.env.example +2 -0
- package/overlays/otel-demo-python/Dockerfile-otel-demo-python +16 -0
- package/overlays/otel-demo-python/README.md +82 -0
- package/overlays/otel-demo-python/app-otel-demo-python.py +208 -0
- package/overlays/otel-demo-python/devcontainer.patch.json +12 -0
- package/overlays/otel-demo-python/docker-compose.yml +19 -0
- package/overlays/otel-demo-python/overlay.yml +23 -0
- package/overlays/otel-demo-python/requirements-otel-demo-python.txt +4 -0
- package/overlays/otel-demo-python/verify.sh +31 -0
- package/overlays/playwright/README.md +629 -0
- package/overlays/playwright/devcontainer.patch.json +9 -0
- package/overlays/playwright/overlay.yml +13 -0
- package/overlays/postgres/.env.example +6 -0
- package/overlays/postgres/README.md +602 -0
- package/overlays/postgres/devcontainer.patch.json +21 -0
- package/overlays/postgres/docker-compose.yml +22 -0
- package/overlays/postgres/overlay.yml +15 -0
- package/overlays/postgres/verify.sh +45 -0
- package/overlays/powershell/README.md +314 -0
- package/overlays/powershell/devcontainer.patch.json +22 -0
- package/overlays/powershell/overlay.yml +13 -0
- package/overlays/powershell/setup.sh +29 -0
- package/overlays/powershell/verify.sh +38 -0
- package/overlays/pre-commit/README.md +263 -0
- package/overlays/pre-commit/devcontainer.patch.json +9 -0
- package/overlays/pre-commit/overlay.yml +16 -0
- package/overlays/pre-commit/setup.sh +129 -0
- package/overlays/presets/docs-site.yml +118 -0
- package/overlays/presets/fullstack.yml +181 -0
- package/overlays/presets/microservice.yml +118 -0
- package/overlays/presets/web-api.yml +109 -0
- package/overlays/prometheus/.env.example +5 -0
- package/overlays/prometheus/README.md +1246 -0
- package/overlays/prometheus/devcontainer.patch.json +12 -0
- package/overlays/prometheus/docker-compose.yml +22 -0
- package/overlays/prometheus/overlay.yml +17 -0
- package/overlays/prometheus/prometheus.yml +12 -0
- package/overlays/prometheus/verify.sh +34 -0
- package/overlays/promtail/.env.example +2 -0
- package/overlays/promtail/README.md +357 -0
- package/overlays/promtail/devcontainer.patch.json +5 -0
- package/overlays/promtail/docker-compose.yml +16 -0
- package/overlays/promtail/overlay.yml +17 -0
- package/overlays/promtail/promtail-config.yaml +60 -0
- package/overlays/promtail/verify.sh +31 -0
- package/overlays/pulumi/README.md +472 -0
- package/overlays/pulumi/devcontainer.patch.json +13 -0
- package/overlays/pulumi/overlay.yml +14 -0
- package/overlays/pulumi/verify.sh +31 -0
- package/overlays/python/README.md +919 -0
- package/overlays/python/devcontainer.patch.json +41 -0
- package/overlays/python/overlay.yml +12 -0
- package/overlays/python/requirements-overlay.txt +13 -0
- package/overlays/python/setup.sh +47 -0
- package/overlays/python/verify.sh +32 -0
- package/overlays/rabbitmq/.env.example +7 -0
- package/overlays/rabbitmq/README.md +680 -0
- package/overlays/rabbitmq/devcontainer.patch.json +28 -0
- package/overlays/rabbitmq/docker-compose.yml +30 -0
- package/overlays/rabbitmq/overlay.yml +18 -0
- package/overlays/rabbitmq/verify.sh +41 -0
- package/overlays/redis/.env.example +4 -0
- package/overlays/redis/README.md +776 -0
- package/overlays/redis/devcontainer.patch.json +21 -0
- package/overlays/redis/docker-compose.yml +21 -0
- package/overlays/redis/overlay.yml +15 -0
- package/overlays/redis/verify.sh +41 -0
- package/overlays/redpanda/.env.example +10 -0
- package/overlays/redpanda/README.md +703 -0
- package/overlays/redpanda/devcontainer.patch.json +37 -0
- package/overlays/redpanda/docker-compose.yml +67 -0
- package/overlays/redpanda/overlay.yml +21 -0
- package/overlays/redpanda/verify.sh +48 -0
- package/overlays/rust/README.md +299 -0
- package/overlays/rust/devcontainer.patch.json +39 -0
- package/overlays/rust/overlay.yml +15 -0
- package/overlays/rust/setup.sh +36 -0
- package/overlays/rust/verify.sh +51 -0
- package/overlays/sqlite/README.md +584 -0
- package/overlays/sqlite/devcontainer.patch.json +14 -0
- package/overlays/sqlite/overlay.yml +15 -0
- package/overlays/sqlite/setup.sh +27 -0
- package/overlays/sqlite/verify.sh +43 -0
- package/overlays/sqlserver/.env.example +6 -0
- package/overlays/sqlserver/README.md +592 -0
- package/overlays/sqlserver/devcontainer.patch.json +22 -0
- package/overlays/sqlserver/docker-compose.yml +32 -0
- package/overlays/sqlserver/overlay.yml +17 -0
- package/overlays/sqlserver/verify.sh +30 -0
- package/overlays/tempo/.env.example +5 -0
- package/overlays/tempo/README.md +273 -0
- package/overlays/tempo/devcontainer.patch.json +12 -0
- package/overlays/tempo/docker-compose.yml +20 -0
- package/overlays/tempo/overlay.yml +20 -0
- package/overlays/tempo/tempo-config.yaml +32 -0
- package/overlays/tempo/verify.sh +31 -0
- package/overlays/terraform/README.md +389 -0
- package/overlays/terraform/devcontainer.patch.json +15 -0
- package/overlays/terraform/overlay.yml +14 -0
- package/overlays/terraform/verify.sh +63 -0
- package/package.json +74 -0
- package/templates/README.md +285 -0
- package/templates/compose/.devcontainer/devcontainer.json +46 -0
- package/templates/compose/.devcontainer/docker-compose.yml +12 -0
- package/templates/compose/README.md +20 -0
- package/templates/plain/.devcontainer/devcontainer.json +35 -0
- package/templates/plain/README.md +21 -0
- package/tool/README.md +281 -0
- package/tool/schema/base-images.schema.json +43 -0
- package/tool/schema/base-templates.schema.json +34 -0
- package/tool/schema/config.schema.json +71 -0
- package/tool/schema/overlay-manifest.schema.json +86 -0
package/docs/presets.md
ADDED
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
# Stack Presets Guide
|
|
2
|
+
|
|
3
|
+
Container Superposition provides **stack presets** - pre-configured combinations of overlays for common development scenarios. Presets save time by selecting and configuring multiple overlays with sensible defaults.
|
|
4
|
+
|
|
5
|
+
## What are Presets?
|
|
6
|
+
|
|
7
|
+
Presets are **meta-overlays** that:
|
|
8
|
+
|
|
9
|
+
- **Auto-select** multiple overlays at once
|
|
10
|
+
- **Configure** integration between services with pre-filled environment variables
|
|
11
|
+
- **Provide** usage documentation specific to the stack
|
|
12
|
+
- **Allow** customization after selection
|
|
13
|
+
|
|
14
|
+
## Available Presets
|
|
15
|
+
|
|
16
|
+
### 1. Web API Stack
|
|
17
|
+
|
|
18
|
+
**Best for:** REST/GraphQL API development
|
|
19
|
+
|
|
20
|
+
**Includes:**
|
|
21
|
+
|
|
22
|
+
- Language choice: Node.js, .NET, Python, Go, or Java
|
|
23
|
+
- PostgreSQL database
|
|
24
|
+
- Redis cache
|
|
25
|
+
- Full observability: OpenTelemetry Collector, Prometheus, Grafana, Loki
|
|
26
|
+
|
|
27
|
+
**Pre-configured:**
|
|
28
|
+
|
|
29
|
+
- Database connection strings
|
|
30
|
+
- Redis URL
|
|
31
|
+
- OpenTelemetry endpoints
|
|
32
|
+
- Health check endpoints
|
|
33
|
+
|
|
34
|
+
**Usage:**
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm run init
|
|
38
|
+
# Select "Web API Stack" when prompted
|
|
39
|
+
# Choose your language (e.g., Node.js)
|
|
40
|
+
# Customize if needed or use as-is
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**What you get:**
|
|
44
|
+
|
|
45
|
+
- `DATABASE_URL` for PostgreSQL
|
|
46
|
+
- `REDIS_URL` for Redis
|
|
47
|
+
- `OTEL_EXPORTER_OTLP_ENDPOINT` for telemetry
|
|
48
|
+
- Grafana dashboard at http://localhost:3000
|
|
49
|
+
- Full monitoring stack ready to use
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### 2. Microservice Stack
|
|
54
|
+
|
|
55
|
+
**Best for:** Microservices architecture development
|
|
56
|
+
|
|
57
|
+
**Includes:**
|
|
58
|
+
|
|
59
|
+
- Language choice: Node.js, .NET, Python, Go, or Java
|
|
60
|
+
- Message broker choice: RabbitMQ, Redpanda (Kafka), or NATS
|
|
61
|
+
- Distributed tracing: OpenTelemetry Collector, Jaeger
|
|
62
|
+
- Monitoring: Prometheus, Grafana
|
|
63
|
+
|
|
64
|
+
**Pre-configured:**
|
|
65
|
+
|
|
66
|
+
- Message broker connection URLs
|
|
67
|
+
- Distributed tracing endpoints
|
|
68
|
+
- Service-to-service communication
|
|
69
|
+
|
|
70
|
+
**Usage:**
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm run init
|
|
74
|
+
# Select "Microservice Stack"
|
|
75
|
+
# Choose language (e.g., Node.js)
|
|
76
|
+
# Choose message broker (e.g., RabbitMQ)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**What you get:**
|
|
80
|
+
|
|
81
|
+
- Messaging infrastructure (RabbitMQ/Redpanda/NATS)
|
|
82
|
+
- Full distributed tracing in Jaeger
|
|
83
|
+
- Metrics and dashboards in Grafana
|
|
84
|
+
- Service mesh ready configuration
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 3. Documentation Site
|
|
89
|
+
|
|
90
|
+
**Best for:** Documentation website development with MkDocs
|
|
91
|
+
|
|
92
|
+
**Includes:**
|
|
93
|
+
|
|
94
|
+
- MkDocs with Python
|
|
95
|
+
- Pre-commit hooks for quality checks
|
|
96
|
+
- Modern CLI tools (bat, fd, ripgrep, fzf)
|
|
97
|
+
|
|
98
|
+
**Pre-configured:**
|
|
99
|
+
|
|
100
|
+
- MkDocs development server on port 8000
|
|
101
|
+
- Pre-commit hooks for markdown linting
|
|
102
|
+
- GitHub Pages deployment ready
|
|
103
|
+
|
|
104
|
+
**Usage:**
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
npm run init
|
|
108
|
+
# Select "Documentation Site"
|
|
109
|
+
# No language choice needed
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**What you get:**
|
|
113
|
+
|
|
114
|
+
- MkDocs server: `mkdocs serve`
|
|
115
|
+
- Quality checks: `pre-commit install`
|
|
116
|
+
- Deploy: `mkdocs gh-deploy`
|
|
117
|
+
- Modern CLI tools for productivity
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
### 4. Full-Stack Application
|
|
122
|
+
|
|
123
|
+
**Best for:** Complete full-stack web applications
|
|
124
|
+
|
|
125
|
+
**Includes:**
|
|
126
|
+
|
|
127
|
+
- Node.js (for frontend: React/Vue/Angular)
|
|
128
|
+
- Backend language choice: .NET, Python, Go, or Java
|
|
129
|
+
- PostgreSQL database
|
|
130
|
+
- Redis cache
|
|
131
|
+
- MinIO (S3-compatible object storage for file uploads)
|
|
132
|
+
- Full observability: OTEL Collector, Prometheus, Grafana, Loki
|
|
133
|
+
|
|
134
|
+
**Pre-configured:**
|
|
135
|
+
|
|
136
|
+
- Frontend on port 3000
|
|
137
|
+
- Backend on port 8000
|
|
138
|
+
- Database, cache, and storage connection strings
|
|
139
|
+
- Cross-origin configuration
|
|
140
|
+
- Full monitoring
|
|
141
|
+
|
|
142
|
+
**Usage:**
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
npm run init
|
|
146
|
+
# Select "Full-Stack Application"
|
|
147
|
+
# Choose backend language (e.g., .NET)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**What you get:**
|
|
151
|
+
|
|
152
|
+
- Frontend: Node.js dev server
|
|
153
|
+
- Backend: Your chosen language/framework
|
|
154
|
+
- Database: PostgreSQL
|
|
155
|
+
- Cache: Redis
|
|
156
|
+
- Storage: MinIO for file uploads
|
|
157
|
+
- Complete observability stack
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Using Presets
|
|
162
|
+
|
|
163
|
+
### Interactive Mode
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
npm run init
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
1. Choose "Start from preset" when prompted
|
|
170
|
+
2. Select your desired preset
|
|
171
|
+
3. Make user choices (language, message broker, etc.)
|
|
172
|
+
4. Optionally customize overlay selection
|
|
173
|
+
5. Complete questionnaire and generate
|
|
174
|
+
|
|
175
|
+
### Command-Line Mode
|
|
176
|
+
|
|
177
|
+
Presets are not directly available via CLI yet, but you can achieve the same result:
|
|
178
|
+
|
|
179
|
+
**Web API equivalent:**
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
npm run init -- \
|
|
183
|
+
--stack compose \
|
|
184
|
+
--language nodejs \
|
|
185
|
+
--database postgres,redis \
|
|
186
|
+
--observability otel-collector,prometheus,grafana,loki
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Microservice equivalent:**
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
npm run init -- \
|
|
193
|
+
--stack compose \
|
|
194
|
+
--language nodejs \
|
|
195
|
+
--database rabbitmq \
|
|
196
|
+
--observability otel-collector,jaeger,prometheus,grafana
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Customizing Presets
|
|
200
|
+
|
|
201
|
+
After selecting a preset, you can:
|
|
202
|
+
|
|
203
|
+
1. **Add overlays:** Select additional overlays not in the preset
|
|
204
|
+
2. **Remove overlays:** Deselect preset overlays you don't need
|
|
205
|
+
3. **Change choices:** Pick different language or message broker
|
|
206
|
+
|
|
207
|
+
Example:
|
|
208
|
+
|
|
209
|
+
- Select "Web API Stack"
|
|
210
|
+
- Choose Node.js as language
|
|
211
|
+
- Select "Customize selection"
|
|
212
|
+
- Add `docker-sock` for Docker access
|
|
213
|
+
- Remove `loki` if you don't need log aggregation
|
|
214
|
+
|
|
215
|
+
## Glue Configuration
|
|
216
|
+
|
|
217
|
+
Presets include **glue configuration** that:
|
|
218
|
+
|
|
219
|
+
### Environment Variables
|
|
220
|
+
|
|
221
|
+
Pre-configured in `.env.example`:
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
# Web API preset
|
|
225
|
+
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/myapp
|
|
226
|
+
REDIS_URL=redis://redis:6379
|
|
227
|
+
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
|
|
228
|
+
|
|
229
|
+
# Full-Stack preset
|
|
230
|
+
FRONTEND_PORT=3000
|
|
231
|
+
BACKEND_PORT=8000
|
|
232
|
+
API_URL=http://localhost:8000
|
|
233
|
+
MINIO_ENDPOINT=minio:9000
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Usage Documentation
|
|
237
|
+
|
|
238
|
+
Each preset generates `PRESET-README.md` with:
|
|
239
|
+
|
|
240
|
+
- Service overview
|
|
241
|
+
- Connection strings
|
|
242
|
+
- Quick start guide
|
|
243
|
+
- Next steps
|
|
244
|
+
|
|
245
|
+
### Port Mappings
|
|
246
|
+
|
|
247
|
+
Suggested ports (informational):
|
|
248
|
+
|
|
249
|
+
| Preset | Service | Port |
|
|
250
|
+
| ------------ | --------- | ----- |
|
|
251
|
+
| Web API | API | 8000 |
|
|
252
|
+
| Web API | Grafana | 3000 |
|
|
253
|
+
| Microservice | Service | 8080 |
|
|
254
|
+
| Microservice | Jaeger UI | 16686 |
|
|
255
|
+
| Full-Stack | Frontend | 3000 |
|
|
256
|
+
| Full-Stack | Backend | 8000 |
|
|
257
|
+
|
|
258
|
+
## Manifest Tracking
|
|
259
|
+
|
|
260
|
+
Presets are tracked in `superposition.json`:
|
|
261
|
+
|
|
262
|
+
```json
|
|
263
|
+
{
|
|
264
|
+
"version": "0.1.0",
|
|
265
|
+
"baseTemplate": "compose",
|
|
266
|
+
"preset": "web-api",
|
|
267
|
+
"presetChoices": {
|
|
268
|
+
"language": "nodejs"
|
|
269
|
+
},
|
|
270
|
+
"overlays": ["nodejs", "postgres", "redis", "otel-collector", "prometheus", "grafana", "loki"]
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
This allows you to:
|
|
275
|
+
|
|
276
|
+
- Know which preset was used
|
|
277
|
+
- See which choices were made
|
|
278
|
+
- Reproduce the same configuration
|
|
279
|
+
|
|
280
|
+
## Creating Custom Presets
|
|
281
|
+
|
|
282
|
+
To create your own preset:
|
|
283
|
+
|
|
284
|
+
1. Create `overlays/presets/my-preset.yml`:
|
|
285
|
+
|
|
286
|
+
```yaml
|
|
287
|
+
id: my-preset
|
|
288
|
+
name: My Custom Stack
|
|
289
|
+
description: Description of your stack
|
|
290
|
+
type: meta
|
|
291
|
+
category: preset
|
|
292
|
+
supports: [compose] # or [] for both
|
|
293
|
+
tags: [preset, custom, ...]
|
|
294
|
+
|
|
295
|
+
selects:
|
|
296
|
+
required:
|
|
297
|
+
- overlay-1
|
|
298
|
+
- overlay-2
|
|
299
|
+
|
|
300
|
+
userChoice:
|
|
301
|
+
language:
|
|
302
|
+
id: language
|
|
303
|
+
prompt: Select language
|
|
304
|
+
options: [nodejs, python, go]
|
|
305
|
+
defaultOption: nodejs
|
|
306
|
+
|
|
307
|
+
glueConfig:
|
|
308
|
+
environment:
|
|
309
|
+
MY_VAR: 'value'
|
|
310
|
+
|
|
311
|
+
portMappings:
|
|
312
|
+
service: 8000
|
|
313
|
+
|
|
314
|
+
readme: |
|
|
315
|
+
## My Custom Stack
|
|
316
|
+
|
|
317
|
+
Usage instructions here...
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
2. Register in `overlays/index.yml`:
|
|
321
|
+
|
|
322
|
+
```yaml
|
|
323
|
+
preset_overlays:
|
|
324
|
+
- id: my-preset
|
|
325
|
+
name: My Custom Stack
|
|
326
|
+
description: Description of your stack
|
|
327
|
+
category: preset
|
|
328
|
+
supports: [compose]
|
|
329
|
+
tags: [preset, custom]
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
3. Test:
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
npm run build
|
|
336
|
+
npm run init
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
## Best Practices
|
|
340
|
+
|
|
341
|
+
1. **Start with a preset** if it matches your use case - saves time
|
|
342
|
+
2. **Customize after selection** to add project-specific needs
|
|
343
|
+
3. **Review PRESET-README.md** for usage instructions
|
|
344
|
+
4. **Copy .env.example to .env** and customize values
|
|
345
|
+
5. **Check superposition.json** to understand what was configured
|
|
346
|
+
|
|
347
|
+
## FAQ
|
|
348
|
+
|
|
349
|
+
**Q: Can I change the preset after generating?**
|
|
350
|
+
A: No, but you can regenerate with a different preset or manually add/remove overlays using the questionnaire.
|
|
351
|
+
|
|
352
|
+
**Q: Do presets work with plain template?**
|
|
353
|
+
A: Some do! Check the preset's `supports` field. `docs-site` works with both, while most others require `compose`.
|
|
354
|
+
|
|
355
|
+
**Q: Can I combine presets?**
|
|
356
|
+
A: No, you can only select one preset. But you can customize it to add overlays from other presets.
|
|
357
|
+
|
|
358
|
+
**Q: What if I don't want to use a preset?**
|
|
359
|
+
A: Choose "Custom (select overlays manually)" when prompted and build your own configuration.
|
|
360
|
+
|
|
361
|
+
## Next Steps
|
|
362
|
+
|
|
363
|
+
- Try each preset to see which fits your workflow
|
|
364
|
+
- Read preset-specific READMEs for detailed setup
|
|
365
|
+
- Customize presets to match your team's needs
|
|
366
|
+
- Create custom presets for your organization's stacks
|