This repository holds a collection of configuration settings and scripts for managing a consistent development environment across different systems. The primary purpose of this repository is to reduce the time and effort required to set up a new development environment. By running a single command, you can replicate the same development environment on a new computer.
It includes settings for various tools, such as the shell (Zsh), Git, npm, and Visual Studio Code, and provides specific configurations for different operating systems.
docker
: Contains a Dockerfile and docker-compose file for setting up a Docker-based development environment using thecodercom/code-server
image.kubernetes
: Contains files for setting up a Kubernetes cluster using Vagrant, including a Vagrantfile, scripts for the master and worker nodes, and a script for fetching GKE credentials.script
: Contains scripts for exporting configuration settings from a system to this repository (export.sh
), importing configuration settings from this repository to a system (import.sh
), and checking for changes and making a commit (commit_changes.sh
)..zsh
,git
,macOS
,.vscode
,linux
,vscode
,npm
,brew
,dot
: These directories contain various configuration files and settings for different tools and systems.
Before using these configuration settings, you should review them and adjust as necessary for your specific environment and preferences. For credentials, we use environment variables managed by 1Password.
Run the import.sh
script to import the configuration settings to a system. Depending on the operating system, it performs the following actions:
- Installs packages listed in a Brewfile.
- Installs VS Code extensions listed in a specific file.
- Injects environment variables from a specific file managed by 1Password.
- Copies configuration files to the home directory.
Run the export.sh
script to export the configuration settings from a system to this repository. Depending on the operating system, it performs the following actions:
- Writes the list of installed VS Code extensions to a file.
- Dumps the list of installed Brew packages to a Brewfile.
- Copies various configuration files from the home directory to the repository.
Run the commit_changes.sh
script to check if there are any changes in the repository. If there are changes, it stages all of them and makes a commit.
- Docker: An open-source platform used for automating the deployment, scaling, and management of applications.
- Kubernetes: An open-source platform designed to automate deploying, scaling, and operating application containers.
- Vagrant: A tool for building and managing virtual machine environments in a single workflow.
- Zsh: A shell designed for interactive use, although it is also a powerful scripting language.
- Git: A distributed version control system for tracking changes in source code during software development.
- npm: The default package manager for the JavaScript runtime environment Node.js.
- Visual Studio Code: A free source-code editor made by Microsoft for Windows, Linux, and macOS.
- 1Password: A password manager, which provides a place for users to store various passwords, software licenses, and other sensitive information in a virtual vault locked with a PBKDF2-guarded master password.
This repository is intended for personal use. While it's made public for reference and learning purposes, it may not fit your development environment or use case directly. Always review and understand the settings and scripts before use.