5分钟部署企业级CRM:Twenty自托管全攻略

【免费下载链接】twenty 构建一个由社区驱动的Salesforce的现代替代品。 【免费下载链接】twenty 项目地址: https://gitcode.com/GitHub_Trending/tw/twenty

企业数据安全与成本控制是现代业务管理的核心挑战。许多团队受制于传统CRM的高昂费用与私有部署限制,而Twenty作为开源替代方案,提供了Salesforce级别的功能且完全自主可控。本文将通过Docker与Podman两种部署方案,带您实现5分钟内完成企业级CRM系统的本地化部署,同时提供性能优化与安全加固指南。

部署前准备

系统环境需满足以下条件:

  • Docker Engine 20.10+ 或 Podman 4.0+
  • Docker Compose 2.0+ 或 Podman Compose
  • 至少2GB RAM与20GB可用磁盘空间
  • Git 2.30+版本控制工具

依赖检查可通过项目提供的自动化脚本完成:

curl -fsSL https://gitcode.com/GitHub_Trending/tw/twenty/raw/main/packages/twenty-docker/scripts/install.sh | bash -s -- --check

项目部署架构采用微服务设计,包含四个核心组件:

Docker一键部署方案

Twenty提供业界领先的1-click部署脚本,已在生产环境验证稳定性:

# 克隆官方仓库
git clone https://gitcode.com/GitHub_Trending/tw/twenty.git
cd twenty/packages/twenty-docker

# 启动自动部署流程
./scripts/1-click.sh

部署过程包含以下自动化步骤(1-click.sh#L1-L22):

  1. 检测最新稳定版本(1-click.sh#L1)
  2. 验证系统依赖与Docker状态(install.sh#L3-L33)
  3. 交互式目录配置(install.sh#L53-L69)
  4. 生成安全随机密钥(install.sh#L92-L98)
  5. 自动端口冲突解决(install.sh#L101-L120)

成功部署后,可通过以下命令验证服务状态:

docker compose ps
# 预期输出包含 running 状态的四个容器

Podman企业级部署

针对Linux环境,项目提供Podman专属配置:

# 复制Podman配置模板
cp packages/twenty-docker/podman/podman-compose.yml .
cp packages/twenty-docker/.env.example .env

# 自定义环境变量
vi .env  # 设置PG_DATABASE_PASSWORD与APP_SECRET

# 启动系统服务
podman-compose up -d
podman generate systemd --name twenty -f
sudo cp twenty*.service /etc/systemd/system/
sudo systemctl enable --now twenty.service

Podman方案优势在于原生rootless支持与SELinux兼容性,数据卷采用ZFS文件系统优化(podman-compose.yml#L12)。生产环境建议配置Terraform自动化部署(packages/twenty-docker/k8s/terraform/)。

安全加固与性能调优

企业部署必须实施以下安全措施:

  1. 网络隔离:通过Docker网络策略限制容器间通信

    # 添加到docker-compose.yml
    networks:
      backend:
        driver: bridge
        internal: true
    
  2. 数据加密:启用PostgreSQL透明数据加密

    # 修改.env文件
    PG_ENABLE_TDE=true
    
  3. 密钥轮换:定期更新应用密钥

    # 生成新密钥并更新
    ./packages/twenty-cli/bin/twenty config set app.secret $(openssl rand -base64 32)
    

性能优化建议:

日常运维与监控

项目内置完整监控方案:

  1. 健康检查

    curl -f http://localhost:3000/api/health || systemctl restart twenty
    
  2. 日志管理

    # 配置ELK堆栈集成
    docker compose -f docker-compose.yml -f packages/twenty-docker/grafana/docker-compose.monitor.yml up -d
    
  3. 备份策略

    # 使用项目备份工具
    ./packages/twenty-cli/bin/twenty backup create --full --compress
    

监控面板可通过Grafana访问(packages/twenty-docker/grafana/provisioning/),默认用户名密码为admin/admin。

扩展与集成

Twenty支持多种企业集成场景:

  1. SSO认证:配置OIDC提供商

    // 在config.json中添加
    {
      "auth": {
        "oidc": {
          "provider": "keycloak",
          "issuer": "https://auth.example.com"
        }
      }
    }
    
  2. 数据同步:使用Zapier连接器(packages/twenty-zapier/)

  3. 自定义工作流:开发业务流程自动化

    // 示例工作流定义 [packages/twenty-apps/hello-world/src/postCard.ts](https://link.gitcode.com/i/f77e5a0bc435233440f3a46b126608e9)
    import { Workflow } from '@twenty/sdk';
    
    export const leadNurturing = new Workflow({
      trigger: 'lead.created',
      actions: [
        { type: 'send.email', template: 'welcome' }
      ]
    });
    

故障排除指南

常见问题解决方案:

问题现象 排查路径 解决方案
服务启动失败 docker-compose logs server 检查数据库连接字符串
数据迁移错误 packages/twenty-server/src/database/migrations/ 执行版本回滚 yarn typeorm migration:revert
API响应缓慢 grafana/dashboards/api-performance.json 优化查询或增加缓存

项目提供企业级支持渠道:

部署架构图

Twenty部署架构

该架构实现了:

  • 无状态API服务横向扩展
  • 数据层读写分离
  • 异步任务处理解耦
  • 多区域部署支持

通过本文档指南,企业可在保障数据主权的同时,获得与商业CRM同等的功能体验。立即通过自托管文档开始部署,或参考本地开发指南进行定制开发。

【免费下载链接】twenty 构建一个由社区驱动的Salesforce的现代替代品。 【免费下载链接】twenty 项目地址: https://gitcode.com/GitHub_Trending/tw/twenty

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐