Team Configs
Standardized dev environments across your whole team with shared YAML configs
Quick summary
Every team has a stack — specific tools, runtimes, linters, and conventions. Without automation, each new hire spends hours (or days) setting up their machine, and inconsistencies creep in across the team. Datakraften's team config solves this with a single shared YAML file.
Common tasks
Why team profiles?
curl -fsSL https://datakraften.no/install | bashWhy team profiles?
dk init --team https://example.com/team.yamlWhy team profiles?
dk applyWhy team profiles?
Every team has a stack — specific tools, runtimes, linters, and conventions. Without automation, each new hire spends hours (or days) setting up their machine, and inconsistencies creep in across the team. Datakraften's team config solves this with a single shared YAML file.
The idea is simple: define your team's ideal workstation once, host the YAML file somewhere your team can reach it, and each developer's local config becomes a thin pointer — just source: team and url. On every dk apply, the remote YAML is fetched fresh, validated, and applied. No local copy, no drift.
Setting up a team config
The remote YAML defines everything — it IS the config. Create a file with the exact toolset your team needs and host it somewhere accessible. Each developer's local config only needs:
Here is an example of what the remote YAML file itself might look like:
Hosting your YAML
Any HTTPS-accessible URL works. Popular options:
- GitHub repository — commit the YAML to your team's repo and use the raw.githubusercontent.com URL
- GitHub Gist — create a secret or public gist and use the raw URL
- Internal wiki — host it behind your company's SSO or VPN
- S3 / Cloud Storage — with a signed URL or public bucket
- Your own server — any static file server works
The URL is set during dk init --team <url>. Datakraften fetches the remote YAML to validate it, then stores only the URL locally. On every dk apply, the remote YAML is re-fetched fresh — the remote file is always the single source of truth. This means the environment is always up to date with the latest version of the shared config.
Best practices
Start with the default profile, test it, then iterate:
- Customize your remote YAML for your team's stack. Add specific packages, remove what you don't need.
- Host the YAML and share the raw URL. Ask a teammate to run dk init with it on a fresh machine.
- Keep the remote YAML minimal — install only what every developer needs. Let individuals add their own tools on top.
- Version your config. Use a git tag or a versioned path so you can roll back if something breaks.
- Document exceptions. Not everything fits in YAML. Add a comment or a README alongside your remote config for manual steps.
- Update periodically. Point your team to run dk apply when you push a new version of the remote YAML — changes take effect immediately.
Example: Node.js team config
A minimal remote YAML for a Node.js backend team. Developers point their local config to this URL and get the exact same environment:
Example: Full-stack team config
A comprehensive remote YAML for a full-stack team working with Node.js, Python, Go, and .NET: