{"id":13505801,"url":"https://github.com/chanzuckerberg/fogg","last_synced_at":"2026-03-13T23:14:33.184Z","repository":{"id":34471572,"uuid":"137801039","full_name":"chanzuckerberg/fogg","owner":"chanzuckerberg","description":"Manage Infrastructure as Code with less pain.","archived":false,"fork":false,"pushed_at":"2025-03-31T20:21:30.000Z","size":14942,"stargazers_count":297,"open_issues_count":42,"forks_count":19,"subscribers_count":45,"default_branch":"main","last_synced_at":"2025-04-01T07:51:23.638Z","etag":null,"topics":["infrastructure","infrastructure-as-code","terraform"],"latest_commit_sha":null,"homepage":"https://chanzuckerberg.github.io/fogg/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chanzuckerberg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-18T20:08:30.000Z","updated_at":"2025-03-18T02:17:57.000Z","dependencies_parsed_at":"2023-10-02T19:50:03.014Z","dependency_job_id":"9751b44e-d402-475c-abac-7c79a0cd43a4","html_url":"https://github.com/chanzuckerberg/fogg","commit_stats":{"total_commits":1010,"total_committers":46,"mean_commits":"21.956521739130434","dds":0.7821782178217822,"last_synced_commit":"c7078f6c0a70604c683de209d26504c562a18e54"},"previous_names":[],"tags_count":404,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanzuckerberg%2Ffogg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanzuckerberg%2Ffogg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanzuckerberg%2Ffogg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanzuckerberg%2Ffogg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chanzuckerberg","download_url":"https://codeload.github.com/chanzuckerberg/fogg/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809962,"owners_count":20999816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["infrastructure","infrastructure-as-code","terraform"],"created_at":"2024-08-01T00:01:14.108Z","updated_at":"2026-03-13T23:14:33.174Z","avatar_url":"https://github.com/chanzuckerberg.png","language":"Go","funding_links":[],"categories":["Go","Tools","terraform"],"sub_categories":["Miscellaneous","Community providers"],"readme":"# fogg\n\u003c!-- bump --\u003e\n![.github/workflows/build.yml](https://github.com/chanzuckerberg/fogg/workflows/.github/workflows/build.yml/badge.svg)\n\n**Please note**: If you believe you have found a security issue, _please responsibly disclose_ by contacting us at [security@chanzuckerberg.com](mailto:security@chanzuckerberg.com).\n\n----\n\nVisit the fogg documentation for more details: [https://chanzuckerberg.github.io/fogg/](https://chanzuckerberg.github.io/fogg/)\n\nFogg is an opinionated tool for managing infrastructure-as-code repositories using Terraform.\n\nTerraform is a powerful tool for managing infrastructure– great when things go right, but dangerous\nwhen they don't. Best practices are emerging for reducing this risk, but they require significant\nwork and knowledge to apply consistently.\n\nWe built fogg to automate these practices and scale to a larger pool of engineers who don't have to\nbe terraform experts to use it safely.\n\nA few of the things fogg standardizes–\n\n* repository layout\n* remote state\n* resource naming\n* resource isolation\n\nIt makes life easy for folks working with cloud infrastructure. We've been using fogg and its\npredecessor internally at CZI for ~10 months. It has made it possible for many developers without\nterraform experience to safely roll new infrastructure with less stress and higher quality.\n\n\"I hope one day you might consider open sourcing `fogg`, i really love it. This would have saved me\nso much time in the past.\" - @lenn0x\n\n## Getting Help\n\nIf you need help getting started with fogg, either open a github issue or join our [gitter chat room](https://gitter.im/chanzuckerberg/fogg).\n\n## Install\n\n## Mac\n\nYou can use homebrew to install fogg –\n\n```shell\nbrew tap chanzuckerberg/tap\nbrew install fogg\n```\n\nNote– if you installed fogg from homebrew before version 0.15.0, the tap location has changed. Run\nthis, then install as above–\n\n```shell\nbrew uninstall fogg\nbrew untap chanzuckerberg/tap\n```\n\n## Linux\n\nBinaries are available on the releases page. Download one for your architecture, put it in your path and make it executable.\n\nInstructions on downloading the binary:\n\n1. Go here: \u003chttps://github.com/chanzuckerberg/fogg/releases\u003e to find which version of fogg you want.\n2. Run `curl -s https://raw.githubusercontent.com/chanzuckerberg/fogg/master/download.sh | bash -s -- -b FOGG_PATH VERSION`\n   1. FOGG_PATH is the directory where you want to install fogg\n   2. VERSION is the release you want\n3. To verify you installed the desired version, you can run `fogg version`.\n\n## Usage\n\nFogg works entirely by generating code (terraform and make). It will generate directories and files\nto organize and standardize your repo and then it gets out of your way for you to use terraform and\nmake to manage your infrastructure.\n\nThe basic workflow is –\n\n1. update fogg.yml\n2. run `fogg apply` to code generate\n3. use the generated Makefiles to run your Terraform commands\n\n### Enabling shell autocompletion\n\n#### bash\n\n##### Linux shell autocompletion\n\n```shell\n# Might need to install bash-completion on CentOS\nyum install bash-completion\n# install completion\necho \"source \u003c(fogg completion bash)\" \u003e\u003e ~/.bashrc\n```\n\n##### Mac shell autocompletion\n\n```shell\n## If running Bash 3.2 included with macOS\nbrew install bash-completion\n## or, if running Bash 4.1+\nbrew install bash-completion@2\n\n# install completion\nfogg completion bash \u003e $(brew --prefix)/etc/bash_completion.d/fogg\n```\n\n#### zsh\n\nYou can add the file generated by `fogg completion zsh` to a directory in your $fpath.\n\n## Design Principles\n\n### Convention over Configuration\n\nMuch like Ruby on Rails, we prefer to use conventions to organize our repos rather than a plethora\nof configuration. Our opinions might not be exactly the way you would do things, but our hope is\nthat be having a set of clear opinions that are thoroughly applied will be productive.\n\n### Transparency\n\nFogg tries to stay out of your way– it will do its work by generating Terraform and Make files, and\nthen it step aside for you to manage your infrastructure. Everything that could effect your\ninfrastructure is right there in your repository for you to read and understand.\n\nThere is no magic.\n\nAnd if you ever decide to stop using it, you have a working repo you can take in a different\ndirection, just stop running `fogg apply` and go your own way.\n\n## Contributing\n\nWe use standard go tools + makefiles to build fogg. Getting started should be as simple as-\n\n1. install go\n1. `$ go get github.com/chanzuckerberg/fogg`\n1. `cd $GOPATH/src/github.com/chanzuckerberg/fogg`\n1. `make setup \u0026\u0026 make`\n\nIf you would like to contribute some code: Read through the documents  located in the `/docs`\nfolder, fork this repo, and send a pull request.\n\n## Copyright\n\nCopyright 2017-2021, Chan Zuckerberg Initiative, LLC\n\nFor license, see [LICENSE](LICENSE).\n\n//bump\n\n## Code of Conduct\n\nThis project adheres to the Contributor Covenant [code of conduct](https://github.com/chanzuckerberg/.github/blob/master/CODE_OF_CONDUCT.md).\nBy participating, you are expected to uphold this code. \nPlease report unacceptable behavior to [opensource@chanzuckerberg.com](mailto:opensource@chanzuckerberg.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchanzuckerberg%2Ffogg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchanzuckerberg%2Ffogg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchanzuckerberg%2Ffogg/lists"}