Corteza 是一个开源、自托管的数字工作平台,旨在提高组织的生产力,促进其人际关系,并保护其工作以及相关人员的隐私。该项目完全由 Crust Technology 在公共领域开发。它有四个核心功能:客户关系管理、低代码开发平台、消息传递和统一工作区。本文还将解释如何在命令行中开始使用 Corteza。
客户关系管理
Corteza CRM 是一个功能丰富的开源 CRM 平台,可为组织提供潜在客户和客户的 360 度全方位视图。它非常灵活,可以轻松地根据任何组织进行定制,并且包含强大的自动化模块以实现流程自动化。

低代码开发平台
Corteza Low Code 是一个开源的 低代码开发平台,也是 Salesforce Lightning 的替代方案。它具有直观的拖放式构建器,允许用户轻松创建和部署基于记录的业务应用程序。Corteza CRM 构建于 Corteza Low Code 之上。

消息传递
Corteza Messaging 是 Salesforce Chatter 和 Slack 的替代方案。它是一个安全、高性能的协作平台,允许团队更高效地协作,并与其他组织或客户安全地沟通。它与 Corteza CRM 和 Corteza Low Code 紧密集成。

统一工作区
Corteza One 是一个统一的工作区,用于访问和运行第三方 Web 应用程序和 Corteza 应用程序。通过单个控制台进行集中式访问管理,可以对谁可以查看或访问应用程序进行管理控制。

设置 Corteza
您可以使用一组简单的命令行命令来设置和运行 Corteza 平台。
设置 Docker
如果 Docker 已经安装在您要使用 Corteza 的机器上,则可以跳过此部分。(如果您使用的 Docker 版本低于 18.0,我强烈建议您更新。)
如果您不确定是否安装了 Docker,请打开您的控制台或终端并输入
$> docker -v
如果响应为“command not found”,请为 桌面版 或 服务器或云 下载并安装适合您环境的 Docker 社区版。
在本地配置 Corteza
通过使用 Docker 的命令行界面 (CLI) 实用程序 docker-compose(简化了容器的使用),Corteza 的设置尽可能轻松。
以下脚本提供了设置 Corteza 本地版本的绝对最小配置。如果您愿意,可以在 GitHub 上打开此文件。请注意,此设置不使用持久存储;您需要为此设置容器卷。
version: '2.0'
services:
db:
image: percona:8.0
environment:
MYSQL_DATABASE: corteza
MYSQL_USER: corteza
MYSQL_PASSWORD: oscom-tutorial
MYSQL_ROOT_PASSWORD: supertopsecret
server:
image: cortezaproject/corteza-server:latest
# Map internal 80 port (where Corteza API is listening)
# to external port 10080. If you change this, make sure you change API_BASEURL setting below
ports: [ "10080:80" ]
environment:
# Tell corteza-server where can it be reached from the outside
VIRTUAL_HOST: localhost:10080
# Serving the app from the localhost port 20080 is not very usual setup,
# this will override settings auto-discovery procedure (provision) and
# use custom values for frontend URL base
PROVISION_SETTINGS_AUTH_FRONTEND_URL_BASE: http://localhost:20080
# Database connection, make sure username, password, and database matches values in the db service
DB_DSN: corteza:oscom-tutorial@tcp(db:3306)/corteza?collation=utf8mb4_general_ci
webapp:
image: cortezaproject/corteza-webapp:latest
# Map internal 80 port (where we serve the web application)
# to external port 20080.
ports: [ "20080:80" ]
environment:
# Where API can be found
API_BASEURL: localhost:10080
# We're using one service for the API
MONOLITH_API: 1
通过输入以下命令运行服务
docker-compose up
您将看到一连串日志行,宣布数据库容器初始化。同时,Corteza 服务器将尝试(并重试)连接到数据库。如果您更改数据库配置(即用户名、数据库、密码),您将收到一些错误。
当 Corteza 服务器连接时,它会初始化“store”(用于上传的文件),并且设置发现过程将尝试自动发现尽可能多的内容。(您可以通过为您的环境正确设置 VIRTUAL_HOST 和 PROVISION_SETTINGS_AUTH_FRONTEND_URL_BASE 变量来提供帮助。)
当您看到“Starting HTTP server with REST API”时,Corteza 服务器已准备就绪,可以使用了。
故障排除
如果您错误配置了 VIRTUAL_HOST、API_BASEURL 或 PROVISION_SETTINGS_AUTH_FRONTEND_URL_BASE,则您的设置很可能无法使用。最简单的解决方法是关闭所有服务 (docker-compose down) 然后重新启动 (docker-compose up),但这将删除所有数据。如果您希望在不使用这种清除和重启方法的情况下使其工作,请参阅下面的“拆分服务”。
登录并探索
在您的浏览器中打开 http://localhost:20080,试用 Corteza。
首先,您将看到登录屏幕。点击注册链接并注册。Corteza 会自动将第一个用户提升为管理员角色。您可以在 用户 和 管理员 指南的支持下,探索管理区域以及消息传递和低代码工具。
此测试版本在非标准端口 (:20080) 上运行,有时浏览器会将您从 http://localhost:20080/ 重定向到 http://localhost/。您会注意到错误“localhost refused to connect”或类似的错误。如果发生这种情况,只需添加端口号,并保留 URL 的其余部分即可。
在后台运行
如果您不熟悉 docker-compose,可以使用 -d 标志启动服务并在后台运行它们。如果您愿意,仍然可以使用 docker-container logs 命令访问服务日志。
将 Corteza 暴露于您的内部网络和世界
如果您想在生产环境中使用 Corteza 并与其他用户一起使用,请查看 Corteza 的 简单 和 高级 部署设置示例。
建立数据持久性
如果您使用简单或高级示例之一,则可以通过取消注释其中一个卷行对来持久化您的数据。
如果您想将数据存储在本地文件系统上,您可能需要特别注意文件权限。如果在启动服务时出现任何相关错误,请查看日志。
代理请求到容器
服务器和 Web 应用程序容器默认都在端口 80 上侦听。如果您想将它们暴露给外部世界,则需要使用不同的外部端口。不幸的是,这使得它不是很用户友好。我们不希望必须告诉用户在(例如)corteza.example.org:31337 上访问 Corteza,而是直接在 corteza.example.org 上访问,API 从 api.corteza.example.org 提供服务。
最简单的方法是使用另一个 Docker 镜像:jwilder/nginx-proxy。您可以在 Corteza 的文档中找到一个 配置示例。当您启动一个 nginx-proxy 容器时,它会侦听 Docker 事件(例如,当容器启动或停止时),从容器的 VIRTUAL_HOST 变量中读取值,并创建一个 Nginx 配置,该配置将定向到使用域配置的 VIRTUAL_HOST 的请求代理到容器。
安全 HTTP
Corteza 服务器仅支持纯 HTTP(和 HTTP 2.0)。它不进行任何 SSL 终止,因此您必须设置处理 HTTPS 流量并将其重定向到内部 HTTP 端口的(反向)代理。
如果您使用 jwilder/nginx-proxy 作为您的前端,则可以使用另一个镜像——jrcs/letsencrypt-nginx-proxy-companion——来处理来自 Let's Encrypt 的 SSL 证书。它以类似于 nginx-proxy 的方式侦听 Docker 事件,并读取 LETSENCRYPT_HOST 变量。
配置
另一个 ENV 文件保存配置值。有关详细信息,请参阅 文档。配置分为两个级别:ENV 变量和存储在数据库中的设置。
身份验证
除了其内部身份验证功能(用户名和加密密码存储在数据库中)之外,Corteza 还支持使用 GitHub、Google、Facebook、Linkedin 或任何其他 OpenID Connect (OIDC) 兼容身份提供程序进行注册和身份验证。
您可以使用自动发现或通过显式设置您的密钥和密码来添加任何 外部 OIDC 提供程序。(请注意,GitHub、Google、Facebook 和 Linkedin 要求您注册一个应用程序并提供一个重定向链接。)
拆分服务
如果您期望更高的负载或想要分离服务以微调您的容器,请遵循 高级部署 示例,该示例具有更多的微服务类型架构。它仍然使用单个数据库,但可以拆分为三个部分。
其他类型的设置
将来,Corteza 将可用于不同的发行版、设备、容器类型等
如果您有特殊要求,您可以始终 从源代码 构建 Corteza 作为后端服务和 Web 应用程序。
使用 Corteza
一旦您启动并运行了 Corteza,您就可以开始使用其所有功能。以下是建议的操作列表。
登录
在例如您的 corteza.example.org 链接处进入 Corteza。您将看到登录屏幕。

如上所述,Corteza 会自动将第一个用户提升为管理员角色。如果您尚未这样做,请探索管理区域、消息传递和低代码工具。
其他入门任务
以下是为您的组织设置 Corteza 时您需要执行的其他一些任务。
- 与将在您的 Corteza 实例中工作的其他人共享登录链接,以便他们可以注册。
- 如果需要,创建角色,并将用户分配到正确的角色。默认情况下,只有管理员可以执行此操作。
- Corteza CRM 具有完整的模块列表。您可以进入 CRM 管理页面以根据您的需求微调 CRM,或者直接使用默认设置开始使用它。
- 进入 Corteza Low Code 并从头开始创建一个新的低代码应用程序。
- 在 Corteza Messaging 中为您的团队创建公共和私有频道。(例如,公共“General”频道或私有“Sales”频道。)
更多信息
如果您或您的用户有任何问题——或者想贡献力量——请加入 Corteza 社区。登录后,请在 #Welcome 频道中介绍自己。
7 条评论