Complete Company Setup
Full development environment setup for backend and DevOps teams
Configuration
[
{
"type": "homebrew",
"formulae": ["jq", "openjdk@17", "jenv", "docker"],
"casks": ["openvpn-connect", "sublime-text", "dbeaver-community", "intellij-idea-ce", "1password", "google-chrome"]
},
{
"type": "nvm",
"nodeVersions": ["20"],
"global": "20"
},
{ "type": "vscode" },
{ "type": "aws-cli" },
{ "type": "terraform" },
{ "type": "pgcli" },
{
"type": "pyenv",
"global": "3.12",
"pythonVersions": ["3.12"]
},
{ "type": "git-lfs" },
{ "type": "git-clone", "parentDirectory": "~/projects", "remote": "git@github.com:org/repo1.git" },
{ "type": "git-clone", "parentDirectory": "~/projects", "remote": "git@github.com:org/repo2.git", "dependsOn": ["git-lfs"] },
{ "type": "git-clone", "parentDirectory": "~/projects", "remote": "git@github.com:org/repo3.git" },
{ "type": "git-clone", "parentDirectory": "~/projects", "remote": "git@github.com:org/repo4.git" },
{ "type": "git-clone", "parentDirectory": "~/projects", "remote": "git@github.com:org/repo5.git" },
{ "type": "git-clone", "parentDirectory": "~/projects", "remote": "git@github.com:org/repo6.git" },
{ "type": "path", "path": "$HOME/projects/tools/bin", "dependsOn": ["git-clone.0"] }
]What Gets Installed
This is a comprehensive setup configuration designed for backend and DevOps developers. It installs a complete development environment including tools, applications, and project repositories.
Development Tools
- jq - Command-line JSON processor
- Docker - Container platform
- Git LFS - Git Large File Storage
- pgcli - PostgreSQL CLI with auto-completion
Programming Languages
- Node.js 20 (via nvm)
- Python 3.12 (via pyenv)
- Java 17 (via Homebrew + jenv)
IDEs and Editors
- VS Code - Microsoft's code editor
- Sublime Text - Fast text editor
- IntelliJ IDEA CE - JetBrains Java IDE
- DBeaver Community - Database management tool
Cloud and DevOps
- AWS CLI - AWS command-line interface
- Terraform - Infrastructure as code tool
Applications
- OpenVPN Connect - VPN client
- 1Password - Password manager
- Google Chrome - Web browser
Project Repositories
The configuration clones multiple project repositories into ~/projects and adds custom tooling to your PATH.
Prerequisites
Before running this configuration:
- Set up SSH keys for GitHub - Follow the GitHub SSH setup recipe
- Update repository URLs - Replace
git@github.com:org/repo1.gitwith your actual repository URLs - Verify repository access - Ensure your SSH key has access to all repositories
Customization
This configuration can be customized for your organization:
- Add/remove tools: Modify the
formulaeandcasksarrays in the Homebrew resource - Change versions: Update version numbers for Node.js, Python, or Java
- Update repositories: Replace the git-clone resources with your team's repositories
- Adjust paths: Modify the
parentDirectoryfor repositories or the custom PATH location
Usage Notes
- Some repositories depend on git-lfs being installed first (note the
dependsOnfield) - The PATH modification depends on the first repository being cloned (referenced as
git-clone.0) - After installation, open a new terminal or source your shell configuration to use the new tools
Real-World Example
This is a redacted version of a configuration used for setting up developer laptops at a startup, demonstrating how Codify can standardize onboarding and environment setup across an entire engineering team.