opencode-skills-collection 4.0.68 → 4.0.69
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/bundled-skills/.antigravity-install-manifest.json +266 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6943 -323
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devcontainers-nix
|
|
3
|
+
description: Create reproducible development environments with Dev Containers, Nix
|
|
4
|
+
flakes, and Devbox for consistent toolchains across teams.
|
|
5
|
+
category: devops
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant platform CLIs (kubectl, helm, terraform, git,
|
|
14
|
+
CI runners) and authorized access to the target environment. Docs-only; helper scripts
|
|
15
|
+
and templates not bundled.
|
|
16
|
+
metadata:
|
|
17
|
+
author: devops-skills
|
|
18
|
+
version: '1.0'
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Dev Containers & Nix Environments
|
|
22
|
+
|
|
23
|
+
Reproducible, portable development environments that eliminate environment drift.
|
|
24
|
+
|
|
25
|
+
## When to Use This Skill
|
|
26
|
+
|
|
27
|
+
Use this skill when:
|
|
28
|
+
- Onboarding new developers (zero-to-productive in minutes)
|
|
29
|
+
- Standardizing toolchains across a team
|
|
30
|
+
- Eliminating "works on my machine" problems
|
|
31
|
+
- Setting up CI environments that match local dev
|
|
32
|
+
- Creating ephemeral, disposable dev environments
|
|
33
|
+
|
|
34
|
+
## Dev Containers
|
|
35
|
+
|
|
36
|
+
### Basic Configuration
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
// .devcontainer/devcontainer.json
|
|
40
|
+
{
|
|
41
|
+
"name": "My Project",
|
|
42
|
+
"image": "mcr.microsoft.com/devcontainers/base:ubuntu-22.04",
|
|
43
|
+
"features": {
|
|
44
|
+
"ghcr.io/devcontainers/features/node:1": { "version": "20" },
|
|
45
|
+
"ghcr.io/devcontainers/features/python:1": { "version": "3.12" },
|
|
46
|
+
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
|
|
47
|
+
"ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {}
|
|
48
|
+
},
|
|
49
|
+
"forwardPorts": [3000, 5432],
|
|
50
|
+
"postCreateCommand": "npm install",
|
|
51
|
+
"customizations": {
|
|
52
|
+
"vscode": {
|
|
53
|
+
"extensions": [
|
|
54
|
+
"dbaeumer.vscode-eslint",
|
|
55
|
+
"esbenp.prettier-vscode",
|
|
56
|
+
"ms-python.python"
|
|
57
|
+
],
|
|
58
|
+
"settings": {
|
|
59
|
+
"editor.formatOnSave": true
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Docker Compose Dev Container
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
// .devcontainer/devcontainer.json
|
|
70
|
+
{
|
|
71
|
+
"name": "Full Stack Dev",
|
|
72
|
+
"dockerComposeFile": "docker-compose.yml",
|
|
73
|
+
"service": "app",
|
|
74
|
+
"workspaceFolder": "/workspace",
|
|
75
|
+
"forwardPorts": [3000, 5432, 6379],
|
|
76
|
+
"postCreateCommand": "npm install && npx prisma migrate dev"
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```yaml
|
|
81
|
+
# .devcontainer/docker-compose.yml
|
|
82
|
+
services:
|
|
83
|
+
app:
|
|
84
|
+
build:
|
|
85
|
+
context: ..
|
|
86
|
+
dockerfile: .devcontainer/Dockerfile
|
|
87
|
+
volumes:
|
|
88
|
+
- ..:/workspace:cached
|
|
89
|
+
command: sleep infinity
|
|
90
|
+
depends_on: [db, redis]
|
|
91
|
+
|
|
92
|
+
db:
|
|
93
|
+
image: postgres:16
|
|
94
|
+
environment:
|
|
95
|
+
POSTGRES_DB: dev
|
|
96
|
+
POSTGRES_USER: dev
|
|
97
|
+
POSTGRES_PASSWORD: dev
|
|
98
|
+
volumes:
|
|
99
|
+
- pgdata:/var/lib/postgresql/data
|
|
100
|
+
ports:
|
|
101
|
+
- "5432:5432"
|
|
102
|
+
|
|
103
|
+
redis:
|
|
104
|
+
image: redis:7-alpine
|
|
105
|
+
ports:
|
|
106
|
+
- "6379:6379"
|
|
107
|
+
|
|
108
|
+
volumes:
|
|
109
|
+
pgdata:
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Custom Dockerfile
|
|
113
|
+
|
|
114
|
+
```dockerfile
|
|
115
|
+
# .devcontainer/Dockerfile
|
|
116
|
+
FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04
|
|
117
|
+
|
|
118
|
+
# System dependencies
|
|
119
|
+
RUN apt-get update && apt-get install -y \
|
|
120
|
+
build-essential \
|
|
121
|
+
curl \
|
|
122
|
+
git \
|
|
123
|
+
jq \
|
|
124
|
+
unzip \
|
|
125
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
126
|
+
|
|
127
|
+
# Install project-specific tools
|
|
128
|
+
RUN curl -fsSL https://get.opentofu.org/install-opentofu.sh -o /tmp/install-opentofu.sh \
|
|
129
|
+
&& sh /tmp/install-opentofu.sh -s -- --install-method standalone \
|
|
130
|
+
&& rm /tmp/install-opentofu.sh
|
|
131
|
+
RUN curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
|
|
132
|
+
&& install kubectl /usr/local/bin/
|
|
133
|
+
|
|
134
|
+
# Non-root user setup
|
|
135
|
+
USER vscode
|
|
136
|
+
WORKDIR /workspace
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Nix Flakes
|
|
140
|
+
|
|
141
|
+
### Basic Flake
|
|
142
|
+
|
|
143
|
+
```nix
|
|
144
|
+
# flake.nix
|
|
145
|
+
{
|
|
146
|
+
description = "Project development environment";
|
|
147
|
+
|
|
148
|
+
inputs = {
|
|
149
|
+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
150
|
+
flake-utils.url = "github:numtide/flake-utils";
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
outputs = { self, nixpkgs, flake-utils }:
|
|
154
|
+
flake-utils.lib.eachDefaultSystem (system:
|
|
155
|
+
let
|
|
156
|
+
pkgs = nixpkgs.legacyPackages.${system};
|
|
157
|
+
in {
|
|
158
|
+
devShells.default = pkgs.mkShell {
|
|
159
|
+
buildInputs = with pkgs; [
|
|
160
|
+
# Languages
|
|
161
|
+
nodejs_20
|
|
162
|
+
python312
|
|
163
|
+
go_1_22
|
|
164
|
+
rustc
|
|
165
|
+
cargo
|
|
166
|
+
|
|
167
|
+
# Tools
|
|
168
|
+
docker-compose
|
|
169
|
+
kubectl
|
|
170
|
+
kubernetes-helm
|
|
171
|
+
opentofu
|
|
172
|
+
awscli2
|
|
173
|
+
jq
|
|
174
|
+
yq-go
|
|
175
|
+
|
|
176
|
+
# Databases
|
|
177
|
+
postgresql_16
|
|
178
|
+
redis
|
|
179
|
+
];
|
|
180
|
+
|
|
181
|
+
shellHook = ''
|
|
182
|
+
echo "Dev environment loaded"
|
|
183
|
+
export PROJECT_ROOT=$(pwd)
|
|
184
|
+
export PATH="$PROJECT_ROOT/node_modules/.bin:$PATH"
|
|
185
|
+
'';
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Enter the dev shell
|
|
194
|
+
nix develop
|
|
195
|
+
|
|
196
|
+
# Or run a single command
|
|
197
|
+
nix develop --command bash -c "node --version && go version"
|
|
198
|
+
|
|
199
|
+
# Build and run
|
|
200
|
+
nix build
|
|
201
|
+
nix run
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Pin Dependencies
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
# Lock flake inputs for reproducibility
|
|
208
|
+
nix flake lock
|
|
209
|
+
nix flake update # Update all inputs
|
|
210
|
+
|
|
211
|
+
# Update a specific input
|
|
212
|
+
nix flake lock --update-input nixpkgs
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Devbox (Nix Made Simple)
|
|
216
|
+
|
|
217
|
+
Devbox wraps Nix with a friendlier interface:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# Install Devbox
|
|
221
|
+
curl -fsSL https://get.jetify.com/devbox -o /tmp/install-devbox.sh && sh /tmp/install-devbox.sh && rm /tmp/install-devbox.sh
|
|
222
|
+
|
|
223
|
+
# Initialize project
|
|
224
|
+
devbox init
|
|
225
|
+
|
|
226
|
+
# Add packages
|
|
227
|
+
devbox add nodejs@20 python@3.12 postgresql@16
|
|
228
|
+
devbox add go@1.22 kubectl helm
|
|
229
|
+
|
|
230
|
+
# Enter shell
|
|
231
|
+
devbox shell
|
|
232
|
+
|
|
233
|
+
# Run commands without entering shell
|
|
234
|
+
devbox run node --version
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### devbox.json Configuration
|
|
238
|
+
|
|
239
|
+
```json
|
|
240
|
+
{
|
|
241
|
+
"$schema": "https://raw.githubusercontent.com/jetify-com/devbox/main/.schema/devbox.schema.json",
|
|
242
|
+
"packages": [
|
|
243
|
+
"nodejs@20",
|
|
244
|
+
"python@3.12",
|
|
245
|
+
"go@1.22",
|
|
246
|
+
"kubectl@1.29",
|
|
247
|
+
"kubernetes-helm@3.14",
|
|
248
|
+
"opentofu@1.8",
|
|
249
|
+
"awscli2@2.15",
|
|
250
|
+
"jq@1.7",
|
|
251
|
+
"postgresql@16",
|
|
252
|
+
"redis@7"
|
|
253
|
+
],
|
|
254
|
+
"env": {
|
|
255
|
+
"PROJECT_ROOT": "$PWD",
|
|
256
|
+
"DATABASE_URL": "postgresql://localhost:5432/dev"
|
|
257
|
+
},
|
|
258
|
+
"shell": {
|
|
259
|
+
"init_hook": [
|
|
260
|
+
"echo 'Dev environment ready'",
|
|
261
|
+
"npm install --silent 2>/dev/null || true"
|
|
262
|
+
],
|
|
263
|
+
"scripts": {
|
|
264
|
+
"dev": "npm run dev",
|
|
265
|
+
"test": "npm test",
|
|
266
|
+
"db:start": "pg_ctl -D .devbox/virtenv/postgresql/data start",
|
|
267
|
+
"db:stop": "pg_ctl -D .devbox/virtenv/postgresql/data stop",
|
|
268
|
+
"db:migrate": "npx prisma migrate dev"
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
# Run project scripts
|
|
276
|
+
devbox run dev
|
|
277
|
+
devbox run test
|
|
278
|
+
devbox run db:start
|
|
279
|
+
|
|
280
|
+
# Generate direnv integration (auto-activate on cd)
|
|
281
|
+
devbox generate direnv
|
|
282
|
+
|
|
283
|
+
# Generate Dockerfile from devbox config
|
|
284
|
+
devbox generate dockerfile
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Devbox + direnv (Auto-Activate)
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
# Install direnv
|
|
291
|
+
devbox add direnv
|
|
292
|
+
|
|
293
|
+
# Generate .envrc
|
|
294
|
+
devbox generate direnv
|
|
295
|
+
|
|
296
|
+
# Allow direnv
|
|
297
|
+
direnv allow
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
# .envrc (auto-generated)
|
|
302
|
+
eval "$(devbox generate direnv --print-envrc)"
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
Now `cd`-ing into the project automatically loads the environment.
|
|
306
|
+
|
|
307
|
+
## CI/CD Integration
|
|
308
|
+
|
|
309
|
+
### GitHub Actions with Devbox
|
|
310
|
+
|
|
311
|
+
```yaml
|
|
312
|
+
# .github/workflows/ci.yml
|
|
313
|
+
name: CI
|
|
314
|
+
on: [push, pull_request]
|
|
315
|
+
|
|
316
|
+
jobs:
|
|
317
|
+
test:
|
|
318
|
+
runs-on: ubuntu-latest
|
|
319
|
+
steps:
|
|
320
|
+
- uses: actions/checkout@v4
|
|
321
|
+
- uses: jetify-com/devbox-install-action@v0.11.0
|
|
322
|
+
with:
|
|
323
|
+
enable-cache: true
|
|
324
|
+
- run: devbox run test
|
|
325
|
+
- run: devbox run lint
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### GitHub Actions with Nix
|
|
329
|
+
|
|
330
|
+
```yaml
|
|
331
|
+
name: CI
|
|
332
|
+
on: [push, pull_request]
|
|
333
|
+
|
|
334
|
+
jobs:
|
|
335
|
+
test:
|
|
336
|
+
runs-on: ubuntu-latest
|
|
337
|
+
steps:
|
|
338
|
+
- uses: actions/checkout@v4
|
|
339
|
+
- uses: cachix/install-nix-action@v26
|
|
340
|
+
with:
|
|
341
|
+
nix_path: nixpkgs=channel:nixos-unstable
|
|
342
|
+
- uses: cachix/cachix-action@v14
|
|
343
|
+
with:
|
|
344
|
+
name: my-project
|
|
345
|
+
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
|
346
|
+
- run: nix develop --command bash -c "npm ci && npm test"
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### GitHub Codespaces
|
|
350
|
+
|
|
351
|
+
```json
|
|
352
|
+
// .devcontainer/devcontainer.json — works in Codespaces
|
|
353
|
+
{
|
|
354
|
+
"name": "Codespaces Dev",
|
|
355
|
+
"image": "mcr.microsoft.com/devcontainers/universal:2",
|
|
356
|
+
"features": {
|
|
357
|
+
"ghcr.io/devcontainers/features/node:1": { "version": "20" }
|
|
358
|
+
},
|
|
359
|
+
"postCreateCommand": "npm install",
|
|
360
|
+
"portsAttributes": {
|
|
361
|
+
"3000": { "label": "App", "onAutoForward": "openBrowser" },
|
|
362
|
+
"5432": { "label": "Postgres", "onAutoForward": "ignore" }
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
## Comparison
|
|
368
|
+
|
|
369
|
+
| Feature | Dev Containers | Nix Flakes | Devbox |
|
|
370
|
+
|---------|---------------|------------|--------|
|
|
371
|
+
| Learning curve | Low | High | Low |
|
|
372
|
+
| Reproducibility | Good (Docker) | Excellent | Excellent (Nix) |
|
|
373
|
+
| Speed | Slow (build image) | Fast (cached) | Fast (cached) |
|
|
374
|
+
| IDE support | VS Code, JetBrains | Any terminal | Any terminal |
|
|
375
|
+
| CI integration | Docker-based | Nix actions | Devbox action |
|
|
376
|
+
| Offline support | Limited | Full | Full |
|
|
377
|
+
| macOS/Linux/Win | All | macOS/Linux | macOS/Linux |
|
|
378
|
+
|
|
379
|
+
## Best Practices
|
|
380
|
+
|
|
381
|
+
- Pin all tool versions explicitly — never use `latest`
|
|
382
|
+
- Commit lock files (`flake.lock`, `devbox.lock`, etc.)
|
|
383
|
+
- Use direnv for automatic environment activation
|
|
384
|
+
- Cache Nix store in CI (Cachix or GitHub cache)
|
|
385
|
+
- Document setup in README: `devbox shell` or `nix develop`
|
|
386
|
+
- Keep dev environment close to production (same Node/Python versions)
|
|
387
|
+
|
|
388
|
+
## Troubleshooting
|
|
389
|
+
|
|
390
|
+
| Issue | Solution |
|
|
391
|
+
|-------|---------|
|
|
392
|
+
| Nix build slow first time | Use binary cache (Cachix), `nix develop` caches after first run |
|
|
393
|
+
| Dev Container won't build | Check Docker disk space, rebuild with `--no-cache` |
|
|
394
|
+
| Package not in Nixpkgs | Search at search.nixos.org, or use `fetchFromGitHub` overlay |
|
|
395
|
+
| Devbox hash mismatch | Run `devbox update`, delete `.devbox/` and re-init |
|
|
396
|
+
| direnv not activating | Run `direnv allow`, check shell hook is installed |
|
|
397
|
+
|
|
398
|
+
## Related Skills
|
|
399
|
+
|
|
400
|
+
- docker-management (`docker-management`) — Container image optimization
|
|
401
|
+
- github-actions (`github-actions`) — CI/CD pipeline setup
|
|
402
|
+
- linux-administration (`linux-administration`) — System-level tooling
|
|
403
|
+
|
|
404
|
+
## Limitations
|
|
405
|
+
|
|
406
|
+
- Guidance executes against real environments: confirm target, blast radius, and rollback plan before applying anything.
|
|
407
|
+
- Never deploy to production without explicit approval. Docs-only import: upstream scripts and templates not bundled.
|
|
408
|
+
|
|
409
|
+
### Example
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
git status && git diff --stat
|
|
413
|
+
kubectl diff -f manifest.yaml
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
> Adapted from [BagelHole/DevOps-Security-Agent-Skills](https://github.com/BagelHole/DevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.
|