nightwhite 228e59250c feat(frontend): add Rybbit analytics integration with event forwarding (#7231)
* feat(frontend): add Rybbit analytics integration with event forwarding

Integrate self-hosted Rybbit analytics as an additional sink alongside
the existing GTM pipeline, which remains fully unchanged:

- Add RybbitScript component to @sealos/gtm, driven by the
  NEXT_PUBLIC_RYBBIT_HOST / NEXT_PUBLIC_RYBBIT_SITE_ID env vars;
  loads nothing when unset
- Forward all track() events to window.rybbit.event() in addition to
  dataLayer; object props are JSON-serialized and truncated at 512
  chars per value (Rybbit caps properties at 2KB, primitives only)
- Mount RybbitScript in desktop / applaunchpad / dbprovider / template;
  dbprovider and template get an analytics script for the first time
  (their track() events previously had no consumer)
- Document the env vars in desktop/.env.template

Verified: @sealos/gtm, desktop, dbprovider and template production
builds pass. The applaunchpad build failure is a pre-existing echarts
SSR issue on main, confirmed unrelated via a stash control test.

* refactor(frontend): drive Rybbit config from runtime backend config

Address review feedback: replace build-time NEXT_PUBLIC_* env vars with
runtime configuration delivered by each app's existing config channel,
symmetric with how gtmId flows today. Config changes no longer require
a rebuild and can be toggled per environment at deploy time.

- RybbitScript is now props-driven (host / siteId); empty host or
  siteId disables it. No process.env reads remain
- desktop: add layoutConfig.rybbitHost / rybbitSiteId (type, client
  defaults, Helm values + configmap), passed through at the mount point
- applaunchpad: add analytics.rybbit.{host,siteId} to the config
  schemas (server + client), example yaml and chart configmap; read in
  getInitialProps alongside the existing gtm fields
- dbprovider / template: add optional analytics.rybbit section to the
  config schemas, example yamls, chart configmaps and values; read in
  getInitialProps and pass to the mount point
- New analytics sections are optional in the zod schemas so existing
  deployments keep working when only the image is upgraded
- Drop the NEXT_PUBLIC_RYBBIT_* entries from desktop/.env.template;
  document rybbitHost/rybbitSiteId in the Helm values guides

Verified: @sealos/gtm builds; desktop production build passes;
dbprovider / template / applaunchpad compile successfully
(applaunchpad still stops at the pre-existing echarts SSR issue on
/app/detail/monitor, unchanged from main).

* chore(desktop): restore .env.template to drop unrelated diff

* fix(frontend): buffer early Rybbit events and allowlist host in provider CSP

Review follow-up for the Rybbit integration:

- Queue events fired before the Rybbit script finishes loading and
  flush them from RybbitScript onLoad, mirroring the dataLayer buffer
  the GTM path already has
- Append the configured rybbitHost to script-src in both CSP
  annotations (nginx snippet + higress) of the dbprovider/template/
  applaunchpad ingresses, so /api/script.js is not blocked when the
  integration is enabled; unset values render the CSP unchanged
- Wire applaunchpad rybbitHost/rybbitSiteId through values instead of
  hardcoded empty strings in the configmap, matching dbprovider and
  template (the config channel was previously broken)
2026-08-20 17:54:57 +08:00

🚀 Develop, deploy, and scale in one seamless cloud platform ☁️

Sealos['siːləs] is an AI-native Cloud Operating System built on Kubernetes that unifies the entire application lifecycle, from development in cloud IDEs to production deployment and management. It is perfect for building and scaling modern AI applications, SaaS platforms, managed databases (MySQL, PostgreSQL, Redis, MongoDB) and complex microservice architectures.



Get started

Create your Development Environment in Sealos with just one click

  1. Open Sealos Devbox.
image
  1. Create a development environment, choosing from a range of languages and frameworks.
image
  1. Access your environment from a selection of IDEs, such as VSCode and Cursor.

    image image

Create your Database on Sealos

  1. Open Sealos database.
image
  1. Create your database.
image
  1. View your database and access details.
image

Deploy your Docker Image on Sealos

  1. Open Sealos App Launchpad.
image
  1. Deploy the Docker image using a Kubernetes Deployment and expose it with an Ingress.
image
  1. View your app details and access your service.
image

💡 Core features

  • Integrated Cloud IDEs: Zero-setup, collaborative development in the cloud. Eliminate local environment inconsistencies with DevBox.
  • Managed Databases & Storage: Production-ready PostgreSQL, MySQL, MongoDB, Redis, and built-in S3-compatible Object Storage.
  • Extensive App Store: Deploy complex applications with a single click. No YAML configuration, no container orchestration complexity - just point, click, and deploy.
  • Full Kubernetes Power: Access the full power of Kubernetes without the complexity. K8s-native from day one.
  • Enterprise Multi-Tenancy: Workspace-based isolation with granular RBAC and per-workspace resource quotas for secure collaboration.
  • AI-Native Infrastructure: Build and scale anything with AI simply by describing them.

🏘️ Community & support

  • 🌐 Visit the Sealos Website for full documentation and useful links.
  • 💬 Join our Discord Server to chat with the Sealos team and other Sealos users. This is a good place to learn about Sealos and Kubernetes, ask questions, and share your experiences.
  • 🐦 Tweet at @Sealos_io on X/Twitter and follow us.
  • 🐞 Create GitHub Issues for bug reports and feature requests.

🚧 Roadmap

Sealos maintains a public roadmap. It gives a high-level view of the main priorities for the project, the maturity of different features and projects, and how to influence the project direction.

👩‍💻 Contributing & Development

Have a look through existing issues and Pull Requests that you could help with. If you'd like to request a feature or report a bug, please create a GitHub Issue using one of the templates provided.

📖 See contribution guide →

🔧 See development guide →

  • FastGPT is a free, open-source, and powerful AI knowledge base platform, offers out-of-the-box data processing, model invocation, RAG retrieval, and visual AI workflows. Easily build complex LLM applications.
  • Buildah The functionalities of Buildah are extensively utilized in Sealos 4.0 to ensure that cluster images are compatible with OCI standard.

📄 License

Sealos is licensed under the Sealos Sustainable Use License, a custom license that allows:

  • Internal business use and personal non-commercial use
  • Providing cloud services to third parties

Not a standard open source license - please review the full license terms before use.

Contributing: By contributing, you agree to our Contributor License Agreement and license change terms.

S
Description
Sealos is a production-ready Kubernetes distribution that makes deployment simple and efficient. Instantly set up development environments for any programming language or framework, deploy high-availability databases (like MySQL, PostgreSQL, Redis, and MongoDB) and run any Docker image with ease.
Readme 638 MiB
Languages
TypeScript 57%
Go 38.4%
Shell 2.2%
Makefile 1%
Go Template 0.5%
Other 0.8%