跳转到主要内容

将 InsForge 部署到 AWS EC2

本指南将带你使用 Docker Compose 在 AWS EC2 实例上部署 InsForge。
本云端部署指南由社区维护,可能滞后于最新的 InsForge 版本。最权威、始终保持最新的配置位于 InsForge 仓库 中的 deploy/docker-compose/ 目录。

📋 前置条件

  • 具备 EC2 访问权限的 AWS 账户
  • 具备 SSH 和命令行操作的基础知识
  • 域名(可选,用于自定义域名设置)

🚀 部署步骤

1. 创建并配置 EC2 实例

1.1 启动 EC2 实例

  1. 登录 AWS 控制台并导航到 EC2 仪表盘
  2. 点击“Launch Instance”
  3. 配置实例:
    • 名称insforge-server(或你偏好的名称)
    • AMI:Ubuntu Server 24.04 LTS (HVM),SSD 卷类型
    • 实例类型t3.medium 或更大配置(最低 2 vCPU、4 GB 内存)
      • 生产环境推荐:t3.large(2 vCPU、8 GB 内存)
      • 测试环境最低要求:t3.small(2 vCPU、2 GB 内存)
    • 密钥对:创建新密钥对或选择现有密钥对(下载并保存 .pem 文件)
    • 存储:30 GB gp3(最低推荐 20 GB)

1.2 配置安全组

创建或配置具有以下入站规则的安全组:
类型协议端口范围来源描述
SSHTCP22My IPSSH 访问
HTTPTCP800.0.0.0/0HTTP 访问
HTTPSTCP4430.0.0.0/0HTTPS 访问
Custom TCPTCP71300.0.0.0/0仪表盘 + API
Custom TCPTCP54320.0.0.0/0PostgreSQL(可选)
⚠️ 安全提示:在生产环境中,应将 PostgreSQL(5432)限制为特定 IP 地址访问,或完全移除外部访问权限。建议使用反向代理(nginx),仅对外暴露 80/443 端口。

1.3 分配弹性 IP(推荐)

  1. 在 EC2 仪表盘中导航到 Elastic IPs
  2. 点击 Allocate Elastic IP address
  3. 将该弹性 IP 与你的实例关联
这样可以确保你的实例即使在重启后也能保持相同的 IP 地址。

2. 连接到你的 EC2 实例

3. 安装依赖项

3.1 更新系统软件包

3.2 安装 Docker

3.3 将你的用户添加到 Docker 用户组

安装 Docker 后,你需要将用户添加到 docker 用户组,以便无需 sudo 即可运行 Docker 命令:
验证是否生效:
💡 提示:如果 docker ps 没有立即生效,请通过 SSH 注销后重新登录,再试一次。
⚠️ 安全提示:将用户添加到 docker 用户组会赋予其在系统上等同于 root 的权限。对于像你的 EC2 实例这样的单用户环境来说这是可以接受的,但在共享系统上需谨慎操作。

3.4 安装 Git

4. 部署 InsForge

4.1 克隆仓库

4.2 创建环境配置

复制示例模板以创建你的 .env 文件:
完整模板位于 deploy/docker-compose/.env.example。以下是你必须设置的变量:
.env.example 模板中包含了其余变量及其默认值,因此编辑复制出来的文件就足够了。 生成安全密钥:
💡 重要提示:请妥善保存这些密钥。如果你以后需要迁移或恢复实例,将需要用到它们。

4.3 启动 InsForge 服务

Ctrl+C 退出日志查看。

4.4 验证服务

5. 访问你的 InsForge 实例

5.1 测试后端 API

预期响应:

5.2 访问仪表盘

打开浏览器并访问:
使用你在 .env 中设置的 ROOT_ADMIN_USERNAMEROOT_ADMIN_PASSWORD 登录。

6. 配置域名(可选,但推荐)

6.1 更新 DNS 记录

添加指向你 EC2 弹性 IP 的 DNS A 记录:

6.2 安装 Nginx 反向代理

创建 Nginx 配置:
添加以下配置:
启用该配置:

6.3 安装 SSL 证书(推荐)

使用 HTTPS 地址更新你的 .env 文件:
修改:
重启服务:

🔧 管理与维护

查看日志

停止服务

重启服务

更新 InsForge

InsForge 发布的是预构建镜像,因此更新只需拉取镜像并重启。请在 ~/insforge/deploy/docker-compose 下运行以下命令:

备份数据库

请在 ~/insforge/deploy/docker-compose 下运行以下命令:

监控资源

🐛 故障排查

服务无法启动

无法连接到数据库

端口已被占用

内存不足

考虑升级到更大的实例类型:

SSL 证书问题

📊 性能优化

面向生产环境的工作负载

  1. 升级实例类型:使用 t3.larget3.xlarge
  2. 启用自动扩缩容:设置带自动扩缩容组的应用负载均衡器(Application Load Balancer)
  3. 使用 RDS:将容器化的 PostgreSQL 迁移到 AWS RDS 以获得更好的可靠性
  4. 启用 CloudWatch:监控指标并设置告警
  5. 配置备份:设置自动化的每日备份
  6. 使用 S3 进行存储:配置 S3 存储桶用于文件上传,替代本地存储

数据库优化

🔒 安全最佳实践

  1. 修改默认密码:更新管理员账户和数据库密码
  2. 启用防火墙:有效使用 AWS 安全组
  3. 定期更新:保持系统和 Docker 镜像为最新版本
  4. SSL/TLS:生产环境中始终使用 HTTPS
  5. 定期备份:自动化数据库备份
  6. 监控日志:设置日志监控和告警
  7. 限制 SSH 访问:将 SSH 限制为特定 IP 地址
  8. 使用 IAM 角色:尽可能使用 IAM 角色而非 AWS 访问密钥

🆘 支持与资源

📝 成本估算

每月 AWS 费用(大致估算):
组件类型月度费用
EC2 Instancet3.medium~$30
Storage (30 GB)EBS gp3~$3
Elastic IP(若 24/7 运行)$0
Data Transfer前 100GB 免费视情况而定
总计~$33/月
💡 成本优化:对于长期部署,使用 AWS Savings Plans 或预留实例(Reserved Instances)最多可节省 70%。

恭喜!🎉 你的 InsForge 实例现已在 AWS EC2 上运行。你可以开始通过将 AI 智能体连接到你的后端平台来构建应用程序。 有关其他生产环境部署策略,请查看我们的部署指南