? * La licence MIT est appliquée aux plates-formes pour permettre la distribution du réseau. Le reste du projet reste sous AGPL V3.
Une alternative simple mais puissante Google Tag Manager qui est entièrement open-open et conviviale. Notre alternative Google Analytics intra-construite n'utilise aucun cookie et est entièrement conforme au RGPD, CCPA et PECR. Nous avons rendu rapide et facile d'essayer une démo ou de l'héberger simplement vous-même en production. Nous proposerons également une version hébergée dans un avenir proche.
Le gestionnaire de données fournit des backends enfichables pour envoyer des données n'importe où, et nous avons un pipeline pour augmenter les connecteurs et les fonctionnalités. En quelques clics, concevez un schéma, configurez un back-end et créez un point de terminaison pour envoyer des données. Le gestionnaire de balises utilise cette même technologie sous-jacente pour fournir des analyses.
Notre mission a été de créer un outil de gestion de balises intuitif qui peut être entièrement étendu via des plates-formes personnalisées (construites par notre communauté!). Nous sommes une petite équipe qui est passionnée par la création d'excellents logiciels open source et, espérons-le, réduisant la part de marché des entreprises beaucoup plus grandes. Nous ne sommes pas un fan de l'augmentation de la surveillance des entreprises ou du gouvernement, et nous pensons fondamentalement que les utilisateurs de votre site Web méritent mieux - cela doit cependant être équilibré avec l'exigence commerciale de monétiser une propriété et des données personnelles partagées.
Voici un exemple en une ligne de la façon de commencer si vous avez déjà installé Docker Compose.
~ > curl -L https://github.com/scale8/scale8/raw/master/docker-compose.yml | docker-compose -f - up Une fois que la commande ci-dessus a commencé les services, pointez votre navigateur sur http://127.0.0.1:8080 . Vous serez invité à saisir certains détails de base pour configurer le projet.
Ou si vous avez déjà vérifié le projet et installé les dépendances via ~> yarn install:all et souhaitez l'exécuter localement: -
~ > yarn run:allNous avons archite la plate-forme entière pour prendre en charge Docker et Limited, si possible, des processus de construction complexes et le montage de volumes supplémentaires. Nous scriptons difficile de fournir des configurations complètes de production en un clic pour les configurations AWS, Google Cloud et personnalisées Kubernetes.
| Composant | Description |
|---|---|
| API | Contient toute la logique métier et fournit des points de terminaison GraphQL / RESTFul qui alimentent l'interface utilisateur |
| Commun | Une petite bibliothèque commune partagée entre les composants du projet |
| Bord | Conçu pour évoluer horizontalement, le serveur Edge est responsable de la livraison des plates-formes au bord et du suivi des données dans |
| Plates-formes | Plates-formes personnalisées créées par la communauté et l'échelle8 qui étendent les fonctionnalités du gestionnaire de balises |
| Routeur | Un simple routeur, créé à l'aide de Nginx et conçu pour faire tourner rapidement la version auto-hébergée |
| Ui | Fournit une construction statique de l'interface utilisateur en utilisant Next.js & React |
~> yarn install:all~> yarn build:all Comme tout le monde n'a pas le besoin d'utiliser un gestionnaire de balises complet, nous avons également fourni une option pour générer une version extrêmement légère qui ne nécessite que quelques lignes de JavaScript.
Nous avons également fourni une prise en charge complète pour le suivi des applications à page unique (SPAS) et le roulement de hachage. Ceux-ci peuvent être activés lorsque vous installez votre application.
Nous avons fait de notre mieux pour simplifier le processus d'organisation et de gestion des balises sur une ou plusieurs propriétés Web. Le gestionnaire de balises est basé sur un moteur basé sur des règles axé sur les événements par lequel une règle est déclenchée lorsque les événements et conditions et exceptions sont tous remplis, ce qui entraîne une ou plusieurs actions prises.
Un événement déclenché dans le navigateur peut être facilement géré par notre interface simple. Un lien cliqué, une page qui se concentre ou un formulaire soumis est tous des exemples d'événements que vous souhaiterez peut-être écouter.
Une condition est un test effectué sur un conteneur de données et vise à affirmer qu'une clé appartenant à un objet de conteneur de données est alignée sur la valeur attendue. Une exception vise à faire le même test, mais exclut plutôt la règle si le test réussit.
Après avoir respecté les événements et l'état requis de la règle, une action sera tirée. En savoir plus sur les actions ici.
Nous avons commencé à l'origine avec un frontal de type dactylographié et un back-end entraîné par Scala. Pour fournir la transparence du code que nous voulions, associée à une décision d'ouverture, le projet nous a obligés à passer à une purement purement dactylographiée avec le serveur Edge en Java. Nous croyons fondamentalement que l'avenir de ce projet s'associe à la communauté open source maintenant et il y a plus d'ingénieurs dactylographiés et java que les ingénieurs de Scala.
Juste avant de sortir, nous avons également passé de l'ARC à Suivant.js. Nous avons également introduit l'inversion du contrôle (CIO) dans notre back-end TypeScript. Notre objectif est que ce projet soit aussi extensible que possible. Un modèle de plug and play nous offre la possibilité de fournir plusieurs services et d'empêcher les verrouillage.
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 ( ) ;Nous avons également adopté une approche similaire avec notre code Java.
@ Replaces ( StorageInterface . class )
@ Singleton
@ Requires ( property = "backend-storage" , value = "google" )
public class GoogleStorage implements StorageInterface {
...
}À l'heure actuelle, nous ne fournissons que BigQuery pour l'analyse de MongoDB et Google. MongoDB ne convient qu'aux petits projets et aux fins de démo / tests. Nous avons une prise en charge complète de Clickhouse dans notre version cloud encore à publier, et nous ajouterons rapidement cette prise en charge dans la version auto-hébergée avec Redshift et Postgres.
Nous avons également supprimé nos pipelines d'agrégation horaire de la version auto-hébergée. Cela a ajouté un degré de complexité inutile pour la grande majorité des cas d'utilisation. Il y a un plan pour potentiellement réintroduire cela plus tard et si quelqu'un en a besoin, veuillez nous le faire savoir.
Toute notre documentation est conçue pour la version cloud du produit, mais nous ajouterons bientôt une documentation plus détaillée pour la version auto-hébergée. Nous avons caché certaines fonctionnalités telles que le traitement des paiements et la terminaison SSL pour les domaines personnalisés qui ne sont pas pertinents pour la version auto-hébergée.
L'interface utilisateur entière est alimentée par GraphQL à l'aide d'Apollo et la documentation de l'API est automatiquement générée et facilement naviguée.
Tout ce que nous demandons, c'est que vous jouiez ou regardez ceci sur GitHub si vous aimez le projet. Nous aimerions aussi partager les gens et bloguer à ce sujet! Tous les problèmes seront répondus rapidement à Github, et nous sommes ravis de voir où cela va ensuite.
| Auteur | Github | Liendin |
|---|---|---|
| Christopher Beck | ||
| Alessandro Barzanti |