? *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) |