{"id":16399847,"url":"https://github.com/justinrubek/thoenix","last_synced_at":"2025-10-13T06:17:27.331Z","repository":{"id":143232539,"uuid":"572288216","full_name":"justinrubek/thoenix","owner":"justinrubek","description":"Manage terraform configurations using terranix","archived":false,"fork":false,"pushed_at":"2024-12-07T23:33:57.000Z","size":171,"stargazers_count":8,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-04T02:58:32.659Z","etag":null,"topics":["flake","nix","nix-flake","rust","terraform"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/justinrubek.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-11-30T00:15:07.000Z","updated_at":"2025-08-07T00:18:20.000Z","dependencies_parsed_at":"2024-03-17T22:25:43.266Z","dependency_job_id":"a3e5e8b2-4ee0-4238-8f75-71d39d0ab9d4","html_url":"https://github.com/justinrubek/thoenix","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/justinrubek/thoenix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinrubek%2Fthoenix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinrubek%2Fthoenix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinrubek%2Fthoenix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinrubek%2Fthoenix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justinrubek","download_url":"https://codeload.github.com/justinrubek/thoenix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinrubek%2Fthoenix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013956,"owners_count":26085429,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["flake","nix","nix-flake","rust","terraform"],"created_at":"2024-10-11T05:25:56.554Z","updated_at":"2025-10-13T06:17:27.315Z","avatar_url":"https://github.com/justinrubek.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Seamlessly use Terraform with [Terranix](https://github.com/terranix/terranix).\n\n# about\n\nThoenix is a set of nix functions used to manage terraform configurations.\nBy using the nix flake templates provided you can quickly get started managing terraform.\nAny `.nix` files included will be built into JSON using terranix and included in the configuration directory.\n\n# getting started\n\n## quickstart\n\nYou may use one of the templates to get started:\n\nInitialize in the current directory:\n\n`nix flake init --template github:justinrubek/thoenix#flake-module`\n\nOr, create a new one\n\n`nix flake new --template github:justinrubek/thoenix#flake-module ./terraform-project`\n\n- The `flake-module` template exposes a [flake-parts](https://github.com/hercules-ci/flake-parts) module that can be used to expose your configuration as flake outputs.\n- The `lib` example allows for more manual control over the final output values.\n\n\n## other info\n\nThe flake's `cli` package includes a `terraform` subcommand which builds the terranix configuration and invoke `terraform`.\n\n- The first argument is the configuration's name, which corresponds a subdirectory in the repo's `terraform/configurations` directory. Terraform will be invoked within that directory.\n- All other arguments are passed through to terraform. You may need to escape some, i.e. `thoenix terraform apps init -- -upgrade`\n- This assumes that the configuration name is a flake output package: `.#terraformConfiguration/{name}`\n\n# why use this\n\nThis allows for the management of plain terraform configurations as well as using terranix when convenient.\nBy having them both together you may seamlessly migrate between HCL and nix based infrastructure configuration.\nThe [terranix website](https://terranix.org/) gives reasoning as to why it was created, but the main point is: there are certain things that are hard to express effectively in HCL.\nBy taking advantage of NixOS's module system there is a lot to be gained over plain HCL.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinrubek%2Fthoenix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustinrubek%2Fthoenix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinrubek%2Fthoenix/lists"}