? *MIT许可证应用于平台以启用网络分布。该项目的其余部分仍保持在AGPL V3之下。
一个简单而功能强大的Google标签管理器替代方案,完全开源且对隐私友好。我们内置的Google Analytics(分析)替代方案不使用任何cookie,并且完全符合GDPR,CCPA和PECR。我们已经使尝试演示或简单地在生产中托管它很容易。我们还将在不久的将来提供云托管版本。
数据管理器提供可插入的后端来在任何地方发送数据,并且我们有一条管道来增加连接器和功能。仅几下单击,设计一个模式,配置后端并创建一个将数据发送到的端点。标签管理器使用同样的基础技术来提供分析。
我们的使命是创建一个直观的标签管理工具,该工具可以通过自定义平台(由我们的社区建造!)完全扩展。我们是一支热衷于构建出色的开源软件并希望减少大型公司的市场份额的小团队。我们不喜欢增加公司或政府监视的粉丝,我们从根本上认为,您的网站的用户应该得到更好的选择 - 但是,这需要与业务需求保持平衡,以兑换共享财产和个人数据。
这是一个单行示例,说明您已经安装了Docker撰写。
~ > curl -L https://github.com/scale8/scale8/raw/master/docker-compose.yml | docker-compose -f - up一旦上面的命令开始了服务,请将浏览器指向http://127.0.0.1:8080 8080。将提示您输入一些基本详细信息以配置该项目。
或者,如果您已经检查了该项目并通过~> yarn install:all并希望在本地运行它: -
~ > yarn run:all我们已经构建了整个平台,以支持Docker并在可能的情况下限制复杂的构建过程和额外的量。我们很难为AWS,Google Cloud和Custom Kubernetes设置提供完整的一键式生产准备设置。
| 成分 | 描述 |
|---|---|
| API | 包含所有业务逻辑,并提供为UI供电的GraphQL / RESTFULE端点 |
| 常见的 | 项目组件之间共享的一个小型公共库 |
| 边缘 | Edge Server旨在水平扩展,负责在边缘交付平台,并跟踪数据 |
| 平台 | 社区和Scale8创建的自定义平台,该平台扩展了标签管理器的功能 |
| 路由器 | 一个简单的路由器,使用nginx创建,并设计用于快速旋转自托版本 |
| UI | 使用next.js&react提供UI的静态构建 |
~> yarn install:all~> yarn build:all 由于并不是每个人都需要使用完整的标签管理器,因此我们还提供了一个只需几行JavaScript的极轻的版本的选项。
我们还为跟踪单页应用程序(SPA)和哈希路由提供了全力支持。安装应用程序时可以启用这些。
我们已经尽最大努力简化了一个或多个Web属性的组织和管理标签的过程。标签管理器基于事件驱动的,基于规则的引擎,在该引擎中触发时,当事件,条件和例外都满足时,将触发规则,从而导致一个或多个操作。
我们的简单接口可以轻松管理浏览器内的触发事件。单击的链接,焦点或提交的表格是您可能希望收听的事件的所有示例。
条件是对数据容器进行的测试,旨在断言属于数据容器对象的某些密钥与预期值一致。一个例外旨在进行相同的测试,而是在测试通过时排除规则。
在满足规则所需的事件和条件后,将开除一项诉讼。在此处了解有关行动的更多信息。
我们最初是从打字稿前端和Scala驱动的后端开始的。为了提供我们想要的代码透明度,加上开源项目要求我们将仅使用Java中的Edge Server移至几乎纯粹的打字稿的决定。我们从根本上相信,该项目的未来现在与开源社区相比,与Scala工程师相比,打字稿和Java工程师更多。
在发布之前,我们也从CRA搬到了Next.js。我们还在打字稿的后端引入了控制反转(IOC)。我们的目标是使该项目尽可能扩展。插头模型为我们提供了提供多种服务并防止锁定的机会。
container . bind < BaseStorage > ( TYPES . BackendStorage ) . to ( MongoDBStorage ) . inSingletonScope ( ) ;
container . bind < BaseDatabase > ( TYPES . BackendDatabase ) . to ( MongoDb ) . inSingletonScope ( ) ;
container . bind < BaseLogger > ( TYPES . BackendLogger ) . to ( ConsoleLogger ) . inSingletonScope ( ) ;
container . bind < BaseEmail > ( TYPES . BackendEmail ) . to ( Mailer ) . inSingletonScope ( ) ;
container . bind < BaseConfig > ( TYPES . BackendConfig ) . to ( EnvironmentConfig ) . inSingletonScope ( ) ;我们的Java代码也采取了类似的方法。
@ Replaces ( StorageInterface . class )
@ Singleton
@ Requires ( property = "backend-storage" , value = "google" )
public class GoogleStorage implements StorageInterface {
...
}目前,我们仅提供MongoDB和Google的分析大事。 MongoDB仅适用于小型项目和演示 /测试的目的。我们在尚未发布的云版本中提供了完整的ClickHouse支持,我们将在不久的将来与Redshift和Postgres一起在自托管版本中添加此支持。
我们还从自托管版本中删除了每小时的聚合管道。对于绝大多数用例,这增加了不必要的复杂性。有一个计划可能在以后重新引入此问题,如果有人需要,请告诉我们。
我们的所有文档都是为产品的云版本而设计的,但是我们将很快为自托管版本添加更详细的文档。我们隐藏了一些与自托管版本无关的自定义域的付款处理和SSL终止等功能。
整个UI使用Apollo由GraphQL供电,并且API文档将自动生成并易于导航。
我们要问的是,如果您喜欢该项目,您会在Github上出演或在Github上观看。我们也希望人们也可以分享和博客!所有问题都将在Github迅速响应,我们很高兴看到接下来的情况。
| 作者 | github | |
|---|---|---|
| 克里斯托弗·贝克(Christopher Beck) | ||
| 亚历山德罗·巴尔桑蒂(Alessandro Barzanti) |