Codify

Complete Company Setup

Full development environment setup for backend and DevOps teams

Configuration

codify.jsonc
[
  {
    "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:

  1. Set up SSH keys for GitHub - Follow the GitHub SSH setup recipe
  2. Update repository URLs - Replace git@github.com:org/repo1.git with your actual repository URLs
  3. 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 formulae and casks arrays 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 parentDirectory for repositories or the custom PATH location

Usage Notes

  • Some repositories depend on git-lfs being installed first (note the dependsOn field)
  • 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.

Learn More

On this page