ever-gauzy
我们的事业就是学习再学习,努力积累更多的知识,因为有了知识,社会就会有长足的进步,人类的未来幸福就在于此。——契诃夫
Ever Gauzy:让企业管理在同一平台上协同运转
项目地址:https://github.com/ever-co/ever-gauzy
企业管理往往像一场不断延展的接力:人力资源在维护员工信息,销售团队追踪客户与商机,项目成员拆解任务、记录工时,财务人员处理账单、发票、收入与支出,管理者则希望从仪表盘里看见组织运行的轮廓。
Ever Gauzy 是一个开源业务管理平台,面向协作型、按需型与共享经济场景。它将 ERP、CRM、HRM、ATS、项目管理,以及员工时间、活动和生产力跟踪等能力汇集到同一个平台中,让原本分散在不同业务环节中的信息与流程,拥有一个共同的工作空间。
它不是只关注某一个部门的独立工具,而是试图覆盖组织从人员、客户、项目到财务、库存与分析的多条业务线。每一项能力都像平台中的一个角色,在各自的位置上承担职责,也与其他模块共同推动企业日常工作的节奏。
一个平台,连接企业管理的多个现场
Ever Gauzy 的定位很清晰:它是一套开放的业务管理平台。
在人员管理层面,平台提供人力资源管理、时间管理、时间跟踪、活动跟踪、工时表、员工绩效监控、员工入职、请假与假期审批等能力。员工、承包商、费率等信息可以被集中管理,而时间记录也不再只是简单的打卡数据,它能够进入项目、任务、报表与管理流程之中。
在客户与销售层面,平台涵盖客户关系管理、联系人管理、销售管道、提案、预约、日程与事件等内容。客户、潜在客户、供应商与合作方等不同对象,都可以在组织的业务关系中被管理和追踪。
在项目执行层面,Ever Gauzy 提供项目与任务管理,并支持目标、关键绩效指标、目标与关键结果等管理内容。项目中的时间、任务与团队成员并不是彼此孤立的元素,它们共同构成了工作推进过程中更完整的业务视图。
在财务与经营层面,平台覆盖销售管理、财务与成本管理、会计、发票、报价、计费、付款、收入与支出管理等内容。对于希望将业务活动与经营数据放在同一体系中观察的团队来说,这些模块让业务过程拥有了更明确的财务落点。
在供应与资源层面,Ever Gauzy 还包含库存、供应链管理、生产管理、设备管理与共享能力。它将组织内部的人、项目、资金、客户与资源放入同一张业务网络中,让不同环节能够以更统一的方式被组织和管理。
从仪表盘到报表,让日常工作留下可观察的轨迹
一个业务管理平台不仅要承载操作,还需要帮助组织理解自身的运行状态。
Ever Gauzy 提供仪表盘,用于呈现不同指标的概览,例如公司收入、支出、员工奖金等信息。它也提供报告、洞察与分析能力,使业务数据不只是沉睡在记录中,而是能够成为观察组织状况的一扇窗口。
时间管理在这里拥有较为完整的位置。平台支持时间跟踪、活动跟踪和工时表,并提供桌面计时器应用。对于员工与承包商而言,时间可以被记录;对于组织而言,时间可以被纳入项目、任务与管理流程;对于管理者而言,时间也能够成为理解工作节奏与执行情况的一部分。
平台还提供员工公开页面与组织公开页面,以及帮助中心和知识库能力。它既关注组织内部的日常协作,也为信息呈现与知识沉淀保留了空间。
多组织、多语言与多主题的业务工作台
Ever Gauzy 支持多组织管理,能够管理组织部门与团队,也能够维护组织客户与供应商信息。对于存在多个组织实体、多个团队或多类业务关系的场景,这类结构化能力让管理对象拥有更清晰的位置。
平台支持角色与权限管理,让不同人员能够在各自的职责范围内参与系统。标签与标签组能力则为信息整理提供了更灵活的方式,使项目、客户、任务或其他业务对象能够被进一步分类与识别。
在使用体验上,Ever Gauzy 支持多币种与多语言,并提供深色、浅色、企业风格、Material 风格等主题。业务管理本身通常复杂而繁忙,界面风格与语言选择虽不改变业务本质,却能让平台更贴近不同团队的使用习惯。
从候选人到员工,从客户到付款
Ever Gauzy 的功能覆盖面,能够沿着企业经营的多个阶段展开。
招聘阶段可以使用候选人跟踪系统与候选人面试管理能力。人员加入组织后,员工管理、入职、时间记录、活动记录、绩效监控、请假与审批等能力可以继续参与日常工作。
客户关系可以从联系人开始,包括客户、潜在客户等对象,并延伸到销售管道、提案、预约、日程与事件。销售过程中的信息并不止于一次沟通,而是能够与报价、发票、计费、付款以及收入和支出管理等内容衔接。
项目工作则可以围绕项目、任务、目标与关键绩效指标展开。时间记录、团队协作、任务推进与管理视图可以在同一平台内交汇,使业务执行过程不必被切割成彼此陌生的片段。
库存、供应链、生产、设备与共享能力,则让平台的范围继续延伸到资源与运营侧。Ever Gauzy 所呈现的并不是一条单一的功能线,而是一组能够共同服务于企业管理场景的业务能力。
Headless API 与系统集成能力
Ever Gauzy 提供 Headless API。对于希望将平台能力与其他系统、服务或工作流结合的团队而言,这意味着平台不仅可以作为面向用户的业务界面存在,也具备通过接口参与更广泛系统协作的能力。
README 中还列出了集成能力,包括 Upwork、HubStaff 等集成方向。电子邮件历史与邮件模板、数据导入与导出等功能,也让外部信息进入平台、平台数据参与后续流程时拥有相应的通道。
在业务系统里,连接往往与功能本身同样重要。客户数据、员工数据、项目数据、财务数据、邮件记录与导入导出流程,只有能够在合适的位置流动,平台才会真正成为日常工作的组成部分。
三类应用形态,覆盖浏览器、本地与时间跟踪
Ever Gauzy 不仅提供平台本身,还提供服务器与桌面应用。
Ever Gauzy Server 包含 Gauzy API、SQLite 数据库能力,也可以连接外部 PostgreSQL,并提供前端服务。它可以用于为多个客户端运行 Gauzy Server。
Ever Gauzy Desktop App 将前端界面、Gauzy API、SQLite 数据库等内容整合在一起,能够在本地运行完整的 Gauzy 解决方案,同时包含界面与计时器相关能力。
Ever Gauzy Desktop Timer App 则面向员工与承包商的时间和活动跟踪,支持截图与活动监控。它需要连接到 Gauzy Server,并适合由组织管理员进行相应设置。
此外,仓库中还包含 Ever Gauzy Agent。它是一款基于 nstudio electron 构建的跨平台应用,用于与 Gauzy 进行集成。
不同应用形态让平台拥有不同的落脚方式:浏览器可以进入业务界面,服务器可以承载服务端能力,桌面应用能够在本地运行方案,桌面计时器则将时间与活动记录带到员工和承包商的工作环境中。
技术栈:以 TypeScript 为核心的全栈组合
Ever Gauzy 的主要开发语言是 TypeScript。
平台技术栈中包含 Node.js、NestJS、Nx、Lerna、Angular、RxJS 与 Ngx-admin。后端与前端在同一整体中协作,服务端能力、界面能力与工程组织能力共同构成平台的技术基础。
数据访问与数据库相关部分使用 TypeORM、MikroORM 与 Knex。数据库方面,平台支持 SQLite、PostgreSQL、MySQL、MariaDB、CockroachDB、Microsoft SQL Server 等多种数据库类型。其中 SQLite 被作为演示场景的默认选择,PostgreSQL 与 MySQL 可用于开发和生产环境。
对于生产环境,README 列出了 PostgreSQL 或 MySQL、Kubernetes 与 Docker 等推荐方向。平台也支持通过 Docker Compose 运行,并提供从基础演示到生产配置、本地构建的不同方式。
使用 Docker Compose 快速启动
对于希望先体验平台基础配置的使用者,可以通过 Docker Compose 启动演示环境。
1 | docker-compose -f docker-compose.demo.yml up |
启动后,可以在浏览器中访问本地 4200 端口对应的界面。
演示环境提供两个默认账号:
| 账号类型 | 邮箱 | 密码 |
|---|---|---|
| 超级管理员 | admin@ever.co |
admin |
| 员工 | employee@ever.co |
12345678 |
演示数据库会在部署到演示环境时重置,通常按日进行。演示环境由 develop 分支通过持续集成与持续部署流程进行部署。
如果需要以最小生产配置运行预构建 Docker 镜像,需要先编辑 .env.compose,并为以下配置设置强且唯一的值:
1 | JWT_SECRET |
完成配置后,可以使用以下命令启动:
1 | docker-compose up -d |
对于需要在本地构建代码与 Docker 镜像的场景,可以使用:
1 | docker-compose -f docker-compose.build.yml up -d |
首次运行时,API 向数据库写入初始模拟数据可能需要一些时间。演示配置会运行较少的容器,而生产与构建相关的 Docker Compose 配置会带起更多基础设施组件。
生产与构建环境中的基础设施组件
在生产与构建相关的 Docker Compose 配置中,Ever Gauzy 可以运行一组基础设施组件。
PostgreSQL 作为主数据库承担核心数据存储职责。Pgweb 提供 PostgreSQL 数据库的跨平台客户端界面。OpenSearch 负责搜索能力,OpenSearch Dashboards 为搜索引擎提供可视化界面,Dejavu 也可作为 OpenSearch 的 Web 界面使用。
MinIO 提供兼容 AWS S3 的多云对象存储能力。Jitsu 作为数据采集引擎参与数据接入。Redis 用作内存数据存储与缓存,同时也被 Jitsu 使用。Cube 则作为语义层,用于报告、仪表盘、分析和其他商业智能相关能力。Zipkin 用于分布式追踪。
这些组件像平台周围的基础设施层:数据库保存业务记录,搜索能力帮助信息被发现,对象存储承载文件类数据,缓存协助数据访问,分析组件支撑报表与仪表盘,链路追踪则为分布式系统的观察提供支点。
手动构建与本地运行
希望从代码层面启动 Ever Gauzy 时,需要准备 Node.js LTS 版本与 Yarn。
安装 Yarn 的命令如下:
1 | npm i -g yarn |
安装依赖并初始化解决方案:
1 | yarn bootstrap |
如果需要修改代码并推送到 Git 仓库,可以执行:
1 | yarn prepare:husky |
本地运行时可以调整 .env.local 中的设置,也可以将 .env.sample 复制为 .env,然后根据需要修改数据库类型、数据库名称、用户与密码等配置。
启动 API 与界面可以使用:
1 | yarn start |
启动后,界面运行在本地 4200 端口,API 运行在本地 3000 端口的 API 路径下。
首次启动 API 时,如果数据库中没有用户,系统会自动写入一组最小初始数据。需要重新初始化数据库时,可以手动执行:
1 | yarn seed |
该命令不适用于生产环境。
如果需要为演示或测试生成大量模拟数据,可以执行:
1 | yarn seed:all |
这一过程大约需要十分钟。
可选组件与生产运行方向
在生产环境中,README 建议使用 PostgreSQL 14 或更高版本,并推荐使用 16.x。平台也可以配置其他数据库类型。
Redis、OpenSearch、MinIO 或 LocalStack、Jitsu 与 Cube 都是可选组件。其中,平台在没有 Redis 时会使用内存缓存策略;没有 OpenSearch 时会使用数据库内置的搜索能力;没有 MinIO、LocalStack 或其他 S3 兼容存储时,文件会存储在本地磁盘;没有 Jitsu 时,广告事件的数据采集会被禁用;没有 Cube 时,部分高级动态报表与数据分析能力会不可用。
这种设计让平台在基础运行与完整基础设施之间保留了不同层次的选择:可以从较轻的本地运行开始,也可以在生产环境中逐步接入更完整的组件组合。
Kubernetes 与部署场景
Ever Gauzy 推荐将生产工作负载部署到 Kubernetes。仓库中提供 Kubernetes 配置,可用于部署到 Kubernetes 集群。
验证集群连接可以使用:
1 | kubectl --kubeconfig="k8s-gauzy-kubeconfig.yaml" get nodes |
部署配置可以使用:
1 | kubectl --kubeconfig="k8s-gauzy-kubeconfig.yaml" --context do-sfo2-k8s-gauzy apply -f k8s-manifest.yaml |
查看部署信息可以使用:
1 | kubectl describe deployment --kubeconfig="k8s-gauzy-kubeconfig.yaml" |
当需要重新部署并使用最新 Docker 镜像版本时,可以执行:
1 | kubectl --kubeconfig="k8s-gauzy-kubeconfig.yaml" --context do-sfo2-k8s-gauzy rollout restart -f k8s-manifest.yaml |
README 还列出了多种部署方向,包括 Kubernetes、DigitalOcean App Platform、基于 SSH 的虚拟实例部署、Pulumi,以及 RepoCloud 的一键部署方式。
从本地 Docker Compose,到 Kubernetes,再到不同云部署方案,Ever Gauzy 为不同规模与不同部署习惯的使用场景提供了多条路径。
安全与通信
Ever Gauzy 表示遵循良好的安全实践,同时也明确指出,任何软件都无法保证百分之百安全。
在生产部署中,客户端与服务端之间的通信应使用 HTTPS、WSS 或 SSL 加密,覆盖 REST API、GraphQL 端点与 Socket.io WebSocket 等通信方式。
平台以现状提供,不附带任何担保。对于业务管理系统而言,安全配置、密钥管理、访问权限与加密通信不是部署过程中的边缘工作,而是系统运行中不可忽视的一部分。
开源许可
Ever Gauzy 提供 Community Edition、Small Business 与 Enterprise 等许可类型。
在未持有有效 Enterprise 或 Small Business 许可协议的情况下,默认许可为 Ever Gauzy Platform Community Edition。仓库使用 GNU Affero General Public License v3.0 许可。
结语
Ever Gauzy 将人力资源、客户关系、企业资源、招聘、项目、时间跟踪、销售、财务、库存、供应链、生产、报表与分析等内容汇集在开放的业务管理平台中。
它让员工、客户、项目、任务、工时、账单、付款、库存与组织结构不再只是彼此分离的业务名词,而是在同一平台中拥有可以被管理、追踪、连接与观察的位置。
从浏览器中的业务界面,到桌面端的时间跟踪;从本地启动,到 Docker Compose、Kubernetes 与云环境部署;从基础数据管理,到搜索、对象存储、数据采集、商业智能与分布式追踪,Ever Gauzy 展现出的是一套覆盖广泛业务场景的开源平台轮廓。
