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.
Files changed (327) hide show
  1. package/README.md +843 -0
  2. package/dist/scripts/init.d.ts +3 -0
  3. package/dist/scripts/init.d.ts.map +1 -0
  4. package/dist/scripts/init.js +1190 -0
  5. package/dist/scripts/init.js.map +1 -0
  6. package/dist/scripts/migrate-to-manifests.d.ts +12 -0
  7. package/dist/scripts/migrate-to-manifests.d.ts.map +1 -0
  8. package/dist/scripts/migrate-to-manifests.js +230 -0
  9. package/dist/scripts/migrate-to-manifests.js.map +1 -0
  10. package/dist/tool/questionnaire/composer.d.ts +6 -0
  11. package/dist/tool/questionnaire/composer.d.ts.map +1 -0
  12. package/dist/tool/questionnaire/composer.js +1232 -0
  13. package/dist/tool/questionnaire/composer.js.map +1 -0
  14. package/dist/tool/readme/markdown-parser.d.ts +30 -0
  15. package/dist/tool/readme/markdown-parser.d.ts.map +1 -0
  16. package/dist/tool/readme/markdown-parser.js +139 -0
  17. package/dist/tool/readme/markdown-parser.js.map +1 -0
  18. package/dist/tool/readme/readme-generator.d.ts +9 -0
  19. package/dist/tool/readme/readme-generator.d.ts.map +1 -0
  20. package/dist/tool/readme/readme-generator.js +422 -0
  21. package/dist/tool/readme/readme-generator.js.map +1 -0
  22. package/dist/tool/schema/custom-loader.d.ts +17 -0
  23. package/dist/tool/schema/custom-loader.d.ts.map +1 -0
  24. package/dist/tool/schema/custom-loader.js +149 -0
  25. package/dist/tool/schema/custom-loader.js.map +1 -0
  26. package/dist/tool/schema/overlay-loader.d.ts +47 -0
  27. package/dist/tool/schema/overlay-loader.d.ts.map +1 -0
  28. package/dist/tool/schema/overlay-loader.js +252 -0
  29. package/dist/tool/schema/overlay-loader.js.map +1 -0
  30. package/dist/tool/schema/types.d.ts +212 -0
  31. package/dist/tool/schema/types.d.ts.map +1 -0
  32. package/dist/tool/schema/types.js +5 -0
  33. package/dist/tool/schema/types.js.map +1 -0
  34. package/docs/README.md +308 -0
  35. package/docs/architecture.md +233 -0
  36. package/docs/creating-overlays.md +549 -0
  37. package/docs/custom-patches.md +540 -0
  38. package/docs/dependencies.md +279 -0
  39. package/docs/examples/custom-patches-example.md +85 -0
  40. package/docs/examples.md +576 -0
  41. package/docs/messaging-comparison.md +265 -0
  42. package/docs/messaging-quick-start.md +385 -0
  43. package/docs/observability-workflow.md +537 -0
  44. package/docs/overlay-manifest-refactoring.md +214 -0
  45. package/docs/overlay-metadata-archive.md +54 -0
  46. package/docs/overlays.md +523 -0
  47. package/docs/presets-architecture.md +498 -0
  48. package/docs/presets.md +366 -0
  49. package/docs/publishing.md +476 -0
  50. package/docs/quick-reference.md +326 -0
  51. package/docs/ux.md +170 -0
  52. package/features/README.md +85 -0
  53. package/features/cross-distro-packages/README.md +146 -0
  54. package/features/cross-distro-packages/devcontainer-feature.json +20 -0
  55. package/features/cross-distro-packages/install.sh +58 -0
  56. package/features/local-secrets-manager/devcontainer-feature.json +18 -0
  57. package/features/local-secrets-manager/install.sh +127 -0
  58. package/features/project-scaffolder/devcontainer-feature.json +24 -0
  59. package/features/project-scaffolder/install.sh +100 -0
  60. package/features/team-conventions/devcontainer-feature.json +24 -0
  61. package/features/team-conventions/install.sh +93 -0
  62. package/overlays/.registry/README.md +14 -0
  63. package/overlays/.registry/base-images.yml +26 -0
  64. package/overlays/.registry/base-templates.yml +7 -0
  65. package/overlays/README.md +155 -0
  66. package/overlays/alertmanager/.env.example +5 -0
  67. package/overlays/alertmanager/README.md +465 -0
  68. package/overlays/alertmanager/alert-rules.yml +56 -0
  69. package/overlays/alertmanager/alertmanager.yml +42 -0
  70. package/overlays/alertmanager/devcontainer.patch.json +12 -0
  71. package/overlays/alertmanager/docker-compose.yml +20 -0
  72. package/overlays/alertmanager/overlay.yml +17 -0
  73. package/overlays/alertmanager/setup.sh +53 -0
  74. package/overlays/alertmanager/verify.sh +31 -0
  75. package/overlays/aws-cli/README.md +473 -0
  76. package/overlays/aws-cli/devcontainer.patch.json +13 -0
  77. package/overlays/aws-cli/overlay.yml +13 -0
  78. package/overlays/azure-cli/README.md +551 -0
  79. package/overlays/azure-cli/devcontainer.patch.json +8 -0
  80. package/overlays/azure-cli/overlay.yml +13 -0
  81. package/overlays/bun/README.md +312 -0
  82. package/overlays/bun/devcontainer.patch.json +41 -0
  83. package/overlays/bun/overlay.yml +16 -0
  84. package/overlays/bun/setup.sh +79 -0
  85. package/overlays/bun/verify.sh +30 -0
  86. package/overlays/codex/README.md +128 -0
  87. package/overlays/codex/devcontainer.patch.json +3 -0
  88. package/overlays/codex/overlay.yml +14 -0
  89. package/overlays/codex/setup.sh +24 -0
  90. package/overlays/codex/verify.sh +30 -0
  91. package/overlays/commitlint/README.md +333 -0
  92. package/overlays/commitlint/devcontainer.patch.json +8 -0
  93. package/overlays/commitlint/overlay.yml +16 -0
  94. package/overlays/commitlint/setup.sh +234 -0
  95. package/overlays/direnv/README.md +504 -0
  96. package/overlays/direnv/devcontainer.patch.json +6 -0
  97. package/overlays/direnv/overlay.yml +13 -0
  98. package/overlays/direnv/setup.sh +139 -0
  99. package/overlays/docker-in-docker/README.md +534 -0
  100. package/overlays/docker-in-docker/devcontainer.patch.json +10 -0
  101. package/overlays/docker-in-docker/overlay.yml +13 -0
  102. package/overlays/docker-sock/README.md +256 -0
  103. package/overlays/docker-sock/devcontainer.patch.json +9 -0
  104. package/overlays/docker-sock/docker-compose.yml +8 -0
  105. package/overlays/docker-sock/overlay.yml +13 -0
  106. package/overlays/dotnet/README.md +147 -0
  107. package/overlays/dotnet/devcontainer.patch.json +51 -0
  108. package/overlays/dotnet/global-tools.txt +24 -0
  109. package/overlays/dotnet/overlay.yml +13 -0
  110. package/overlays/dotnet/setup.sh +51 -0
  111. package/overlays/dotnet/verify.sh +26 -0
  112. package/overlays/gcloud/README.md +269 -0
  113. package/overlays/gcloud/devcontainer.patch.json +14 -0
  114. package/overlays/gcloud/overlay.yml +14 -0
  115. package/overlays/gcloud/verify.sh +52 -0
  116. package/overlays/git-helpers/README.md +168 -0
  117. package/overlays/git-helpers/devcontainer.patch.json +33 -0
  118. package/overlays/git-helpers/overlay.yml +15 -0
  119. package/overlays/git-helpers/setup.sh +91 -0
  120. package/overlays/go/README.md +293 -0
  121. package/overlays/go/devcontainer.patch.json +43 -0
  122. package/overlays/go/overlay.yml +15 -0
  123. package/overlays/go/setup.sh +33 -0
  124. package/overlays/go/verify.sh +40 -0
  125. package/overlays/grafana/.env.example +9 -0
  126. package/overlays/grafana/README.md +462 -0
  127. package/overlays/grafana/dashboard-provider.yml +11 -0
  128. package/overlays/grafana/dashboards/observability-overview.json +263 -0
  129. package/overlays/grafana/devcontainer.patch.json +12 -0
  130. package/overlays/grafana/docker-compose.yml +27 -0
  131. package/overlays/grafana/grafana-datasources.yml +57 -0
  132. package/overlays/grafana/overlay.yml +21 -0
  133. package/overlays/grafana/verify.sh +34 -0
  134. package/overlays/jaeger/.env.example +7 -0
  135. package/overlays/jaeger/README.md +867 -0
  136. package/overlays/jaeger/devcontainer.patch.json +12 -0
  137. package/overlays/jaeger/docker-compose.yml +17 -0
  138. package/overlays/jaeger/overlay.yml +19 -0
  139. package/overlays/java/README.md +267 -0
  140. package/overlays/java/devcontainer.patch.json +44 -0
  141. package/overlays/java/overlay.yml +16 -0
  142. package/overlays/java/setup.sh +41 -0
  143. package/overlays/java/verify.sh +42 -0
  144. package/overlays/just/README.md +443 -0
  145. package/overlays/just/devcontainer.patch.json +3 -0
  146. package/overlays/just/overlay.yml +13 -0
  147. package/overlays/just/setup.sh +182 -0
  148. package/overlays/kubectl-helm/README.md +660 -0
  149. package/overlays/kubectl-helm/devcontainer.patch.json +10 -0
  150. package/overlays/kubectl-helm/overlay.yml +13 -0
  151. package/overlays/loki/.env.example +5 -0
  152. package/overlays/loki/README.md +1156 -0
  153. package/overlays/loki/devcontainer.patch.json +12 -0
  154. package/overlays/loki/docker-compose.yml +18 -0
  155. package/overlays/loki/loki-config.yaml +45 -0
  156. package/overlays/loki/overlay.yml +17 -0
  157. package/overlays/minio/.env.example +9 -0
  158. package/overlays/minio/README.md +639 -0
  159. package/overlays/minio/devcontainer.patch.json +30 -0
  160. package/overlays/minio/docker-compose.yml +28 -0
  161. package/overlays/minio/overlay.yml +18 -0
  162. package/overlays/minio/setup.sh +61 -0
  163. package/overlays/minio/verify.sh +64 -0
  164. package/overlays/mkdocs/README.md +309 -0
  165. package/overlays/mkdocs/devcontainer.patch.json +24 -0
  166. package/overlays/mkdocs/overlay.yml +15 -0
  167. package/overlays/modern-cli-tools/README.md +556 -0
  168. package/overlays/modern-cli-tools/devcontainer.patch.json +3 -0
  169. package/overlays/modern-cli-tools/overlay.yml +13 -0
  170. package/overlays/modern-cli-tools/setup.sh +153 -0
  171. package/overlays/mongodb/.env.example +9 -0
  172. package/overlays/mongodb/README.md +481 -0
  173. package/overlays/mongodb/devcontainer.patch.json +32 -0
  174. package/overlays/mongodb/docker-compose.yml +44 -0
  175. package/overlays/mongodb/overlay.yml +17 -0
  176. package/overlays/mongodb/verify.sh +48 -0
  177. package/overlays/mysql/.env.example +11 -0
  178. package/overlays/mysql/README.md +542 -0
  179. package/overlays/mysql/devcontainer.patch.json +34 -0
  180. package/overlays/mysql/docker-compose.yml +55 -0
  181. package/overlays/mysql/overlay.yml +16 -0
  182. package/overlays/mysql/verify.sh +48 -0
  183. package/overlays/nats/.env.example +5 -0
  184. package/overlays/nats/README.md +762 -0
  185. package/overlays/nats/devcontainer.patch.json +24 -0
  186. package/overlays/nats/docker-compose.yml +31 -0
  187. package/overlays/nats/overlay.yml +18 -0
  188. package/overlays/nats/verify.sh +50 -0
  189. package/overlays/ngrok/README.md +503 -0
  190. package/overlays/ngrok/devcontainer.patch.json +3 -0
  191. package/overlays/ngrok/overlay.yml +14 -0
  192. package/overlays/ngrok/setup.sh +125 -0
  193. package/overlays/nodejs/README.md +192 -0
  194. package/overlays/nodejs/devcontainer.patch.json +49 -0
  195. package/overlays/nodejs/global-packages.txt +16 -0
  196. package/overlays/nodejs/overlay.yml +14 -0
  197. package/overlays/nodejs/setup.sh +46 -0
  198. package/overlays/nodejs/verify.sh +32 -0
  199. package/overlays/otel-collector/.env.example +9 -0
  200. package/overlays/otel-collector/README.md +1257 -0
  201. package/overlays/otel-collector/devcontainer.patch.json +28 -0
  202. package/overlays/otel-collector/docker-compose.yml +22 -0
  203. package/overlays/otel-collector/otel-collector-config.yaml +68 -0
  204. package/overlays/otel-collector/overlay.yml +21 -0
  205. package/overlays/otel-collector/setup.sh +49 -0
  206. package/overlays/otel-demo-nodejs/.env.example +2 -0
  207. package/overlays/otel-demo-nodejs/Dockerfile-otel-demo-nodejs +17 -0
  208. package/overlays/otel-demo-nodejs/README.md +409 -0
  209. package/overlays/otel-demo-nodejs/devcontainer.patch.json +12 -0
  210. package/overlays/otel-demo-nodejs/docker-compose.yml +19 -0
  211. package/overlays/otel-demo-nodejs/overlay.yml +23 -0
  212. package/overlays/otel-demo-nodejs/package-otel-demo-nodejs.json +20 -0
  213. package/overlays/otel-demo-nodejs/server-otel-demo-nodejs.js +259 -0
  214. package/overlays/otel-demo-nodejs/tracing-otel-demo-nodejs.js +57 -0
  215. package/overlays/otel-demo-nodejs/verify.sh +31 -0
  216. package/overlays/otel-demo-python/.env.example +2 -0
  217. package/overlays/otel-demo-python/Dockerfile-otel-demo-python +16 -0
  218. package/overlays/otel-demo-python/README.md +82 -0
  219. package/overlays/otel-demo-python/app-otel-demo-python.py +208 -0
  220. package/overlays/otel-demo-python/devcontainer.patch.json +12 -0
  221. package/overlays/otel-demo-python/docker-compose.yml +19 -0
  222. package/overlays/otel-demo-python/overlay.yml +23 -0
  223. package/overlays/otel-demo-python/requirements-otel-demo-python.txt +4 -0
  224. package/overlays/otel-demo-python/verify.sh +31 -0
  225. package/overlays/playwright/README.md +629 -0
  226. package/overlays/playwright/devcontainer.patch.json +9 -0
  227. package/overlays/playwright/overlay.yml +13 -0
  228. package/overlays/postgres/.env.example +6 -0
  229. package/overlays/postgres/README.md +602 -0
  230. package/overlays/postgres/devcontainer.patch.json +21 -0
  231. package/overlays/postgres/docker-compose.yml +22 -0
  232. package/overlays/postgres/overlay.yml +15 -0
  233. package/overlays/postgres/verify.sh +45 -0
  234. package/overlays/powershell/README.md +314 -0
  235. package/overlays/powershell/devcontainer.patch.json +22 -0
  236. package/overlays/powershell/overlay.yml +13 -0
  237. package/overlays/powershell/setup.sh +29 -0
  238. package/overlays/powershell/verify.sh +38 -0
  239. package/overlays/pre-commit/README.md +263 -0
  240. package/overlays/pre-commit/devcontainer.patch.json +9 -0
  241. package/overlays/pre-commit/overlay.yml +16 -0
  242. package/overlays/pre-commit/setup.sh +129 -0
  243. package/overlays/presets/docs-site.yml +118 -0
  244. package/overlays/presets/fullstack.yml +181 -0
  245. package/overlays/presets/microservice.yml +118 -0
  246. package/overlays/presets/web-api.yml +109 -0
  247. package/overlays/prometheus/.env.example +5 -0
  248. package/overlays/prometheus/README.md +1246 -0
  249. package/overlays/prometheus/devcontainer.patch.json +12 -0
  250. package/overlays/prometheus/docker-compose.yml +22 -0
  251. package/overlays/prometheus/overlay.yml +17 -0
  252. package/overlays/prometheus/prometheus.yml +12 -0
  253. package/overlays/prometheus/verify.sh +34 -0
  254. package/overlays/promtail/.env.example +2 -0
  255. package/overlays/promtail/README.md +357 -0
  256. package/overlays/promtail/devcontainer.patch.json +5 -0
  257. package/overlays/promtail/docker-compose.yml +16 -0
  258. package/overlays/promtail/overlay.yml +17 -0
  259. package/overlays/promtail/promtail-config.yaml +60 -0
  260. package/overlays/promtail/verify.sh +31 -0
  261. package/overlays/pulumi/README.md +472 -0
  262. package/overlays/pulumi/devcontainer.patch.json +13 -0
  263. package/overlays/pulumi/overlay.yml +14 -0
  264. package/overlays/pulumi/verify.sh +31 -0
  265. package/overlays/python/README.md +919 -0
  266. package/overlays/python/devcontainer.patch.json +41 -0
  267. package/overlays/python/overlay.yml +12 -0
  268. package/overlays/python/requirements-overlay.txt +13 -0
  269. package/overlays/python/setup.sh +47 -0
  270. package/overlays/python/verify.sh +32 -0
  271. package/overlays/rabbitmq/.env.example +7 -0
  272. package/overlays/rabbitmq/README.md +680 -0
  273. package/overlays/rabbitmq/devcontainer.patch.json +28 -0
  274. package/overlays/rabbitmq/docker-compose.yml +30 -0
  275. package/overlays/rabbitmq/overlay.yml +18 -0
  276. package/overlays/rabbitmq/verify.sh +41 -0
  277. package/overlays/redis/.env.example +4 -0
  278. package/overlays/redis/README.md +776 -0
  279. package/overlays/redis/devcontainer.patch.json +21 -0
  280. package/overlays/redis/docker-compose.yml +21 -0
  281. package/overlays/redis/overlay.yml +15 -0
  282. package/overlays/redis/verify.sh +41 -0
  283. package/overlays/redpanda/.env.example +10 -0
  284. package/overlays/redpanda/README.md +703 -0
  285. package/overlays/redpanda/devcontainer.patch.json +37 -0
  286. package/overlays/redpanda/docker-compose.yml +67 -0
  287. package/overlays/redpanda/overlay.yml +21 -0
  288. package/overlays/redpanda/verify.sh +48 -0
  289. package/overlays/rust/README.md +299 -0
  290. package/overlays/rust/devcontainer.patch.json +39 -0
  291. package/overlays/rust/overlay.yml +15 -0
  292. package/overlays/rust/setup.sh +36 -0
  293. package/overlays/rust/verify.sh +51 -0
  294. package/overlays/sqlite/README.md +584 -0
  295. package/overlays/sqlite/devcontainer.patch.json +14 -0
  296. package/overlays/sqlite/overlay.yml +15 -0
  297. package/overlays/sqlite/setup.sh +27 -0
  298. package/overlays/sqlite/verify.sh +43 -0
  299. package/overlays/sqlserver/.env.example +6 -0
  300. package/overlays/sqlserver/README.md +592 -0
  301. package/overlays/sqlserver/devcontainer.patch.json +22 -0
  302. package/overlays/sqlserver/docker-compose.yml +32 -0
  303. package/overlays/sqlserver/overlay.yml +17 -0
  304. package/overlays/sqlserver/verify.sh +30 -0
  305. package/overlays/tempo/.env.example +5 -0
  306. package/overlays/tempo/README.md +273 -0
  307. package/overlays/tempo/devcontainer.patch.json +12 -0
  308. package/overlays/tempo/docker-compose.yml +20 -0
  309. package/overlays/tempo/overlay.yml +20 -0
  310. package/overlays/tempo/tempo-config.yaml +32 -0
  311. package/overlays/tempo/verify.sh +31 -0
  312. package/overlays/terraform/README.md +389 -0
  313. package/overlays/terraform/devcontainer.patch.json +15 -0
  314. package/overlays/terraform/overlay.yml +14 -0
  315. package/overlays/terraform/verify.sh +63 -0
  316. package/package.json +74 -0
  317. package/templates/README.md +285 -0
  318. package/templates/compose/.devcontainer/devcontainer.json +46 -0
  319. package/templates/compose/.devcontainer/docker-compose.yml +12 -0
  320. package/templates/compose/README.md +20 -0
  321. package/templates/plain/.devcontainer/devcontainer.json +35 -0
  322. package/templates/plain/README.md +21 -0
  323. package/tool/README.md +281 -0
  324. package/tool/schema/base-images.schema.json +43 -0
  325. package/tool/schema/base-templates.schema.json +34 -0
  326. package/tool/schema/config.schema.json +71 -0
  327. package/tool/schema/overlay-manifest.schema.json +86 -0
@@ -0,0 +1,61 @@
1
+ #!/bin/bash
2
+ # MinIO setup script - installs MinIO client (mc) and creates default bucket
3
+
4
+ set -e
5
+
6
+ echo "🔧 Setting up MinIO client..."
7
+
8
+ # Install MinIO client (mc)
9
+ echo "📦 Installing MinIO client (mc)..."
10
+ if ! command -v mc &> /dev/null; then
11
+ # Pin to a specific version for security and reproducibility
12
+ MC_VERSION="RELEASE.2024-11-17T19-35-25Z"
13
+ MC_URL="https://dl.min.io/client/mc/release/linux-amd64/archive/mc.${MC_VERSION}"
14
+ MC_CHECKSUM="27e18faeabd9a0c8066e3b4aadb13a2c0ae4dac09a1e24defe34c99a11b59e26"
15
+
16
+ echo " Downloading MinIO client version ${MC_VERSION}..."
17
+ wget -q "${MC_URL}" -O /tmp/mc
18
+
19
+ # Verify checksum
20
+ echo " Verifying checksum..."
21
+ echo "${MC_CHECKSUM} /tmp/mc" | sha256sum -c - || {
22
+ echo " ❌ Checksum verification failed!"
23
+ rm -f /tmp/mc
24
+ exit 1
25
+ }
26
+
27
+ sudo install /tmp/mc /usr/local/bin/
28
+ rm /tmp/mc
29
+ echo " ✅ MinIO client installed (${MC_VERSION})"
30
+ else
31
+ echo " ✅ MinIO client already installed"
32
+ fi
33
+
34
+ # Wait for MinIO to be ready
35
+ echo "⏳ Waiting for MinIO service..."
36
+ for i in {1..30}; do
37
+ if curl -s http://minio:9000/minio/health/live &> /dev/null; then
38
+ echo " ✅ MinIO is ready"
39
+ break
40
+ fi
41
+ sleep 2
42
+ done
43
+
44
+ # Configure mc alias
45
+ echo "🔗 Configuring MinIO client..."
46
+ mc alias set local http://minio:9000 minioadmin minioadmin || echo "⚠️ MinIO alias setup failed (may already exist)"
47
+
48
+ # Create default bucket if specified in .env
49
+ if [ -f ".devcontainer/.env" ] && grep -q "MINIO_DEFAULT_BUCKET=" .devcontainer/.env; then
50
+ BUCKET_NAME=$(grep "MINIO_DEFAULT_BUCKET=" .devcontainer/.env | cut -d'=' -f2)
51
+ if [ -n "$BUCKET_NAME" ]; then
52
+ echo "📦 Creating default bucket: $BUCKET_NAME"
53
+ mc mb local/$BUCKET_NAME --ignore-existing || echo " ⚠️ Bucket may already exist"
54
+ fi
55
+ fi
56
+
57
+ echo "✅ MinIO setup complete"
58
+ echo ""
59
+ echo "📝 MinIO Console: http://localhost:9001"
60
+ echo " Username: minioadmin"
61
+ echo " Password: minioadmin"
@@ -0,0 +1,64 @@
1
+ #!/bin/bash
2
+ # Verification script for MinIO overlay
3
+ # Confirms MinIO service and client are accessible
4
+
5
+ set -e
6
+
7
+ echo "🔍 Verifying MinIO overlay..."
8
+ echo ""
9
+
10
+ # Check MinIO client is installed
11
+ echo "1️⃣ Checking MinIO client (mc)..."
12
+ if command -v mc &> /dev/null; then
13
+ mc --version
14
+ echo " ✅ MinIO client found"
15
+ else
16
+ echo " ❌ MinIO client not found"
17
+ exit 1
18
+ fi
19
+
20
+ # Check if MinIO service is running
21
+ echo ""
22
+ echo "2️⃣ Checking MinIO service..."
23
+ MINIO_READY=false
24
+ for i in {1..15}; do
25
+ if curl -s http://minio:9000/minio/health/live &> /dev/null; then
26
+ echo " ✅ MinIO service is ready"
27
+ MINIO_READY=true
28
+ break
29
+ fi
30
+ sleep 1
31
+ done
32
+
33
+ if [ "$MINIO_READY" = false ]; then
34
+ echo " ❌ MinIO service not ready after 15 seconds"
35
+ exit 1
36
+ fi
37
+
38
+ # Check MinIO Console
39
+ echo ""
40
+ echo "3️⃣ Checking MinIO Console..."
41
+ if curl -s -o /dev/null -w "%{http_code}" http://minio:9001 | grep -q "200\|307"; then
42
+ echo " ✅ MinIO Console is accessible"
43
+ else
44
+ echo " ⚠️ MinIO Console may still be starting up"
45
+ fi
46
+
47
+ # Test MinIO client connection
48
+ echo ""
49
+ echo "4️⃣ Testing MinIO client connection..."
50
+ if mc alias list | grep -q "local"; then
51
+ echo " ✅ MinIO client configured"
52
+
53
+ # Try listing buckets
54
+ if mc ls local &> /dev/null; then
55
+ echo " ✅ Can list buckets"
56
+ else
57
+ echo " ⚠️ Cannot list buckets (may need credentials)"
58
+ fi
59
+ else
60
+ echo " ⚠️ MinIO client alias not configured"
61
+ fi
62
+
63
+ echo ""
64
+ echo "✅ MinIO overlay verification complete"
@@ -0,0 +1,309 @@
1
+ # MkDocs Overlay
2
+
3
+ Material for MkDocs - professional documentation generator.
4
+
5
+ ## Features
6
+
7
+ - **MkDocs** with Material theme (via official devcontainers-extra feature)
8
+ - **Common MkDocs plugins:**
9
+ - mkdocs-material
10
+ - mkdocs-minify-plugin
11
+ - mkdocs-redirects
12
+ - pymdown-extensions
13
+ - **Python dependency:** Automatically includes Python overlay (required)
14
+ - **VS Code Extensions:**
15
+ - Markdown All in One
16
+ - Markdown Lint
17
+ - Markdown Mermaid
18
+ - **Port forwarding:** 8000 (MkDocs dev server, auto-opens in browser)
19
+
20
+ ## Dependencies
21
+
22
+ This overlay requires the **Python** overlay, which is automatically selected through the dependency model.
23
+
24
+ ## Customizing MkDocs Plugins
25
+
26
+ To add more MkDocs plugins, you can install them via pip in your project's container:
27
+
28
+ ```bash
29
+ # In devcontainer terminal
30
+ pip install mkdocs-git-revision-date-localized-plugin
31
+ pip install mkdocs-awesome-pages-plugin
32
+ pip install mkdocs-macros-plugin
33
+ ```
34
+
35
+ Or add them to your project's `requirements.txt`:
36
+
37
+ ```plaintext
38
+ mkdocs-git-revision-date-localized-plugin>=1.2.0
39
+ mkdocs-awesome-pages-plugin>=2.9.0
40
+ mkdocs-macros-plugin>=1.0.0
41
+ ```
42
+
43
+ **Rebuild container** after editing to install new plugins.
44
+
45
+ ## Quick Start
46
+
47
+ ### New Documentation Site
48
+
49
+ ```bash
50
+ # Create new MkDocs project
51
+ mkdocs new .
52
+
53
+ # Start development server
54
+ mkdocs serve
55
+ # Opens at http://localhost:8000
56
+ ```
57
+
58
+ ### Existing Site
59
+
60
+ If you already have `mkdocs.yml`:
61
+
62
+ ```bash
63
+ # Start development server
64
+ mkdocs serve
65
+
66
+ # Build static site
67
+ mkdocs build
68
+ ```
69
+
70
+ ## MkDocs Configuration
71
+
72
+ ### Basic mkdocs.yml
73
+
74
+ ```yaml
75
+ site_name: My Documentation
76
+ theme:
77
+ name: material
78
+ palette:
79
+ scheme: default
80
+ primary: indigo
81
+ accent: indigo
82
+ features:
83
+ - navigation.sections
84
+ - navigation.expand
85
+ - toc.integrate
86
+
87
+ nav:
88
+ - Home: index.md
89
+ - About: about.md
90
+
91
+ markdown_extensions:
92
+ - pymdownx.highlight
93
+ - pymdownx.superfences
94
+ - pymdownx.tabbed
95
+ - admonition
96
+ ```
97
+
98
+ ### Common Plugins
99
+
100
+ ```yaml
101
+ plugins:
102
+ - search
103
+ - minify:
104
+ minify_html: true
105
+ - redirects:
106
+ redirect_maps:
107
+ 'old-page.md': 'new-page.md'
108
+ ```
109
+
110
+ ## Project Structure
111
+
112
+ ```
113
+ my-docs/
114
+ ├── .devcontainer/
115
+ │ └── devcontainer.json
116
+ ├── mkdocs.yml # Configuration
117
+ ├── docs/ # Markdown files
118
+ │ ├── index.md
119
+ │ ├── about.md
120
+ │ └── images/
121
+ ├── requirements.txt # Optional: additional dependencies
122
+ └── site/ # Built site (git-ignored)
123
+ ```
124
+
125
+ ## Additional Dependencies
126
+
127
+ If you need extra Python packages for MkDocs plugins, you have two options:
128
+
129
+ ### Option 1: Edit requirements-overlay.txt (Recommended)
130
+
131
+ Edit `.devcontainer/requirements-overlay.txt`:
132
+
133
+ ```
134
+ mkdocs>=1.5.0
135
+ mkdocs-material>=9.0.0
136
+ mkdocs-git-revision-date-localized-plugin>=1.2.0
137
+ mkdocs-awesome-pages-plugin>=2.9.0
138
+ mkdocs-macros-plugin>=1.0.0
139
+ ```
140
+
141
+ Rebuild the container to install.
142
+
143
+ ### Option 2: Project requirements.txt
144
+
145
+ Create `requirements.txt` in your project root:
146
+
147
+ ```
148
+ mkdocs-git-revision-date-localized-plugin
149
+ mkdocs-awesome-pages-plugin
150
+ mkdocs-macros-plugin
151
+ ```
152
+
153
+ This is useful if you want to version control plugin dependencies separately.
154
+
155
+ ## Common Workflows
156
+
157
+ ### Documentation as Code
158
+
159
+ ```yaml
160
+ # mkdocs.yml
161
+ plugins:
162
+ - search
163
+ - git-revision-date-localized:
164
+ type: date
165
+ - macros # Use variables and macros
166
+ ```
167
+
168
+ ### API Documentation
169
+
170
+ ```yaml
171
+ markdown_extensions:
172
+ - pymdownx.highlight:
173
+ linenums: true
174
+ - pymdownx.superfences:
175
+ custom_fences:
176
+ - name: mermaid
177
+ class: mermaid
178
+ format: !!python/name:pymdownx.superfences.fence_code_format
179
+ ```
180
+
181
+ ### Multi-language Docs
182
+
183
+ ```yaml
184
+ plugins:
185
+ - search:
186
+ lang:
187
+ - en
188
+ - es
189
+ - i18n:
190
+ default_language: en
191
+ languages:
192
+ en: English
193
+ es: Español
194
+ ```
195
+
196
+ ## Building and Deploying
197
+
198
+ ### Build Static Site
199
+
200
+ ```bash
201
+ mkdocs build
202
+ # Output in site/ directory
203
+ ```
204
+
205
+ ### Deploy to GitHub Pages
206
+
207
+ ```bash
208
+ mkdocs gh-deploy
209
+ # Builds and pushes to gh-pages branch
210
+ ```
211
+
212
+ ### CI/CD Example (.github/workflows/docs.yml)
213
+
214
+ ```yaml
215
+ name: Deploy Docs
216
+ on:
217
+ push:
218
+ branches: [main]
219
+
220
+ jobs:
221
+ deploy:
222
+ runs-on: ubuntu-latest
223
+ steps:
224
+ - uses: actions/checkout@v4
225
+ - uses: actions/setup-python@v5
226
+ with:
227
+ python-version: 3.12
228
+ - run: pip install mkdocs mkdocs-material
229
+ - run: mkdocs gh-deploy --force
230
+ ```
231
+
232
+ ## Material Theme Features
233
+
234
+ ### Navigation
235
+
236
+ ```yaml
237
+ theme:
238
+ features:
239
+ - navigation.instant # Instant loading
240
+ - navigation.sections # Group pages
241
+ - navigation.tabs # Top-level tabs
242
+ - toc.integrate # Integrated ToC
243
+ ```
244
+
245
+ ### Search
246
+
247
+ ```yaml
248
+ theme:
249
+ features:
250
+ - search.suggest
251
+ - search.highlight
252
+ ```
253
+
254
+ ### Code Blocks
255
+
256
+ ```yaml
257
+ markdown_extensions:
258
+ - pymdownx.highlight:
259
+ anchor_linenums: true
260
+ - pymdownx.inlinehilite
261
+ - pymdownx.snippets
262
+ - pymdownx.superfences
263
+ ```
264
+
265
+ ## Best Practices
266
+
267
+ 1. **Keep docs close to code** - Documentation in the same repo
268
+ 2. **Use includes** - Reuse content with `--8<--` includes
269
+ 3. **Add diagrams** - Use Mermaid for architecture diagrams
270
+ 4. **Version docs** - Use mike for multiple versions
271
+ 5. **Add search** - Always enable search plugin
272
+
273
+ ## Troubleshooting
274
+
275
+ ### Module not found after adding plugin
276
+
277
+ Rebuild the container:
278
+
279
+ - **VS Code:** `Cmd+Shift+P` → "Dev Containers: Rebuild Container"
280
+
281
+ ### MkDocs command not found
282
+
283
+ Setup script may have failed. Run manually:
284
+
285
+ ```bash
286
+ pip install --user mkdocs mkdocs-material
287
+ ```
288
+
289
+ ### Port 8000 already in use
290
+
291
+ Change the port in mkdocs.yml:
292
+
293
+ ```yaml
294
+ dev_addr: '0.0.0.0:8001'
295
+ ```
296
+
297
+ And update devcontainer.json forwardPorts.
298
+
299
+ ## Related Overlays
300
+
301
+ - **python** - For docs with custom Python scripts
302
+ - **pre-commit** - Lint markdown before commits
303
+ - **modern CLI tools** - ripgrep for searching docs
304
+
305
+ ## Resources
306
+
307
+ - [MkDocs Documentation](https://www.mkdocs.org/)
308
+ - [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/)
309
+ - [PyMdown Extensions](https://facelessuser.github.io/pymdown-extensions/)
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
3
+ "features": {
4
+ "ghcr.io/devcontainers-extra/features/mkdocs:2": {
5
+ "plugins": "mkdocs-material mkdocs-minify-plugin mkdocs-redirects pymdown-extensions"
6
+ }
7
+ },
8
+ "customizations": {
9
+ "vscode": {
10
+ "extensions": [
11
+ "yzhang.markdown-all-in-one",
12
+ "DavidAnson.vscode-markdownlint",
13
+ "bierner.markdown-mermaid"
14
+ ]
15
+ }
16
+ },
17
+ "forwardPorts": [8000],
18
+ "portsAttributes": {
19
+ "8000": {
20
+ "label": "MkDocs Server",
21
+ "onAutoForward": "openBrowser"
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,15 @@
1
+ id: mkdocs
2
+ name: MkDocs
3
+ description: Material for MkDocs - professional documentation generator
4
+ category: language
5
+ supports: []
6
+ requires:
7
+ - python
8
+ suggests: []
9
+ conflicts: []
10
+ tags:
11
+ - documentation
12
+ - mkdocs
13
+ - python
14
+ ports:
15
+ - 8000