{"id":19770219,"url":"https://github.com/sunny0826/tabby-terraform","last_synced_at":"2026-01-27T13:02:32.180Z","repository":{"id":193628690,"uuid":"689182157","full_name":"sunny0826/tabby-terraform","owner":"sunny0826","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-09T04:38:43.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-30T12:57:36.833Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sunny0826.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-09T02:47:14.000Z","updated_at":"2023-09-09T02:53:29.000Z","dependencies_parsed_at":"2023-09-09T05:39:28.155Z","dependency_job_id":null,"html_url":"https://github.com/sunny0826/tabby-terraform","commit_stats":null,"previous_names":["sunny0826/tabby-terraform"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sunny0826/tabby-terraform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunny0826%2Ftabby-terraform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunny0826%2Ftabby-terraform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunny0826%2Ftabby-terraform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunny0826%2Ftabby-terraform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunny0826","download_url":"https://codeload.github.com/sunny0826/tabby-terraform/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunny0826%2Ftabby-terraform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28813225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-11-12T04:47:17.743Z","updated_at":"2026-01-27T13:02:32.164Z","avatar_url":"https://github.com/sunny0826.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tabby Terraform\n\n## Azure\n\nThis Terraform project provisions a GPU-enabled virtual machine (VM) on Azure, sets up a public IP for it, and runs a [Tabby](https://tabbyml.github.io/tabby/docs/self-hosting/docker) Docker instance.\n\n### Prerequisites\n\n- [Terraform](https://www.terraform.io/downloads.html) installed.\n- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) installed and authenticated.\n- An active Azure subscription.\n\n### Setup\n\n1. **Azure Authentication**: Ensure you're logged into Azure using the Azure CLI:\n\n    ```bash\n    az login\n    ```\n\n    Once you have chosen the account subscription ID, set the account with the Azure CLI.\n\n    ```bash\n    az account set --subscription \"35akss-subscription-id\"\n    ```\n\n2. Create a Service Principal\n\n    ```bash\n    az ad sp create-for-rbac --role=\"Contributor\" --scopes=\"/subscriptions/\u003cSUBSCRIPTION_ID\u003e\"\n\n    Creating 'Contributor' role assignment under scope '/subscriptions/35akss-subscription-id'\n    The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli\n    {\n    \"appId\": \"xxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx\",\n    \"displayName\": \"azure-cli-2022-xxxx\",\n    \"password\": \"xxxxxx~xxxxxx~xxxxx\",\n    \"tenant\": \"xxxxx-xxxx-xxxxx-xxxx-xxxxx\"\n    }\n    ```\n\n3. Set your environment variables\n\n    Set the necessary environment variables for Terraform to authenticate with Azure:\n\n    ```bash\n    export ARM_CLIENT_ID=\"\u003cAPPID_VALUE\u003e\"\n    export ARM_CLIENT_SECRET=\"\u003cPASSWORD_VALUE\u003e\"\n    export ARM_SUBSCRIPTION_ID=\"\u003cSUBSCRIPTION_ID\u003e\"\n    export ARM_TENANT_ID=\"\u003cTENANT_VALUE\u003e\"\n    ```\n\n4. **Initialization**: Navigate to the project directory and run:\n\n    ```bash\n    cd azure\n    terraform init\n    ```\n\n5. **plan**: To see what resources will be created, run:\n\n    ```bash\n    terraform plan\n    ```\n\n6. **Apply Configuration**: To provision the resources on Azure, run:\n\n    ```bash\n    terraform apply\n    ```\n\n    This command will show a plan and prompt you for confirmation. Type `yes` to proceed.\n\n7. **Destroy Resources**: If you wish to remove all the resources created by this project, run:\n\n    ```bash\n    terraform destroy\n    ```\n\n    This will show a plan for destroying resources and will prompt for confirmation.\n\n### Outputs\n\n- `vm_public_ip`: The public IP address of the provisioned VM.\n\n### Usage\n\nAccess `http://vm_public_ip:8080` to view the Tabby service.\n\n### Notes\n\n- Ensure you have set the correct region in `variables.tf` or provide it during the `terraform apply` command.\n- Always review the Terraform plan output before applying any changes.\n- Monitor your Azure resources and billing to avoid unexpected charges.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunny0826%2Ftabby-terraform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunny0826%2Ftabby-terraform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunny0826%2Ftabby-terraform/lists"}