{"id":21658256,"url":"https://github.com/tsirysndr/secrets","last_synced_at":"2026-01-06T03:52:47.630Z","repository":{"id":223340487,"uuid":"759909401","full_name":"tsirysndr/secrets","owner":"tsirysndr","description":"My Personal Secret Manager, configured with Terraform + Google Secret Manager \u0026 Cloudflare Worker Secrets🏠 🔐","archived":false,"fork":false,"pushed_at":"2024-09-17T12:09:23.000Z","size":76,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-14T00:07:11.704Z","etag":null,"topics":["cloudflare","google-cloud-platform","linux","macos","secrets-management","shell","teller","terraform"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/tsirysndr.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2024-02-19T15:11:39.000Z","updated_at":"2024-09-17T12:09:27.000Z","dependencies_parsed_at":"2024-04-04T13:58:18.287Z","dependency_job_id":"869dd436-f500-45c8-9e31-4ae872b61c44","html_url":"https://github.com/tsirysndr/secrets","commit_stats":null,"previous_names":["tsirysndr/secrets"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsirysndr%2Fsecrets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsirysndr%2Fsecrets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsirysndr%2Fsecrets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsirysndr%2Fsecrets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsirysndr","download_url":"https://codeload.github.com/tsirysndr/secrets/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226304443,"owners_count":17603595,"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":["cloudflare","google-cloud-platform","linux","macos","secrets-management","shell","teller","terraform"],"created_at":"2024-11-25T09:28:58.074Z","updated_at":"2026-01-06T03:52:47.579Z","avatar_url":"https://github.com/tsirysndr.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Secrets 🏠 🔐\n\n[![terraform apply](https://github.com/tsirysndr/secrets/actions/workflows/deploy.yml/badge.svg)](https://github.com/tsirysndr/secrets/actions/workflows/deploy.yml)\n\nThis is my [terraform](https://terraform.io) code to keep all my secrets in sync across all my devices. It uses [Google Secret Manager](https://cloud.google.com/secret-manager) and [Cloudflare Worker Secrets](https://developers.cloudflare.com/workers/configuration/secrets/) to store the secrets so I can access them from anywhere later using [teller](https://tlr.dev/).\n\nI use [Github Secrets](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions) as a single source of truth for my secrets. Github Actions will then use this terraform code to store the secrets in [Google Secret Manager](https://cloud.google.com/secret-manager) and [Cloudflare Secrets](https://developers.cloudflare.com/workers/configuration/secrets/) on every `git push` to this repository.\n\n## 🚀 Quickstart\n\n1 . Clone this repository\n\n```sh\ngh repo clone tsirysndr/secrets \u0026\u0026 cd secrets\n```\n\n2 . Create a `secrets.tfvars` file with the following content:\n\n```hcl\ngcp_credentials = \"path/to/your/credentials.json\"\n\ngcp_project = \"your-gcp-project\"\n\nsecrets = {\n  \"secret-1\" = \"super-secret-value-1\",\n  \"secret-2\" = \"super-secret-value-2\"\n}\n```\n\n3 . Run the following commands:\n\n```sh\nterraform init\nterraform validate\nterraform plan -var-file=secrets.tfvars\nterraform apply -var-file=secrets.tfvars\n```\n\n## 📥 Inputs \n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|----------|\n| account_id | The Cloudflare account id | `string` | n/a | yes |\n| cloudflare_api_token | The Cloudflare API token | `string` | n/a | yes |\n| gcp_credentials | The path to the GCP credentials file | `string` | n/a | yes |\n| gcp_project | The GCP project id | `string` | n/a | yes |\n| gcp_region | The GCP region to create the secret | `string` | `us-east1` | no |\n| secrets | A map of secrets to store in Google Secret Manager / Cloudflare Wroker Secrets | `map(string)` | n/a | yes |\n| worker_name | The Cloudflare worker name | `string` | n/a | yes |\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsirysndr%2Fsecrets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsirysndr%2Fsecrets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsirysndr%2Fsecrets/lists"}