Initial commit: Terraform configurations for multiple cloud providers

This commit is contained in:
Ben User
2026-02-01 06:36:02 +00:00
commit 70f160b396
58 changed files with 1813 additions and 0 deletions

127
heroku/README.md Normal file
View File

@@ -0,0 +1,127 @@
# Heroku Terraform 配置说明
## 当前状态
由于网络连接问题,无法自动下载 Heroku Terraform provider。以下是解决方案。
## 方案一:手动下载 Provider推荐
### 1. 手动下载 Heroku Provider
```bash
# 创建插件目录
mkdir -p ~/.terraform.d/plugins/linux_amd64/
# 下载 provider需要网络连接
cd ~/.terraform.d/plugins/linux_amd64/
wget https://github.com/heroku/terraform-provider-heroku/releases/download/v5.3.2/terraform-provider-heroku_5.3.2_linux_amd64.zip
# 解压
unzip terraform-provider-heroku_5.3.2_linux_amd64.zip
rm terraform-provider-heroku_5.3.2_linux_amd64.zip
# 返回项目目录
cd /home/ben/terraform/heroku
# 初始化
terraform init
```
### 2. 使用配置文件
```bash
# 应用配置
terraform apply -var="heroku_api_key=$(head -1 .env)" -var="heroku_email=$(tail -1 .env)"
```
## 方案二:使用 Heroku CLI替代方案
如果 Terraform provider 无法使用,可以直接使用 Heroku CLI
### 安装 Heroku CLI
```bash
# 使用 snap 安装
sudo snap install --classic heroku
# 或使用 npm
npm install -g heroku
```
### 登录 Heroku
```bash
heroku login
```
### 创建应用
```bash
# 创建新应用
heroku create my-app
# 查看应用
heroku apps
# 添加 PostgreSQL
heroku addons:create heroku-postgresql:essential-0
# 添加 Redis
heroku addons:create heroku-redis:mini
# 设置环境变量
heroku config:set NODE_ENV=production PORT=8080
# 查看日志
heroku logs --tail
# 部署应用
git push heroku main
```
## 方案三:使用 HTTP 代理
如果你有可用的代理,可以配置环境变量:
```bash
# 设置代理
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port
# 初始化 Terraform
terraform init
```
## 当前账户信息
根据 API 查询,你的 Heroku 账户有以下应用:
- **应用名称**: cauldron
- **应用 URL**: https://cauldron-6e3816f9af3f.herokuapp.com/
- **Stack**: heroku-24
- **区域**: us
- **邮箱**: houzhongxu@seekkey.tech
## Terraform 配置文件说明
[main.tf](file:///home/ben/terraform/heroku/main.tf) 包含以下资源:
1. **Heroku App** - 主应用
2. **Formation** - Web dyno 配置
3. **PostgreSQL Add-on** - 数据库
4. **Redis Add-on** - 缓存
5. **Config Vars** - 环境变量
## 可自定义的变量
- `app_name` - 应用名称默认terraform-app
- `region` - 区域默认us
- `stack` - Stack 版本默认heroku-22
- `dyno_size` - Dyno 规格默认basic
## 注意事项
1. Heroku 免费版已经停止,需要付费使用
2. Add-ons 会产生额外费用
3. 建议先在测试环境验证配置
4. 记得定期检查账单和资源使用情况