推荐场景:50+ 用户的生产环境
架构概览
重要:Teable 需要 S3-compatible 存储。你可以选择:
- AWS S3(跨云方案)
- MinIO(在 Azure VM/AKS 自建)
- 其他 S3-compatible 服务
前置要求
- 已安装并登录 Azure CLI
- Azure 订阅具备 App Service、PostgreSQL、Redis 权限
- 具备 S3-compatible 存储访问权(例如 AWS S3 账号或 MinIO 部署)
步骤 1:创建 Azure 资源
1.1 创建资源组
1.2 创建 PostgreSQL Flexible Server
等待预配完成。获取连接字符串:结果:
teable-db.postgres.database.azure.com1.3 创建 Azure Cache for Redis
获取访问密钥:
步骤 2:设置 S3-compatible 存储
由于 Azure Blob Storage 不兼容 S3,请选择以下方案之一:方案 A:使用 AWS S3(跨云)
如果你已有 AWS 访问权或不想管理 MinIO,这是最简单的方案。-
在 AWS 上创建 S3 bucket(参见 AWS 部署指引 步骤 1.3-1.4)
- Public bucket:
teable-public-<唯一后缀> - Private bucket:
teable-private-<唯一后缀>
- Public bucket:
-
配置 public bucket(参见 对象存储指引):
- 启用 public read 访问
- 配置 CORS 允许任意跨域
方案 B:在 Azure 上部署 MinIO
如果希望所有资源都在 Azure,可部署 MinIO 作为 S3-compatible 网关。 推荐镜像:minio/minio:RELEASE.2025-04-22T22-12-26Z
快速设置(Azure VM):
- 创建 VM 并安装 MinIO:
- 通过 MinIO 控制台(端口 9001)或 CLI 创建 bucket:
步骤 3:准备环境变量
创建文件app-settings.txt,包含所有必需变量:
步骤 4:部署到 Azure App Service
4.1 创建 App Service Plan
4.2 创建 Web App(容器方式)
4.3 配置容器设置
4.4 设置环境变量
4.5 配置健康检查
4.6 重启应用
步骤 5:验证部署
- 检查应用状态:
Running
- 查看日志:
- 测试健康检查:
- 浏览器访问 Teable:
https://teable-app.azurewebsites.net
故障排查
数据库连接错误
- 验证 PostgreSQL 防火墙允许 Azure 服务
- 检查连接字符串包含
?sslmode=require - 确保数据库名称正确(默认是
postgres,不是teable)
Redis 连接错误
- 使用
rediss://(双’s’)进行 TLS 连接 - 使用端口 6380(不是 6379)连接 Azure Cache for Redis
- 验证访问密钥正确
S3 访问错误(方案 A:AWS S3)
- 验证 AWS 凭据正确
- 检查 bucket 名称完全匹配
- 确保 public bucket 已配置 public read 策略与 CORS
- 测试 S3 从 Azure 的访问:
curl https://s3.us-west-2.amazonaws.com应该可用
容器启动失败
- 检查日志:
az webapp log tail ... - 验证所有必需环境变量已设置
- 确保
WEBSITES_PORT=3000已设置
生产环境最佳实践
Azure 特定建议:- 使用 Azure Key Vault 存储敏感值
- 启用仅 HTTPS:
az webapp update --https-only true - 使用 VNet Integration 限制数据库/redis 访问
- 启用 Application Insights 监控
替代方案:在 AKS 上部署(Azure Kubernetes Service)
对于大规模部署或已使用 Kubernetes 的团队,AKS 提供更好的可扩展性和控制能力。AKS 架构
步骤 1:创建 AKS 集群
步骤 2:创建 Azure 托管服务
使用与 步骤 1.2 和 步骤 1.3 相同的命令创建 PostgreSQL 和 Redis。对于 AKS,建议启用 VNet 集成以保护连接:
步骤 3:在 AKS 中部署 MinIO(可选)
如果希望存储保持在 Azure 内部,可以在 AKS 中部署 MinIO:步骤 4:创建 Kubernetes 配置
创建包含 Azure 特定设置的 ConfigMap:步骤 5:部署 Teable
步骤 6:配置 Ingress
方案 A:使用 NGINX Ingress Controller步骤 7:应用所有配置
AKS 生产环境建议
- 自动扩缩容:
- 使用 Azure Key Vault 替代 Kubernetes secrets 存储敏感信息:
- 启用 Azure Monitor:
- 使用 Azure Private Link 连接 PostgreSQL 和 Redis,保持流量在 Azure 网络内。
相关文档
- 私有化部署概览 — 架构、配置与扩展
- 环境变量参考
- 对象存储(S3-compatible)
- Kubernetes 部署(通用 K8s 指南)
- AWS 部署(如使用跨云存储需参考 S3 设置)

