add hub chart
25
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
name: Release Charts
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config user.name "$GITHUB_ACTOR"
|
||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.1.0
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
25
charts/hub/.helmignore
Normal file
@@ -0,0 +1,25 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
*.png
|
||||
*.tgz
|
||||
25
charts/hub/Chart.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
apiVersion: v2
|
||||
name: hub
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
# Application charts are a collection of templates that can be packaged into versioned archives
|
||||
# to be deployed.
|
||||
#
|
||||
# Library charts provide useful utilities or functions for the chart developer. They're included as
|
||||
# a dependency of application charts to inject those utilities and functions into the rendering
|
||||
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
|
||||
type: application
|
||||
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.28.0
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
# It is recommended to use it with quotes.
|
||||
appVersion: "3.0.0"
|
||||
375
charts/hub/README.md
Normal file
@@ -0,0 +1,375 @@
|
||||
# Kerberos Hub
|
||||
|
||||
Kerberos Hub is the single pane of glass for your Kerberos agents. It comes with a best of breed open source technology stack, modular and scale first mindset, and allows you to build and maintain an everless growing video surveillance and video analytics landscape.
|
||||
|
||||
## License
|
||||
|
||||
To use Kerberos Hub a license is required. This license will grant access the Kerberos Hub API, and allow to connect a number of cameras and Kerberos Vaults.
|
||||
|
||||
## What's in the repo?
|
||||
|
||||
This repo describes how to install Kerberos Hub inside your own Kubernetes cluster (or [K3S cluster](https://k3s.io/)) using a Helm chart.
|
||||
A couple of dependencies need to be installed first:
|
||||
- A Kafka message queue,
|
||||
- a Mongodb database,
|
||||
- a MQTT message broker ([Vernemq](https://vernemq.com/))
|
||||
- and a TURN server ([Pion](https://github.com/pion/turn))
|
||||
|
||||
Next to that one can use an Nginx ingress controller or Traefik for orchestrating the ingresses. Once all dependencies are installed, the appropriate values should be updated in the **values.yaml** file.
|
||||
|
||||
We do manage certificates through cert-manager and letsencrypt, and rely on HTTP01 and DNS01 resolvers. So you might need to change that for your custom scenarion (e.g. on premise deployment).
|
||||
|
||||

|
||||
|
||||
# What are we building?
|
||||
|
||||
As shown below you will find the architecture of what we are going to install (the green rectangle).
|
||||
|
||||

|
||||
|
||||
# Let's give it a try.
|
||||
|
||||
## Add helm repos
|
||||
|
||||
The Kerberos Hub installation makes use a couple of other charts which are shipped within their on Helm repos. Therefore, we will add those repos to our Kubernetes cluster.
|
||||
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm repo add jetstack https://charts.jetstack.io
|
||||
helm repo add traefik https://helm.traefik.io/traefik
|
||||
helm repo add vernemq https://vernemq.github.io/docker-vernemq
|
||||
helm repo add kerberos https://kerberos-io.github.io/hub
|
||||
helm repo update
|
||||
|
||||
## Cert manager
|
||||
|
||||
We rely on cert-manager and letsencrypt for generating all the certificates we'll need for the Kerberos Hub web interface, Kerberos Hub api and the Vernemq broker (WSS/TLS).
|
||||
|
||||
As a best practice we will install all the dependencies in their own namespace. Let's start by creating a separate namespace for cert-manager.
|
||||
|
||||
kubectl create namespace cert-manager
|
||||
|
||||
Install the cert-manager helm chart into that namespace.
|
||||
|
||||
helm install cert-manager jetstack/cert-manager --namespace cert-manager --set installCRDs=true
|
||||
|
||||
If you already have the CRDs install you could get rid of `--set installCRDs=true`.
|
||||
|
||||
Next we will install a cluster issuer that will make the HTTP01 challenges, this is needed for resolving the certificates of both Kerberos Hub web interface and api.
|
||||
|
||||
kubectl apply -f cert-manager/cluster-issuer.yaml
|
||||
|
||||
## Optional - Rancher
|
||||
|
||||
A great way to manage your cluster through a UI is Rancher. This is totally up to you, but we love to use it a Kerberos.io
|
||||
|
||||
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
|
||||
helm repo update
|
||||
kubectl create namespace cattle-system
|
||||
helm install rancher rancher-latest/rancher \
|
||||
--namespace cattle-system \
|
||||
--set hostname=rancher.kerberos.xxx \
|
||||
--set ingress.tls.source=letsEncrypt \
|
||||
--set letsEncrypt.email=xxx@email.com \
|
||||
--set 'extraEnv[0].name=CATTLE_TLS_MIN_VERSION' \
|
||||
--set 'extraEnv[0].value=1.2'
|
||||
|
||||
## Kafka
|
||||
|
||||
Kafka is used for the Kerberos Pipeline, this is the place where microservices are executed in parallel and/or sequentially. These microservices will receive events from a Kafka topic and then process the recording, and it's metadata. Results are injected back into Kafka and passed on to the following microservices. Microservices are independently horizontal scalable through replicas, this means that you can distribute your workload across your nodes if a specific microservice requires that.
|
||||
|
||||
As a best practice let's create another namespace.
|
||||
|
||||
kubectl create namespace kafka
|
||||
|
||||
Before installing the Kafka helm chart, go and have a look in the kafka/values.yaml file. You should update the clientUsers and clientPasswords. Have a look at the zookeeper credentials as well and update accordingly.
|
||||
|
||||
helm install kafka bitnami/kafka -f ./kafka/values.yaml -n kafka
|
||||
|
||||
## MongoDB
|
||||
|
||||
A MongoDB instance is used for data persistence. Data might come from the Kerberos Pipeline or user interaction on the Kerberos Hub frontend.
|
||||
|
||||
We will create a namespace for our Mongodb deployment as well.
|
||||
|
||||
kubectl create namespace mongodb
|
||||
|
||||
Create a persistent volume, this is where the data will be stored on disk.
|
||||
|
||||
kubectl apply -f ./mongodb/fast.yaml
|
||||
|
||||
Before installing the mongodb helm chart, go and have a look in the `mongodb/values.yaml` file. You should update the root password to a custom secure value.
|
||||
|
||||
helm install mongodb bitnami/mongodb --values ./mongodb/values.yaml -n mongodb
|
||||
|
||||
## Vernemq
|
||||
|
||||
Next to Kafka, we are using MQTT for bidirectional communication in the Kerberos ecosystem. This Vernemq broker, which is horizontal scalable, allows communicating with Kerberos agents at the edge (or wherever they live) and Kerberos Vault to forward recordings from the edge into the cloud.
|
||||
|
||||
We'll create a namespace for our message broker Vernemq.
|
||||
|
||||
kubectl create namespace vernemq
|
||||
|
||||
Create a certificate, so we can handle TLS/WSS. (this needs a DNS challenge)
|
||||
|
||||
kubectl apply -f vernemq/vernemq-secret.yaml --namespace vernemq
|
||||
kubectl apply -f vernemq/vernemq-issuer.yaml --namespace vernemq
|
||||
kubectl apply -f vernemq/vernemq-certificate.yaml --namespace vernemq
|
||||
|
||||
By default, a username and password is set for the Vernemq broker. You can find these in the `vernemq/values.yaml` file [as shown below](https://github.com/kerberos-io/hub/blob/master/vernemq/values.yaml#L216-L217).
|
||||
|
||||
...
|
||||
- name: DOCKER_VERNEMQ_USER_YOURUSERNAME
|
||||
value: "yourpassword"
|
||||
...
|
||||
|
||||
Please note that the username is defined in capitals `YOURUSERNAME`, but will result as `yourusername`. So anything written in capitals, will be lowercase.
|
||||
|
||||
Go a head and install the Vernemq chart with the relevant configuration options.
|
||||
|
||||
helm install vernemq vernemq/vernemq -f vernemq/values.yaml --namespace vernemq
|
||||
|
||||
## TURN/STUN
|
||||
|
||||
Within Kerberos Hub we allow streaming live from the edge to the cloud without port-forwarding. To make this work we are using a technology called WebRTC that leverages a TURN/STUN server.
|
||||
|
||||

|
||||
|
||||
To run a TURN/STUN server please [have a look at following repository](https://github.com/kerberos-io/turn-and-stun), this will deploy a Docker container on a specific host that will act as a proxy for network traversal. The TURN/STUN server will make sure a connection from a Kerberos Agent to a Kerberos Hub viewer is established.
|
||||
|
||||
## Install Nginx ingress
|
||||
|
||||
Ingresses are needed to expose the Kerberos hub front-end and api to the internet or intranet. We prefer nginx ingress but if you would prefer Traefik, that is perfectly fine as well.
|
||||
|
||||
helm upgrade --install ingress-nginx ingress-nginx \
|
||||
--repo https://kubernetes.github.io/ingress-nginx \
|
||||
--namespace ingress-nginx --create-namespace
|
||||
|
||||
### or (option) Install traefik
|
||||
|
||||
helm install traefik traefik/traefik -f ./traefik/values-ssl.yaml
|
||||
|
||||
## Kerberos Hub
|
||||
|
||||
So once you hit this step, you should have installed a previous defined dependencies. Hopefully you didn't have too much pain with the certificates :).
|
||||
Before starting, it's important to have a look at the `values.yaml` file. This includes the different parameters to configure the different deployments.
|
||||
Reach out to us if you would need any help with this.
|
||||
|
||||
As previously mentioned a couple of times, we should also create a kerberos namespace.
|
||||
|
||||
kubectl create namespace kerberos-hub
|
||||
|
||||
Install the `registry credentials` to download the Kerberos Hub and Kerberos Pipeline. You'll need to request the `regcred.yaml` from the Kerberos team, to be able to download the Kerberos Hub images.
|
||||
|
||||
kubectl apply -f regcred.yaml -n kerberos-hub
|
||||
|
||||
Install the Kerberos Hub chart and take into the values.yaml file.
|
||||
|
||||
helm install hub kerberos/hub --values values.yaml -n kerberos-hub
|
||||
|
||||
Uninstall the Kerberos Hub chart
|
||||
|
||||
helm uninstall hub -n kerberos-hub
|
||||
|
||||
### Parameters
|
||||
|
||||
Below all configuration options and parameters are listed.
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ----- |
|
||||
| `license` | The license key you received from support@kerberos.io. If not available request one. | `""` |
|
||||
| `licenseServer.url` | The license server for validating the license of your Kerberos Hub, by default `'"https://license.kerberos.io/verify"'`. | `""` |
|
||||
| `licenseServer.token` | The license server API token to sign the license validation by default `'214%ˆ#ddfsf@#3rfdsgl_)23sffeqasSwefDSFNBM'`. | `""` |
|
||||
| `imagePullSecrets.name` | Docker registry secret name, which is also granted with the license. This allows you to download the Docker images. | `""` |
|
||||
| `isPrivate` | Global StorageClass for Persistent Volume(s) | `""` |
|
||||
| `readOnly` | This will stop any write process to mongodb or any processing done in the Kerberos Hub pipeline. | `""` |
|
||||
| `ingress` | The ingress being used for `kerberoshub.api.url` and `kerberoshub.frontend.url`. | `""` |
|
||||
| `mongodb.host` | MongoDB hostname (`'mongodb:27017'`) or mongodb replicas (`'mongodb-0:27017,mongodb-1:27017'`). | `""` |
|
||||
| `mongodb.adminDatabase` | MongoDB admin database, this is named `admin` by default. | `""` |
|
||||
| `mongodb.username` | MongoDB user account, we are using in the hub installation `'root'`. | `""` |
|
||||
| `mongodb.password` | MongoDB user password, by default `'yourmongodbpassword'` | `""` |
|
||||
| `mqtt.host` | MQTT (Vernemq) hostname. | `""` |
|
||||
| `mqtt.port` | MQTT (Vernemq) port for WSS (secure sockets), by default `'8443'`. | `""` |
|
||||
| `mqtt.protocol` | MQTT (Vernemq) protocol, by default `'wss'`. | `""` |
|
||||
| `mqtt.username` | MQTT (Vernemq) username, by default `'yourusername'`. | `""` |
|
||||
| `mqtt.password` | MQTT (Vernemq) password, by default `'yourpassword'`. | `""` |
|
||||
| `queueProvider` | The queue we are using for the [Kerberos Hub pipeline](https://doc.kerberos.io/hub/pipeline/), can be 'SQS' or 'KAFKA'. | `""` |
|
||||
| `queueName` | The event queue which is propagating messages in the [Kerberos Hub pipeline](https://doc.kerberos.io/hub/pipeline/). | `""` |
|
||||
| `kafka.broker` | Kafka brokers, by default `'kafka1.yourdomain.com:9094,kafka2.yourdomain.com:9094'` | `""` |
|
||||
| `kafka.username` | Kafka username, by default `'yourusername'` | `""` |
|
||||
| `kafka.password` | Kafka password, by default `'yourpassword'` | `""` |
|
||||
| `kafka.mechanism` | Kafka mechanism, by default `'PLAIN'` | `""` |
|
||||
| `kafka.security` | Kafka security, by default `'SASL_PLAINTEXT'` | `""` |
|
||||
| `turn.host` | TURN/STUN hostname, by default `'turn:turn.yourdomain.com:8443'` | `""` |
|
||||
| `turn.username` | TURN/STUN username, by default `'username1'` | `""` |
|
||||
| `turn.password` | TURN/STUN password, by default `'password1'` | `""` |
|
||||
| `kerberosvault.uri` | The default Kerberos Vault uri (you can add multiple within the app), by default `'https://api.storage.yourdomain.com'` | `""` |
|
||||
| `kerberosvault.accesskey` | The default Kerberos Vault access key, by default `'xxx'` | `""` |
|
||||
| `kerberosvault.secretkey` | The default Kerberos Vault secret key, by default `'xxx'` | `""` |
|
||||
| `kerberosvault.provider` | The default Kerberos Vault provider`'a-provider'` | `""` |
|
||||
| `kerberosvault.archive.accesskey` | When a task is created, the relevant recording is moved to another provider, using this access key `'xxx'` | `""` |
|
||||
| `kerberosvault.archive.secretkey` | When a task is created, the relevant recording is moved to another provider, using this secret key`'xxx'` | `""` |
|
||||
| `kerberosvault.archive.provider` | When a task is created, the relevant recording is moved to this provider `'an-archive-provider'` | `""` |
|
||||
| `email.provider` | The email service provider for sending out messages over email , use `'mailgun'` or `'smtp'`. | `""` |
|
||||
| `email.from` | The email address that is sending messages in name of, by default `'support@yourdomain.com'`. | `""` |
|
||||
| `email.displayName` | The display name that is sending messages in name of, by default `'yourdomain.com'` | `""` |
|
||||
| `email.mailgun.domain` | While using `mailgun` as email service provider, you will need to provide your Mailgun domain. | `""` |
|
||||
| `email.mailgun.apiKey` | The Mailgun API key linked to your Mailgun domain. | `""` |
|
||||
| `email.smtp.server` | While using `smtp` as email service provider, use the SMTP server. | `""` |
|
||||
| `email.smtp.port` | SMTP port specified by your SMTP server, by default `'456'`. | `""` |
|
||||
| `email.smtp.username` | SMTP username. | `""` |
|
||||
| `email.smtp.password` | SMTP password. | `""` |
|
||||
| `email.templates.detection` | We use templates to send notifications, this allow you to bring your own `Mailgun` templates, by default `'detection'`. | `""` |
|
||||
| `email.templates.disabled` | The template which is send when an account is disabled due to reaching its upload limit, by default `'disabled'`. | `""` |
|
||||
| `email.templates.highupload` | The template which is send when an account is reaching a specific upload threshold, by default `'threshold'`. | `""` |
|
||||
| `email.templates.device` | The template which is send when a camera goes online or offline, by default `'device'`. | `""` |
|
||||
| `email.templates.welcome` | The template which is send when a new user registered on the platform (`IS_PRIVATE='false'`), by default `'disabled'`. | `""` |
|
||||
| `email.templates.welcomeTitle` | The welcome title use in the subject of the email. | `""` |
|
||||
| `email.templates.activate` | The template which is send when a user is required to activate his account , by default `'activate'`. | `""` |
|
||||
| `email.templates.activateTitle` | The activation title use in the subject of the email. | `""` |
|
||||
| `email.templates.forgot` | The template which is send when an account is requesting a forgot password, by default `'forgot'`. | `""` |
|
||||
| `email.templates.forgotTitle` | The forgot title use in the subject of the email. | `""` |
|
||||
| `kerberoshub.api.repository` | The Docker registry where the Kerberos Hub API container is hosted. | `""` |
|
||||
| `kerberoshub.api.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberoshub.api.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberoshub.api.replicas` | The number of pods/replicas running for the Kerberos Hub API deployment. | `""` |
|
||||
| `kerberoshub.api.jwtSecret` | A secret that is for generating JWT tokens. | `""` |
|
||||
| `kerberoshub.api.schema` | The protocol to serve the Kerberos Hub API, `'http'` or `'https'`. | `""` |
|
||||
| `kerberoshub.api.url` | The Kerberos Hub API ingress to access the API. | `""` |
|
||||
| `kerberoshub.api.tls` | Bring your own TLS certificates for Kerberos Hub API ingress. | `""` |
|
||||
| `kerberoshub.api.language` | The language of Kerberos Hub API responses, error messages will be communicated in the specified language. | `""` |
|
||||
| `kerberoshub.api.fallbackLanguage` | The fallback language, if a specific translation is not available. | `""` |
|
||||
| `kerberoshub.api.slack.enabled` | Slack integration for sending events and notifications coming from the Kerberos Hub API, `'true'` or `'false'`. | `""` |
|
||||
| `kerberoshub.api.slack.hook` | Slack integration hook url. | `""` |
|
||||
| `kerberoshub.api.slack.username` | Slack integration username. | `""` |
|
||||
| `kerberoshub.api.elasticsearch.enabled` | Elasticsearch for storing events coming from the Kerberos Hub API, `'true'` or `'false'` | `""` |
|
||||
| `kerberoshub.api.elasticsearch.protocol` | Elasticsearch protocol, `'http'` or `'https'`. | `""` |
|
||||
| `kerberoshub.api.elasticsearch.host` | Elasticsearch host. | `""` |
|
||||
| `kerberoshub.api.elasticsearch.port` | Elasticsearch port. | `""` |
|
||||
| `kerberoshub.api.elasticsearch.index` | Elasticsearch index which is used to store the events. | `""` |
|
||||
| `kerberoshub.api.elasticsearch.username` | Elasticsearch username. | `""` |
|
||||
| `kerberoshub.api.elasticsearch.password` | Elasticsearch password. | `""` |
|
||||
| `kerberoshub.api.sso.issuer` | Kerberos Hub can be linked to OpenID Connect for SSO. Specify the OIC issuer. | `""` |
|
||||
| `kerberoshub.api.sso.clientId` | The OIC client id. | `""` |
|
||||
| `kerberoshub.api.sso.clientSecret` | The OIC client secret. | `""` |
|
||||
| `kerberoshub.api.sso.redirectUrl` | The OIC redirectUrl, once the authentication is validated. | `""` |
|
||||
| `kerberoshub.frontend.repository` | The Docker registry where the Kerberos Hub frontend is hosted. | `""` |
|
||||
| `kerberoshub.frontend.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberoshub.frontend.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberoshub.frontend.replicas` | The number of pods/replicas running for the Kerberos Hub frontend deployment. | `""` |
|
||||
| `kerberoshub.frontend.schema` | The protocol to serve the Kerberos Hub frontend, `'http'` or `'https'`. | `""` |
|
||||
| `kerberoshub.frontend.url` | The Kerberos Hub frontend ingress to access the frontend. | `""` |
|
||||
| `kerberoshub.frontend.tls` | Bring your own TLS certificates for Kerberos Hub frontend ingress. | `""` |
|
||||
| `kerberoshub.frontend.ssoDomain` | The domain that's being used to activate SSO from the login page. | `""` |
|
||||
| `kerberoshub.frontend.logo` | The logo being used in the Kerberos Hub frontend, set to 'custom' if you want to mount your own stylesheet. | `""` |
|
||||
| `kerberoshub.frontend.mixpanel.apikey` | No longer used. | `""` |
|
||||
| `kerberoshub.frontend.sentry.url` | No longer used. | `""` |
|
||||
| `kerberoshub.frontend.posthog.key` | The API key retrieved from the Posthog instance. | `""` |
|
||||
| `kerberoshub.frontend.posthog.url` | Posthog's endpoint (http/https). | `""` |
|
||||
| `kerberoshub.frontend.stripe.apikey` | If using the public version, `stripe` can be used for automated billing and subscriptions. | `""` |
|
||||
| `kerberoshub.frontend.googlemaps.apikey` | Within Kerberos Hub frontend a couple of maps are being used, the google maps is leveraged for that. | `""` |
|
||||
| `kerberoshub.frontend.zendesk.url` | No longer used. | `""` |
|
||||
|
||||
| `kerberoshub.frontend.zendesk.url` | No longer used. | `""` |
|
||||
| `kerberoshub.cleanup.repository` | The Docker container that is responsible for cleaning up the Kerberos Hub API content and related MongoDB collections. | `""` |
|
||||
| `kerberoshub.cleanup.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberoshub.cleanup.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberoshub.forwarder.repository` | The Docker container which orchestrates forwarding coming from different Kerberos Vaults. | `""` |
|
||||
| `kerberoshub.forwarder.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberoshub.forwarder.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberoshub.monitordevice.repository` | The monitoring microservice, following up the status of your cameras and Kerberos Agents. | `""` |
|
||||
| `kerberoshub.monitordevice.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberoshub.monitordevice.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.event.repository` | The [event orchestration](https://doc.kerberos.io/hub/pipeline/#orchestrator) microservice. | `""` |
|
||||
| `kerberospipeline.event.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.event.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.monitor.repository` | The [monitoring microservice](https://doc.kerberos.io/hub/pipeline/#monitoring), calculating metrics of incoming messages.| `""` |
|
||||
| `kerberospipeline.monitor.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.monitor.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.sequence.repository` | The [sequencer microservice](https://doc.kerberos.io/hub/pipeline/#sequencer), grouping recordings in chunks/groups. | `""` |
|
||||
| `kerberospipeline.sequence.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.sequence.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.throttler.repository` | The [throttler microservice](https://doc.kerberos.io/hub/pipeline/#throttler), throttling events. | `""` |
|
||||
| `kerberospipeline.throttler.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.throttler.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.notify.repository` | The [notification microservice](https://doc.kerberos.io/hub/pipeline/#notification), sending notifications on events. | `""` |
|
||||
| `kerberospipeline.notify.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.notify.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.notifyTest.repository` | The notification service for testing, the different channels. | `""` |
|
||||
| `kerberospipeline.notifyTest.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.notifyTest.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.analysis.repository` | The [analysis microservices](https://doc.kerberos.io/hub/pipeline/#analyser) which executed specific analysis in parallel.| `""` |
|
||||
| `kerberospipeline.analysis.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.analysis.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.dominantColor.repository` | The dominant color microservices is computing a top 3 color histogram. | `""` |
|
||||
| `kerberospipeline.dominantColor.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.dominantColor.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.thumbnail.repository` | The thumbnail microservices generated a thumbnail for a recordings. | `""` |
|
||||
| `kerberospipeline.thumbnail.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.thumbnail.tag` | The Docker image tag/version. | `""` |
|
||||
| `kerberospipeline.counting.repository` | The counting microservices computes objects passing different line segments. | `""` |
|
||||
| `kerberospipeline.counting.pullPolicy` | The Docker registry pull policy. | `""` |
|
||||
| `kerberospipeline.counting.tag` | The Docker image tag/version. | `""` |
|
||||
### Post installation
|
||||
|
||||
After the installation you'll need to initialise the Mongodb with some objects. Have a look at the `mongodb/` folder, you'll find three files available:
|
||||
|
||||
- settings.nosql
|
||||
- subscriptions.nosql
|
||||
- users.nosql
|
||||
|
||||
Open your favourite Mongodb client (or cli) and connect to your Mongodb database as previously created (or have already installed). Import the previous mentioned `.nosql` files into a new database called `Kerberos`.
|
||||
|
||||
<img width="1037" alt="Screenshot 2021-05-24 at 16 01 24" src="https://user-images.githubusercontent.com/1546779/119358865-4fd84300-bca9-11eb-8ea1-82998f88d3d8.png">
|
||||
|
||||
Once done you should be able to sign in with following credentials:
|
||||
|
||||
- username: youruser
|
||||
- password: yourpassword
|
||||
|
||||
Please note that the default username and password can be changed [by the changing the related username and password hash](https://github.com/kerberos-io/hub/blob/master/mongodb/users.nosql#L3-L5). The password hash is a bcrypt computed hash, which you can compute yourself [using a bcrypt client](https://bcrypt-generator.com/).
|
||||
|
||||
### Subscription settings
|
||||
|
||||
Once the collections are loaded in the Mongodb instance, you should see the `user`, `subscriptons` and `settings` collections. Those three collections will allow a user to login into the Kerberos Hub web interface, using the previously mentioned username and password.
|
||||
|
||||
Next to that, in the `subscriptions` collection you will find a subscription for that specific user. The subscription specifies which kind of access the user has in terms of features and upload quota.
|
||||
|
||||
Building further on those `subscriptions`, you will find a `settings` collection that contains the quota for each `subscription`.
|
||||
|
||||
### Indexing
|
||||
|
||||
Following indexes should be executed on the MongoDB database (Kerberos) to improve future performance.
|
||||
|
||||
db.getCollection('sequences').createIndex({user_id:1, end:1, start: -1, devices: 1})
|
||||
|
||||
db.getCollection('sequences').createIndex({user_id:1, end:1, start: 1, "images.instanceName": 1})
|
||||
|
||||
db.getCollection('sequences').createIndex({user_id:1, "images.key":1})
|
||||
|
||||
db.getCollection("notifications").createIndex({"user":1})
|
||||
|
||||
db.getCollection("analysis").createIndex({"key":1})
|
||||
|
||||
# Upgrade
|
||||
|
||||
After installation, you might want to upgrade Kerberos Hub to the latest version, or change some settings. With Helm charts all settings are configured through the `values.yaml` file. After you made modifications to the `values.yaml` file, for example the version tag, or a new DNS name, you can run the `helm upgrade` command as following.
|
||||
|
||||
helm upgrade hub kerberos/hub -f values.yaml -n kerberos-hub
|
||||
|
||||
The first argument is the helm project name, you could find this out by running `helm ls -n kerberos`. The following element is the helm chart name, and the last one is the `values.yaml` file with the new configuration.
|
||||
|
||||
# Building
|
||||
|
||||
To build a new release the following steps needs to be executed.
|
||||
|
||||
cd hub
|
||||
helm lint
|
||||
|
||||
cd ..
|
||||
helm package hub
|
||||
mv hub-*.tgz hub
|
||||
|
||||
helm repo index hub --url https://kerberos-io.github.io/hub
|
||||
cd hub
|
||||
cat index.yaml
|
||||
|
||||
BIN
charts/hub/architecture.png
Normal file
|
After Width: | Height: | Size: 275 KiB |
18
charts/hub/cert-manager/cluster-issuer.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: ClusterIssuer
|
||||
metadata:
|
||||
name: letsencrypt-prod
|
||||
spec:
|
||||
acme:
|
||||
# The ACME server URL
|
||||
server: https://acme-v02.api.letsencrypt.org/directory
|
||||
# Email address used for ACME registration
|
||||
email: cedric@verstraeten.io
|
||||
# Name of a secret used to store the ACME account private key
|
||||
privateKeySecretRef:
|
||||
name: letsencrypt-prod
|
||||
# Enable the HTTP-01 challenge provider
|
||||
solvers:
|
||||
- http01:
|
||||
ingress:
|
||||
class: nginx
|
||||
11
charts/hub/custom-layout/custom-layout-claim.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: custom-layout-claim
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
storageClassName: azurefile-premium
|
||||
resources:
|
||||
requests:
|
||||
storage: 25Mi
|
||||
BIN
charts/hub/custom-layout/favicons/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
charts/hub/custom-layout/favicons/android-chrome-512x512.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
charts/hub/custom-layout/favicons/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
9
charts/hub/custom-layout/favicons/browserconfig.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/favicons/mstile-150x150.png?v=1"/>
|
||||
<TileColor>#b4524e</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
||||
BIN
charts/hub/custom-layout/favicons/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 648 B |
BIN
charts/hub/custom-layout/favicons/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
charts/hub/custom-layout/favicons/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
charts/hub/custom-layout/favicons/mstile-144x144.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
charts/hub/custom-layout/favicons/mstile-150x150.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
charts/hub/custom-layout/favicons/mstile-310x150.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
charts/hub/custom-layout/favicons/mstile-310x310.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
charts/hub/custom-layout/favicons/mstile-70x70.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
46
charts/hub/custom-layout/favicons/safari-pinned-tab.svg
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M3278 6996 c-1 -2 -39 -6 -83 -10 -123 -9 -292 -34 -400 -58 -197
|
||||
-43 -473 -126 -580 -173 -16 -7 -46 -19 -65 -26 -69 -27 -397 -196 -487 -253
|
||||
-348 -216 -684 -521 -932 -845 -257 -335 -450 -710 -574 -1111 -25 -80 -48
|
||||
-161 -53 -180 -4 -19 -8 -37 -9 -40 -12 -48 -34 -163 -40 -204 -2 -15 -7 -35
|
||||
-9 -45 -3 -9 -8 -43 -11 -76 -4 -33 -8 -67 -10 -75 -19 -71 -27 -583 -12 -730
|
||||
15 -148 19 -176 38 -285 26 -151 26 -151 64 -299 47 -183 111 -371 175 -511
|
||||
15 -33 30 -70 34 -83 4 -12 10 -22 14 -22 4 0 40 147 80 328 41 180 75 334 77
|
||||
342 33 141 136 457 265 810 119 325 255 726 293 865 25 90 32 131 42 277 7 94
|
||||
10 108 36 223 54 236 173 515 257 605 46 49 56 53 99 51 36 -2 140 -116 176
|
||||
-193 18 -37 35 -68 38 -68 3 0 19 28 35 62 54 115 118 203 167 230 37 19 82
|
||||
-51 234 -362 220 -450 215 -440 243 -446 127 -28 275 -99 381 -181 l69 -53 11
|
||||
27 c25 67 113 337 139 429 29 103 36 150 45 288 16 248 147 635 271 803 52 70
|
||||
95 92 139 71 16 -9 84 -76 124 -124 15 -18 53 -97 61 -124 6 -22 10 -18 40 45
|
||||
69 140 153 250 188 243 39 -7 85 -88 262 -453 45 -93 102 -211 128 -261 l45
|
||||
-92 77 -20 c258 -69 469 -245 636 -528 52 -89 55 -92 126 -127 113 -55 303
|
||||
-128 538 -207 118 -40 244 -86 279 -102 163 -77 223 -206 157 -340 -40 -81
|
||||
-126 -212 -176 -267 -114 -126 -281 -225 -431 -257 -86 -18 -131 -25 -179 -30
|
||||
-51 -4 -76 -7 -170 -19 -19 -2 -71 -7 -115 -11 -44 -3 -91 -7 -105 -9 -14 -1
|
||||
-61 -5 -105 -9 -99 -8 -179 -17 -182 -20 -1 -1 -18 -47 -38 -102 -39 -109 -89
|
||||
-289 -100 -359 -6 -43 -27 -171 -31 -195 -3 -22 -7 -59 -18 -186 -2 -26 8 -45
|
||||
51 -99 50 -63 153 -226 153 -244 0 -9 213 -111 233 -111 7 0 17 -4 23 -9 11
|
||||
-10 240 -94 444 -162 237 -79 305 -118 355 -203 49 -84 38 -156 -46 -295 -76
|
||||
-124 -94 -148 -176 -228 -136 -133 -320 -213 -548 -238 -27 -3 -66 -8 -85 -11
|
||||
-19 -2 -60 -7 -90 -9 -139 -11 -197 -16 -220 -20 -14 -2 -61 -7 -105 -10 -44
|
||||
-4 -93 -8 -110 -10 -16 -1 -42 -3 -56 -4 -24 -1 -29 -10 -62 -103 -52 -147
|
||||
-66 -200 -98 -358 -26 -130 -38 -211 -45 -305 -3 -44 -7 -86 -9 -92 -5 -16
|
||||
-14 -16 86 2 192 36 506 125 614 175 11 5 61 25 110 45 121 49 299 141 442
|
||||
228 65 39 123 75 128 79 6 4 60 44 120 87 266 190 536 458 744 736 271 362
|
||||
472 781 586 1219 32 123 57 243 70 329 22 153 23 166 32 262 10 117 10 495 0
|
||||
610 -9 99 -11 116 -22 190 -4 28 -8 59 -10 70 -8 59 -49 252 -71 335 -226 844
|
||||
-739 1560 -1462 2041 -57 38 -105 69 -107 69 -3 0 -28 15 -57 34 -76 48 -302
|
||||
160 -432 213 -249 103 -535 184 -771 219 -27 4 -57 9 -65 10 -8 2 -42 6 -76 9
|
||||
-33 4 -74 9 -90 11 -32 5 -540 14 -546 10z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
19
charts/hub/custom-layout/favicons/site.webmanifest
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "Kerberos.io",
|
||||
"short_name": "Kerberos.io",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/favicons/android-chrome-192x192.png?v=1",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/favicons/android-chrome-512x512.png?v=1",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
||||
670
charts/hub/custom-layout/icons.js
Normal file
@@ -0,0 +1,670 @@
|
||||
(function(window) {
|
||||
window["env"] = window["env"] || {};
|
||||
window["env"]["svg"] = window["env"]["svg"] || {};
|
||||
|
||||
/* Accounts */
|
||||
window["env"]["svg"]["accounts"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2C7.89543 2 7 2.89543 7 4C7 5.10457 7.89543 6 9 6C10.1046 6 11 5.10457 11 4C11 2.89543 10.1046 2 9 2ZM5 4C5 1.79086 6.79086 0 9 0C11.2091 0 13 1.79086 13 4C13 6.20914 11.2091 8 9 8C6.79086 8 5 6.20914 5 4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.9981 11.3995C5.29471 9.88675 7.08937 9 9 9C10.9106 9 12.7053 9.88675 14.0019 11.3995C15.2944 12.9074 16 14.9238 16 17C16 17.5523 15.5523 18 15 18L3 18C2.44772 18 2 17.5523 2 17C2 14.9238 2.70558 12.9074 3.9981 11.3995ZM9 11C7.72803 11 6.47044 11.5882 5.51662 12.701C4.75666 13.5877 4.24797 14.743 4.07017 16L13.9298 16C13.752 14.743 13.2433 13.5877 12.4834 12.701C11.5296 11.5882 10.272 11 9 11Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Activity / pulse (Latest Activity) */
|
||||
window["env"]["svg"]["activity"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.92677 0.00271038C10.4021 -0.03219 10.836 0.273183 10.9635 0.732382L13.094 8.40217L13.4453 8.16798C13.6096 8.05846 13.8026 8.00003 14 8.00003H17C17.5523 8.00003 18 8.44774 18 9.00003C18 9.55231 17.5523 10 17 10H14.3028L13.0547 10.8321C12.7879 11.0099 12.4521 11.0491 12.1515 10.9374C11.851 10.8256 11.6223 10.5766 11.5365 10.2677L10.3729 6.07887L8.99228 17.1241C8.93316 17.597 8.54854 17.9624 8.07323 17.9973C7.59793 18.0322 7.16404 17.7269 7.03648 17.2677L4.90599 9.59789L4.5547 9.83208C4.39043 9.94159 4.19742 10 4 10H1C0.447715 10 0 9.55231 0 9.00003C0 8.44774 0.447715 8.00003 1 8.00003H3.69722L4.9453 7.16797C5.21207 6.99013 5.54794 6.95098 5.84846 7.0627C6.14898 7.17442 6.37771 7.42346 6.46352 7.73238L7.62707 11.9212L9.00772 0.875991C9.06684 0.403086 9.45146 0.0376109 9.92677 0.00271038Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Alerts */
|
||||
window["env"]["svg"]["alerts"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 4C6.79086 4 5 5.79086 5 8V12H13V8C13 5.79086 11.2091 4 9 4ZM3 8C3 4.68629 5.68629 2 9 2C12.3137 2 15 4.68629 15 8V14H3V8Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.2321 15.134C11.7104 15.4102 11.8743 16.0218 11.5981 16.5C11.3348 16.9561 10.9561 17.3348 10.5 17.5981C10.044 17.8614 9.52665 18 9.00004 18C8.47343 18 7.9561 17.8614 7.50004 17.5981C7.04398 17.3348 6.66527 16.9561 6.40196 16.5C6.12582 16.0218 6.2897 15.4102 6.76799 15.134C7.24628 14.8579 7.85787 15.0218 8.13401 15.5C8.22178 15.6521 8.34802 15.7783 8.50004 15.8661C8.65206 15.9538 8.8245 16 9.00004 16C9.17558 16 9.34802 15.9538 9.50004 15.8661C9.65206 15.7783 9.7783 15.6521 9.86607 15.5C10.1422 15.0218 10.7538 14.8579 11.2321 15.134Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 13C2 12.4477 2.44772 12 3 12H15C15.5523 12 16 12.4477 16 13C16 13.5523 15.5523 14 15 14H3C2.44772 14 2 13.5523 2 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 0C9.55228 0 10 0.447715 10 1V2C10 2.55228 9.55228 3 9 3C8.44772 3 8 2.55228 8 2V1C8 0.447715 8.44772 0 9 0Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Animal (detection classification) */
|
||||
window["env"]["svg"]["animal"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9291 0.00252861C12.3326 -0.0261452 12.7136 0.191035 12.8945 0.552799L13.6888 2.14142L17.2426 3.02987C17.6878 3.14116 18.0001 3.54114 18.0001 4.00001V7.00001C18.0001 7.43045 17.7247 7.81259 17.3163 7.9487L14.8172 8.78173L14.1906 10.9817V16C14.1906 16.5523 13.7429 17 13.1906 17H10.9049C10.4638 17 10.0748 16.711 9.94745 16.2888L9.25719 14H6.22085L5.44878 16.3162C5.31266 16.7246 4.93053 17 4.50009 17H1.762C1.47714 17 1.20579 16.8785 1.01607 16.666C0.826342 16.4535 0.736244 16.1702 0.768385 15.8872L1.47659 9.65043L0.080897 6.39394C-0.0844142 6.00823 0.0086793 5.56034 0.313997 5.27245C0.619315 4.98456 1.0719 4.91791 1.44724 5.10558L4.19649 6.48018L9.25992 6.05823L11.0514 0.683793C11.1792 0.300084 11.5257 0.0312024 11.9291 0.00252861ZM12.1914 3.58831L10.9488 7.31623C10.8223 7.69574 10.4818 7.96334 10.0831 7.99656L4.08314 8.49656C3.90037 8.51179 3.71693 8.47646 3.55289 8.39444L2.9946 8.1153L3.41923 9.10608C3.48763 9.26567 3.5133 9.44032 3.49371 9.61284L2.88198 15H3.77934L4.55141 12.6838C4.68753 12.2754 5.06966 12 5.50009 12H10.0001C10.4412 12 10.8301 12.289 10.9575 12.7113L11.6478 15H12.1906V10.8421C12.1906 10.7495 12.2034 10.6573 12.2288 10.5682L13.0383 7.72609C13.1288 7.40834 13.3704 7.1558 13.6838 7.05133L16.0001 6.27925V4.78079L12.7575 3.97016C12.5282 3.91283 12.3284 3.77667 12.1914 3.58831Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.6489 9.43638L9.64893 7.93638L10.3512 6.06372L14.3512 7.56372L13.6489 9.43638Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Api (swagger icon) */
|
||||
window["env"]["svg"]["api"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.33988 13.606C3.81657 13.884 4.37967 14 5 14C5.55228 14 6 13.5523 6 13C6 12.4477 5.55228 12 5 12C4.62033 12 4.43343 11.9285 4.34762 11.8784C4.27478 11.8359 4.21728 11.7767 4.16381 11.6564C4.01826 11.3289 4 10.8204 4 10C4 9.96887 4.00004 9.93709 4.00008 9.9047C4.00089 9.22998 4.00202 8.29233 3.66381 7.53136C3.46728 7.08917 3.14978 6.67967 2.66012 6.39403C2.18343 6.11596 1.62033 6 1 6C0.447715 6 0 6.44772 0 7C0 7.55228 0.447715 8 1 8C1.37967 8 1.56657 8.07154 1.65238 8.12159C1.72522 8.16408 1.78272 8.22333 1.83619 8.34364C1.98174 8.67114 2 9.17959 2 10C2 10.0311 1.99996 10.0629 1.99992 10.0953C1.99911 10.77 1.99798 11.7077 2.33619 12.4686C2.53272 12.9108 2.85022 13.3203 3.33988 13.606Z" fill="currentColor"></path>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.33988 0.394034C3.81657 0.115964 4.37967 0 5 0C5.55228 0 6 0.447715 6 1C6 1.55228 5.55228 2 5 2C4.62033 2 4.43343 2.07154 4.34762 2.12159C4.27478 2.16408 4.21728 2.22333 4.16381 2.34364C4.01826 2.67114 4 3.17959 4 4C4 4.03113 4.00004 4.06291 4.00008 4.0953C4.00089 4.77002 4.00202 5.70767 3.66381 6.46864C3.46728 6.91083 3.14978 7.32033 2.66012 7.60597C2.18343 7.88404 1.62033 8 1 8C0.447715 8 0 7.55228 0 7C0 6.44772 0.447715 6 1 6C1.37967 6 1.56657 5.92846 1.65238 5.87841C1.72522 5.83592 1.78272 5.77667 1.83619 5.65636C1.98174 5.32886 2 4.82041 2 4C2 3.96887 1.99996 3.93709 1.99992 3.9047C1.99911 3.22998 1.99798 2.29233 2.33619 1.53136C2.53272 1.08917 2.85022 0.679671 3.33988 0.394034Z" fill="currentColor"></path>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.6601 0.394034C14.1834 0.115964 13.6203 0 13 0C12.4477 0 12 0.447715 12 1C12 1.55228 12.4477 2 13 2C13.3797 2 13.5666 2.07154 13.6524 2.12159C13.7252 2.16408 13.7827 2.22333 13.8362 2.34364C13.9817 2.67114 14 3.17959 14 4C14 4.03113 14 4.06291 13.9999 4.0953C13.9991 4.77002 13.998 5.70767 14.3362 6.46864C14.5327 6.91083 14.8502 7.32033 15.3399 7.60597C15.8166 7.88404 16.3797 8 17 8C17.5523 8 18 7.55228 18 7C18 6.44772 17.5523 6 17 6C16.6203 6 16.4334 5.92846 16.3476 5.87841C16.2748 5.83592 16.2173 5.77667 16.1638 5.65636C16.0183 5.32886 16 4.82041 16 4C16 3.96887 16 3.93709 16.0001 3.9047C16.0009 3.22998 16.002 2.29233 15.6638 1.53136C15.4673 1.08917 15.1498 0.679671 14.6601 0.394034Z" fill="currentColor"></path>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.6601 13.606C14.1834 13.884 13.6203 14 13 14C12.4477 14 12 13.5523 12 13C12 12.4477 12.4477 12 13 12C13.3797 12 13.5666 11.9285 13.6524 11.8784C13.7252 11.8359 13.7827 11.7767 13.8362 11.6564C13.9817 11.3289 14 10.8204 14 10C14 9.96887 14 9.93709 13.9999 9.9047C13.9991 9.22998 13.998 8.29233 14.3362 7.53136C14.5327 7.08917 14.8502 6.67967 15.3399 6.39403C15.8166 6.11596 16.3797 6 17 6C17.5523 6 18 6.44772 18 7C18 7.55228 17.5523 8 17 8C16.6203 8 16.4334 8.07154 16.3476 8.12159C16.2748 8.16408 16.2173 8.22333 16.1638 8.34364C16.0183 8.67114 16 9.17959 16 10C16 10.0311 16 10.0629 16.0001 10.0953C16.0009 10.77 16.002 11.7077 15.6638 12.4686C15.4673 12.9108 15.1498 13.3203 14.6601 13.606Z" fill="currentColor"></path>
|
||||
<path d="M7 7C7 7.55228 6.55228 8 6 8C5.44772 8 5 7.55228 5 7C5 6.44772 5.44772 6 6 6C6.55228 6 7 6.44772 7 7Z" fill="currentColor"></path>
|
||||
<path d="M10 7C10 7.55228 9.55228 8 9 8C8.44772 8 8 7.55228 8 7C8 6.44772 8.44772 6 9 6C9.55228 6 10 6.44772 10 7Z" fill="currentColor"></path>
|
||||
<path d="M13 7C13 7.55228 12.5523 8 12 8C11.4477 8 11 7.55228 11 7C11 6.44772 11.4477 6 12 6C12.5523 6 13 6.44772 13 7Z" fill="currentColor"></path>
|
||||
</svg>`
|
||||
|
||||
/* Arrow down ("load more") */
|
||||
window["env"]["svg"]["arrow-down"] = `<svg class="icon"width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7071 11.2929C15.0976 11.6834 15.0976 12.3166 14.7071 12.7071L9.70711 17.7071C9.31658 18.0976 8.68342 18.0976 8.29289 17.7071L3.29289 12.7071C2.90237 12.3166 2.90237 11.6834 3.29289 11.2929C3.68342 10.9024 4.31658 10.9024 4.70711 11.2929L9 15.5858L13.2929 11.2929C13.6834 10.9024 14.3166 10.9024 14.7071 11.2929Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 18C9.55228 18 10 17.5523 10 17L10 1C10 0.447716 9.55228 -5.33895e-09 9 -1.19249e-08C8.44772 -1.85108e-08 8 0.447716 8 1L8 17C8 17.5523 8.44772 18 9 18Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Arrow down (filled triangle for toggles etc.) */
|
||||
window["env"]["svg"]["arrow-down-small-full"] = `<svg class="icon small" width="12" height="6" viewBox="0 0 12 6" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6 6L0 0H12L6 6Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Arrow right */
|
||||
window["env"]["svg"]["arrow-right"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.2929 3.29289C11.6834 2.90237 12.3166 2.90237 12.7071 3.29289L17.7071 8.29289C18.0976 8.68342 18.0976 9.31658 17.7071 9.70711L12.7071 14.7071C12.3166 15.0976 11.6834 15.0976 11.2929 14.7071C10.9024 14.3166 10.9024 13.6834 11.2929 13.2929L15.5858 9L11.2929 4.70711C10.9024 4.31658 10.9024 3.68342 11.2929 3.29289Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M18 9C18 8.44772 17.5523 8 17 8H1C0.447716 8 0 8.44772 0 9C0 9.55228 0.447716 10 1 10H17C17.5523 10 18 9.55228 18 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Calendar */
|
||||
window["env"]["svg"]["calendar"] = `<svg class="icon" *ngIf="icon === 'calendar'" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 4C0 2.89543 0.89543 2 2 2H16C17.1046 2 18 2.89543 18 4V16C18 17.1046 17.1046 18 16 18H2C0.89543 18 0 17.1046 0 16V4ZM16 4L2 4V16H16V4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 0C5.55228 0 6 0.447715 6 1V5C6 5.55228 5.55228 6 5 6C4.44772 6 4 5.55228 4 5V1C4 0.447715 4.44772 0 5 0Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 0C13.5523 0 14 0.447715 14 1V5C14 5.55228 13.5523 6 13 6C12.4477 6 12 5.55228 12 5V1C12 0.447715 12.4477 0 13 0Z" fill="currentColor"/>
|
||||
<path d="M6 8C6 8.55228 5.55228 9 5 9C4.44772 9 4 8.55228 4 8C4 7.44772 4.44772 7 5 7C5.55228 7 6 7.44772 6 8Z" fill="currentColor"/>
|
||||
<path d="M6 11C6 11.5523 5.55228 12 5 12C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10C5.55228 10 6 10.4477 6 11Z" fill="currentColor"/>
|
||||
<path d="M6 14C6 14.5523 5.55228 15 5 15C4.44772 15 4 14.5523 4 14C4 13.4477 4.44772 13 5 13C5.55228 13 6 13.4477 6 14Z" fill="currentColor"/>
|
||||
<path d="M10 8C10 8.55228 9.55228 9 9 9C8.44772 9 8 8.55228 8 8C8 7.44772 8.44772 7 9 7C9.55228 7 10 7.44772 10 8Z" fill="currentColor"/>
|
||||
<path d="M10 11C10 11.5523 9.55228 12 9 12C8.44772 12 8 11.5523 8 11C8 10.4477 8.44772 10 9 10C9.55228 10 10 10.4477 10 11Z" fill="currentColor"/>
|
||||
<path d="M10 14C10 14.5523 9.55228 15 9 15C8.44772 15 8 14.5523 8 14C8 13.4477 8.44772 13 9 13C9.55228 13 10 13.4477 10 14Z" fill="currentColor"/>
|
||||
<path d="M14 8C14 8.55228 13.5523 9 13 9C12.4477 9 12 8.55228 12 8C12 7.44772 12.4477 7 13 7C13.5523 7 14 7.44772 14 8Z" fill="currentColor"/>
|
||||
<path d="M14 11C14 11.5523 13.5523 12 13 12C12.4477 12 12 11.5523 12 11C12 10.4477 12.4477 10 13 10C13.5523 10 14 10.4477 14 11Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Car (Alerts > Detections, detection classification) */
|
||||
window["env"]["svg"]["car"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 10C0 8.34315 1.34315 7 3 7H15C16.6569 7 18 8.34315 18 10V13C18 14.6569 16.6569 16 15 16H3C1.34315 16 0 14.6569 0 13V10ZM3 9C2.44772 9 2 9.44772 2 10V13C2 13.5523 2.44772 14 3 14H15C15.5523 14 16 13.5523 16 13V10C16 9.44772 15.5523 9 15 9H3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.90175 2.5068C2.14284 1.06024 3.39441 0 4.86093 0H13.1391C14.6056 0 15.8572 1.06024 16.0983 2.5068L16.9864 7.8356C17.0347 8.12555 16.953 8.42208 16.763 8.64637C16.573 8.87067 16.294 9 16 9H2.00001C1.70606 9 1.42699 8.87067 1.23699 8.64637C1.04698 8.42208 0.965288 8.12555 1.01361 7.8356L1.90175 2.5068ZM4.86093 2C4.37209 2 3.9549 2.35341 3.87453 2.8356L3.18047 7H14.8195L14.1255 2.8356C14.0451 2.35341 13.6279 2 13.1391 2H4.86093Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 12C4.77614 12 5 11.7761 5 11.5C5 11.2239 4.77614 11 4.5 11C4.22386 11 4 11.2239 4 11.5C4 11.7761 4.22386 12 4.5 12ZM4.5 13C5.32843 13 6 12.3284 6 11.5C6 10.6716 5.32843 10 4.5 10C3.67157 10 3 10.6716 3 11.5C3 12.3284 3.67157 13 4.5 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12C13.7761 12 14 11.7761 14 11.5C14 11.2239 13.7761 11 13.5 11C13.2239 11 13 11.2239 13 11.5C13 11.7761 13.2239 12 13.5 12ZM13.5 13C14.3284 13 15 12.3284 15 11.5C15 10.6716 14.3284 10 13.5 10C12.6716 10 12 10.6716 12 11.5C12 12.3284 12.6716 13 13.5 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 14.1338C3.35291 14.0487 3.18214 14 3 14C2.44772 14 2 14.4477 2 15V17C2 17.5523 2.44772 18 3 18H4C4.55228 18 5 17.5523 5 17V15C5 14.4477 4.55228 14 4 14C3.81786 14 3.64709 14.0487 3.5 14.1338Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 14.1338C14.3529 14.0487 14.1821 14 14 14C13.4477 14 13 14.4477 13 15V17C13 17.5523 13.4477 18 14 18H15C15.5523 18 16 17.5523 16 17V15C16 14.4477 15.5523 14 15 14C14.8179 14 14.6471 14.0487 14.5 14.1338Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Camera */
|
||||
window["env"]["svg"]["camera"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.7071 9.70711C15.5196 9.89464 15.2652 10 15 10L3 10C2.44772 10 2 9.55228 2 9L2 6.81819C2 5.91846 2.18279 5.02831 2.53711 4.19884C2.89139 3.36945 3.40981 2.61787 4.06121 1.98621C4.71255 1.3546 5.48415 0.85516 6.33118 0.514938C7.17817 0.174736 8.08494 -2.61718e-07 9 -3.41715e-07C9.91505 -4.21712e-07 10.8218 0.174736 11.6688 0.514938C12.5159 0.855159 13.2874 1.3546 13.9388 1.98621C14.5902 2.61787 15.1086 3.36944 15.4629 4.19884C15.8172 5.02831 16 5.91846 16 6.81819L16 9C16 9.26522 15.8946 9.51957 15.7071 9.70711ZM14 8L14 6.81819C14 6.1898 13.8724 5.5668 13.6237 4.98448C13.3749 4.40209 13.0094 3.87088 12.5465 3.42201C12.0835 2.97307 11.5323 2.61539 10.9234 2.37083C10.3145 2.12625 9.66081 2 9 2C8.33919 2 7.68554 2.12625 7.07662 2.37083C6.46775 2.61539 5.91647 2.97307 5.45351 3.42201C4.99061 3.87088 4.62511 4.40209 4.37634 4.98448C4.1276 5.5668 4 6.1898 4 6.81819L4 8L14 8Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 9C2 8.44772 2.44772 8 3 8H15C15.5523 8 16 8.44772 16 9V12C16 12.5523 15.5523 13 15 13H3C2.44772 13 2 12.5523 2 12V9ZM4 10V11H14V10H4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 13C0 11.8954 0.895431 11 2 11H16C17.1046 11 18 11.8954 18 13V17C18 17.5523 17.5523 18 17 18H1C0.447715 18 0 17.5523 0 17V13ZM16 13H2V16H16V13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 6C9.55228 6 10 5.55228 10 5C10 4.44772 9.55228 4 9 4C8.44772 4 8 4.44772 8 5C8 5.55228 8.44772 6 9 6ZM9 7C10.1046 7 11 6.10457 11 5C11 3.89543 10.1046 3 9 3C7.89543 3 7 3.89543 7 5C7 6.10457 7.89543 7 9 7Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Change / Refresh (Subscription > Change plan) */
|
||||
window["env"]["svg"]["change"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 17C0.447715 17 0 16.5523 0 16V12C0 11.4477 0.447715 11 1 11H5C5.55228 11 6 11.4477 6 12C6 12.5523 5.55228 13 5 13H2V16C2 16.5523 1.55228 17 1 17Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17 1C17.5523 1 18 1.44772 18 2V6C18 6.55228 17.5523 7 17 7H13C12.4477 7 12 6.55228 12 6C12 5.44772 12.4477 5 13 5H16V2C16 1.44772 16.4477 1 17 1Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.16201 0.0391048C9.81613 -0.115589 11.4808 0.190586 12.9716 0.923718C14.4625 1.65685 15.7213 2.78833 16.6087 4.19283C16.9036 4.65973 16.7643 5.27737 16.2974 5.57236C15.8305 5.86736 15.2128 5.72799 14.9178 5.26109C14.2277 4.1687 13.2486 3.28866 12.0891 2.71845C10.9295 2.14823 9.63478 1.9101 8.34824 2.03042C7.06169 2.15073 5.83356 2.62481 4.79986 3.40013C3.76616 4.17546 2.96723 5.22178 2.49157 6.4232C2.28827 6.9367 1.70718 7.18817 1.19368 6.98486C0.680172 6.78156 0.428706 6.20047 0.63201 5.68696C1.24358 4.14228 2.27077 2.79702 3.59981 1.80017C4.92885 0.803323 6.50788 0.193799 8.16201 0.0391048Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.83799 17.9609C8.18387 18.1156 6.5192 17.8094 5.02837 17.0763C3.53754 16.3431 2.27872 15.2117 1.39135 13.8072C1.09636 13.3403 1.23572 12.7226 1.70262 12.4276C2.16952 12.1326 2.78716 12.272 3.08215 12.7389C3.77233 13.8313 4.75141 14.7113 5.91095 15.2816C7.07048 15.8518 8.36522 16.0899 9.65176 15.9696C10.9383 15.8493 12.1664 15.3752 13.2001 14.5999C14.2338 13.8245 15.0328 12.7782 15.5084 11.5768C15.7117 11.0633 16.2928 10.8118 16.8063 11.0151C17.3198 11.2184 17.5713 11.7995 17.368 12.313C16.7564 13.8577 15.7292 15.203 14.4002 16.1998C13.0711 17.1967 11.4921 17.8062 9.83799 17.9609Z" fill="currentColor"/>
|
||||
</svg>
|
||||
`
|
||||
/* Channels */
|
||||
window["env"]["svg"]["channels"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.5019 0.13509C17.8102 0.314012 18 0.64353 18 1V15C18 15.3565 17.8102 15.686 17.5019 15.8649C17.1936 16.0438 16.8134 16.0451 16.5039 15.8682L9.6837 11.971L0.889568 10.9939C0.383136 10.9376 0 10.5095 0 10V6C0 5.49045 0.383136 5.06239 0.889568 5.00612L9.6837 4.02899L16.5039 0.131757C16.8134 -0.045102 17.1936 -0.043832 17.5019 0.13509ZM16 2.72318L10.4961 5.86824C10.3775 5.93603 10.2462 5.97879 10.1104 5.99388L2 6.89504V9.10496L10.1104 10.0061C10.2462 10.0212 10.3775 10.064 10.4961 10.1318L16 13.2768V2.72318Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 5C4.55228 5 5 5.44772 5 6V10.3496L6.73857 16H7V11C7 10.4477 7.44772 10 8 10C8.55228 10 9 10.4477 9 11V17C9 17.5523 8.55228 18 8 18H6C5.561 18 5.17333 17.7137 5.04422 17.2941L3.04422 10.7941C3.01491 10.6988 3 10.5997 3 10.5V6C3 5.44772 3.44772 5 4 5Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Chart Bars */
|
||||
window["env"]["svg"]["chart-bars"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="10" width="18" height="2.00001" rx="1.00001" transform="rotate(90 10 0)" fill="currentColor"/>
|
||||
<rect x="5.99988" y="5" width="13" height="1.99999" rx="0.999995" transform="rotate(90 5.99988 5)" fill="currentColor"/>
|
||||
<rect x="14" y="7" width="11" height="2.00001" rx="1.00001" transform="rotate(90 14 7)" fill="currentColor"/>
|
||||
<rect x="18" y="4" width="14" height="1.99999" rx="0.999995" transform="rotate(90 18 4)" fill="currentColor"/>
|
||||
<rect x="2" y="13" width="5" height="1.99999" rx="0.999995" transform="rotate(90 2 13)" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Check (circle) */
|
||||
window["env"]["svg"]["check-circle-small"] = `<svg class="icon small" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM4.70711 5.29289C4.31658 4.90237 3.68342 4.90237 3.29289 5.29289C2.90237 5.68342 2.90237 6.31658 3.29289 6.70711L4.79289 8.20711C4.98043 8.39464 5.23478 8.5 5.5 8.5C5.76522 8.5 6.01957 8.39464 6.20711 8.20711L9.20711 5.20711C9.59763 4.81658 9.59763 4.18342 9.20711 3.79289C8.81658 3.40237 8.18342 3.40237 7.79289 3.79289L5.5 6.08579L4.70711 5.29289Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Cloud (Dashboard > Hub, Subscription > Vault) */
|
||||
window["env"]["svg"]["cloud"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.8843 5C5.81855 5 4.12306 6.61291 3.95576 8.66459L3.89801 9.37283L3.21984 9.55041C2.52063 9.7335 1.97107 10.4101 1.97107 11.25C1.97107 12.2457 2.73484 13 3.61364 13L3.62312 13L3.6288 12.9999L7.8673 13L7.8843 13L7.9013 13L7.90539 12.9999L13.2412 13L13.25 13C14.6126 13 15.7686 11.8353 15.7686 10.3333C15.7686 8.83132 14.6126 7.66664 13.25 7.66664C13.0174 7.66664 12.7936 7.69976 12.5818 7.7613L11.7891 7.99158L11.4258 7.24051C10.783 5.91143 9.4376 5 7.8843 5ZM2.07896 7.854C2.60645 5.08806 5.00462 3 7.8843 3C9.94489 3 11.7579 4.06955 12.8157 5.68827C12.9588 5.67396 13.1037 5.66664 13.25 5.66664C15.758 5.66664 17.7397 7.78521 17.7397 10.3333C17.7397 12.8814 15.758 15 13.25 15L13.2378 15H7.90543L7.8843 15L7.86321 15H3.62895L3.61364 15C1.58951 15 0 13.2918 0 11.25C0 9.76155 0.840048 8.45714 2.07896 7.854Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.54775 4.04634C5.73804 3.22094 7.1845 2.86521 8.61514 3.04603C10.0458 3.22685 11.362 3.93177 12.3164 5.02823C13.2707 6.1247 13.7974 7.53716 13.7974 9.00001C13.7974 9.5523 13.3562 10 12.8119 10C12.2676 10 11.8264 9.5523 11.8264 9.00001C11.8264 8.02478 11.4752 7.08314 10.839 6.35216C10.2028 5.62119 9.32526 5.15124 8.3715 5.03069C7.41774 4.91014 6.45343 5.1473 5.65991 5.69756C4.86638 6.24783 4.29832 7.07329 4.06253 8.01873C3.929 8.55414 3.393 8.87834 2.86534 8.74285C2.33767 8.60736 2.01816 8.06349 2.15169 7.52808C2.50537 6.10993 3.35747 4.87174 4.54775 4.04634Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Cog (Media > Detail > Post processing) */
|
||||
window["env"]["svg"]["cog"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.00001 0C8.54114 0 8.14115 0.312301 8.02987 0.757471L7.68858 2.12264C7.34855 2.18709 7.01721 2.27613 6.69651 2.38784L5.71886 1.37672C5.39989 1.04684 4.89735 0.976371 4.49995 1.20581C4.10256 1.43524 3.91231 1.90569 4.03852 2.34687L4.4259 3.70102C4.16698 3.92472 3.92462 4.16708 3.70093 4.426L2.34676 4.03861C1.90558 3.91241 1.43513 4.10265 1.20569 4.50005C0.976258 4.89744 1.04673 5.39999 1.37661 5.71895L2.38779 6.69666C2.2761 7.01732 2.18708 7.34859 2.12264 7.68856L0.757472 8.02985C0.312302 8.14114 0 8.54112 0 8.99999C0 9.45886 0.312301 9.85885 0.757471 9.97013L2.12264 10.3114C2.18709 10.6515 2.27614 10.9828 2.38787 11.3036L1.37672 12.2813C1.04684 12.6002 0.976371 13.1028 1.20581 13.5002C1.43524 13.8976 1.90569 14.0878 2.34687 13.9616L3.7011 13.5742C3.92476 13.8331 4.16706 14.0754 4.42593 14.299L4.03852 15.6533C3.91231 16.0944 4.10256 16.5649 4.49995 16.7943C4.89735 17.0238 5.39989 16.9533 5.71886 16.6234L6.69659 15.6122C7.01727 15.7239 7.34856 15.8129 7.68855 15.8774L8.02987 17.2427C8.14115 17.6878 8.54114 18.0001 9.00001 18.0001C9.45888 18.0001 9.85886 17.6878 9.97015 17.2427L10.3115 15.8773C10.6514 15.8129 10.9827 15.7239 11.3033 15.6122L12.281 16.6234C12.6 16.9533 13.1026 17.0237 13.5 16.7943C13.8973 16.5649 14.0876 16.0944 13.9614 15.6532L13.574 14.2991C13.8329 14.0754 14.0752 13.8331 14.2989 13.5742L15.6533 13.9616C16.0944 14.0878 16.5649 13.8976 16.7943 13.5002C17.0238 13.1028 16.9533 12.6002 16.6234 12.2813L15.6122 11.3035C15.7239 10.9828 15.8129 10.6515 15.8774 10.3114L17.2425 9.97013C17.6877 9.85885 18 9.45886 18 8.99999C18 8.54112 17.6877 8.14114 17.2425 8.02985L15.8774 7.68856C15.8129 7.34862 15.7239 7.01738 15.6122 6.69675L16.6234 5.71907C16.9533 5.40011 17.0237 4.89756 16.7943 4.50017C16.5649 4.10278 16.0944 3.91253 15.6532 4.03874L14.2992 4.4261C14.0754 4.16714 13.8331 3.92474 13.5741 3.70101L13.9615 2.34676C14.0877 1.90558 13.8975 1.43513 13.5001 1.20569C13.1027 0.976258 12.6001 1.04673 12.2812 1.37661L11.3034 2.38782C10.9827 2.27612 10.6514 2.18709 10.3114 2.12264L9.97015 0.757472C9.85886 0.312302 9.45888 0 9.00001 0ZM9 4C6.23858 4 4 6.23858 4 9C4 11.7614 6.23858 14 9 14C11.7614 14 14 11.7614 14 9C14 6.23858 11.7614 4 9 4Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Color palette (Media > Detail > Dominant colors) */
|
||||
window["env"]["svg"]["color-palette"] = `
|
||||
<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1C0 0.447715 0.447715 0 1 0H7C7.55229 0 8 0.447715 8 1V4.35659L10.6126 1.78711C11.004 1.40211 11.6326 1.40473 12.0209 1.79296L16.2635 6.0356C16.6512 6.42325 16.6544 7.05075 16.2708 7.44242L13.7659 10H17C17.2652 10 17.5196 10.1054 17.7071 10.2929C17.8946 10.4804 18 10.7348 18 11V17C18 17.5523 17.5523 18 17 18H4C1.79086 18 0 16.2091 0 14V1ZM11.8071 12L7.88946 16H16V12H11.8071ZM8 13.0288L14.1495 6.75002L11.3079 3.90843L8 7.1618V13.0288ZM6 14C6 15.1046 5.10457 16 4 16C2.89543 16 2 15.1046 2 14V2H6V14Z" fill="currentColor"/>
|
||||
<path d="M5 14C5 14.5523 4.55228 15 4 15C3.44772 15 3 14.5523 3 14C3 13.4477 3.44772 13 4 13C4.55228 13 5 13.4477 5 14Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 15C4.55228 15 5 14.5523 5 14C5 13.4477 4.55228 13 4 13C3.44772 13 3 13.4477 3 14C3 14.5523 3.44772 15 4 15Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 6H1V5H7V6Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 10H1V9H7V10Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Cyclist (Alerts > Detections, detection classification) */
|
||||
window["env"]["svg"]["cyclist"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 12C2.89543 12 2 12.8954 2 14C2 15.1046 2.89543 16 4 16C5.10457 16 6 15.1046 6 14C6 12.8954 5.10457 12 4 12ZM0 14C0 11.7909 1.79086 10 4 10C6.20914 10 8 11.7909 8 14C8 16.2091 6.20914 18 4 18C1.79086 18 0 16.2091 0 14Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 2C11.2239 2 11 2.22386 11 2.5C11 2.77614 11.2239 3 11.5 3C11.7761 3 12 2.77614 12 2.5C12 2.22386 11.7761 2 11.5 2ZM9 2.5C9 1.11929 10.1193 0 11.5 0C12.8807 0 14 1.11929 14 2.5C14 3.88071 12.8807 5 11.5 5C10.1193 5 9 3.88071 9 2.5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 12C12.8954 12 12 12.8954 12 14C12 15.1046 12.8954 16 14 16C15.1046 16 16 15.1046 16 14C16 12.8954 15.1046 12 14 12ZM10 14C10 11.7909 11.7909 10 14 10C16.2091 10 18 11.7909 18 14C18 16.2091 16.2091 18 14 18C11.7909 18 10 16.2091 10 14Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 8C16 8.55228 15.5523 9 15 9L12 9C11.7729 9 11.5526 8.92272 11.3753 8.78087L9.5 7.28062L8.49713 8.08292L10.7071 10.2929C11.0976 10.6834 11.0976 11.3166 10.7071 11.7071L7.70711 14.7071C7.31658 15.0976 6.68342 15.0976 6.29289 14.7071C5.90237 14.3166 5.90237 13.6834 6.29289 13.2929L8.58579 11L6.29289 8.70711C6.09176 8.50597 5.9858 8.22871 6.00153 7.9447C6.01726 7.66069 6.15319 7.39682 6.37531 7.21913L8.87531 5.21913C9.24052 4.92696 9.75948 4.92696 10.1247 5.21913L12.3508 7L15 7C15.5523 7 16 7.44771 16 8Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.27473 7.03849C7.80577 7.19021 8.11326 7.7437 7.96154 8.27473L6.96154 11.7747C6.80981 12.3058 6.25633 12.6133 5.72529 12.4615C5.19426 12.3098 4.88677 11.7563 5.03849 11.2253L6.03849 7.72529C6.19021 7.19426 6.7437 6.88677 7.27473 7.03849Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Credit card (Subscriptions > Billing) */
|
||||
window["env"]["svg"]["credit-card"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 7C0 6.44772 0.447715 6 1 6H17C17.5523 6 18 6.44772 18 7C18 7.55228 17.5523 8 17 8H1C0.447715 8 0 7.55228 0 7Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 11C11 10.4477 11.4477 10 12 10H14C14.5523 10 15 10.4477 15 11C15 11.5523 14.5523 12 14 12H12C11.4477 12 11 11.5523 11 11Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 5C0 3.89543 0.89543 3 2 3H16C17.1046 3 18 3.89543 18 5V13C18 14.1046 17.1046 15 16 15H2C0.89543 15 0 14.1046 0 13V5ZM16 5L2 5V13H16V5Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Cross (mobile menu close) */
|
||||
window["env"]["svg"]["cross"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.292893 0.292893C0.683417 -0.0976311 1.31658 -0.0976311 1.70711 0.292893L17.7071 16.2929C18.0976 16.6834 18.0976 17.3166 17.7071 17.7071C17.3166 18.0976 16.6834 18.0976 16.2929 17.7071L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683417 0.292893 0.292893Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.292893 17.7071C-0.0976311 17.3166 -0.0976312 16.6834 0.292893 16.2929L16.2929 0.292892C16.6834 -0.0976322 17.3166 -0.0976322 17.7071 0.292892C18.0976 0.683417 18.0976 1.31658 17.7071 1.7071L1.70711 17.7071C1.31658 18.0976 0.683418 18.0976 0.292893 17.7071Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Cross (circle) */
|
||||
window["env"]["svg"]["cross-circle-small"] = `<svg class="icon small" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 6C12 9.31371 9.31371 12 6 12C2.68629 12 0 9.31371 0 6C0 2.68629 2.68629 0 6 0C9.31371 0 12 2.68629 12 6ZM3.29289 3.29289C3.68342 2.90237 4.31658 2.90237 4.70711 3.29289L6 4.58579L7.29289 3.29289C7.68342 2.90237 8.31658 2.90237 8.70711 3.29289C9.09763 3.68342 9.09763 4.31658 8.70711 4.70711L7.41421 6L8.70711 7.29289C9.09763 7.68342 9.09763 8.31658 8.70711 8.70711C8.31658 9.09763 7.68342 9.09763 7.29289 8.70711L6 7.41421L4.70711 8.70711C4.31658 9.09763 3.68342 9.09763 3.29289 8.70711C2.90237 8.31658 2.90237 7.68342 3.29289 7.29289L4.58579 6L3.29289 4.70711C2.90237 4.31658 2.90237 3.68342 3.29289 3.29289Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Cross circle (cancel) */
|
||||
window["env"]["svg"]["cross-circle"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L12.7071 11.2929C13.0976 11.6834 13.0976 12.3166 12.7071 12.7071C12.3166 13.0976 11.6834 13.0976 11.2929 12.7071L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.29289 12.7071C4.90237 12.3166 4.90237 11.6834 5.29289 11.2929L11.2929 5.29289C11.6834 4.90237 12.3166 4.90237 12.7071 5.29289C13.0976 5.68342 13.0976 6.31658 12.7071 6.70711L6.70711 12.7071C6.31658 13.0976 5.68342 13.0976 5.29289 12.7071Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2C5.13401 2 2 5.13401 2 9C2 12.866 5.13401 16 9 16C12.866 16 16 12.866 16 9C16 5.13401 12.866 2 9 2ZM0 9C0 4.02944 4.02944 0 9 0C13.9706 0 18 4.02944 18 9C18 13.9706 13.9706 18 9 18C4.02944 18 0 13.9706 0 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Dashboard */
|
||||
window["env"]["svg"]["dashboard"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1C0 0.447715 0.447715 0 1 0H5C5.55228 0 6 0.447715 6 1V7C6 7.55228 5.55228 8 5 8H1C0.447715 8 0 7.55228 0 7V1ZM2 2V6H4V2H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 11C0 10.4477 0.447715 10 1 10H8C8.55228 10 9 10.4477 9 11V17C9 17.5523 8.55228 18 8 18H1C0.447715 18 0 17.5523 0 17V11ZM2 12V16H7V12H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 1C8 0.447715 8.44772 0 9 0H17C17.5523 0 18 0.447715 18 1V7C18 7.55228 17.5523 8 17 8H9C8.44772 8 8 7.55228 8 7V1ZM10 2V6H16V2H10Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 11C11 10.4477 11.4477 10 12 10H17C17.5523 10 18 10.4477 18 11V17C18 17.5523 17.5523 18 17 18H12C11.4477 18 11 17.5523 11 17V11ZM13 12V16H16V12H13Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Docs */
|
||||
window["env"]["svg"]["docs"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 4.60302V12.464C2.75731 12.2175 3.77322 12 5 12C6.22678 12 7.24269 12.2175 8 12.464V4.60302C7.88559 4.55183 7.75049 4.49606 7.59576 4.43979C6.9995 4.22297 6.11545 4 5 4C3.88455 4 3.0005 4.22297 2.40424 4.43979C2.24951 4.49606 2.11441 4.55183 2 4.60302ZM9 4L9.5547 3.16795C9.8329 3.35342 10 3.66565 10 4V14C10 14.3688 9.79702 14.7077 9.47186 14.8817C9.14856 15.0547 8.75666 15.0368 8.45057 14.8355L8.44925 14.8347C8.45014 14.8352 8.45012 14.8353 8.45057 14.8355C8.44881 14.8344 8.44705 14.8332 8.4453 14.8321L9 14C8.4453 14.8321 8.445 14.8319 8.4453 14.8321L8.44754 14.8335L8.44925 14.8347C8.44479 14.8319 8.43416 14.8252 8.41886 14.8161C8.38824 14.7979 8.3363 14.7681 8.264 14.7303C8.11924 14.6548 7.89395 14.5482 7.59576 14.4398C6.9995 14.223 6.11545 14 5 14C3.88455 14 3.0005 14.223 2.40424 14.4398C2.10605 14.5482 1.88076 14.6548 1.736 14.7303C1.6637 14.7681 1.61176 14.7979 1.58114 14.8161C1.56584 14.8252 1.55591 14.8314 1.55145 14.8343L1.55246 14.8335L1.55352 14.8328C1.55197 14.8339 1.55099 14.8345 1.54944 14.8355C1.24335 15.0368 0.851445 15.0547 0.528142 14.8817C0.202985 14.7077 0 14.3688 0 14V4C0 3.66565 0.167101 3.35342 0.4453 3.16795L1 4C0.4453 3.16795 0.444975 3.16817 0.4453 3.16795L0.446621 3.16707L0.448085 3.1661L0.45144 3.16388L0.459854 3.15839L0.483463 3.14328C0.5022 3.13145 0.52693 3.11616 0.557531 3.09793C0.618713 3.06148 0.703488 3.01319 0.810871 2.95717C1.02549 2.84519 1.33145 2.70177 1.72076 2.56021C2.4995 2.27703 3.61545 2 5 2C6.38455 2 7.5005 2.27703 8.27924 2.56021C8.66855 2.70177 8.97451 2.84519 9.18913 2.95717C9.29651 3.01319 9.38129 3.06148 9.44247 3.09793C9.47307 3.11616 9.4978 3.13145 9.51654 3.14328L9.54015 3.15839L9.54856 3.16388L9.55192 3.1661L9.55338 3.16707L9.5547 3.16795C9.55502 3.16817 9.5547 3.16795 9 4ZM1.54944 14.8355C1.54989 14.8352 1.55056 14.8348 1.55145 14.8343L1.54944 14.8355C1.54912 14.8357 1.54876 14.836 1.54944 14.8355Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 4.60302V12.464C10.7573 12.2175 11.7732 12 13 12C14.2268 12 15.2427 12.2175 16 12.464V4.60302C15.8856 4.55183 15.7505 4.49606 15.5958 4.43979C14.9995 4.22297 14.1155 4 13 4C11.8845 4 11.0005 4.22297 10.4042 4.43979C10.2495 4.49606 10.1144 4.55183 10 4.60302ZM17 4L17.5547 3.16795C17.8329 3.35342 18 3.66565 18 4V14C18 14.3688 17.797 14.7077 17.4719 14.8817C17.1486 15.0547 16.7567 15.0368 16.4506 14.8355L16.4492 14.8347C16.4501 14.8352 16.4501 14.8353 16.4506 14.8355C16.4488 14.8344 16.447 14.8332 16.4453 14.8321L17 14C16.4453 14.8321 16.445 14.8319 16.4453 14.8321L16.4475 14.8335L16.4492 14.8347C16.4448 14.8319 16.4342 14.8252 16.4189 14.8161C16.3882 14.7979 16.3363 14.7681 16.264 14.7303C16.1192 14.6548 15.894 14.5482 15.5958 14.4398C14.9995 14.223 14.1155 14 13 14C11.8845 14 11.0005 14.223 10.4042 14.4398C10.106 14.5482 9.88076 14.6548 9.736 14.7303C9.6637 14.7681 9.61176 14.7979 9.58114 14.8161C9.56584 14.8252 9.55591 14.8314 9.55145 14.8343L9.55246 14.8335L9.55352 14.8328C9.55197 14.8339 9.55099 14.8345 9.54944 14.8355C9.24335 15.0368 8.85145 15.0547 8.52814 14.8817C8.20298 14.7077 8 14.3688 8 14V4C8 3.66565 8.1671 3.35342 8.4453 3.16795L9 4C8.4453 3.16795 8.44498 3.16817 8.4453 3.16795L8.44662 3.16707L8.44809 3.1661L8.45144 3.16388L8.45985 3.15839L8.48346 3.14328C8.5022 3.13145 8.52693 3.11616 8.55753 3.09793C8.61871 3.06148 8.70349 3.01319 8.81087 2.95717C9.02549 2.84519 9.33145 2.70177 9.72076 2.56021C10.4995 2.27703 11.6155 2 13 2C14.3845 2 15.5005 2.27703 16.2792 2.56021C16.6686 2.70177 16.9745 2.84519 17.1891 2.95717C17.2965 3.01319 17.3813 3.06148 17.4425 3.09793C17.4731 3.11616 17.4978 3.13145 17.5165 3.14328L17.5401 3.15839L17.5486 3.16388L17.5519 3.1661L17.5534 3.16707L17.5547 3.16795C17.555 3.16817 17.5547 3.16795 17 4ZM9.54944 14.8355C9.54989 14.8352 9.55056 14.8348 9.55145 14.8343L9.54944 14.8355C9.54912 14.8357 9.54876 14.836 9.54944 14.8355Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.697 15.7171C3.30573 16.0976 2.68007 16.0943 2.29289 15.7071C1.90237 15.3166 1.90237 14.6834 2.29289 14.2929L2.99994 14.9999C2.29289 14.2929 2.29324 14.2925 2.2936 14.2922L2.29432 14.2915L2.29585 14.2899L2.29922 14.2866L2.30713 14.2789L2.32778 14.2592C2.34367 14.2443 2.36387 14.2259 2.38837 14.2045C2.43735 14.1616 2.5037 14.1066 2.5875 14.0438C2.75496 13.9182 2.99328 13.7603 3.30279 13.6056C3.92507 13.2944 4.82724 13 6 13C7.17276 13 8.07493 13.2944 8.69721 13.6056C9.00672 13.7603 9.24504 13.9182 9.4125 14.0438C9.4963 14.1066 9.56265 14.1616 9.61163 14.2045C9.63613 14.2259 9.65632 14.2443 9.67222 14.2592L9.69287 14.2789L9.70078 14.2866L9.70415 14.2899L9.70568 14.2915L9.7064 14.2922C9.70676 14.2925 9.70711 14.2929 9 15L9.70711 14.2929C10.0976 14.6834 10.0976 15.3166 9.70711 15.7071C9.31994 16.0943 8.69427 16.0976 8.30301 15.7171C8.303 15.7171 8.303 15.7171 8.303 15.7171C8.30148 15.7157 8.29869 15.7132 8.29462 15.7096C8.2811 15.6978 8.2537 15.6747 8.2125 15.6437C8.12996 15.5818 7.99328 15.4897 7.80279 15.3944C7.42507 15.2056 6.82724 15 6 15C5.17276 15 4.57493 15.2056 4.19721 15.3944C4.00672 15.4897 3.87004 15.5818 3.7875 15.6437C3.7463 15.6747 3.7189 15.6978 3.70538 15.7096C3.70131 15.7132 3.69852 15.7157 3.697 15.7171C3.697 15.7171 3.697 15.7171 3.697 15.7171ZM8.29434 15.7085C8.29421 15.7084 8.29409 15.7083 8.29397 15.7082L8.29423 15.7084L8.29434 15.7085ZM8.29357 15.7078C8.29357 15.7078 8.29357 15.7078 8.29357 15.7078L8.29365 15.7079C8.29362 15.7078 8.2936 15.7078 8.29357 15.7078Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.697 15.7171C9.30573 16.0976 8.68007 16.0943 8.29289 15.7071C7.90237 15.3166 7.90237 14.6834 8.29289 14.2929L8.99994 14.9999C8.29289 14.2929 8.29289 14.2929 8.29289 14.2929L8.29432 14.2915L8.29585 14.2899L8.29922 14.2866L8.30713 14.2789L8.32778 14.2592C8.34367 14.2443 8.36387 14.2259 8.38837 14.2045C8.43735 14.1616 8.5037 14.1066 8.5875 14.0438C8.75496 13.9182 8.99328 13.7603 9.30279 13.6056C9.92507 13.2944 10.8272 13 12 13C13.1728 13 14.0749 13.2944 14.6972 13.6056C15.0067 13.7603 15.245 13.9182 15.4125 14.0438C15.4963 14.1066 15.5627 14.1616 15.6116 14.2045C15.6361 14.2259 15.6563 14.2443 15.6722 14.2592L15.6929 14.2789L15.7008 14.2866L15.7041 14.2899L15.7057 14.2915L15.7064 14.2922C15.7064 14.2922 15.7071 14.2929 15 15L15.7064 14.2922C16.0969 14.6827 16.0976 15.3166 15.7071 15.7071C15.3199 16.0943 14.6943 16.0976 14.303 15.7171C14.3015 15.7157 14.2987 15.7132 14.2946 15.7096C14.2811 15.6978 14.2537 15.6747 14.2125 15.6437C14.13 15.5818 13.9933 15.4897 13.8028 15.3944C13.4251 15.2056 12.8272 15 12 15C11.1728 15 10.5749 15.2056 10.1972 15.3944C10.0067 15.4897 9.87004 15.5818 9.7875 15.6437C9.7463 15.6747 9.7189 15.6978 9.70538 15.7096C9.70131 15.7132 9.69852 15.7157 9.697 15.7171Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Download */
|
||||
window["env"]["svg"]["download"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">\n' +
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 13C1.55228 13 2 13.4477 2 14V16H16V14C16 13.4477 16.4477 13 17 13C17.5523 13 18 13.4477 18 14V17C18 17.5523 17.5523 18 17 18H1C0.447715 18 0 17.5523 0 17V14C0 13.4477 0.447715 13 1 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 0C9.55228 0 10 0.447715 10 1V12C10 12.5523 9.55228 13 9 13C8.44772 13 8 12.5523 8 12V1C8 0.447715 8.44772 0 9 0Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.29289 6.29289C3.68342 5.90237 4.31658 5.90237 4.70711 6.29289L9.70711 11.2929C10.0976 11.6834 10.0976 12.3166 9.70711 12.7071C9.31658 13.0976 8.68342 13.0976 8.29289 12.7071L3.29289 7.70711C2.90237 7.31658 2.90237 6.68342 3.29289 6.29289Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7071 6.29289C14.3166 5.90237 13.6834 5.90237 13.2929 6.29289L8.29289 11.2929C7.90237 11.6834 7.90237 12.3166 8.29289 12.7071C8.68342 13.0976 9.31658 13.0976 9.70711 12.7071L14.7071 7.70711C15.0976 7.31658 15.0976 6.68342 14.7071 6.29289Z" fill="currentColor"/>
|
||||
<rect x="-484.5" y="-610.5" width="1860" height="1045" stroke="currentColor" stroke-width="3"/>
|
||||
</svg>`
|
||||
|
||||
/* Enterprise (agent) */
|
||||
window["env"]["svg"]["enterprise"] = `<svg class="icon" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3.33333 4L5 0H7L8.66667 4H3.33333Z" fill="currentColor"/>
|
||||
<path d="M2.91667 5L1.66667 8H10.3333L9.08333 5H2.91667Z" fill="currentColor"/>
|
||||
<path d="M10.75 9H1.25L0 12H12L10.75 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Eye (Latest events) */
|
||||
window["env"]["svg"]["eye"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.29445 9.02998C2.81864 9.66746 3.56762 10.4847 4.49387 11.2145C5.77466 12.2236 7.31052 13 9 13C10.6895 13 12.2253 12.2236 13.5061 11.2145C14.4324 10.4847 15.1814 9.66746 15.7056 9.02998C15.1284 8.36327 14.376 7.53145 13.4378 6.78087C12.1769 5.77214 10.6847 5 9 5C7.31533 5 5.8231 5.77214 4.5622 6.78087C3.62398 7.53145 2.87162 8.36327 2.29445 9.02998ZM3.31281 5.21913C4.76023 4.06119 6.68467 3 9 3C11.3153 3 13.2398 4.06119 14.6872 5.21913C15.9277 6.21153 16.8946 7.34108 17.4915 8.03844C17.5884 8.15166 17.6756 8.25349 17.7526 8.3415C18.0637 8.69711 18.0835 9.22198 17.8 9.6C17.2791 10.2945 16.2185 11.6237 14.7439 12.7855C13.2747 13.9431 11.3105 15 9 15C6.68949 15 4.72534 13.9431 3.25613 12.7855C1.78156 11.6237 0.720858 10.2945 0.200002 9.6C-0.0835117 9.22198 -0.0637332 8.69711 0.247426 8.3415C0.324428 8.25349 0.411595 8.15166 0.508515 8.03843C1.10545 7.34107 2.07232 6.21152 3.31281 5.21913Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 8C8.44772 8 8 8.44772 8 9C8 9.55228 8.44772 10 9 10C9.55228 10 10 9.55228 10 9C10 8.44772 9.55228 8 9 8ZM6 9C6 7.34315 7.34315 6 9 6C10.6569 6 12 7.34315 12 9C12 10.6569 10.6569 12 9 12C7.34315 12 6 10.6569 6 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Eye-crossed (hide password) */
|
||||
window["env"]["svg"]["eye-crossed"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.0598 6.81888C10.5224 6.31124 9.79757 6 9 6C7.34315 6 6 7.34315 6 9C6 9.79757 6.31124 10.5224 6.81888 11.0598L11.0598 6.81888Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.49387 11.2145C3.56762 10.4847 2.81864 9.66746 2.29444 9.02998C2.87162 8.36327 3.62397 7.53145 4.5622 6.78087C5.8231 5.77214 7.31533 5 9 5C10.0993 5 11.1166 5.32876 12.0412 5.83748L13.502 4.37669C12.2439 3.59328 10.7312 3 9 3C6.68467 3 4.76023 4.06119 3.31281 5.21913C2.07232 6.21152 1.10544 7.34107 0.508514 8.03843L0.50851 8.03844C0.411592 8.15166 0.324426 8.25349 0.247425 8.3415C-0.0637343 8.69711 -0.0835128 9.22198 0.200001 9.6C0.720857 10.2945 1.78155 11.6237 3.25613 12.7855C3.58967 13.0483 3.94873 13.3059 4.33155 13.5471L5.78967 12.089C5.33413 11.8327 4.90111 11.5354 4.49387 11.2145ZM9.12268 12.9986L7.30997 14.8113C7.84938 14.9319 8.41353 15 9 15C11.3105 15 13.2747 13.9431 14.7439 12.7855C16.2184 11.6237 17.2791 10.2945 17.8 9.6C18.0835 9.22198 18.0637 8.69711 17.7526 8.3415C17.6756 8.25351 17.5884 8.1517 17.4915 8.03851L17.4915 8.03844C17.0986 7.57941 16.5454 6.93313 15.8594 6.26197L14.4455 7.6758C14.9329 8.1514 15.3521 8.62165 15.7056 9.02998C15.1814 9.66746 14.4324 10.4847 13.5061 11.2145C12.2564 12.1991 10.7638 12.9622 9.12268 12.9986Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.7071 0.292893C18.0976 0.683417 18.0976 1.31658 17.7071 1.70711L1.70711 17.7071C1.31658 18.0976 0.683417 18.0976 0.292893 17.7071C-0.0976311 17.3166 -0.0976311 16.6834 0.292893 16.2929L16.2929 0.292893C16.6834 -0.0976311 17.3166 -0.0976311 17.7071 0.292893Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Exclamation-circle (alerts & errors, duh) */
|
||||
window["env"]["svg"]["exclamation-circle"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 16C5.13401 16 2 12.866 2 9C2 5.13401 5.13401 2 9 2C12.866 2 16 5.13401 16 9C16 12.866 12.866 16 9 16ZM0 9C0 13.9706 4.02944 18 9 18C13.9706 18 18 13.9706 18 9C18 4.02944 13.9706 0 9 0C4.02944 0 0 4.02944 0 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 10C9.55228 10 10 9.55228 10 9V6C10 5.44772 9.55228 5 9 5C8.44772 5 8 5.44772 8 6V9C8 9.55228 8.44772 10 9 10Z" fill="currentColor"/>
|
||||
<path d="M10 12C10 11.4477 9.55228 11 9 11C8.44772 11 8 11.4477 8 12C8 12.5523 8.44772 13 9 13C9.55228 13 10 12.5523 10 12Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 11C9.55228 11 10 11.4477 10 12C10 12.5523 9.55228 13 9 13C8.44772 13 8 12.5523 8 12C8 11.4477 8.44772 11 9 11Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* File (Media > Detail > File info) */
|
||||
window["env"]["svg"]["feedback"] = ` <svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.29289 0.292893C6.48043 0.105357 6.73478 0 7 0H15C15.5523 0 16 0.447715 16 1V17C16 17.5523 15.5523 18 15 18H3C2.44772 18 2 17.5523 2 17V5C2 4.73478 2.10536 4.48043 2.29289 4.29289L6.29289 0.292893ZM7.41421 2L4 5.41421V16H14V2H7.41421Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 0C8.55228 0 9 0.447715 9 1V6C9 6.55228 8.55228 7 8 7H3C2.44772 7 2 6.55228 2 6C2 5.44772 2.44772 5 3 5H7V1C7 0.447715 7.44772 0 8 0Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Feedback */
|
||||
window["env"]["svg"]["feedback"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 3C2.44772 3 2 3.44772 2 4V11C2 11.5523 2.44772 12 3 12H6C6.55228 12 7 12.4477 7 13V14.5858L9.29289 12.2929C9.48043 12.1054 9.73478 12 10 12H15C15.5523 12 16 11.5523 16 11V4C16 3.44772 15.5523 3 15 3H3ZM0 4C0 2.34315 1.34315 1 3 1H15C16.6569 1 18 2.34315 18 4V11C18 12.6569 16.6569 14 15 14H10.4142L6.70711 17.7071C6.42111 17.9931 5.99099 18.0787 5.61732 17.9239C5.24364 17.7691 5 17.4045 5 17V14H3C1.34315 14 0 12.6569 0 11V4Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Film (Media > Detail > Recording) */
|
||||
window["env"]["svg"]["film"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 1C0.447715 1 0 1.44772 0 2V16C0 16.5523 0.447715 17 1 17H17C17.5523 17 18 16.5523 18 16V2C18 1.44772 17.5523 1 17 1H1ZM16 4V3H14V4H16ZM13 4H11V3H13V4ZM10 4H8V3H10V4ZM7 4H5V3H7V4ZM4 4H2V3H4V4ZM2 6V12H5V6H2ZM12 12H7V6H12V12ZM14 12H16V6H14V12ZM16 14H14V15H16V14ZM11 15V14H13V15H11ZM8 14H10V15H8V14ZM5 14H7V15H5V14ZM2 14H4V15H2V14Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Filter */
|
||||
window["env"]["svg"]["filter"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 3C6 2.44771 6.44772 2 7 2L17 2.00002C17.5523 2.00002 18 2.44773 18 3.00002C18 3.5523 17.5523 4.00002 17 4.00002L7 4C6.44771 4 6 3.55228 6 3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.00001 4L1.00001 4.00002C0.447724 4.00002 4.78491e-06 3.55231 8.74612e-08 3.00003C-4.60998e-06 2.44774 0.447707 2.00002 0.999992 2.00002L2.99999 2C3.55228 2 4 2.44771 4 2.99999C4 3.55228 3.55229 4 3.00001 4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.74228e-08 9C9.87451e-08 8.44772 0.447715 8 1 8L13 8C13.5523 8 14 8.44772 14 9C14 9.55228 13.5523 10 13 10L1 10C0.447715 10 1.35705e-07 9.55228 8.74228e-08 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.74228e-08 15C9.87451e-08 14.4477 0.447715 14 1 14L6 14C6.55228 14 7 14.4477 7 15C7 15.5523 6.55228 16 6 16L1 16C0.447715 16 1.35705e-07 15.5523 8.74228e-08 15Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 15C9 14.4477 9.44772 14 10 14L17 14C17.5523 14 18 14.4477 18 15C18 15.5523 17.5523 16 17 16L10 16C9.44772 16 9 15.5523 9 15Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 2C4.44772 2 4 2.44772 4 3C4 3.55228 4.44772 4 5 4C5.55229 4 6 3.55228 6 3C6 2.44771 5.55228 2 5 2ZM2 3C2 1.34315 3.34315 -1.17422e-07 5 -2.62268e-07C6.65685 -4.07115e-07 8 1.34315 8 3C8 4.65685 6.65685 6 5 6C3.34315 6 2 4.65685 2 3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 8C14.4477 8 14 8.44772 14 9C14 9.55228 14.4477 10 15 10C15.5523 10 16 9.55228 16 9C16 8.44771 15.5523 8 15 8ZM12 9C12 7.34315 13.3431 6 15 6C16.6569 6 18 7.34315 18 9C18 10.6569 16.6569 12 15 12C13.3431 12 12 10.6569 12 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 14C7.44772 14 7 14.4477 7 15C7 15.5523 7.44772 16 8 16C8.55229 16 9 15.5523 9 15C9 14.4477 8.55228 14 8 14ZM5 15C5 13.3431 6.34315 12 8 12C9.65685 12 11 13.3431 11 15C11 16.6569 9.65685 18 8 18C6.34315 18 5 16.6569 5 15Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Floor plan (Sites > detail > Floor plan) */
|
||||
window["env"]["svg"]["floor-plan"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1C0 0.447715 0.447715 0 1 0H7C7.55228 0 8 0.447715 8 1V3H17C17.5523 3 18 3.44772 18 4V17C18 17.5523 17.5523 18 17 18H5C4.44772 18 4 17.5523 4 17V12H1C0.447715 12 0 11.5523 0 11V1ZM2 2V10H5C5.55228 10 6 10.4477 6 11V16H16V5H7C6.44772 5 6 4.55228 6 4V2H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 7C7.55228 7 8 7.44772 8 8V11C8 11.5523 7.55228 12 7 12H5C4.44772 12 4 11.5523 4 11C4 10.4477 4.44772 10 5 10H6V8C6 7.44772 6.44772 7 7 7Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 3C11.5523 3 12 3.44772 12 4V10H13C13.5523 10 14 10.4477 14 11C14 11.5523 13.5523 12 13 12H11C10.4477 12 10 11.5523 10 11V4C10 3.44772 10.4477 3 11 3Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Github */
|
||||
window["env"]["svg"]["github"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.1886 16.968C16.0495 15.4609 18 12.4583 18 9C18 4.02944 13.9706 0 9 0C4.02944 0 0 4.02944 0 9C0 12.4446 1.93513 15.4372 4.77756 16.95L4.78165 16.9511C4.80365 16.9551 4.83021 16.9602 4.86078 16.9662C5.38688 17.0689 7.09762 17.4026 7.09762 15.7268C7.09762 15.6401 7.09614 15.487 7.09416 15.2822C7.09187 15.0449 7.08891 14.7381 7.0868 14.3848C4.85932 14.8615 4.38934 13.3267 4.38934 13.3267C4.02506 12.4154 3.50002 12.1726 3.50002 12.1726C2.77293 11.6828 3.55508 11.6925 3.55508 11.6925C4.35886 11.7487 4.78165 12.506 4.78165 12.506C5.49595 13.7118 6.65615 13.3635 7.11236 13.162C7.18512 12.6518 7.3916 12.3039 7.62069 12.1068C5.84254 11.9076 3.97295 11.2303 3.97295 8.20622C3.97295 7.34482 4.28512 6.64038 4.79738 6.08856C4.71479 5.88896 4.43998 5.08666 4.87554 3.99998C4.87554 3.99998 5.54806 3.78778 7.07795 4.80906C7.71655 4.63416 8.40186 4.54647 9.08273 4.54356C9.76263 4.54647 10.4479 4.63416 11.0875 4.80906C12.6164 3.78778 13.2875 3.99998 13.2875 3.99998C13.7245 5.08666 13.4497 5.88896 13.3671 6.08856C13.8803 6.64038 14.1906 7.34482 14.1906 8.20622C14.1906 11.2381 12.318 11.9052 10.534 12.1005C10.8216 12.3441 11.0777 12.8257 11.0777 13.5621C11.0777 14.2673 11.0733 14.8814 11.0704 15.2884C11.0689 15.49 11.0679 15.6411 11.0679 15.7268C11.0679 17.3972 12.6636 17.0753 13.1886 16.968Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Grid (layout switcher) */
|
||||
window["env"]["svg"]["grid"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1C0 0.447715 0.447715 0 1 0H7C7.55228 0 8 0.447715 8 1V7C8 7.55228 7.55228 8 7 8H1C0.447715 8 0 7.55228 0 7V1ZM2 2V6H6V2H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 11C0 10.4477 0.447715 10 1 10H7C7.55228 10 8 10.4477 8 11V17C8 17.5523 7.55228 18 7 18H1C0.447715 18 0 17.5523 0 17V11ZM2 12V16H6V12H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 1C10 0.447715 10.4477 0 11 0H17C17.5523 0 18 0.447715 18 1V7C18 7.55228 17.5523 8 17 8H11C10.4477 8 10 7.55228 10 7V1ZM12 2V6H16V2H12Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 11C10 10.4477 10.4477 10 11 10H17C17.5523 10 18 10.4477 18 11V17C18 17.5523 17.5523 18 17 18H11C10.4477 18 10 17.5523 10 17V11ZM12 12V16H16V12H12Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Grid 1x1(layout switcher) */
|
||||
window["env"]["svg"]["grid-1x1"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 18C17.1046 18 18 17.1046 18 16L18 2C18 0.89543 17.1046 -3.91405e-08 16 -8.74228e-08L2 -6.99382e-07C0.89543 1.15968e-06 7.47664e-07 0.895431 6.99382e-07 2L8.74228e-08 16C3.91405e-08 17.1046 0.89543 18 2 18L16 18ZM16 2L16 16L2 16L2 2L16 2Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Grid 3x3 (layout switcher) */
|
||||
window["env"]["svg"]["grid-3x3"] = `<svg class="icon" width="19" height="19" viewBox="0 0 19 19" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0.625C0 0.279822 0.279822 0 0.625 0H4.375C4.72018 0 5 0.279822 5 0.625V4.375C5 4.72018 4.72018 5 4.375 5H0.625C0.279822 5 0 4.72018 0 4.375V0.625ZM1.25 1.25V3.75H3.75V1.25H1.25Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 0.625C7 0.279822 7.27982 0 7.625 0H11.375C11.7202 0 12 0.279822 12 0.625V4.375C12 4.72018 11.7202 5 11.375 5H7.625C7.27982 5 7 4.72018 7 4.375V0.625ZM8.25 1.25V3.75H10.75V1.25H8.25Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 0.625C14 0.279822 14.2798 0 14.625 0H18.375C18.7202 0 19 0.279822 19 0.625V4.375C19 4.72018 18.7202 5 18.375 5H14.625C14.2798 5 14 4.72018 14 4.375V0.625ZM15.25 1.25V3.75H17.75V1.25H15.25Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 14.625C0 14.2798 0.279822 14 0.625 14H4.375C4.72018 14 5 14.2798 5 14.625V18.375C5 18.7202 4.72018 19 4.375 19H0.625C0.279822 19 0 18.7202 0 18.375V14.625ZM1.25 15.25V17.75H3.75V15.25H1.25Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 14.625C7 14.2798 7.27982 14 7.625 14H11.375C11.7202 14 12 14.2798 12 14.625V18.375C12 18.7202 11.7202 19 11.375 19H7.625C7.27982 19 7 18.7202 7 18.375V14.625ZM8.25 15.25V17.75H10.75V15.25H8.25Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 14.625C14 14.2798 14.2798 14 14.625 14H18.375C18.7202 14 19 14.2798 19 14.625V18.375C19 18.7202 18.7202 19 18.375 19H14.625C14.2798 19 14 18.7202 14 18.375V14.625ZM15.25 15.25V17.75H17.75V15.25H15.25Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 7.625C0 7.27982 0.279822 7 0.625 7H4.375C4.72018 7 5 7.27982 5 7.625V11.375C5 11.7202 4.72018 12 4.375 12H0.625C0.279822 12 0 11.7202 0 11.375V7.625ZM1.25 8.25V10.75H3.75V8.25H1.25Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 7.625C7 7.27982 7.27982 7 7.625 7H11.375C11.7202 7 12 7.27982 12 7.625V11.375C12 11.7202 11.7202 12 11.375 12H7.625C7.27982 12 7 11.7202 7 11.375V7.625ZM8.25 8.25V10.75H10.75V8.25H8.25Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 7.625C14 7.27982 14.2798 7 14.625 7H18.375C18.7202 7 19 7.27982 19 7.625V11.375C19 11.7202 18.7202 12 18.375 12H14.625C14.2798 12 14 11.7202 14 11.375V7.625ZM15.25 8.25V10.75H17.75V8.25H15.25Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Grid 4x4(layout switcher) */
|
||||
window["env"]["svg"]["grid-4x4"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0.375C0 0.167893 0.167893 0 0.375 0H2.625C2.83211 0 3 0.167893 3 0.375V2.625C3 2.83211 2.83211 3 2.625 3H0.375C0.167893 3 0 2.83211 0 2.625V0.375ZM0.75 0.75V2.25H2.25V0.75H0.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 0.375C5 0.167893 5.16789 0 5.375 0H7.625C7.83211 0 8 0.167893 8 0.375V2.625C8 2.83211 7.83211 3 7.625 3H5.375C5.16789 3 5 2.83211 5 2.625V0.375ZM5.75 0.75V2.25H7.25V0.75H5.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 0.375C10 0.167893 10.1679 0 10.375 0H12.625C12.8321 0 13 0.167893 13 0.375V2.625C13 2.83211 12.8321 3 12.625 3H10.375C10.1679 3 10 2.83211 10 2.625V0.375ZM10.75 0.75V2.25H12.25V0.75H10.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 0.375C15 0.167893 15.1679 0 15.375 0H17.625C17.8321 0 18 0.167893 18 0.375V2.625C18 2.83211 17.8321 3 17.625 3H15.375C15.1679 3 15 2.83211 15 2.625V0.375ZM15.75 0.75V2.25H17.25V0.75H15.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0.375C0 0.167893 0.167893 0 0.375 0H2.625C2.83211 0 3 0.167893 3 0.375V2.625C3 2.83211 2.83211 3 2.625 3H0.375C0.167893 3 0 2.83211 0 2.625V0.375ZM0.75 0.75V2.25H2.25V0.75H0.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 5.375C5 5.16789 5.16789 5 5.375 5H7.625C7.83211 5 8 5.16789 8 5.375V7.625C8 7.83211 7.83211 8 7.625 8H5.375C5.16789 8 5 7.83211 5 7.625V5.375ZM5.75 5.75V7.25H7.25V5.75H5.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 5.375C10 5.16789 10.1679 5 10.375 5H12.625C12.8321 5 13 5.16789 13 5.375V7.625C13 7.83211 12.8321 8 12.625 8H10.375C10.1679 8 10 7.83211 10 7.625V5.375ZM10.75 5.75V7.25H12.25V5.75H10.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 5.375C15 5.16789 15.1679 5 15.375 5H17.625C17.8321 5 18 5.16789 18 5.375V7.625C18 7.83211 17.8321 8 17.625 8H15.375C15.1679 8 15 7.83211 15 7.625V5.375ZM15.75 5.75V7.25H17.25V5.75H15.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 5.375C0 5.16789 0.167893 5 0.375 5H2.625C2.83211 5 3 5.16789 3 5.375V7.625C3 7.83211 2.83211 8 2.625 8H0.375C0.167893 8 0 7.83211 0 7.625V5.375ZM0.75 5.75V7.25H2.25V5.75H0.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 10.375C5 10.1679 5.16789 10 5.375 10H7.625C7.83211 10 8 10.1679 8 10.375V12.625C8 12.8321 7.83211 13 7.625 13H5.375C5.16789 13 5 12.8321 5 12.625V10.375ZM5.75 10.75V12.25H7.25V10.75H5.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 10.375C10 10.1679 10.1679 10 10.375 10H12.625C12.8321 10 13 10.1679 13 10.375V12.625C13 12.8321 12.8321 13 12.625 13H10.375C10.1679 13 10 12.8321 10 12.625V10.375ZM10.75 10.75V12.25H12.25V10.75H10.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 10.375C15 10.1679 15.1679 10 15.375 10H17.625C17.8321 10 18 10.1679 18 10.375V12.625C18 12.8321 17.8321 13 17.625 13H15.375C15.1679 13 15 12.8321 15 12.625V10.375ZM15.75 10.75V12.25H17.25V10.75H15.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 10.375C0 10.1679 0.167893 10 0.375 10H2.625C2.83211 10 3 10.1679 3 10.375V12.625C3 12.8321 2.83211 13 2.625 13H0.375C0.167893 13 0 12.8321 0 12.625V10.375ZM0.75 10.75V12.25H2.25V10.75H0.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 15.375C5 15.1679 5.16789 15 5.375 15H7.625C7.83211 15 8 15.1679 8 15.375V17.625C8 17.8321 7.83211 18 7.625 18H5.375C5.16789 18 5 17.8321 5 17.625V15.375ZM5.75 15.75V17.25H7.25V15.75H5.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 15.375C10 15.1679 10.1679 15 10.375 15H12.625C12.8321 15 13 15.1679 13 15.375V17.625C13 17.8321 12.8321 18 12.625 18H10.375C10.1679 18 10 17.8321 10 17.625V15.375ZM10.75 15.75V17.25H12.25V15.75H10.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 15.375C15 15.1679 15.1679 15 15.375 15H17.625C17.8321 15 18 15.1679 18 15.375V17.625C18 17.8321 17.8321 18 17.625 18H15.375C15.1679 18 15 17.8321 15 17.625V15.375ZM15.75 15.75V17.25H17.25V15.75H15.75Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 15.375C0 15.1679 0.167893 15 0.375 15H2.625C2.83211 15 3 15.1679 3 15.375V17.625C3 17.8321 2.83211 18 2.625 18H0.375C0.167893 18 0 17.8321 0 17.625V15.375ZM0.75 15.75V17.25H2.25V15.75H0.75Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Group */
|
||||
window["env"]["svg"]["group"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1C0 0.447715 0.447715 0 1 0H5C5.55228 0 6 0.447715 6 1V5C6 5.55228 5.55228 6 5 6H1C0.447715 6 0 5.55228 0 5V1ZM2 2V4H4V2H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 13C0 12.4477 0.447715 12 1 12H5C5.55228 12 6 12.4477 6 13V17C6 17.5523 5.55228 18 5 18H1C0.447715 18 0 17.5523 0 17V13ZM2 14V16H4V14H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 1C12 0.447715 12.4477 0 13 0H17C17.5523 0 18 0.447715 18 1V5C18 5.55228 17.5523 6 17 6H13C12.4477 6 12 5.55228 12 5V1ZM14 2V4H16V2H14Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 13C12 12.4477 12.4477 12 13 12H17C17.5523 12 18 12.4477 18 13V17C18 17.5523 17.5523 18 17 18H13C12.4477 18 12 17.5523 12 17V13ZM14 14V16H16V14H14Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 13V5H4V13H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 16L5 16L5 14L13 14L13 16Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 13V5H16V13H14Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 4L5 4L5 2L13 2L13 4Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Handbag (detection classification) */
|
||||
window["env"]["svg"]["handbag"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 4C1 3.44772 1.44772 3 2 3H16C16.5523 3 17 3.44772 17 4V17C17 17.5523 16.5523 18 16 18H2C1.44772 18 1 17.5523 1 17V4ZM3 5V16H15V5H3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.44781 0.328888C7.93778 0.112406 8.46542 0 9 0C9.53458 0 10.0622 0.112406 10.5522 0.328888C11.042 0.545285 11.4826 0.860547 11.8509 1.25332C12.219 1.64595 12.5078 2.10863 12.7038 2.61342C12.8998 3.11815 13 3.65709 13 4.2V5C13 5.55228 12.5523 6 12 6C11.4477 6 11 5.55228 11 5V4.2C11 3.90245 10.945 3.60916 10.8395 3.3374C10.734 3.06571 10.5808 2.82286 10.3918 2.6212C10.2029 2.41967 9.98209 2.26352 9.74391 2.15828C9.50593 2.05313 9.25335 2 9 2C8.74665 2 8.49407 2.05313 8.25609 2.15828C8.01791 2.26352 7.79715 2.41967 7.60822 2.6212C7.41916 2.82286 7.26605 3.06571 7.16054 3.3374C7.05501 3.60916 7 3.90245 7 4.2V5C7 5.55228 6.55228 6 6 6C5.44772 6 5 5.55228 5 5V4.2C5 3.65709 5.10018 3.11815 5.29618 2.61342C5.4922 2.10863 5.78105 1.64595 6.14914 1.25332C6.51736 0.860547 6.95803 0.545285 7.44781 0.328888Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* High upload */
|
||||
window["env"]["svg"]["high-upload"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2C5.13401 2 2 5.13401 2 9C2 12.866 5.13401 16 9 16C12.866 16 16 12.866 16 9C16 5.13401 12.866 2 9 2ZM0 9C0 4.02944 4.02944 0 9 0C13.9706 0 18 4.02944 18 9C18 13.9706 13.9706 18 9 18C4.02944 18 0 13.9706 0 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 12C7 10.8954 7.89543 10 9 10C10.1046 10 11 10.8954 11 12C11 13.1046 10.1046 14 9 14C7.89543 14 7 13.1046 7 12Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.65183 4.6365C6.61237 3.89945 7.78928 3.49994 9.00002 3.49994C10.2108 3.49994 11.3877 3.89945 12.3482 4.6365C13.3088 5.37355 13.9992 6.40696 14.3126 7.57644C14.3841 7.84317 14.2258 8.11734 13.9591 8.18881C13.6923 8.26028 13.4182 8.10199 13.3467 7.83526C13.0903 6.87841 12.5253 6.03289 11.7394 5.42985C10.9535 4.82681 9.99062 4.49994 9.00002 4.49994C8.00941 4.49994 7.04649 4.82681 6.26059 5.42985C5.47469 6.03289 4.90974 6.87841 4.65335 7.83526C4.58188 8.10199 4.30771 8.26028 4.04098 8.18881C3.77425 8.11734 3.61596 7.84317 3.68743 7.57644C4.00079 6.40696 4.69129 5.37355 5.65183 4.6365Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.4961 7.63168C11.9756 7.90569 12.1422 8.51655 11.8682 8.99607L9.86817 12.4961C9.59416 12.9756 8.98331 13.1422 8.50379 12.8682C8.02427 12.5942 7.85767 11.9833 8.13168 11.5038L10.1317 8.00379C10.4057 7.52427 11.0165 7.35767 11.4961 7.63168Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Info-circle (Media > Detail > Media info, "help" buttons) */
|
||||
window["env"]["svg"]["info-circle"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2C5.13401 2 2 5.13401 2 9C2 12.866 5.13401 16 9 16C12.866 16 16 12.866 16 9C16 5.13401 12.866 2 9 2ZM0 9C0 4.02944 4.02944 0 9 0C13.9706 0 18 4.02944 18 9C18 13.9706 13.9706 18 9 18C4.02944 18 0 13.9706 0 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 8C9.55228 8 10 8.44772 10 9V12C10 12.5523 9.55228 13 9 13C8.44772 13 8 12.5523 8 12V9C8 8.44772 8.44772 8 9 8Z" fill="currentColor"/>
|
||||
<path d="M10 6C10 6.55228 9.55228 7 9 7C8.44772 7 8 6.55228 8 6C8 5.44772 8.44772 5 9 5C9.55228 5 10 5.44772 10 6Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 7C9.55228 7 10 6.55228 10 6C10 5.44772 9.55228 5 9 5C8.44772 5 8 5.44772 8 6C8 6.55228 8.44772 7 9 7Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Key (Profile > Change password) */
|
||||
window["env"]["svg"]["key"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.809 0.0183059C15.6199 0.0549176 15.4393 0.146447 15.2929 0.292894L10.2929 5.29289L6.89574 8.69005C6.20201 8.25291 5.38054 8 4.5 8C2.01472 8 0 10.0147 0 12.5C0 14.9853 2.01472 17 4.5 17C6.98528 17 9 14.9853 9 12.5C9 11.6195 8.74709 10.798 8.30995 10.1043L11 7.41421L12.2929 8.70711C12.6834 9.09763 13.3166 9.09763 13.7071 8.70711C14.0976 8.31658 14.0976 7.68342 13.7071 7.29289L12.4142 6L13.5 4.91421L15.2929 6.70711C15.6834 7.09763 16.3166 7.09763 16.7071 6.70711C17.0976 6.31658 17.0976 5.68342 16.7071 5.29289L14.9142 3.5L16 2.41421L16.2929 2.70711C16.6834 3.09763 17.3166 3.09763 17.7071 2.70711C18.0976 2.31658 18.0976 1.68342 17.7071 1.29289L16.7071 0.292894C16.509 0.0948186 16.2485 -0.00279238 15.9889 6.07713e-05C15.9286 0.000723416 15.8684 0.00680511 15.809 0.0183059ZM2 12.5C2 11.1193 3.11929 10 4.5 10C5.88071 10 7 11.1193 7 12.5C7 13.8807 5.88071 15 4.5 15C3.11929 15 2 13.8807 2 12.5Z" fill="currentColor"/>
|
||||
</svg>
|
||||
`
|
||||
/* Latest events */
|
||||
window["env"]["svg"]["latest-events"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.29445 9.02998C2.81864 9.66746 3.56762 10.4847 4.49387 11.2145C5.77466 12.2236 7.31052 13 9 13C10.6895 13 12.2253 12.2236 13.5061 11.2145C14.4324 10.4847 15.1814 9.66746 15.7056 9.02998C15.1284 8.36327 14.376 7.53145 13.4378 6.78087C12.1769 5.77214 10.6847 5 9 5C7.31533 5 5.8231 5.77214 4.5622 6.78087C3.62398 7.53145 2.87162 8.36327 2.29445 9.02998ZM3.31281 5.21913C4.76023 4.06119 6.68467 3 9 3C11.3153 3 13.2398 4.06119 14.6872 5.21913C15.9277 6.21153 16.8946 7.34108 17.4915 8.03844C17.5884 8.15166 17.6756 8.25349 17.7526 8.3415C18.0637 8.69711 18.0835 9.22198 17.8 9.6C17.2791 10.2945 16.2185 11.6237 14.7439 12.7855C13.2747 13.9431 11.3105 15 9 15C6.68949 15 4.72534 13.9431 3.25613 12.7855C1.78156 11.6237 0.720858 10.2945 0.200002 9.6C-0.0835117 9.22198 -0.0637332 8.69711 0.247426 8.3415C0.324428 8.25349 0.411595 8.15166 0.508515 8.03843C1.10545 7.34107 2.07232 6.21152 3.31281 5.21913Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 8C8.44772 8 8 8.44772 8 9C8 9.55228 8.44772 10 9 10C9.55228 10 10 9.55228 10 9C10 8.44772 9.55228 8 9 8ZM6 9C6 7.34315 7.34315 6 9 6C10.6569 6 12 7.34315 12 9C12 10.6569 10.6569 12 9 12C7.34315 12 6 10.6569 6 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Lightbulb (suggest new: alert, channel) */
|
||||
window["env"]["svg"]["lightbulb"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2C6.23858 2 4 4.23858 4 7C4 8.93153 5.09498 10.609 6.70272 11.4424C7.26034 11.7315 7.75508 12.2005 8.10683 12.5339C8.19009 12.6129 8.26535 12.6842 8.33152 12.7438C8.50937 12.9038 8.74227 13 9 13C9.25773 13 9.49063 12.9038 9.66848 12.7438C9.73465 12.6842 9.80991 12.6129 9.89317 12.5339C10.2449 12.2005 10.7397 11.7315 11.2973 11.4424C12.905 10.609 14 8.93153 14 7C14 4.23858 11.7614 2 9 2ZM2 7C2 3.13401 5.13401 0 9 0C12.866 0 16 3.13401 16 7C16 9.70754 14.4626 12.0543 12.2177 13.218C11.9338 13.3652 11.7145 13.5712 11.399 13.8675C11.2836 13.9758 11.1554 14.0963 11.0064 14.2304C10.4756 14.7081 9.7707 15 9 15C8.2293 15 7.52442 14.7081 6.99362 14.2304C6.84463 14.0963 6.71638 13.9758 6.601 13.8675C6.28552 13.5712 6.06624 13.3652 5.78227 13.218C3.53744 12.0543 2 9.70754 2 7Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 7.5C5.72386 7.5 5.5 7.27614 5.5 7C5.5 6.54037 5.59053 6.08525 5.76642 5.66061C5.94231 5.23597 6.20012 4.85013 6.52513 4.52513C6.85013 4.20012 7.23597 3.94231 7.66061 3.76642C8.08525 3.59053 8.54037 3.5 9 3.5C9.27614 3.5 9.5 3.72386 9.5 4C9.5 4.27614 9.27614 4.5 9 4.5C8.6717 4.5 8.34661 4.56466 8.04329 4.6903C7.73998 4.81594 7.46438 5.00009 7.23223 5.23223C7.00009 5.46438 6.81594 5.73998 6.6903 6.04329C6.56466 6.34661 6.5 6.6717 6.5 7C6.5 7.27614 6.27614 7.5 6 7.5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 12C7.55228 12 8 12.4477 8 13H7H6C6 12.4477 6.44772 12 7 12ZM11 13L12 13V15C12 16.6569 10.6568 18 9 18C7.34315 18 6 16.6569 6 15V13H7H8V15C8 15.5523 8.44771 16 9 16C9.55229 16 10 15.5523 10 15V13.0002L11 13ZM11 13L12 13C12 12.4477 11.5523 12 11 12C10.4477 12 10 12.4479 10 13.0002L11 13Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Live stream */
|
||||
window["env"]["svg"]["live-stream"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 16C5.13401 16 2 12.866 2 9C2 5.13401 5.13401 2 9 2C12.866 2 16 5.13401 16 9C16 12.866 12.866 16 9 16ZM0 9C0 13.9706 4.02944 18 9 18C13.9706 18 18 13.9706 18 9C18 4.02944 13.9706 0 9 0C4.02944 0 0 4.02944 0 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 9C13 9.35126 12.8157 9.67677 12.5145 9.85749L7.5145 12.8575C7.20557 13.0429 6.82081 13.0477 6.5073 12.8702C6.19379 12.6927 6 12.3603 6 12L6 6C6 5.63973 6.19379 5.30731 6.5073 5.1298C6.82081 4.95229 7.20557 4.95715 7.5145 5.14251L12.5145 8.14251C12.8157 8.32323 13 8.64874 13 9ZM8 7.76619L8 10.2338L10.0563 9L8 7.76619Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* List */
|
||||
window["env"]["svg"]["list"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 3C6 2.44772 6.44772 2 7 2H17C17.5523 2 18 2.44772 18 3C18 3.55228 17.5523 4 17 4H7C6.44772 4 6 3.55228 6 3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 9C6 8.44772 6.44772 8 7 8H17C17.5523 8 18 8.44772 18 9C18 9.55228 17.5523 10 17 10H7C6.44772 10 6 9.55228 6 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 15C6 14.4477 6.44772 14 7 14H17C17.5523 14 18 14.4477 18 15C18 15.5523 17.5523 16 17 16H7C6.44772 16 6 15.5523 6 15Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 3C0 1.89543 0.89543 1 2 1C3.10457 1 4 1.89543 4 3C4 4.10457 3.10457 5 2 5C0.89543 5 0 4.10457 0 3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 9C0 7.89543 0.89543 7 2 7C3.10457 7 4 7.89543 4 9C4 10.1046 3.10457 11 2 11C0.89543 11 0 10.1046 0 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 15C0 13.8954 0.89543 13 2 13C3.10457 13 4 13.8954 4 15C4 16.1046 3.10457 17 2 17C0.89543 17 0 16.1046 0 15Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Loading (buttons) */
|
||||
window["env"]["svg"]["loading"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="loading">
|
||||
<animateTransform
|
||||
attributeName="transform"
|
||||
type="rotate"
|
||||
values="0 9 9; 60 9 9; 120 9 9; 180 9 9; 240 9 9; 300 9 9"
|
||||
dur="0.75s"
|
||||
repeatCount="indefinite"
|
||||
calcMode="discrete" />
|
||||
<circle cx="9" cy="3" r="3" fill="currentColor"/>
|
||||
<path d="M6.33155 6.00218C6.33155 7.38289 5.21226 8.50218 3.83155 8.50218C2.45084 8.50218 1.33155 7.38289 1.33155 6.00218C1.33155 4.62147 2.45084 3.50218 3.83155 3.50218C5.21226 3.50218 6.33155 4.62147 6.33155 6.00218Z" fill="currentColor"/>
|
||||
<path d="M5.79858 12.0042C5.79858 13.1087 4.90315 14.0042 3.79858 14.0042C2.69401 14.0042 1.79858 13.1087 1.79858 12.0042C1.79858 10.8996 2.69401 10.0042 3.79858 10.0042C4.90315 10.0042 5.79858 10.8996 5.79858 12.0042Z" fill="currentColor"/>
|
||||
<path d="M10.5 15C10.5 15.8284 9.82843 16.5 9 16.5C8.17157 16.5 7.5 15.8284 7.5 15C7.5 14.1716 8.17157 13.5 9 13.5C9.82843 13.5 10.5 14.1716 10.5 15Z" fill="currentColor"/>
|
||||
<path d="M15.1843 12.0012C15.1843 12.5535 14.7366 13.0012 14.1843 13.0012C13.632 13.0012 13.1843 12.5535 13.1843 12.0012C13.1843 11.4489 13.632 11.0012 14.1843 11.0012C14.7366 11.0012 15.1843 11.4489 15.1843 12.0012Z" fill="currentColor"/>
|
||||
</g>
|
||||
</svg>`
|
||||
|
||||
/* Lock-locked (2FA) */
|
||||
window["env"]["svg"]["lock-locked"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 8C2 7.44772 2.44772 7 3 7H15C15.5523 7 16 7.44772 16 8V17C16 17.5523 15.5523 18 15 18H3C2.44772 18 2 17.5523 2 17V8ZM4 9V16H14V9H4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 9C11.4477 9 11 8.55228 11 8L11 4C11 3.73736 10.9483 3.47728 10.8478 3.23463C10.7473 2.99198 10.5999 2.7715 10.4142 2.58579C10.2285 2.40007 10.008 2.25275 9.76537 2.15224C9.52272 2.05173 9.26264 2 9 2C8.73736 2 8.47728 2.05173 8.23463 2.15224C7.99198 2.25275 7.7715 2.40007 7.58579 2.58579C7.40007 2.7715 7.25275 2.99198 7.15224 3.23463C7.05173 3.47728 7 3.73736 7 4L7 8C7 8.55228 6.55228 9 6 9C5.44772 9 5 8.55228 5 8L5 4C5 3.47471 5.10346 2.95457 5.30448 2.46927C5.5055 1.98396 5.80014 1.54301 6.17157 1.17157C6.54301 0.800138 6.98396 0.5055 7.46927 0.304481C7.95457 0.103462 8.47471 -3.95613e-07 9 -3.49691e-07C9.52529 -3.03769e-07 10.0454 0.103463 10.5307 0.304481C11.016 0.505501 11.457 0.800138 11.8284 1.17157C12.1999 1.54301 12.4945 1.98396 12.6955 2.46927C12.8965 2.95457 13 3.47471 13 4L13 8C13 8.55228 12.5523 9 12 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 11C9.55228 11 10 11.4477 10 12V13C10 13.5523 9.55228 14 9 14C8.44772 14 8 13.5523 8 13V12C8 11.4477 8.44772 11 9 11Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Login (Profile > Login audit)
|
||||
* https://ui.kerberos.io/?path=/story/icons-icon--logout
|
||||
* */
|
||||
window["env"]["svg"]["logout"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 16L7 15C7 14.4477 6.55228 14 6 14C5.44771 14 5 14.4477 5 15L5 17C5 17.5523 5.44772 18 6 18L17 18C17.2652 18 17.5196 17.8946 17.7071 17.7071C17.8946 17.5196 18 17.2652 18 17L18 0.999999C18 0.447715 17.5523 -5.48678e-07 17 -5.24537e-07L6 -4.37114e-08C5.44772 -1.95703e-08 5 0.447716 5 1L5 3C5 3.55228 5.44772 4 6 4C6.55228 4 7 3.55229 7 3L7 2L16 2L16 16L7 16Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M-4.37114e-08 9C-6.78525e-08 8.44772 0.447715 8 1 8L13 8C13.5523 8 14 8.44771 14 9C14 9.55228 13.5523 10 13 10L1 10C0.447715 10 -1.95703e-08 9.55228 -4.37114e-08 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.29289 12.7071C8.90237 12.3166 8.90237 11.6834 9.29289 11.2929L12.2929 8.29289C12.6834 7.90237 13.3166 7.90237 13.7071 8.29289C14.0976 8.68342 14.0976 9.31658 13.7071 9.70711L10.7071 12.7071C10.3166 13.0976 9.68342 13.0976 9.29289 12.7071Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.29289 5.29289C8.90237 5.68342 8.90237 6.31658 9.29289 6.70711L12.2929 9.70711C12.6834 10.0976 13.3166 10.0976 13.7071 9.70711C14.0976 9.31658 14.0976 8.68342 13.7071 8.29289L10.7071 5.29289C10.3166 4.90237 9.68342 4.90237 9.29289 5.29289Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Logout (sidebar > logout)
|
||||
* https://ui.kerberos.io/?path=/story/icons-icon--logout
|
||||
* */
|
||||
window["env"]["svg"]["logout"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 16L9 14C9 13.4477 9.44772 13 10 13C10.5523 13 11 13.4477 11 14L11 17C11 17.5523 10.5523 18 10 18L1 18C0.734783 18 0.48043 17.8946 0.292893 17.7071C0.105357 17.5196 3.21184e-08 17.2652 4.37114e-08 17L7.43094e-07 1C7.67235e-07 0.447715 0.447716 -4.61255e-07 1 -4.37114e-07L10 -4.37114e-08C10.5523 -1.95703e-08 11 0.447716 11 1L11 4C11 4.55228 10.5523 5 10 5C9.44772 5 9 4.55229 9 4L9 2L2 2L2 16L9 16Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 9C4 8.44772 4.44772 8 5 8L17 8C17.5523 8 18 8.44771 18 9C18 9.55228 17.5523 10 17 10L5 10C4.44772 10 4 9.55228 4 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.2929 12.7071C12.9024 12.3166 12.9024 11.6834 13.2929 11.2929L16.2929 8.29289C16.6834 7.90237 17.3166 7.90237 17.7071 8.29289C18.0976 8.68342 18.0976 9.31658 17.7071 9.70711L14.7071 12.7071C14.3166 13.0976 13.6834 13.0976 13.2929 12.7071Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.2929 5.29289C12.9024 5.68342 12.9024 6.31658 13.2929 6.70711L16.2929 9.70711C16.6834 10.0976 17.3166 10.0976 17.7071 9.70711C18.0976 9.31658 18.0976 8.68342 17.7071 8.29289L14.7071 5.29289C14.3166 4.90237 13.6834 4.90237 13.2929 5.29289Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Media
|
||||
* https://ui.kerberos.io/?path=/story/icons-icon--media
|
||||
* */
|
||||
window["env"]["svg"]["media"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 2C0 1.44772 0.447715 1 1 1H17C17.5523 1 18 1.44772 18 2V16C18 16.5523 17.5523 17 17 17H1C0.447715 17 0 16.5523 0 16V2ZM2 3V15H16V3H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 5C0 4.44772 0.447715 4 1 4H17C17.5523 4 18 4.44772 18 5V13C18 13.5523 17.5523 14 17 14H1C0.447715 14 0 13.5523 0 13V5ZM2 6V12H16V6H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 13V5H7L7 13H5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 5V2H5V5H4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 16V13H5V16H4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 5V2H8V5H7Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 16V13H8V16H7Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 5V2H11V5H10Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 16V13H11V16H10Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 5V2H14V5H13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 16V13H14V16H13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 13V5H14V13H12Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Menu (mobile menu open) */
|
||||
window["env"]["svg"]["menu"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect y="3" width="18" height="2" rx="1" fill="currentColor"/>
|
||||
<rect y="8" width="18" height="2" rx="1" fill="currentColor"/>
|
||||
<rect y="13" width="14" height="2" rx="1" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Mic muted */
|
||||
window["env"]["svg"]["mic-muted"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.7071 1.70711C18.0976 1.31658 18.0976 0.683417 17.7071 0.292893C17.3166 -0.0976311 16.6834 -0.0976311 16.2929 0.292893L12 4.58579V3C12 1.34315 10.6569 0 9.00002 0C7.34316 0 6.00002 1.34315 6.00002 3V8C6.00002 8.72295 6.25574 9.38617 6.68166 9.90414L5.97212 10.6137C5.5804 10.1599 5.29334 9.62103 5.13638 9.03525C4.99343 8.50179 4.4451 8.1852 3.91163 8.32815C3.37817 8.47109 3.06158 9.01943 3.20452 9.55289C3.45277 10.4793 3.91796 11.3275 4.55537 12.0304L0.292908 16.2929C-0.0976158 16.6834 -0.0976158 17.3166 0.292908 17.7071C0.683433 18.0976 1.3166 18.0976 1.70712 17.7071L17.7071 1.70711ZM8.11666 8.46914L10 6.58579V3C10 2.44772 9.5523 2 9.00002 2C8.44773 2 8.00002 2.44772 8.00002 3V8C8.00002 8.16954 8.04221 8.32923 8.11666 8.46914ZM8.99479 18H7.00002C6.44773 18 6.00002 17.5523 6.00002 17C6.00002 16.4477 6.44773 16 7.00002 16H8.00002V14.1213L8.17796 13.9434L9.11482 13.0065L10.3594 11.7619C10.7436 11.6231 11.1067 11.4254 11.4351 11.1734C12.1337 10.6374 12.6359 9.88579 12.8638 9.03525C13.0067 8.50179 13.5551 8.1852 14.0885 8.32815C14.622 8.47109 14.9386 9.01943 14.7956 9.55289C14.4538 10.8287 13.7005 11.956 12.6526 12.7601C11.8711 13.3598 10.9582 13.7547 9.99659 13.9167C9.99886 13.9441 10 13.9719 10 14V16H11C11.5523 16 12 16.4477 12 17C12 17.5523 11.5523 18 11 18H9.00524L9.00002 18L8.99479 18Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Minus circle ("remove" button) */
|
||||
window["env"]["svg"]["minus-circle"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 16C5.13401 16 2 12.866 2 9C2 5.13401 5.13401 2 9 2C12.866 2 16 5.13401 16 9C16 12.866 12.866 16 9 16ZM0 9C0 13.9706 4.02944 18 9 18C13.9706 18 18 13.9706 18 9C18 4.02944 13.9706 0 9 0C4.02944 0 0 4.02944 0 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 9C13 8.44772 12.5523 8 12 8L6 8C5.44772 8 5 8.44772 5 9C5 9.55229 5.44772 10 6 10L12 10C12.5523 10 13 9.55228 13 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* News paper (navigation > watchlist) */
|
||||
window["env"]["svg"]["newspaper"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 1C3 0.447715 3.44772 0 4 0H17C17.5523 0 18 0.447715 18 1V14C18 16.2091 16.2091 18 14 18H4C1.79086 18 0 16.2091 0 14V11C0 10.4477 0.447715 10 1 10H3V1ZM3 12H2V14C2 14.7403 2.4022 15.3866 3 15.7324V12ZM5 16V2H16V14C16 15.1046 15.1046 16 14 16H5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 4.5C7 4.22386 7.22386 4 7.5 4H13.5C13.7761 4 14 4.22386 14 4.5C14 4.77614 13.7761 5 13.5 5H7.5C7.22386 5 7 4.77614 7 4.5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 6.5C7 6.22386 7.22386 6 7.5 6H12.5C12.7761 6 13 6.22386 13 6.5C13 6.77614 12.7761 7 12.5 7H7.5C7.22386 7 7 6.77614 7 6.5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 8.5C7 8.22386 7.22386 8 7.5 8H13.5C13.7761 8 14 8.22386 14 8.5C14 8.77614 13.7761 9 13.5 9H7.5C7.22386 9 7 8.77614 7 8.5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 10.5C7 10.2239 7.22386 10 7.5 10H11.5C11.7761 10 12 10.2239 12 10.5C12 10.7761 11.7761 11 11.5 11H7.5C7.22386 11 7 10.7761 7 10.5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 12.5C7 12.2239 7.22386 12 7.5 12H13.5C13.7761 12 14 12.2239 14 12.5C14 12.7761 13.7761 13 13.5 13H7.5C7.22386 13 7 12.7761 7 12.5Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Opensource (agent) */
|
||||
window["env"]["svg"]["opensource"] = `<svg class="icon" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.9888 9.33342C10.1801 10.5437 8.95898 11.4188 7.55293 11.7956L6.60717 8.26595C7.38922 8.05562 8.0409 7.44557 8.26558 6.60707C8.60085 5.35584 7.85831 4.06974 6.60708 3.73447C5.35585 3.39921 4.06975 4.14174 3.73448 5.39297C3.39922 6.64419 4.14174 7.93029 5.39296 8.26556L4.4471 11.7956C3.04105 11.4188 1.81991 10.5437 1.0112 9.33342C0.202481 8.12309 -0.138655 6.66004 0.0513455 5.21684C0.241346 3.77365 0.949525 2.44874 2.04394 1.48896C3.13836 0.529184 4.54437 -2.15956e-07 6.00002 0C7.45566 1.68642e-07 8.86168 0.529185 9.95609 1.48896C11.0505 2.44874 11.7587 3.77365 11.9487 5.21684C12.1387 6.66004 11.7975 8.12309 10.9888 9.33342Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Person (Alerts > Detections, detection classification) */
|
||||
window["env"]["svg"]["person"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.00024 2C7.00024 0.89543 7.89567 0 9.00024 0C10.1048 0 11.0002 0.89543 11.0002 2C11.0002 3.10457 10.1048 4 9.00024 4C7.89567 4 7.00024 3.10457 7.00024 2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.10579 5.55279C5.27518 5.214 5.62145 5 6.00022 5H12.0002C12.379 5 12.7253 5.214 12.8946 5.55279L14.8946 9.55279C15.1416 10.0468 14.9414 10.6474 14.4474 10.8944C13.9535 11.1414 13.3528 10.9412 13.1058 10.4472L11.3822 7H6.61825L4.89465 10.4472C4.64766 10.9412 4.04698 11.1414 3.55301 10.8944C3.05903 10.6474 2.8588 10.0468 3.10579 9.55279L5.10579 5.55279Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.00024 12C6.00024 11.4477 6.44796 11 7.00024 11H11.0002C11.5525 11 12.0002 11.4477 12.0002 12C12.0002 12.5523 11.5525 13 11.0002 13H7.00024C6.44796 13 6.00024 12.5523 6.00024 12Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.00024 6C6.00024 5.44772 6.44796 5 7.00024 5H11.0002C11.5525 5 12.0002 5.44772 12.0002 6V17C12.0002 17.5523 11.5525 18 11.0002 18C10.448 18 10.0002 17.5523 10.0002 17V7H8.00024V17C8.00024 17.5523 7.55253 18 7.00024 18C6.44796 18 6.00024 17.5523 6.00024 17V6Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Pedestrian */
|
||||
window["env"]["svg"]["pedestrian"] = `<svg class="icon" width="12" height="18" viewBox="0 0 12 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.00024 2C4.00024 0.89543 4.89567 0 6.00024 0C7.10481 0 8.00024 0.89543 8.00024 2C8.00024 3.10457 7.10481 4 6.00024 4C4.89567 4 4.00024 3.10457 4.00024 2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.10579 5.55279C2.27518 5.214 2.62145 5 3.00022 5H9.00022C9.37899 5 9.72525 5.214 9.89465 5.55279L11.8946 9.55279C12.1416 10.0468 11.9414 10.6474 11.4474 10.8944C10.9535 11.1414 10.3528 10.9412 10.1058 10.4472L8.38218 7H3.61825L1.89465 10.4472C1.64766 10.9412 1.04698 11.1414 0.553005 10.8944C0.059027 10.6474 -0.141197 10.0468 0.105792 9.55279L2.10579 5.55279Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.00024 12C3.00024 11.4477 3.44796 11 4.00024 11H8.00024C8.55253 11 9.00024 11.4477 9.00024 12C9.00024 12.5523 8.55253 13 8.00024 13H4.00024C3.44796 13 3.00024 12.5523 3.00024 12Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.00024 6C3.00024 5.44772 3.44796 5 4.00024 5H8.00024C8.55253 5 9.00024 5.44772 9.00024 6V17C9.00024 17.5523 8.55253 18 8.00024 18C7.44796 18 7.00024 17.5523 7.00024 17V7H5.00024V17C5.00024 17.5523 4.55253 18 4.00024 18C3.44796 18 3.00024 17.5523 3.00024 17V6Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Pen (Media > sequence with note) */
|
||||
window["env"]["svg"]["pen-small"] = `<svg class="icon small" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 9V12H3C3 12 3 11 2 10C1 9 0 9 0 9Z" fill="white"/>
|
||||
<path d="M10 5L4 11C4 11 4 10 3 9C2 8 1 8 1 8L7 2C7 2 8 2 9 3C10 4 10 5 10 5Z" fill="white"/>
|
||||
<path d="M12 3L11 4C11 4 11 3 10 2C9 1 8 1 8 1L9 0C9 0 10 0 11 1C12 2 12 3 12 3Z" fill="white"/>
|
||||
</svg>`
|
||||
|
||||
/* Pen ("edit" buttons) */
|
||||
window["env"]["svg"]["pen"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.2929 0.292893C13.6834 -0.0976311 14.3166 -0.0976311 14.7071 0.292893L17.7071 3.29289C18.0976 3.68342 18.0976 4.31658 17.7071 4.70711L4.70711 17.7071C4.51957 17.8946 4.26522 18 4 18H1C0.447715 18 0 17.5523 0 17V14C0 13.7348 0.105357 13.4804 0.292893 13.2929L13.2929 0.292893ZM2 14.4142V16H3.58579L15.5858 4L14 2.41421L2 14.4142Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.29285 16.7071L1.29285 13.7071L2.70706 12.2928L5.70706 15.2928L4.29285 16.7071Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.6464 2.64645C11.8417 2.45118 12.1583 2.45118 12.3536 2.64645L15.3536 5.64645C15.5488 5.84171 15.5488 6.15829 15.3536 6.35355C15.1583 6.54882 14.8417 6.54882 14.6464 6.35355L11.6464 3.35355C11.4512 3.15829 11.4512 2.84171 11.6464 2.64645Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Plus circle ("add" button) */
|
||||
window["env"]["svg"]["plus-circle"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 16C5.13401 16 2 12.866 2 9C2 5.13401 5.13401 2 9 2C12.866 2 16 5.13401 16 9C16 12.866 12.866 16 9 16ZM0 9C0 13.9706 4.02944 18 9 18C13.9706 18 18 13.9706 18 9C18 4.02944 13.9706 0 9 0C4.02944 0 0 4.02944 0 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 13C9.55228 13 10 12.5523 10 12V6C10 5.44772 9.55228 5 9 5C8.44772 5 8 5.44772 8 6V12C8 12.5523 8.44772 13 9 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 9C13 8.44772 12.5523 8 12 8L6 8C5.44772 8 5 8.44772 5 9C5 9.55229 5.44772 10 6 10L12 10C12.5523 10 13 9.55228 13 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Preferences */
|
||||
window["env"]["svg"]["preferences"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 3C6 2.44771 6.44772 2 7 2L17 2.00002C17.5523 2.00002 18 2.44773 18 3.00002C18 3.5523 17.5523 4.00002 17 4.00002L7 4C6.44771 4 6 3.55228 6 3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.00001 4L1.00001 4.00002C0.447724 4.00002 4.78491e-06 3.55231 8.74612e-08 3.00003C-4.60998e-06 2.44774 0.447707 2.00002 0.999992 2.00002L2.99999 2C3.55228 2 4 2.44771 4 2.99999C4 3.55228 3.55229 4 3.00001 4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.74228e-08 9C9.87451e-08 8.44772 0.447715 8 1 8L13 8C13.5523 8 14 8.44772 14 9C14 9.55228 13.5523 10 13 10L1 10C0.447715 10 1.35705e-07 9.55228 8.74228e-08 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.74228e-08 15C9.87451e-08 14.4477 0.447715 14 1 14L6 14C6.55228 14 7 14.4477 7 15C7 15.5523 6.55228 16 6 16L1 16C0.447715 16 1.35705e-07 15.5523 8.74228e-08 15Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 15C9 14.4477 9.44772 14 10 14L17 14C17.5523 14 18 14.4477 18 15C18 15.5523 17.5523 16 17 16L10 16C9.44772 16 9 15.5523 9 15Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 2C4.44772 2 4 2.44772 4 3C4 3.55228 4.44772 4 5 4C5.55229 4 6 3.55228 6 3C6 2.44771 5.55228 2 5 2ZM2 3C2 1.34315 3.34315 -1.17422e-07 5 -2.62268e-07C6.65685 -4.07115e-07 8 1.34315 8 3C8 4.65685 6.65685 6 5 6C3.34315 6 2 4.65685 2 3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 8C14.4477 8 14 8.44772 14 9C14 9.55228 14.4477 10 15 10C15.5523 10 16 9.55228 16 9C16 8.44771 15.5523 8 15 8ZM12 9C12 7.34315 13.3431 6 15 6C16.6569 6 18 7.34315 18 9C18 10.6569 16.6569 12 15 12C13.3431 12 12 10.6569 12 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 14C7.44772 14 7 14.4477 7 15C7 15.5523 7.44772 16 8 16C8.55229 16 9 15.5523 9 15C9 14.4477 8.55228 14 8 14ZM5 15C5 13.3431 6.34315 12 8 12C9.65685 12 11 13.3431 11 15C11 16.6569 9.65685 18 8 18C6.34315 18 5 16.6569 5 15Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* PTZ Down */
|
||||
window["env"]["svg"]["ptz-down"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.29289 7.29289C2.90237 7.68342 2.90237 8.31658 3.29289 8.70711L8.29289 13.7071C8.68342 14.0976 9.31658 14.0976 9.70711 13.7071L14.7071 8.70711C15.0976 8.31658 15.0976 7.68342 14.7071 7.29289C14.3166 6.90237 13.6834 6.90237 13.2929 7.29289L9 11.5858L4.70711 7.29289C4.31658 6.90237 3.68342 6.90237 3.29289 7.29289Z" fill="white"/>
|
||||
</svg>`
|
||||
/* PTZ Left */
|
||||
window["env"]["svg"]["ptz-left"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.7071 3.29289C11.3166 2.90237 10.6834 2.90237 10.2929 3.29289L5.29289 8.29289C4.90237 8.68342 4.90237 9.31658 5.29289 9.70711L10.2929 14.7071C10.6834 15.0976 11.3166 15.0976 11.7071 14.7071C12.0976 14.3166 12.0976 13.6834 11.7071 13.2929L7.41421 9L11.7071 4.70711C12.0976 4.31658 12.0976 3.68342 11.7071 3.29289Z" fill="white"/>
|
||||
</svg>`
|
||||
/* PTZ Right */
|
||||
window["env"]["svg"]["ptz-right"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.29289 3.29289C6.68342 2.90237 7.31658 2.90237 7.70711 3.29289L12.7071 8.29289C13.0976 8.68342 13.0976 9.31658 12.7071 9.70711L7.70711 14.7071C7.31658 15.0976 6.68342 15.0976 6.29289 14.7071C5.90237 14.3166 5.90237 13.6834 6.29289 13.2929L10.5858 9L6.29289 4.70711C5.90237 4.31658 5.90237 3.68342 6.29289 3.29289Z" fill="white"/>
|
||||
</svg>`
|
||||
/* PTZ Up */
|
||||
window["env"]["svg"]["ptz-up"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.29289 11.7071C2.90237 11.3166 2.90237 10.6834 3.29289 10.2929L8.29289 5.29289C8.68342 4.90237 9.31658 4.90237 9.70711 5.29289L14.7071 10.2929C15.0976 10.6834 15.0976 11.3166 14.7071 11.7071C14.3166 12.0976 13.6834 12.0976 13.2929 11.7071L9 7.41421L4.70711 11.7071C4.31658 12.0976 3.68342 12.0976 3.29289 11.7071Z" fill="white"/>
|
||||
</svg>`
|
||||
/* PTZ Center */
|
||||
window["env"]["svg"]["ptz-center"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 18C17.1046 18 18 17.1046 18 16L18 2C18 0.89543 17.1046 -3.91405e-08 16 -8.74228e-08L11 -3.0598e-07L6 -5.24537e-07L2 -6.99382e-07C0.89543 1.15968e-06 7.47664e-07 0.895431 6.99382e-07 2L8.74228e-08 16C3.91405e-08 17.1046 0.89543 18 2 18L16 18ZM16 2L16 16L2 16L2 2L6 2L16 2Z" fill="white"/>
|
||||
<path d="M18 6H0V12H18V6Z" fill="black"/>
|
||||
<path d="M6 0L6 18H12V0H6Z" fill="black"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 11.3333C7.71134 11.3333 6.66667 10.2887 6.66667 9C6.66667 7.71134 7.71134 6.66667 9 6.66667C10.2887 6.66667 11.3333 7.71134 11.3333 9C11.3333 10.2887 10.2887 11.3333 9 11.3333ZM6 9C6 10.6569 7.34315 12 9 12C10.6569 12 12 10.6569 12 9C12 7.34315 10.6569 6 9 6C7.34315 6 6 7.34315 6 9Z" fill="#A69D9D" stroke="white"/>
|
||||
</svg>`
|
||||
|
||||
/* Refresh */
|
||||
window["env"]["svg"]["refresh"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17 0C17.5523 0 18 0.447715 18 1V6C18 6.55228 17.5523 7 17 7H12C11.4477 7 11 6.55228 11 6C11 5.44772 11.4477 5 12 5H16V1C16 0.447715 16.4477 0 17 0Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.32589 0.406451C8.21762 -0.182214 10.2507 -0.130216 12.1099 0.55438C13.9691 1.23898 15.5504 2.51791 16.6086 4.19283C16.9036 4.65973 16.7643 5.27737 16.2973 5.57236C15.8304 5.86735 15.2128 5.72799 14.9178 5.26109C14.0948 3.95837 12.8648 2.96365 11.4188 2.43118C9.97279 1.89872 8.39148 1.85828 6.92013 2.31613C5.44879 2.77398 4.16963 3.70453 3.28105 4.96347C2.39247 6.22241 1.94413 7.73937 2.00557 9.27909C2.06701 10.8188 2.63478 12.2952 3.62084 13.4794C4.6069 14.6635 5.95614 15.4892 7.45929 15.8283C8.96244 16.1675 10.5355 16.0012 11.9345 15.3552C13.3335 14.7092 14.4803 13.6197 15.1969 12.2555C15.4538 11.7666 16.0583 11.5785 16.5473 11.8353C17.0362 12.0922 17.2243 12.6968 16.9674 13.1857C16.046 14.9396 14.5716 16.3404 12.7729 17.171C10.9742 18.0015 8.9517 18.2154 7.01908 17.7793C5.08646 17.3432 3.35173 16.2816 2.08394 14.7592C0.816148 13.2367 0.0861489 11.3385 0.00715934 9.35883C-0.0718302 7.37919 0.504605 5.42881 1.64706 3.81018C2.78952 2.19154 4.43415 0.995116 6.32589 0.406451Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Save */
|
||||
window["env"]["svg"]["save"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1C0 0.447715 0.447715 0 1 0H14C14.2652 0 14.5196 0.105357 14.7071 0.292893L17.7071 3.29289C17.8946 3.48043 18 3.73478 18 4V17C18 17.5523 17.5523 18 17 18H1C0.447715 18 0 17.5523 0 17V1ZM2 2V16H16V4.41421L13.5858 2H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 1C4 0.447715 4.44772 0 5 0H13C13.5523 0 14 0.447715 14 1V6C14 6.55228 13.5523 7 13 7H5C4.44772 7 4 6.55228 4 6V1ZM6 2V5H12V2H6Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 9C3 8.44772 3.44772 8 4 8H14C14.5523 8 15 8.44772 15 9V17C15 17.5523 14.5523 18 14 18H4C3.44772 18 3 17.5523 3 17V9ZM5 10V16H13V10H5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 5L10 2L11 2L11 5L10 5Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Search (filters, Media > Detail > Classifications)
|
||||
* https://ui.kerberos.io/?path=/story/icons-icon--search
|
||||
* */
|
||||
window["env"]["svg"]["search"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 15C9.39113 15 11.1188 14.3001 12.438 13.1451L13.0339 13.741C12.9448 14.0747 13.0312 14.4454 13.2929 14.7071L16.2929 17.7071C16.6834 18.0976 17.3166 18.0976 17.7071 17.7071C18.0976 17.3166 18.0976 16.6834 17.7071 16.2929L14.7071 13.2929C14.4454 13.0312 14.0747 12.9448 13.741 13.0339L13.1451 12.438C14.3001 11.1188 15 9.39113 15 7.5C15 3.35786 11.6421 0 7.5 0C3.35786 0 0 3.35786 0 7.5C0 11.6421 3.35786 15 7.5 15ZM7.5 13C10.5376 13 13 10.5376 13 7.5C13 4.46243 10.5376 2 7.5 2C4.46243 2 2 4.46243 2 7.5C2 10.5376 4.46243 13 7.5 13Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Shield check ("verify") */
|
||||
window["env"]["svg"]["shield-check"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.04289 7.79289C6.43342 7.40237 7.06658 7.40237 7.45711 7.79289L8.25 8.58579L10.5429 6.29289C10.9334 5.90237 11.5666 5.90237 11.9571 6.29289C12.3476 6.68342 12.3476 7.31658 11.9571 7.70711L8.95711 10.7071C8.56658 11.0976 7.93342 11.0976 7.54289 10.7071L6.04289 9.20711C5.65237 8.81658 5.65237 8.18342 6.04289 7.79289Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.00472 3.52709C3.27088 3.36453 3.67191 3.14423 4.20057 2.92164C5.28296 2.46589 6.90127 2 8.99999 2C11.0987 2 12.717 2.4659 13.7994 2.92164C14.328 3.14424 14.7291 3.36454 14.9952 3.5271C14.8966 8.99006 13.2689 12.1026 11.7474 13.8415C10.9549 14.7472 10.1704 15.3045 9.59759 15.6318C9.35519 15.7703 9.15076 15.8676 8.99999 15.9324C8.84921 15.8676 8.64478 15.7703 8.40238 15.6318C7.82957 15.3045 7.04502 14.7472 6.25257 13.8415C4.73103 12.1026 3.10338 8.99005 3.00472 3.52709ZM8.71831 16.0405L8.72056 16.0398C8.71871 16.0404 8.71842 16.0405 8.71831 16.0405ZM8.99999 17L9.2747 17.9615C9.09515 18.0128 8.90482 18.0128 8.72527 17.9615L8.99999 17ZM9.27893 16.0397L9.28166 16.0405C9.28235 16.0407 9.28142 16.0404 9.27893 16.0397ZM15.9999 3.00002L16.6246 2.21915C16.8619 2.40893 16.9999 2.69624 16.9999 3.00002C16.9999 9.20889 15.1827 12.9526 13.2525 15.1585C12.295 16.2529 11.3296 16.9456 10.5899 17.3683C10.2203 17.5795 9.90696 17.7233 9.67866 17.8165C9.56447 17.8631 9.47137 17.8971 9.40292 17.9206C9.36869 17.9323 9.3406 17.9414 9.31909 17.9482L9.29181 17.9565L9.28196 17.9594L9.27801 17.9606L9.27627 17.9611C9.27548 17.9613 9.2747 17.9615 8.99999 17C8.72527 17.9615 8.7245 17.9613 8.7237 17.9611L8.72197 17.9606L8.71801 17.9594L8.70817 17.9565L8.68088 17.9482C8.65938 17.9414 8.63128 17.9323 8.59705 17.9206C8.52861 17.8971 8.43551 17.8631 8.32131 17.8165C8.09302 17.7233 7.77969 17.5795 7.4101 17.3683C6.67041 16.9456 5.70496 16.2529 4.74742 15.1585C2.81723 12.9526 0.999998 9.20887 1 3C1 2.69621 1.13809 2.4089 1.37531 2.21913L2 3C1.37531 2.21913 1.37496 2.21941 1.37531 2.21913L1.37677 2.21796L1.37846 2.21662L1.38255 2.21338L1.39354 2.20477C1.40213 2.1981 1.41321 2.18958 1.42677 2.17935C1.4539 2.15887 1.49099 2.1315 1.53791 2.09824C1.63174 2.03173 1.76504 1.94157 1.93685 1.83584C2.28033 1.62447 2.77881 1.35021 3.42445 1.07836C4.71707 0.534108 6.59875 0 8.99999 0C11.4012 0 13.2829 0.534114 14.5755 1.07838C15.2212 1.35023 15.7196 1.62449 16.0631 1.83586C16.2349 1.94159 16.3682 2.03175 16.462 2.09826C16.509 2.13153 16.5461 2.1589 16.5732 2.17937C16.5867 2.18961 16.5978 2.19813 16.6064 2.2048L16.6174 2.21341L16.6215 2.21664L16.6246 2.21915C16.625 2.21944 16.6246 2.21915 15.9999 3.00002Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Sites */
|
||||
window["env"]["svg"]["sites"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.63977 3.6945C3.60315 1.63165 5.67557 0 8.99992 0C12.3243 0 14.3967 1.63165 15.36 3.69451C16.2775 5.659 16.1823 8.02363 15.2407 9.53003C14.2882 11.0538 12.7448 13.2982 11.4807 15.1363C10.8093 16.1127 10.2167 16.9744 9.8334 17.5526C9.64814 17.832 9.33519 18 8.99992 18C8.66466 18 8.3517 17.832 8.16645 17.5526C7.78308 16.9743 7.1904 16.1124 6.5189 15.136C5.2549 13.2979 3.71159 11.0537 2.75917 9.53006C1.81753 8.02364 1.72234 5.65899 2.63977 3.6945ZM4.4519 4.54079C3.77601 5.98807 3.92594 7.62341 4.4551 8.46995C5.39014 9.96579 6.86091 12.1036 8.1055 13.9128C8.42251 14.3735 8.72485 14.813 8.99992 15.2151C9.27494 14.8131 9.5772 14.3738 9.89414 13.9131C11.1388 12.1039 12.6097 9.96591 13.5447 8.46997C14.0739 7.62343 14.2238 5.98806 13.5479 4.54078C12.918 3.19188 11.5586 2 8.99992 2C6.44123 2 5.08186 3.19188 4.4519 4.54079Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.99988 9C10.1044 9 10.9999 8.10457 10.9999 7C10.9999 5.89543 10.1044 5 8.99988 5C7.89531 5 6.99988 5.89543 6.99988 7C6.99988 8.10457 7.89531 9 8.99988 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Site (Site > Detail > Floorplan: place Camera) */
|
||||
window["env"]["svg"]["site-small"] = `<svg class="icon small" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.40652 10.4831C8.45201 9.06926 9.70762 7.37129 10.494 6.20105C11.7196 4.37721 10.9025 0 6.00002 0C1.09749 0 0.28036 4.37721 1.50603 6.20105C2.2924 7.3712 3.54788 9.06901 4.59331 10.4828C4.94395 10.957 5.27096 11.3992 5.54872 11.7788C5.76485 12.0743 6.23518 12.0743 6.45132 11.7788C6.72902 11.3993 7.05596 10.9571 7.40652 10.4831ZM6 6C6.92048 6 7.5 5.35619 7.5 4.5C7.5 3.64381 6.92048 3 6 3C5.07953 3 4.5 3.64381 4.5 4.5C4.5 5.35619 5.07953 6 6 6Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Sorting */
|
||||
window["env"]["svg"]["sorting"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect y="2" width="18" height="2" rx="1" fill="currentColor"/>
|
||||
<rect x="4" y="6" width="14" height="2" rx="1" fill="currentColor"/>
|
||||
<rect x="8" y="10" width="9.99999" height="2" rx="1" fill="currentColor"/>
|
||||
<rect x="12" y="14" width="5.99999" height="2" rx="1" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Star (mark as fav) */
|
||||
window["env"]["svg"]["star"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.09306 1.95257C8.45148 1.18092 9.54852 1.18092 9.90694 1.95257L11.4346 5.24154C11.5808 5.55636 11.8799 5.77283 12.2246 5.81342L15.8347 6.23847C16.6842 6.33849 17.0241 7.3896 16.3941 7.96815L13.7346 10.4105C13.4772 10.6469 13.3619 11.0005 13.4304 11.3432L14.1379 14.8787C14.3051 15.7147 13.4166 16.3631 12.6714 15.9489L9.48585 14.1782C9.18372 14.0102 8.81628 14.0102 8.51415 14.1782L5.32856 15.9489C4.58338 16.3632 3.69487 15.7147 3.86215 14.8787L4.56955 11.3432C4.63813 11.0005 4.5228 10.6469 4.26538 10.4105L1.60586 7.96815C0.975867 7.3896 1.31584 6.33849 2.16532 6.23847L5.77538 5.81342C6.12012 5.77283 6.41916 5.55636 6.56539 5.24154L8.09306 1.95257Z" stroke="currentColor" stroke-width="2"/>
|
||||
</svg>`
|
||||
|
||||
/* Star (Media > favorite sequence) */
|
||||
window["env"]["svg"]["star-small"] = `<svg class="icon small" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.04663 0.586072C5.42709 -0.195358 6.57291 -0.195357 6.95338 0.586073L7.93936 2.61116C8.09498 2.93077 8.4096 3.14979 8.77149 3.19044L11.0655 3.44812C11.9666 3.54933 12.3242 4.63398 11.6509 5.22379L9.98943 6.6794C9.71264 6.92189 9.58845 7.28821 9.66282 7.64279L10.109 9.7703C10.2879 10.6232 9.35729 11.2895 8.57014 10.8721L6.50567 9.77732C6.19055 9.61022 5.80945 9.61022 5.49433 9.77732L3.42986 10.8721C2.64271 11.2895 1.71207 10.6232 1.89096 9.7703L2.33718 7.64278C2.41155 7.28821 2.28736 6.92189 2.01057 6.6794L0.349081 5.22379C-0.324149 4.63398 0.0334174 3.54933 0.93445 3.44812L3.22852 3.19044C3.5904 3.14979 3.90503 2.93077 4.06064 2.61116L5.04663 0.586072Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Subscription */
|
||||
window["env"]["svg"]["subscription"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17 2C17.5523 2 18 2.44772 18 3V6C18 6.55228 17.5523 7 17 7H14C13.4477 7 13 6.55228 13 6C13 5.44772 13.4477 5 14 5H16V3C16 2.44772 16.4477 2 17 2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 16C0.447715 16 0 15.5523 0 15V12C0 11.4477 0.447715 11 1 11H4C4.55228 11 5 11.4477 5 12C5 12.5523 4.55228 13 4 13H2V15C2 15.5523 1.55228 16 1 16Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.16201 0.0391048C9.81613 -0.115589 11.4808 0.190586 12.9716 0.923718C14.4625 1.65685 15.7213 2.78833 16.6087 4.19283C16.9036 4.65973 16.7643 5.27737 16.2974 5.57236C15.8305 5.86736 15.2128 5.72799 14.9178 5.26109C14.2277 4.1687 13.2486 3.28866 12.0891 2.71845C10.9295 2.14823 9.63478 1.9101 8.34824 2.03042C7.06169 2.15073 5.83356 2.62481 4.79986 3.40013C3.76616 4.17546 2.96723 5.22178 2.49157 6.4232C2.28827 6.9367 1.70718 7.18817 1.19368 6.98486C0.680172 6.78156 0.428706 6.20047 0.63201 5.68696C1.24358 4.14228 2.27077 2.79702 3.59981 1.80017C4.92885 0.803323 6.50788 0.193799 8.16201 0.0391048Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.83799 17.9609C8.18387 18.1156 6.5192 17.8094 5.02837 17.0763C3.53754 16.3431 2.27872 15.2117 1.39135 13.8072C1.09636 13.3403 1.23572 12.7226 1.70262 12.4276C2.16952 12.1326 2.78716 12.272 3.08215 12.7389C3.77233 13.8313 4.75141 14.7113 5.91095 15.2816C7.07048 15.8518 8.36522 16.0899 9.65176 15.9696C10.9383 15.8493 12.1664 15.3752 13.2001 14.5999C14.2338 13.8245 15.0328 12.7782 15.5084 11.5768C15.7117 11.0633 16.2928 10.8118 16.8063 11.0151C17.3198 11.2184 17.5713 11.7995 17.368 12.313C16.7564 13.8577 15.7292 15.203 14.4002 16.1998C13.0711 17.1967 11.4921 17.8062 9.83799 17.9609Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.9453 5.54295C6.58555 5.11611 7.47538 5 8.5 5H11C11.5523 5 12 5.44772 12 6C12 6.55228 11.5523 7 11 7H8.5C7.52462 7 7.16445 7.13389 7.0547 7.20705C7.03426 7.22067 7.03361 7.22365 7.03297 7.22658C7.03285 7.22715 7.03272 7.22772 7.03245 7.22837C7.02311 7.2508 7 7.32539 7 7.5C7 7.65149 7.01759 7.7156 7.02407 7.734C7.02962 7.73847 7.04039 7.74633 7.05864 7.75676C7.24508 7.8633 7.75279 8 9 8C10.2528 8 11.2451 8.1133 11.9336 8.50676C12.3184 8.72663 12.6117 9.03408 12.7919 9.4271C12.9615 9.79718 13 10.1769 13 10.5C13 10.8231 12.9615 11.2028 12.7919 11.5729C12.6117 11.9659 12.3184 12.2734 11.9336 12.4932C11.2451 12.8867 10.2528 13 9 13H7C6.44772 13 6 12.5523 6 12C6 11.4477 6.44772 11 7 11H9C10.2472 11 10.7549 10.8633 10.9414 10.7568C10.9596 10.7463 10.9704 10.7385 10.9759 10.734C10.9824 10.7156 11 10.6515 11 10.5C11 10.3485 10.9824 10.2844 10.9759 10.266C10.9704 10.2615 10.9596 10.2537 10.9414 10.2432C10.7549 10.1367 10.2472 10 9 10C7.74721 10 6.75492 9.8867 6.06636 9.49324C5.68159 9.27337 5.38825 8.96592 5.20812 8.5729C5.0385 8.20282 5 7.82305 5 7.5C5 6.82469 5.18169 6.05202 5.9453 5.54295Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 4C9.55228 4 10 4.44772 10 5V13C10 13.5523 9.55228 14 9 14C8.44772 14 8 13.5523 8 13V5C8 4.44772 8.44772 4 9 4Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Tag (Media > tagged sequence) */
|
||||
window["env"]["svg"]["tag-small"] = `<svg class="icon small" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1.03575V3.71398C0 3.98868 0.109124 4.25213 0.303365 4.44637L7.55363 11.6966C7.95811 12.1011 8.61392 12.1011 9.0184 11.6966L11.6966 9.0184C12.1011 8.61391 12.1011 7.95811 11.6966 7.55363L4.44637 0.303364C4.25213 0.109123 3.98868 0 3.71398 0H1.03575C0.463722 0 0 0.463722 0 1.03575ZM2.0715 3.10726C2.64353 3.10726 3.10726 2.64353 3.10726 2.0715C3.10726 1.49947 2.64353 1.03575 2.0715 1.03575C1.49947 1.03575 1.03575 1.49947 1.03575 2.0715C1.03575 2.64353 1.49947 3.10726 2.0715 3.10726Z" fill="white"/>
|
||||
</svg>`
|
||||
|
||||
/* Tasks */
|
||||
window["env"]["svg"]["tasks"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.25671 9.83104C4.62617 9.42053 5.25846 9.38725 5.66897 9.75671L6.66668 10.6546L9.33104 8.25671C9.74155 7.88725 10.3738 7.92053 10.7433 8.33103C11.1128 8.74154 11.0795 9.37384 10.669 9.74329L7.33564 12.7433C6.95533 13.0856 6.37802 13.0856 5.99771 12.7433L4.33104 11.2433C3.92053 10.8738 3.88726 10.2415 4.25671 9.83104Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 18C14.1046 18 15 17.1046 15 16L15 5C15 3.89543 14.1046 3 13 3L2 3C0.89543 3 -3.37144e-07 3.89543 -3.85426e-07 5L-8.66252e-07 16C-9.14534e-07 17.1046 0.89543 18 2 18L13 18ZM13 5L13 16L2 16L2 5L13 5Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17 14C17.5523 14 18 13.5523 18 13L18 2C18 0.895431 17.1046 -3.91405e-08 16 -8.74228e-08L5 3.85426e-07C4.44771 3.61285e-07 4 0.447716 4 1C4 1.55229 4.44772 2 5 2L16 2L16 13C16 13.5523 16.4477 14 17 14Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Task cross (reject) */
|
||||
window["env"]["svg"]["task-cross"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7071 12.7071C13.0976 12.3166 13.0976 11.6834 12.7071 11.2929L6.70719 5.29295C6.31667 4.90243 5.6835 4.90243 5.29298 5.29295C4.90246 5.68348 4.90246 6.31664 5.29298 6.70716L11.2929 12.7071C11.6834 13.0976 12.3166 13.0976 12.7071 12.7071Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7071 5.29289C12.3166 4.90237 11.6834 4.90237 11.2929 5.29289L5.29295 11.2928C4.90243 11.6833 4.90243 12.3165 5.29295 12.707C5.68348 13.0975 6.31664 13.0975 6.70717 12.707L12.7071 6.70711C13.0976 6.31658 13.0976 5.68342 12.7071 5.29289Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 18C17.1046 18 18 17.1046 18 16L18 2C18 0.89543 17.1046 -3.91405e-08 16 -8.74228e-08L2 -6.99382e-07C0.89543 1.15968e-06 7.47664e-07 0.895431 6.99382e-07 2L8.74228e-08 16C3.91405e-08 17.1046 0.89543 18 2 18L16 18ZM16 2L16 16L2 16L2 2L16 2Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Task check (done) */
|
||||
window["env"]["svg"]["task-check"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.29289 8.29289C5.68342 7.90237 6.31658 7.90237 6.70711 8.29289L8 9.58579L11.2929 6.29289C11.6834 5.90237 12.3166 5.90237 12.7071 6.29289C13.0976 6.68342 13.0976 7.31658 12.7071 7.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071L5.29289 9.70711C4.90237 9.31658 4.90237 8.68342 5.29289 8.29289Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 18C17.1046 18 18 17.1046 18 16L18 2C18 0.89543 17.1046 -3.91405e-08 16 -8.74228e-08L2 -6.99382e-07C0.89543 1.15968e-06 7.47664e-07 0.895431 6.99382e-07 2L8.74228e-08 16C3.91405e-08 17.1046 0.89543 18 2 18L16 18ZM16 2L16 16L2 16L2 2L16 2Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Trash */
|
||||
window["env"]["svg"]["trash"] = `<svg class="icon"width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 17V6H5V16H13V6H15V17C15 17.5523 14.5523 18 14 18H4C3.44772 18 3 17.5523 3 17Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 3C2 2.44772 2.44772 2 3 2H15C15.5523 2 16 2.44772 16 3C16 3.55228 15.5523 4 15 4H3C2.44772 4 2 3.55228 2 3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 1C7 0.447715 7.44772 0 8 0H10C10.5523 0 11 0.447715 11 1V3H7V1Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Upload (Forward buttons) */
|
||||
window["env"]["svg"]["upload"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 13C1.55228 13 2 13.4477 2 14V16H16V14C16 13.4477 16.4477 13 17 13C17.5523 13 18 13.4477 18 14V17C18 17.5523 17.5523 18 17 18H1C0.447715 18 0 17.5523 0 17V14C0 13.4477 0.447715 13 1 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 13C9.55228 13 10 12.5523 10 12V1C10 0.447715 9.55228 0 9 0C8.44772 0 8 0.447715 8 1V12C8 12.5523 8.44772 13 9 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.29289 6.70711C3.68342 7.09763 4.31658 7.09763 4.70711 6.70711L9.70711 1.70711C10.0976 1.31658 10.0976 0.683418 9.70711 0.292893C9.31658 -0.097631 8.68342 -0.097631 8.29289 0.292893L3.29289 5.29289C2.90237 5.68342 2.90237 6.31658 3.29289 6.70711Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7071 6.70711C14.3166 7.09763 13.6834 7.09763 13.2929 6.70711L8.29289 1.70711C7.90237 1.31658 7.90237 0.683418 8.29289 0.292893C8.68342 -0.097631 9.31658 -0.097631 9.70711 0.292893L14.7071 5.29289C15.0976 5.68342 15.0976 6.31658 14.7071 6.70711Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Video off / mute (Cameras > Detail) */
|
||||
window["env"]["svg"]["video-off"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.7071 1.70711C18.0976 1.31658 18.0976 0.683417 17.7071 0.292893C17.3166 -0.0976311 16.6834 -0.0976311 16.2929 0.292893L12.4691 4.11665C12.3292 4.04219 12.1695 4 12 4H1C0.447715 4 1.49012e-08 4.44772 1.49012e-08 5V13C1.49012e-08 13.5523 0.447715 14 1 14H2.58579L0.292893 16.2929C-0.0976311 16.6834 -0.0976311 17.3166 0.292893 17.7071C0.683417 18.0976 1.31658 18.0976 1.70711 17.7071L17.7071 1.70711ZM4.58579 12L10.5858 6H2V12H4.58579Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1213 12L11 11.1213L17.1147 5.00659C17.2456 5.02169 17.3742 5.06273 17.4927 5.1298C17.8062 5.3073 18 5.63973 18 6V12C18 12.3603 17.8062 12.6927 17.4927 12.8702C17.1792 13.0477 16.7944 13.0428 16.4855 12.8575L13 10.7662V13C13 13.5523 12.5523 14 12 14H8.12132L10.1213 12ZM16 10.2338L13.9436 9L16 7.76619V10.2338Z" fill="currentColor"/>
|
||||
<rect x="-448.5" y="-610.5" width="1860" height="1045" stroke="currentColor" stroke-width="3"/>
|
||||
</svg>`
|
||||
|
||||
/* User (Profile > Edit profile) */
|
||||
window["env"]["svg"]["user"] = `<svg class="icon" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2C7.89543 2 7 2.89543 7 4C7 5.10457 7.89543 6 9 6C10.1046 6 11 5.10457 11 4C11 2.89543 10.1046 2 9 2ZM5 4C5 1.79086 6.79086 0 9 0C11.2091 0 13 1.79086 13 4C13 6.20914 11.2091 8 9 8C6.79086 8 5 6.20914 5 4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.9981 11.3995C5.29471 9.88675 7.08937 9 9 9C10.9106 9 12.7053 9.88675 14.0019 11.3995C15.2944 12.9074 16 14.9238 16 17C16 17.5523 15.5523 18 15 18L3 18C2.44772 18 2 17.5523 2 17C2 14.9238 2.70558 12.9074 3.9981 11.3995ZM9 11C7.72803 11 6.47044 11.5882 5.51662 12.701C4.75666 13.5877 4.24797 14.743 4.07017 16L13.9298 16C13.752 14.743 13.2433 13.5877 12.4834 12.701C11.5296 11.5882 10.272 11 9 11Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
})(this);
|
||||
65
charts/hub/custom-layout/logo-sidebar.svg
Normal file
@@ -0,0 +1,65 @@
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="18" cy="18" r="18" fill="white" fill-opacity="0.8"/>
|
||||
<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36">
|
||||
<circle cx="18" cy="18" r="18" fill="white"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0)">
|
||||
<path d="M22.5546 9.06657C21.8742 9.25466 20.2686 4.21564 19.7152 4.51264C19.1709 4.80963 18.6175 6.21541 18.6175 6.21541C18.4089 5.70062 17.8555 4.31464 17.2477 4.75023C16.4585 5.32442 15.5422 8.13598 15.5422 9.36356C15.5422 11.0168 14.0272 14.5214 14.0272 14.5214C14.0272 14.5214 11.0971 23.4213 12.7028 21.9661C14.3085 20.5108 16.2226 21.8671 17.0753 22.6789C17.919 23.4708 18.8262 24.54 20.6677 24.54C21.2302 24.54 22.8358 24.1638 22.854 23.2332C22.8903 20.6593 23.8247 18.5308 23.8247 18.5308C23.8247 18.5308 24.5322 18.4912 27.408 18.1942C30.2746 17.8972 31.0638 15.848 31.0638 15.848C31.0638 15.848 32.4972 14.2442 30.075 13.4621C26.4554 12.2939 25.9384 11.8583 25.9384 11.8583C23.9607 7.95778 20.7403 8.61117 20.7403 8.61117C20.2595 8.62107 19.8331 8.65077 19.443 8.70027C16.7306 9.02697 16.1591 10.1456 16.1591 10.1456" fill="#B4524E"/>
|
||||
<path d="M29.694 13.3532C29.694 13.3532 29.1225 14.66 31.0638 15.8579C31.0638 15.8579 32.6785 14.1551 29.694 13.3532Z" fill="#414042"/>
|
||||
<path d="M21.7563 12.2147C21.7563 12.2147 24.0787 11.0564 24.2783 13.3532C24.2783 13.3532 23.8338 13.2245 23.3892 13.3532C22.972 13.472 22.2371 13.6106 21.7563 12.2147Z" fill="#414042"/>
|
||||
<path d="M16.0231 9.91798C16.0231 9.91798 15.8961 9.16559 16.0594 8.3142C16.3497 6.73023 17.4837 4.48296 17.9735 4.97796C18.5723 5.59175 18.7809 5.90854 19.044 8.7696C19.044 8.7696 17.4474 8.7003 16.0231 9.91798Z" fill="#414042"/>
|
||||
<path d="M19.443 8.71017C19.443 8.71017 19.0438 4.95813 20.0599 4.76013C20.1687 4.76013 21.9921 8.64087 22.0556 8.66067C22.1917 8.69037 20.8945 8.46267 19.443 8.71017Z" fill="#414042"/>
|
||||
<path d="M14.1451 14.1947C14.1451 14.1947 15.0432 21.085 16.1227 21.9364C16.1227 21.9364 14.1451 20.7187 12.485 22.174C12.4759 22.1839 10.9609 22.4116 14.1451 14.1947Z" fill="#414042"/>
|
||||
<g opacity="0.66">
|
||||
<g opacity="0.66">
|
||||
<g opacity="0.66">
|
||||
<path opacity="0.66" d="M15.4788 10.0467C15.4788 10.0467 16.4222 24.55 22.7996 23.5204C22.7996 23.5204 22.5456 24.4015 20.6678 24.5599C20.6678 24.5599 19.0984 24.8074 17.6015 23.1937C17.6015 23.1937 16.2499 22.0057 16.1138 21.9463C16.1138 21.9463 15.3518 21.4216 14.9163 18.6794C14.9163 18.6794 14.0182 14.4917 14.1362 14.2046C14.1452 14.1947 15.4697 10.4625 15.4788 10.0467Z" fill="#6D6E71"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M19.6155 17.5606C19.6155 17.5606 22.8631 18.9961 23.8247 18.5506C23.8247 18.5506 23.4437 19.5802 23.3621 19.897C23.3621 19.897 23.1897 20.5603 23.1444 20.7979C23.1444 20.788 19.9693 21.4216 19.6155 17.5606Z" fill="#414042"/>
|
||||
<path d="M19.6153 17.5606C19.6153 17.5606 19.8512 20.6791 23.1442 20.788C23.1442 20.788 22.8902 22.2037 22.8902 22.5007C22.8902 22.5007 18.1639 22.7284 19.6153 17.5606Z" fill="#58595B"/>
|
||||
<g opacity="0.26">
|
||||
<g opacity="0.26">
|
||||
<g opacity="0.26">
|
||||
<path opacity="0.26" d="M30.0389 17.1646C30.0389 17.1646 22.8087 17.7388 19.6064 17.5606C19.6064 17.5606 22.8813 19.0357 23.8157 18.5506C23.8157 18.5506 27.4353 18.2635 27.9705 18.1249C27.9796 18.1249 29.1136 17.9665 30.0389 17.1646Z" fill="#C49A6C"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M12.6303 12.1949C11.9499 12.383 10.3442 7.344 9.79087 7.64099C9.24657 7.93799 8.6932 9.34377 8.6932 9.34377C8.48455 8.82897 7.93118 7.44299 7.32337 7.87859C6.53414 8.45278 5.6179 11.2643 5.6179 12.4919C5.6179 14.1452 4.10293 17.6497 4.10293 17.6497C4.10293 17.6497 1.17278 26.5497 2.77847 25.0944C4.38415 23.6391 6.2892 24.9954 7.15101 25.8072C7.99468 26.5992 8.90185 27.6684 10.7434 27.6684C11.3058 27.6684 12.9115 27.2922 12.9297 26.3616C12.966 23.7876 13.9003 21.6592 13.9003 21.6592C13.9003 21.6592 14.6079 21.6196 17.4836 21.3226C20.3503 21.0256 21.1395 18.9763 21.1395 18.9763C21.1395 18.9763 22.5729 17.3725 20.1507 16.5905C16.5311 15.4223 16.014 14.9867 16.014 14.9867C14.0364 11.0861 10.816 11.7395 10.816 11.7395C10.3352 11.7494 9.9088 11.7791 9.51872 11.8286C6.80629 12.1553 6.23477 13.274 6.23477 13.274" fill="#B4524E"/>
|
||||
<path d="M19.7697 16.4717C19.7697 16.4717 19.1981 17.7785 21.1395 18.9763C21.1395 18.9763 22.7542 17.2736 19.7697 16.4717Z" fill="#414042"/>
|
||||
<path d="M11.832 15.3332C11.832 15.3332 14.1544 14.1749 14.354 16.4717C14.354 16.4717 13.9094 16.343 13.4649 16.4717C13.0476 16.5905 12.3128 16.729 11.832 15.3332Z" fill="#414042"/>
|
||||
<path d="M6.09881 13.0364C6.09881 13.0364 5.97181 12.284 6.1351 11.4326C6.42539 9.84864 7.55935 7.60137 8.04922 8.09636C8.64795 8.71015 8.8566 9.02695 9.11968 11.888C9.11968 11.888 7.52306 11.8187 6.09881 13.0364Z" fill="#414042"/>
|
||||
<path d="M9.51868 11.8286C9.51868 11.8286 9.11953 8.07657 10.1356 7.87857C10.2444 7.87857 12.0678 11.7593 12.1313 11.7791C12.2674 11.8088 10.9702 11.5811 9.51868 11.8286Z" fill="#414042"/>
|
||||
<path d="M4.22077 17.3131C4.22077 17.3131 5.11887 24.2034 6.1984 25.0548C6.1984 25.0548 4.22077 23.8371 2.56066 25.2924C2.55159 25.3023 1.03662 25.53 4.22077 17.3131Z" fill="#414042"/>
|
||||
<path d="M5.55445 13.1651C5.55445 13.1651 6.49791 27.6684 12.8753 26.6388C12.8753 26.6388 12.6213 27.5199 10.7435 27.6783C10.7435 27.6783 9.17405 27.9258 7.67723 26.3121C7.67723 26.3121 6.32555 25.1241 6.18947 25.0647C6.18947 25.0647 5.42745 24.54 4.99201 21.7978C4.99201 21.7978 4.09392 17.6101 4.21185 17.323C4.22092 17.3131 5.54538 13.5809 5.55445 13.1651Z" fill="#6D6E71"/>
|
||||
<path d="M9.69092 20.6791C9.69092 20.6791 12.9386 22.1146 13.9002 21.6691C13.9002 21.6691 13.6462 22.6986 13.5736 23.0154C13.5736 23.0154 13.5373 23.9955 13.4829 24.2232C13.4738 24.2232 10.0447 24.54 9.69092 20.6791Z" fill="#414042"/>
|
||||
<path d="M9.69101 20.6791C9.69101 20.6791 10.072 23.8569 13.365 23.9757C13.365 23.9757 12.9659 25.3221 12.9659 25.6191C12.9659 25.6191 8.23955 25.8567 9.69101 20.6791Z" fill="#58595B"/>
|
||||
<g opacity="0.26">
|
||||
<g opacity="0.26">
|
||||
<g opacity="0.26">
|
||||
<path opacity="0.26" d="M20.1143 20.2831C20.1143 20.2831 12.8842 20.8572 9.68188 20.679C9.68188 20.679 12.9568 22.1541 13.8911 21.669C13.8911 21.669 17.5107 21.3819 18.046 21.2433C18.055 21.2433 19.189 21.0948 20.1143 20.2831Z" fill="#C49A6C"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M20.5497 21.8572C19.8694 22.0453 18.2637 17.0062 17.7103 17.3032C17.166 17.6002 16.6126 19.006 16.6126 19.006C16.404 18.4912 15.8506 17.1052 15.2428 17.5408C14.4536 18.115 13.5645 20.9266 13.5373 22.1541C13.492 24.1836 12.0042 27.4605 12.0224 27.312C12.0224 27.312 9.09222 36.2119 10.6979 34.7567C12.3036 33.3014 14.2086 34.6577 15.0704 35.4694C15.9141 36.2614 16.8213 37.3306 18.6628 37.3306C19.2253 37.3306 20.831 36.9544 20.8491 36.0238C20.8854 33.4499 21.8198 31.3214 21.8198 31.3214C21.8198 31.3214 22.5274 31.2818 25.4031 30.9848C28.2697 30.6878 29.059 28.6386 29.059 28.6386C29.059 28.6386 30.4923 27.0348 28.0702 26.2527C24.4506 25.0845 23.9335 24.6489 23.9335 24.6489C21.9558 20.7484 18.7354 21.4018 18.7354 21.4018C18.2546 21.4117 17.8282 21.4414 17.4382 21.4909C14.7257 21.8176 14.1542 22.9362 14.1542 22.9362" fill="#B4524E"/>
|
||||
<path d="M27.6893 26.1339C27.6893 26.1339 27.1178 27.4407 29.0592 28.6386C29.0592 28.6485 30.6739 26.9358 27.6893 26.1339Z" fill="#414042"/>
|
||||
<path d="M19.7515 24.9954C19.7515 24.9954 22.0738 23.8371 22.2734 26.1339C22.2734 26.1339 21.8289 26.0052 21.3844 26.1339C20.9671 26.2527 20.2323 26.3912 19.7515 24.9954Z" fill="#414042"/>
|
||||
<path d="M14.0273 22.6987C14.0273 22.6987 13.9003 21.9463 14.0636 21.0949C14.3539 19.5109 15.4878 17.2637 15.9777 17.7587C16.5764 18.3724 16.7851 18.6892 17.0482 21.5503C17.0391 21.5503 15.4425 21.4909 14.0273 22.6987Z" fill="#414042"/>
|
||||
<path d="M17.4381 21.4909C17.4381 21.4909 17.039 17.7388 18.055 17.5408C18.1639 17.5408 19.9873 21.4216 20.0508 21.4414C20.1868 21.4711 18.8987 21.2434 17.4381 21.4909Z" fill="#414042"/>
|
||||
<path d="M12.0224 27.2031C12.0678 27.3714 14.6804 35.5091 15.6511 36.0041C15.6511 36.0041 12.1767 33.4004 10.5165 34.8557C10.5256 34.8557 8.83828 35.42 12.0224 27.2031Z" fill="#414042"/>
|
||||
<path d="M17.6106 30.3414C17.6106 30.3414 20.8583 31.7768 21.8199 31.3314C21.8199 31.3314 21.4388 32.3609 21.3572 32.6777C21.3572 32.6777 21.1848 33.341 21.1395 33.5786C21.1395 33.5687 17.9644 34.2023 17.6106 30.3414Z" fill="#414042"/>
|
||||
<path d="M17.6107 30.3414C17.6107 30.3414 17.8466 33.4598 21.1396 33.5687C21.1396 33.5687 20.8856 34.9844 20.8856 35.2814C20.8856 35.2814 16.1592 35.519 17.6107 30.3414Z" fill="#58595B"/>
|
||||
<g opacity="0.26">
|
||||
<g opacity="0.26">
|
||||
<g opacity="0.26">
|
||||
<path opacity="0.26" d="M28.043 29.9453C28.043 29.9453 20.8129 30.5195 17.6106 30.3413C17.6106 30.3413 20.8855 31.8164 21.8199 31.3313C21.8199 31.3313 25.4394 31.0442 25.9747 30.9056C25.9747 30.9056 27.1086 30.7571 28.043 29.9453Z" fill="#C49A6C"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M2.29761 25.1043C2.29761 25.1043 5.52712 33.7964 10.6345 35.0042L10.7887 32.9648L11.9317 28.896L12.0315 27.1932C12.0315 27.1932 8.72035 27.2724 7.06931 25.6587C7.06931 25.6587 6.71551 25.431 6.19843 25.0449C5.68134 24.6588 2.56976 23.7579 2.6514 24.7182C2.73305 25.6785 2.5244 24.54 2.5244 24.54L2.29761 25.1043Z" fill="#414042"/>
|
||||
<path d="M17.4836 38.0533L18.7899 37.0831C18.7899 37.0831 15.9232 37.6177 14.5988 34.232C13.2743 30.8462 12.6121 32.8955 12.6121 32.8955L11.9771 34.6478L13.4557 37.4197L16.4494 38.281L17.4836 38.0533Z" fill="#414042"/>
|
||||
<path d="M4.1936 17.4418C4.1936 17.4418 5.49085 32.7173 12.0587 27.2724L11.5507 26.9952L10.3261 26.7774L9.15581 25.9161L7.47755 23.1639L5.67229 19.4119L4.1936 17.4418Z" fill="#6D6E71"/>
|
||||
<path d="M2.35202 23.1541C2.35202 23.1541 -0.913779 36.4693 1.8803 35.519C1.8803 35.519 7.96739 34.3607 11.714 37.4989C11.714 37.4989 19.1165 43.6467 20.8401 36.1229C20.5861 37.2613 13.1564 38.6275 12.222 33.7766C11.4418 29.7572 6.18934 28.6386 6.18934 28.6386L2.35202 23.1541Z" fill="#414042"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.9 KiB |
3
charts/hub/custom-layout/style.css
Normal file
@@ -0,0 +1,3 @@
|
||||
.app .sidebar.closed {
|
||||
background: red !important;
|
||||
}
|
||||
405
charts/hub/custom-layout/templates/activate.html
Normal file
@@ -0,0 +1,405 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">Hey, {{user}}</h4>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
padding-bottom: 24px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">Your account is now active</h2>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="colorless-card-table" style="margin-top: 36px;margin-bottom: 36px;margin-left: 0;margin-right: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colorless-card-td" bgcolor="#FFFFFF" style="background-color:#FFFFFF;padding-top: 36px;padding-right: 43px;padding-bottom: 25px;padding-left: 43px;border-radius: 4px;">
|
||||
<h3 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;
|
||||
width: 280px">All set. Let's go!</h3>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">You're ready. Go ahead and <a href='{{link}}'>login to your Kerberos Hub account</a>. Start exploring the different features and functions to support your business usecases.</p>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">Once you are convinced, choose the subscription plan that you like the most, and start consuming only what you need.</p>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
22
charts/hub/custom-layout/templates/activate.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{user}}
|
||||
Welcome to Kerberos Hub
|
||||
Activate your account
|
||||
{{link}}
|
||||
|
||||
Kerberos Hub in a nutshell
|
||||
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
|
||||
|
||||
However before you get started this amazing applications, please activate your account.
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
432
charts/hub/custom-layout/templates/detection.html
Normal file
@@ -0,0 +1,432 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">Hey, {{user}}</h4>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">We've detected something interesting</h2>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 0;
|
||||
padding-bottom: 24px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
color:#b09fb9;">{{text}}</h2>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="colorless-card-table" style="margin-top: 36px;margin-bottom: 36px;margin-left: 0;margin-right: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colorless-card-td" bgcolor="#FFFFFF" style="background-color:#FFFFFF;padding-top: 36px;padding-right: 43px;padding-bottom: 25px;padding-left: 43px;border-radius: 4px;">
|
||||
<h3 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;
|
||||
width: 280px">We got you covered!</h3>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">An alert was send to your e-mail as one of the conditions was triggered. Please watch the recording, by clicking on below button.
|
||||
If you believe this event is a false positive, go to your Kerberos Hub account and change the alert settings accordingly.</p>
|
||||
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="{{link}}">
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
background-color: #84559F;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
width: 130px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
cursor: pointer;">Watch recording -></p>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
22
charts/hub/custom-layout/templates/detection.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{user}}
|
||||
Welcome to Kerberos Hub
|
||||
Activate your account ->
|
||||
{{link}}
|
||||
|
||||
Kerberos Hub in a nutshell
|
||||
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
|
||||
|
||||
However before you get started this amazing applications, please activate your account.
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
431
charts/hub/custom-layout/templates/device.html
Normal file
@@ -0,0 +1,431 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">Hey, {{user}}</h4>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">One of your Kerberos Agents changed</h2>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 0;
|
||||
padding-bottom: 24px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
color:#b09fb9;">{{text}}</h2>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="colorless-card-table" style="margin-top: 36px;margin-bottom: 36px;margin-left: 0;margin-right: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colorless-card-td" bgcolor="#FFFFFF" style="background-color:#FFFFFF;padding-top: 36px;padding-right: 43px;padding-bottom: 25px;padding-left: 43px;border-radius: 4px;">
|
||||
<h3 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;
|
||||
width: 480px">The status your Kerberos Agent changed</h3>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">Kerberos Agents go offline due to a variety of reasons. The machine, node, micro controller on which your Kerberos Agent runs, gets corrupted or disconnected from the internet.
|
||||
The camera itself is broken, damaged or in the worst case tampered. Have a look into your Kerberos Hub account for the latest recordings and/or verify the connection and status of your Kerberos Agent.</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="{{link}}">
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
background-color: #84559F;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
width: 160px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
cursor: pointer;">Go to Kerberos Hub -></p>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
22
charts/hub/custom-layout/templates/device.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{user}}
|
||||
Welcome to Kerberos Hub
|
||||
Activate your account ->
|
||||
{{link}}
|
||||
|
||||
Kerberos Hub in a nutshell
|
||||
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
|
||||
|
||||
However before you get started this amazing applications, please activate your account.
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
441
charts/hub/custom-layout/templates/disable.html
Normal file
@@ -0,0 +1,441 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">Hey, {{user}}</h4>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">You reached your daily limit ({{dataUsage}} GB)</h2>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 0;
|
||||
padding-bottom: 24px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
color:#b09fb9;">{{text}}</h2>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="colorless-card-table" style="margin-top: 36px;margin-bottom: 36px;margin-left: 0;margin-right: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colorless-card-td" bgcolor="#FFFFFF" style="background-color:#FFFFFF;padding-top: 36px;padding-right: 43px;padding-bottom: 25px;padding-left: 43px;border-radius: 4px;">
|
||||
<h3 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;
|
||||
width: 480px">We have disabled your account.</h3>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">The daily limit of your account was reached (<b>{{dataUsage}} GB</b>), therefore we have disabled your account. This means that no new recordings will be uploaded to your Kerberos Hub agents until tomorrow.
|
||||
Tomorrow your account will be reset, and recordings will be uploaded again to your Kerberos Hub account.</p>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">If you are hitting your daily limits a lot, you might consider upgrading your Kerberos Hub subscription, or fine-tune your Kerberos Agents so they record less recordings.</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="{{link}}">
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
background-color: #84559F;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
width: 160px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
cursor: pointer;">Go to Kerberos Hub -></p>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
22
charts/hub/custom-layout/templates/disable.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{user}}
|
||||
Welcome to Kerberos Hub
|
||||
Activate your account ->
|
||||
{{link}}
|
||||
|
||||
Kerberos Hub in a nutshell
|
||||
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
|
||||
|
||||
However before you get started this amazing applications, please activate your account.
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
414
charts/hub/custom-layout/templates/forgot.html
Normal file
@@ -0,0 +1,414 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">Hey, {{user}}</h4>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
padding-bottom: 24px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">You forgot your Kerberos Hub password!</h2>
|
||||
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
background-color: #84559F;
|
||||
text-transform: none;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
width: 320px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;">Your new password: {{password}}</p>
|
||||
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="colorless-card-table" style="margin-top: 36px;margin-bottom: 36px;margin-left: 0;margin-right: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colorless-card-td" bgcolor="#FFFFFF" style="background-color:#FFFFFF;padding-top: 36px;padding-right: 43px;padding-bottom: 25px;padding-left: 43px;border-radius: 4px;">
|
||||
<h3 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;
|
||||
width: 480px">We've created a new password for you</h3>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">Someone, we hope it was you ({{ipaddress}}), requested a new password for your account "{{user}}". Therefore we've created a new password to access your account.
|
||||
Your existing password can still be used, until you signed in with the password below.
|
||||
Afterwards your original password is overwritten with the attached password.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
22
charts/hub/custom-layout/templates/forgot.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{user}}
|
||||
Welcome to Kerberos Hub
|
||||
Activate your account
|
||||
{{link}}
|
||||
|
||||
Kerberos Hub in a nutshell
|
||||
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
|
||||
|
||||
However before you get started this amazing applications, please activate your account.
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
418
charts/hub/custom-layout/templates/highupload.html
Normal file
@@ -0,0 +1,418 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">Hey, {{user}}</h4>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">High upload detected by one or more Kerberos Agents</h2>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="colorless-card-table" style="margin-top: 36px;margin-bottom: 36px;margin-left: 0;margin-right: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colorless-card-td" bgcolor="#FFFFFF" style="background-color:#FFFFFF;padding-top: 36px;padding-right: 43px;padding-bottom: 25px;padding-left: 43px;border-radius: 4px;">
|
||||
<h3 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;
|
||||
width: 450px">Your high upload alert reached its threshold!</h3>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">You receive this alert as a lot of recordings have been uploaded during the last x minutes. This alert might indicate something is happening unusual, please have a look.
|
||||
If you believe this is a false positive go to the alerts section of your Kerberos Hub account and update the setting accordingly.</p>
|
||||
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="{{link}}">
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
background-color: #84559F;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
width: 160px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
cursor: pointer;">Go to Kerberos Hub -></p>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
22
charts/hub/custom-layout/templates/highupload.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{user}}
|
||||
Welcome to Kerberos Hub
|
||||
Activate your account ->
|
||||
{{link}}
|
||||
|
||||
Kerberos Hub in a nutshell
|
||||
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
|
||||
|
||||
However before you get started this amazing applications, please activate your account.
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
416
charts/hub/custom-layout/templates/newip.html
Normal file
@@ -0,0 +1,416 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">Hey, {{user}}</h4>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">A new device/location detected</h2>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="colorless-card-table" style="margin-top: 36px;margin-bottom: 36px;margin-left: 0;margin-right: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colorless-card-td" bgcolor="#FFFFFF" style="background-color:#FFFFFF;padding-top: 36px;padding-right: 43px;padding-bottom: 25px;padding-left: 43px;border-radius: 4px;">
|
||||
<h3 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;
|
||||
width: 480px">A new login detected</h3>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">Someone, we hope it was you ({{ipaddress}}), signed in to your account. If this was not you, please go to Kerberos Hub and change your password ASAP.</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="{{link}}">
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
background-color: #84559F;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
width: 175px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
cursor: pointer;">Change your password -></p>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
22
charts/hub/custom-layout/templates/newip.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{user}}
|
||||
Welcome to Kerberos Hub
|
||||
Activate your account ->
|
||||
{{link}}
|
||||
|
||||
Kerberos Hub in a nutshell
|
||||
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
|
||||
|
||||
However before you get started this amazing applications, please activate your account.
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
418
charts/hub/custom-layout/templates/share.html
Normal file
@@ -0,0 +1,418 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">We've something interesting for you</h2>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">You received a recording from {{user}}</h4>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="colorless-card-table" style="margin-top: 36px;margin-bottom: 36px;margin-left: 0;margin-right: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colorless-card-td" bgcolor="#FFFFFF" style="background-color:#FFFFFF;padding-top: 36px;padding-right: 43px;padding-bottom: 25px;padding-left: 43px;border-radius: 4px;">
|
||||
<h3 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;
|
||||
width: 280px">{{title}}</h3>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">{{body}}</p>
|
||||
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="{{url}}">
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
background-color: #84559F;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
width: 130px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
cursor: pointer;">Watch recording -></p>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
19
charts/hub/custom-layout/templates/share.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
We've something interesting for you
|
||||
You received a recording from {{user}}
|
||||
|
||||
{{title}}
|
||||
{{body}}
|
||||
{{url}}
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
423
charts/hub/custom-layout/templates/welcome.html
Normal file
@@ -0,0 +1,423 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">Hey, {{user}}</h4>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
padding-bottom: 24px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">Welcome to Kerberos Hub</h2>
|
||||
<a style="text-decoration: none;color: none;" href="{{link}}">
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
background-color: #84559F;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
width: 166px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;">Activate your account -></p>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="colorless-card-table" style="margin-top: 36px;margin-bottom: 36px;margin-left: 0;margin-right: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colorless-card-td" bgcolor="#FFFFFF" style="background-color:#FFFFFF;padding-top: 36px;padding-right: 43px;padding-bottom: 25px;padding-left: 43px;border-radius: 4px;">
|
||||
<h3 style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;
|
||||
width: 280px">Kerberos Hub in a nutshell</h3>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.</p>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">However before you get started this amazing applications, please activate your acount.</p>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
22
charts/hub/custom-layout/templates/welcome.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{user}}
|
||||
Welcome to Kerberos Hub
|
||||
Activate your account ->
|
||||
{{link}}
|
||||
|
||||
Kerberos Hub in a nutshell
|
||||
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
|
||||
|
||||
However before you get started this amazing applications, please activate your account.
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
BIN
charts/hub/hub-dashboard.png
Normal file
|
After Width: | Height: | Size: 543 KiB |
BIN
charts/hub/images/TURN-STUN-Architecture.png
Normal file
|
After Width: | Height: | Size: 243 KiB |
763
charts/hub/images/turn-stun.svg
Normal file
|
After Width: | Height: | Size: 258 KiB |
295
charts/hub/index.yaml
Normal file
@@ -0,0 +1,295 @@
|
||||
apiVersion: v1
|
||||
entries:
|
||||
hub:
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.577405+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 3ae8dd5a559db513798a6c83f4a6281a5ec6e83d3aec15457802aa120066e586
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.28.0.tgz
|
||||
version: 0.28.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.566802+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: c76b60f3c27fa8f999c3bcee9f3f0e6e37becd2f27fba4f0db6f5e2d7c69696a
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.27.0.tgz
|
||||
version: 0.27.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.560598+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 27cb573ba61c7ae5b57c0925ffca80e3c2adfff71dfe22948022079a2d5096c8
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.26.0.tgz
|
||||
version: 0.26.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.552104+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 999455248912bf3eae48698977baf636e5a7b03010c858ab8e37cda6ee04af18
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.25.0.tgz
|
||||
version: 0.25.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.547365+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: e7a1c03521315d3e4da2364e4ec508c878e86471a42f5221af8a9d26591700ef
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.24.0.tgz
|
||||
version: 0.24.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.545091+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 606e9581f51c25677261e0ec902bca2ae485c1c07f5bc6d5363061880df37983
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.23.0.tgz
|
||||
version: 0.23.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.542891+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 1f1a77864387a75e244d5cf4f02c8199e19d261451c85e3a62c48e2d9a8a2acc
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.22.0.tgz
|
||||
version: 0.22.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.540301+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: e2253cdd86f12c6c0a55eb24d3188cf1f50eea57e4a98b01aed655f4f81473f1
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.21.0.tgz
|
||||
version: 0.21.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.536133+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: e5d9499c7917f6cf7ec8850e08fcef6cf5d173eaaf6893795cd9a89fef31a696
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.20.0.tgz
|
||||
version: 0.20.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.532723+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: b70cadd86f5c10a6584f195a01b1b181988a2c80f6ae845b672a03ff233be5e8
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.19.0.tgz
|
||||
version: 0.19.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.530582+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 7b32cce6f1595f2ada0f5432770a2da69f281a9b29a4ac8e39246c14589ed773
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.18.0.tgz
|
||||
version: 0.18.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.527987+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: f1fafbbc42cf04d28deb7c558e122b41e07bcb49c1df3dae7edc0a37899fb8e3
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.17.0.tgz
|
||||
version: 0.17.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.52193+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: d6cd3e38b95ca42cc45b35817675f80aff35dffc4bace40283c0df3b662f68cf
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.16.0.tgz
|
||||
version: 0.16.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.519746+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 06d88058b59d9ce2205f75cfb74cf192e5bf0f8a9bc17be5083b2425a3088052
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.15.0.tgz
|
||||
version: 0.15.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.516929+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: b0902499486b9e14b8e64140dea5fdc9274c16213bd3d68ea94d019389579b6d
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.14.0.tgz
|
||||
version: 0.14.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.514981+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 6f4148cdc23971f3b88c86d9fd61edac51ee9a247973fa0405a4cf21014d8f72
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.13.0.tgz
|
||||
version: 0.13.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.512409+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: bb49c71afdf588c2af043ed27de3aa5734505d622d49738d17abdd4dc09af52f
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.12.0.tgz
|
||||
version: 0.12.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.50976+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: f85ea65e54a4675ac2996922439a8cd7d7032463e53fa935c64bb4f04b71275e
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.11.0.tgz
|
||||
version: 0.11.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.50709+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: c3711024037c69fee0c339a48a040cc2e0eb27c8be250abe4446b1c245df5792
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.10.0.tgz
|
||||
version: 0.10.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.594121+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: cd4a27684ea80454980dd00ebc2d98e2f2f089b554e65149959868a082cfed88
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.9.0.tgz
|
||||
version: 0.9.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.586147+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 8f692eff8260a23f89d1a5c7cb376a961df19ec0028b3f1daf1d83ad47d0495c
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.8.0.tgz
|
||||
version: 0.8.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.584762+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 6f72cc0eb7936c66150334edae9d1e584abbdf089d8e3eb997b53a505767cec2
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.7.0.tgz
|
||||
version: 0.7.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.583291+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: e6ce82c275e8aeed68a6e082c117a483dbb2bf3463198b2775f0ad6473eb50f7
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.6.0.tgz
|
||||
version: 0.6.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.581902+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 459f44c587b0aed5ac8eb84f84f9c644ad20af90afc2fb72541e9bf1796b7cfd
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.5.0.tgz
|
||||
version: 0.5.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.580472+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 5640f69ccc78c0747115817bd14f5eccc50f3947e74ebac9912a2a5c9681b62e
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.4.0.tgz
|
||||
version: 0.4.0
|
||||
- apiVersion: v2
|
||||
appVersion: 3.0.0
|
||||
created: "2022-06-07T07:42:09.578943+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: f2140854495a1868277b314da1bab279ed4928bf84b71ac9e28eb14cc043f488
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.3.0.tgz
|
||||
version: 0.3.0
|
||||
- apiVersion: v2
|
||||
appVersion: 1.0.0
|
||||
created: "2022-06-07T07:42:09.534131+02:00"
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
digest: 9c4712f9ab4eaa5964f97e5ea8d47d2232c99a7ff9f045e149be2760e993458b
|
||||
name: hub
|
||||
type: application
|
||||
urls:
|
||||
- https://kerberos-io.github.io/hub/hub-0.2.0.tgz
|
||||
version: 0.2.0
|
||||
generated: "2022-06-07T07:42:09.501521+02:00"
|
||||
1622
charts/hub/kafka/values.yaml
Normal file
7
charts/hub/mongodb/fast.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: fast
|
||||
provisioner: kubernetes.io/gce-pd
|
||||
parameters:
|
||||
type: pd-ssd
|
||||
68
charts/hub/mongodb/settings.nosql
Normal file
@@ -0,0 +1,68 @@
|
||||
db.settings.insertMany([
|
||||
{
|
||||
"_id" : ObjectId("5a43fa12d885eb7da57046b3"),
|
||||
"key" : "sequence",
|
||||
"map" : {
|
||||
"timeBetween" : NumberInt(60)
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id" : ObjectId("5a4d3a6bd885eb7da5e6b297"),
|
||||
"key" : "throttler",
|
||||
"map" : {
|
||||
"waitingTime" : NumberInt(60)
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id" : ObjectId("5a53d0a0d885eb7da53ed5a6"),
|
||||
"key" : "analysis",
|
||||
"map" : {
|
||||
"waitingTime" : NumberInt(15)
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id" : ObjectId("5a72c509e17699d18ada9154"),
|
||||
"key" : "plan",
|
||||
"map" : {
|
||||
"basic" : {
|
||||
"level" : NumberInt(1),
|
||||
"uploadLimit" : NumberInt(100),
|
||||
"videoLimit" : NumberInt(100),
|
||||
"usage" : NumberInt(500),
|
||||
"analysisLimit" : NumberInt(0),
|
||||
"dayLimit" : NumberInt(3)
|
||||
},
|
||||
"premium" : {
|
||||
"level" : NumberInt(2),
|
||||
"uploadLimit" : NumberInt(500),
|
||||
"videoLimit" : NumberInt(500),
|
||||
"usage" : NumberInt(1000),
|
||||
"analysisLimit" : NumberInt(0),
|
||||
"dayLimit" : NumberInt(7)
|
||||
},
|
||||
"gold" : {
|
||||
"level" : NumberInt(3),
|
||||
"uploadLimit" : NumberInt(1000),
|
||||
"videoLimit" : NumberInt(1000),
|
||||
"usage" : NumberInt(3000),
|
||||
"analysisLimit" : NumberInt(1000),
|
||||
"dayLimit" : NumberInt(30)
|
||||
},
|
||||
"business" : {
|
||||
"level" : NumberInt(4),
|
||||
"uploadLimit" : NumberInt(99999999),
|
||||
"videoLimit" : NumberInt(99999999),
|
||||
"usage" : NumberInt(10000),
|
||||
"analysisLimit" : NumberInt(1000),
|
||||
"dayLimit" : NumberInt(30)
|
||||
},
|
||||
"enterprise" : {
|
||||
"level" : NumberInt(5),
|
||||
"uploadLimit" : NumberInt(99999999),
|
||||
"videoLimit" : NumberInt(99999999),
|
||||
"usage" : NumberInt(99999999),
|
||||
"analysisLimit" : NumberInt(5000),
|
||||
"dayLimit" : NumberInt(30)
|
||||
}
|
||||
}
|
||||
}])
|
||||
13
charts/hub/mongodb/subscriptions.nosql
Normal file
@@ -0,0 +1,13 @@
|
||||
db.subscriptions.insertMany([{
|
||||
"_id" : ObjectId("57e1011e3178aa6c5cc774d1"),
|
||||
"name" : "default",
|
||||
"stripe_id" : "sub_9ECyjjMz3R7etK",
|
||||
"stripe_plan" : "enterprise",
|
||||
"quantity" : 1,
|
||||
"trial_ends_at" : null,
|
||||
"ends_at" : null,
|
||||
"user_id" : "57e1011e3178aa6c5cc774d1",
|
||||
"updated_at" : ISODate("2021-04-27T09:45:30.169Z"),
|
||||
"created_at" : ISODate("2016-09-20T09:35:03.448Z"),
|
||||
"stripe_status" : "active"
|
||||
}])
|
||||
21
charts/hub/mongodb/users.nosql
Normal file
@@ -0,0 +1,21 @@
|
||||
db.users.insertMany([{
|
||||
"_id" : ObjectId("57e1011e3178aa6c5cc774d1"),
|
||||
"username" : "youruser",
|
||||
"email" : "your@email.com",
|
||||
"password" : "$2a$10$XS8XdjzgUCbvGHgt9KVHEuDBnmu1bfAhT/WFxcHCubJtHud8O8vSC",
|
||||
"isActive" : NumberLong(1),
|
||||
"registerToken" : "",
|
||||
"timezone" : "Europe/Brussels",
|
||||
"updated_at" : ISODate("2020-06-14T05:01:35.000Z"),
|
||||
"created_at" : ISODate("2016-09-20T09:27:58.811Z"),
|
||||
"amazon_secret_access_key" : "K6rRLBI1xxxCk3C1H",
|
||||
"amazon_access_key_id" : "AKIAxxxxxxG5Q",
|
||||
"card_brand" : "MasterCard",
|
||||
"card_last_four" : "6888",
|
||||
"sequence_first" : 1510657836,
|
||||
"card_status" : "ok",
|
||||
"card_status_message" : null,
|
||||
"role" : "owner",
|
||||
"admin" : true,
|
||||
"google2fa_enabled" : false
|
||||
}])
|
||||
932
charts/hub/mongodb/values.yaml
Normal file
@@ -0,0 +1,932 @@
|
||||
## Global Docker image parameters
|
||||
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
|
||||
## Current available global Docker image parameters: imageRegistry and imagePullSecrets
|
||||
##
|
||||
# global:
|
||||
# imageRegistry: myRegistryName
|
||||
# imagePullSecrets:
|
||||
# - myRegistryKeySecretName
|
||||
# storageClass: myStorageClass
|
||||
## Override the namespace for resource deployed by the chart, but can itself be overridden by the local namespaceOverride
|
||||
# namespaceOverride: my-global-namespace
|
||||
|
||||
image:
|
||||
## Bitnami MongoDB registry
|
||||
##
|
||||
registry: docker.io
|
||||
## Bitnami MongoDB image name
|
||||
##
|
||||
repository: bitnami/mongodb
|
||||
## Bitnami MongoDB image tag
|
||||
## ref: https://hub.docker.com/r/bitnami/mongodb/tags/
|
||||
##
|
||||
tag: 4.4.2-debian-10-r0
|
||||
## Specify a imagePullPolicy
|
||||
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
||||
##
|
||||
pullPolicy: IfNotPresent
|
||||
## Optionally specify an array of imagePullSecrets.
|
||||
## Secrets must be manually created in the namespace.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
##
|
||||
# pullSecrets:
|
||||
# - myRegistryKeySecretName
|
||||
|
||||
## Set to true if you would like to see extra information on logs
|
||||
## It turns on Bitnami debugging in minideb-extras-base
|
||||
## ref: https://github.com/bitnami/minideb-extras-base
|
||||
debug: false
|
||||
|
||||
## String to partially override mongodb.fullname template (will maintain the release name)
|
||||
##
|
||||
# nameOverride:
|
||||
|
||||
## String to fully override mongodb.fullname template
|
||||
##
|
||||
# fullnameOverride:
|
||||
|
||||
## Kubernetes Cluster Domain
|
||||
##
|
||||
clusterDomain: cluster.local
|
||||
|
||||
## Use an alternate scheduler, e.g. "stork".
|
||||
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
|
||||
##
|
||||
# schedulerName:
|
||||
|
||||
## MongoDB architecture. Allowed values: standalone or replicaset
|
||||
##
|
||||
architecture: standalone
|
||||
|
||||
## Use StatefulSet instead of Deployment when deploying standalone
|
||||
##
|
||||
useStatefulSet: false
|
||||
|
||||
## MongoDB Authentication parameters
|
||||
##
|
||||
auth:
|
||||
## Enable authentication
|
||||
## ref: https://docs.mongodb.com/manual/tutorial/enable-authentication/
|
||||
##
|
||||
enabled: true
|
||||
## MongoDB root password
|
||||
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#setting-the-root-password-on-first-run
|
||||
##
|
||||
rootPassword: "yourmongodbpassword"
|
||||
## MongoDB custom user and database
|
||||
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#creating-a-user-and-database-on-first-run
|
||||
##
|
||||
# username: username
|
||||
# password: password
|
||||
# database: database
|
||||
## Key used for replica set authentication
|
||||
## Ignored when mongodb.architecture=standalone
|
||||
##
|
||||
replicaSetKey: ""
|
||||
|
||||
## Existing secret with MongoDB credentials
|
||||
## NOTE: When it's set the previous parameters are ignored.
|
||||
##
|
||||
# existingSecret: name-of-existing-secret
|
||||
|
||||
tls:
|
||||
## Enable or disable MongoDB TLS Support
|
||||
enabled: false
|
||||
##
|
||||
## Bitnami Nginx image
|
||||
##
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: bitnami/cert-manager
|
||||
tag: 1.19.4-debian-10-r19
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
## Name of the replica set
|
||||
## Ignored when mongodb.architecture=standalone
|
||||
##
|
||||
replicaSetName: rs0
|
||||
|
||||
## Enable DNS hostnames in the replica set config
|
||||
## Ignored when mongodb.architecture=standalone
|
||||
## Ignored when externalAccess.enabled=true
|
||||
##
|
||||
replicaSetHostnames: true
|
||||
|
||||
## Whether enable/disable IPv6 on MongoDB
|
||||
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#enabling/disabling-ipv6
|
||||
##
|
||||
enableIPv6: false
|
||||
|
||||
## Whether enable/disable DirectoryPerDB on MongoDB
|
||||
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#enabling/disabling-directoryperdb
|
||||
##
|
||||
directoryPerDB: false
|
||||
|
||||
## MongoDB System Log configuration
|
||||
## ref: https://github.com/bitnami/bitnami-docker-mongodb#configuring-system-log-verbosity-level
|
||||
##
|
||||
systemLogVerbosity: 0
|
||||
disableSystemLog: false
|
||||
|
||||
## MongoDB configuration file for Primary and Secondary nodes. For documentation of all options, see:
|
||||
## http://docs.mongodb.org/manual/reference/configuration-options/
|
||||
## Example:
|
||||
## configuration: |-
|
||||
## # where and how to store data.
|
||||
## storage:
|
||||
## dbPath: /bitnami/mongodb/data/db
|
||||
## journal:
|
||||
## enabled: true
|
||||
## directoryPerDB: false
|
||||
## # where to write logging data
|
||||
## systemLog:
|
||||
## destination: file
|
||||
## quiet: false
|
||||
## logAppend: true
|
||||
## logRotate: reopen
|
||||
## path: /opt/bitnami/mongodb/logs/mongodb.log
|
||||
## verbosity: 0
|
||||
## # network interfaces
|
||||
## net:
|
||||
## port: 27017
|
||||
## unixDomainSocket:
|
||||
## enabled: true
|
||||
## pathPrefix: /opt/bitnami/mongodb/tmp
|
||||
## ipv6: false
|
||||
## bindIpAll: true
|
||||
## # replica set options
|
||||
## #replication:
|
||||
## #replSetName: replicaset
|
||||
## #enableMajorityReadConcern: true
|
||||
## # process management options
|
||||
## processManagement:
|
||||
## fork: false
|
||||
## pidFilePath: /opt/bitnami/mongodb/tmp/mongodb.pid
|
||||
## # set parameter options
|
||||
## setParameter:
|
||||
## enableLocalhostAuthBypass: true
|
||||
## # security options
|
||||
## security:
|
||||
## authorization: disabled
|
||||
## #keyFile: /opt/bitnami/mongodb/conf/keyfile
|
||||
##
|
||||
configuration: ""
|
||||
|
||||
## ConfigMap with MongoDB configuration for Primary and Secondary nodes
|
||||
## NOTE: When it's set the arbiter.configuration parameter is ignored
|
||||
##
|
||||
# existingConfigmap:
|
||||
|
||||
## initdb scripts
|
||||
## Specify dictionary of scripts to be run at first boot
|
||||
## Example:
|
||||
## initdbScripts:
|
||||
## my_init_script.sh: |
|
||||
## #!/bin/bash
|
||||
## echo "Do something."
|
||||
initdbScripts: {}
|
||||
|
||||
## Existing ConfigMap with custom init scripts
|
||||
##
|
||||
# initdbScriptsConfigMap:
|
||||
|
||||
## Command and args for running the container (set to default if not set). Use array form
|
||||
##
|
||||
# command:
|
||||
# args:
|
||||
|
||||
## Additional command line flags
|
||||
## Example:
|
||||
## extraFlags:
|
||||
## - "--wiredTigerCacheSizeGB=2"
|
||||
##
|
||||
extraFlags: []
|
||||
|
||||
## Additional environment variables to set
|
||||
## E.g:
|
||||
## extraEnvVars:
|
||||
## - name: FOO
|
||||
## value: BAR
|
||||
##
|
||||
extraEnvVars: []
|
||||
|
||||
## ConfigMap with extra environment variables
|
||||
##
|
||||
# extraEnvVarsCM:
|
||||
|
||||
## Secret with extra environment variables
|
||||
##
|
||||
# extraEnvVarsSecret:
|
||||
|
||||
## Annotations to be added to the MongoDB statefulset. Evaluated as a template.
|
||||
##
|
||||
annotations: {}
|
||||
|
||||
## Additional labels to be added to the MongoDB statefulset. Evaluated as a template.
|
||||
##
|
||||
labels: {}
|
||||
|
||||
## Number of MongoDB replicas to deploy.
|
||||
## Ignored when mongodb.architecture=standalone
|
||||
##
|
||||
replicaCount: 2
|
||||
|
||||
## StrategyType for MongoDB statefulset
|
||||
## It can be set to RollingUpdate or Recreate by default.
|
||||
##
|
||||
strategyType: RollingUpdate
|
||||
|
||||
## MongoDB should be initialized one by one when building the replicaset for the first time.
|
||||
##
|
||||
podManagementPolicy: OrderedReady
|
||||
|
||||
## Affinity for pod assignment. Evaluated as a template.
|
||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
|
||||
## Node labels for pod assignment. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
|
||||
## Tolerations for pod assignment. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
|
||||
## Lables for MongoDB pods. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
podLabels: {}
|
||||
|
||||
## Annotations for MongoDB pods. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
||||
##
|
||||
podAnnotations: {}
|
||||
|
||||
## MongoDB pods' priority.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
||||
##
|
||||
# priorityClassName: ""
|
||||
|
||||
## MongoDB pods' Security Context.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
|
||||
##
|
||||
podSecurityContext:
|
||||
enabled: true
|
||||
fsGroup: 1001
|
||||
## sysctl settings
|
||||
## Example:
|
||||
## sysctls:
|
||||
## - name: net.core.somaxconn
|
||||
## value: "10000"
|
||||
##
|
||||
sysctls: []
|
||||
|
||||
## MongoDB containers' Security Context (main and metrics container).
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
|
||||
##
|
||||
containerSecurityContext:
|
||||
enabled: true
|
||||
runAsUser: 1001
|
||||
runAsNonRoot: true
|
||||
|
||||
## MongoDB containers' resource requests and limits.
|
||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
##
|
||||
resources:
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
limits:
|
||||
cpu: 2048m
|
||||
memory: 4096Mi
|
||||
requests:
|
||||
cpu: 512m
|
||||
memory: 1024Mi
|
||||
|
||||
## MongoDB pods' liveness and readiness probes. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
||||
##
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
successThreshold: 1
|
||||
readinessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
successThreshold: 1
|
||||
|
||||
## Custom Liveness probes for MongoDB pods
|
||||
##
|
||||
customLivenessProbe: {}
|
||||
|
||||
## Custom Rediness probes MongoDB pods
|
||||
##
|
||||
customReadinessProbe: {}
|
||||
|
||||
## Add init containers to the MongoDB pods.
|
||||
## Example:
|
||||
## initContainers:
|
||||
## - name: your-image-name
|
||||
## image: your-image
|
||||
## imagePullPolicy: Always
|
||||
## ports:
|
||||
## - name: portname
|
||||
## containerPort: 1234
|
||||
##
|
||||
initContainers: {}
|
||||
|
||||
## Add sidecars to the MongoDB pods.
|
||||
## Example:
|
||||
## sidecars:
|
||||
## - name: your-image-name
|
||||
## image: your-image
|
||||
## imagePullPolicy: Always
|
||||
## ports:
|
||||
## - name: portname
|
||||
## containerPort: 1234
|
||||
##
|
||||
sidecars: {}
|
||||
|
||||
## extraVolumes and extraVolumeMounts allows you to mount other volumes on MongoDB pods
|
||||
## Examples:
|
||||
## extraVolumeMounts:
|
||||
## - name: extras
|
||||
## mountPath: /usr/share/extras
|
||||
## readOnly: true
|
||||
## extraVolumes:
|
||||
## - name: extras
|
||||
## emptyDir: {}
|
||||
extraVolumeMounts: []
|
||||
extraVolumes: []
|
||||
|
||||
## MongoDB Pod Disruption Budget configuration
|
||||
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||||
##
|
||||
pdb:
|
||||
create: false
|
||||
## Min number of pods that must still be available after the eviction
|
||||
##
|
||||
minAvailable: 1
|
||||
## Max number of pods that can be unavailable after the eviction
|
||||
##
|
||||
# maxUnavailable: 1
|
||||
|
||||
## Enable persistence using Persistent Volume Claims
|
||||
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
|
||||
##
|
||||
persistence:
|
||||
enabled: true
|
||||
## A manually managed Persistent Volume and Claim
|
||||
## Requires persistence.enabled: true
|
||||
## If defined, PVC must be created manually before volume will be bound
|
||||
## Ignored when mongodb.architecture=replicaset
|
||||
##
|
||||
# existingClaim:
|
||||
## PV Storage Class
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner.
|
||||
##
|
||||
# storageClass: "-"
|
||||
## PV Access Mode
|
||||
##
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
## PVC size
|
||||
##
|
||||
size: 8Gi
|
||||
## PVC annotations
|
||||
##
|
||||
annotations: {}
|
||||
## The path the volume will be mounted at, useful when using different
|
||||
## MongoDB images.
|
||||
##
|
||||
mountPath: /bitnami/mongodb
|
||||
## The subdirectory of the volume to mount to, useful in dev environments
|
||||
## and one PV for multiple services.
|
||||
##
|
||||
subPath: ""
|
||||
|
||||
## Service parameters
|
||||
##
|
||||
service:
|
||||
## Service type
|
||||
##
|
||||
type: ClusterIP
|
||||
## MongoDB service port
|
||||
##
|
||||
port: 27017
|
||||
## MongoDB service port name
|
||||
##
|
||||
portName: mongodb
|
||||
## Specify the nodePort value for the LoadBalancer and NodePort service types.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
|
||||
##
|
||||
nodePort: ""
|
||||
## MongoDB service clusterIP IP
|
||||
##
|
||||
# clusterIP: None
|
||||
## Specify the externalIP value ClusterIP service type.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
|
||||
##
|
||||
externalIPs: []
|
||||
## Specify the loadBalancerIP value for LoadBalancer service types.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
|
||||
##
|
||||
# loadBalancerIP:
|
||||
## Specify the loadBalancerSourceRanges value for LoadBalancer service types.
|
||||
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
|
||||
##
|
||||
loadBalancerSourceRanges: []
|
||||
## Provide any additional annotations which may be required. Evaluated as a template
|
||||
##
|
||||
annotations: {}
|
||||
|
||||
## External Access to MongoDB nodes configuration
|
||||
##
|
||||
externalAccess:
|
||||
## Enable Kubernetes external cluster access to MongoDB nodes
|
||||
##
|
||||
enabled: false
|
||||
## External IPs auto-discovery configuration
|
||||
## An init container is used to auto-detect LB IPs or node ports by querying the K8s API
|
||||
## Note: RBAC might be required
|
||||
##
|
||||
autoDiscovery:
|
||||
## Enable external IP/ports auto-discovery
|
||||
##
|
||||
enabled: false
|
||||
## Bitnami Kubectl image
|
||||
## ref: https://hub.docker.com/r/bitnami/kubectl/tags/
|
||||
##
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: bitnami/kubectl
|
||||
tag: 1.18.12-debian-10-r2
|
||||
## Specify a imagePullPolicy
|
||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
||||
##
|
||||
pullPolicy: IfNotPresent
|
||||
## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
## Example:
|
||||
## pullSecrets:
|
||||
## - myRegistryKeySecretName
|
||||
##
|
||||
pullSecrets: []
|
||||
## Init Container resource requests and limits
|
||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
##
|
||||
resources:
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
limits: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
requests: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
## Parameters to configure K8s service(s) used to externally access MongoDB
|
||||
## A new service per broker will be created
|
||||
##
|
||||
service:
|
||||
## Service type. Allowed values: LoadBalancer or NodePort
|
||||
##
|
||||
type: LoadBalancer
|
||||
## Port used when service type is LoadBalancer
|
||||
##
|
||||
port: 27017
|
||||
## Array of load balancer IPs for each MongoDB node. Length must be the same as replicaCount
|
||||
## Example:
|
||||
## loadBalancerIPs:
|
||||
## - X.X.X.X
|
||||
## - Y.Y.Y.Y
|
||||
##
|
||||
loadBalancerIPs: []
|
||||
## Load Balancer sources
|
||||
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
|
||||
## Example:
|
||||
## loadBalancerSourceRanges:
|
||||
## - 10.10.10.0/24
|
||||
##
|
||||
loadBalancerSourceRanges: []
|
||||
## Array of node ports used for each MongoDB nodes. Length must be the same as replicaCount
|
||||
## Example:
|
||||
## nodePorts:
|
||||
## - 30001
|
||||
## - 30002
|
||||
##
|
||||
nodePorts: []
|
||||
## When service type is NodePort, you can specify the domain used for MongoDB advertised hostnames.
|
||||
## If not specified, the container will try to get the kubernetes node external IP
|
||||
##
|
||||
# domain: mydomain.com
|
||||
## Provide any additional annotations which may be required. Evaluated as a template
|
||||
##
|
||||
annotations: {}
|
||||
|
||||
##
|
||||
## MongoDB Arbiter parameters.
|
||||
##
|
||||
arbiter:
|
||||
## Enable deploying the MongoDB Arbiter
|
||||
## https://docs.mongodb.com/manual/tutorial/add-replica-set-arbiter/
|
||||
enabled: true
|
||||
|
||||
## MongoDB configuration file for the Arbiter. For documentation of all options, see:
|
||||
## http://docs.mongodb.org/manual/reference/configuration-options/
|
||||
##
|
||||
configuration: ""
|
||||
|
||||
## ConfigMap with MongoDB configuration for the Arbiter
|
||||
## NOTE: When it's set the arbiter.configuration parameter is ignored
|
||||
##
|
||||
# existingConfigmap:
|
||||
|
||||
## Command and args for running the container (set to default if not set). Use array form
|
||||
##
|
||||
# command:
|
||||
# args:
|
||||
|
||||
## Additional command line flags
|
||||
## Example:
|
||||
## extraFlags:
|
||||
## - "--wiredTigerCacheSizeGB=2"
|
||||
##
|
||||
extraFlags: []
|
||||
|
||||
## Additional environment variables to set
|
||||
## E.g:
|
||||
## extraEnvVars:
|
||||
## - name: FOO
|
||||
## value: BAR
|
||||
##
|
||||
extraEnvVars: []
|
||||
|
||||
## ConfigMap with extra environment variables
|
||||
##
|
||||
# extraEnvVarsCM:
|
||||
|
||||
## Secret with extra environment variables
|
||||
##
|
||||
# extraEnvVarsSecret:
|
||||
|
||||
## Annotations to be added to the Arbiter statefulset. Evaluated as a template.
|
||||
##
|
||||
annotations: {}
|
||||
|
||||
## Additional to be added to the Arbiter statefulset. Evaluated as a template.
|
||||
##
|
||||
labels: {}
|
||||
|
||||
## Affinity for pod assignment. Evaluated as a template.
|
||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
|
||||
## Node labels for pod assignment. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
|
||||
## Tolerations for pod assignment. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
|
||||
## Lables for MongoDB Arbiter pods. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
podLabels: {}
|
||||
|
||||
## Annotations for MongoDB Arbiter pods. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
||||
##
|
||||
podAnnotations: {}
|
||||
|
||||
## MongoDB Arbiter pods' priority.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
||||
##
|
||||
# priorityClassName: ""
|
||||
|
||||
## MongoDB Arbiter pods' Security Context.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
|
||||
##
|
||||
podSecurityContext:
|
||||
enabled: true
|
||||
fsGroup: 1001
|
||||
## sysctl settings
|
||||
## Example:
|
||||
## sysctls:
|
||||
## - name: net.core.somaxconn
|
||||
## value: "10000"
|
||||
##
|
||||
sysctls: []
|
||||
|
||||
## MongoDB Arbiter containers' Security Context (only main container).
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
|
||||
##
|
||||
containerSecurityContext:
|
||||
enabled: true
|
||||
runAsUser: 1001
|
||||
|
||||
## MongoDB Arbiter containers' resource requests and limits.
|
||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
##
|
||||
resources:
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
limits: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
requests: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
## MongoDB Arbiter pods' liveness and readiness probes. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
||||
##
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
successThreshold: 1
|
||||
readinessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
successThreshold: 1
|
||||
|
||||
## Custom Liveness probes for MongoDB Arbiter pods
|
||||
##
|
||||
customLivenessProbe: {}
|
||||
|
||||
## Custom Rediness probes MongoDB Arbiter pods
|
||||
##
|
||||
customReadinessProbe: {}
|
||||
|
||||
## Add init containers to the MongoDB Arbiter pods.
|
||||
## Example:
|
||||
## initContainers:
|
||||
## - name: your-image-name
|
||||
## image: your-image
|
||||
## imagePullPolicy: Always
|
||||
## ports:
|
||||
## - name: portname
|
||||
## containerPort: 1234
|
||||
##
|
||||
initContainers: {}
|
||||
|
||||
## Add sidecars to the MongoDB Arbiter pods.
|
||||
## Example:
|
||||
## sidecars:
|
||||
## - name: your-image-name
|
||||
## image: your-image
|
||||
## imagePullPolicy: Always
|
||||
## ports:
|
||||
## - name: portname
|
||||
## containerPort: 1234
|
||||
##
|
||||
sidecars: {}
|
||||
|
||||
## extraVolumes and extraVolumeMounts allows you to mount other volumes on MongoDB Arbiter pods
|
||||
## Examples:
|
||||
## extraVolumeMounts:
|
||||
## - name: extras
|
||||
## mountPath: /usr/share/extras
|
||||
## readOnly: true
|
||||
## extraVolumes:
|
||||
## - name: extras
|
||||
## emptyDir: {}
|
||||
extraVolumeMounts: []
|
||||
extraVolumes: []
|
||||
|
||||
## MongoDB Arbiter Pod Disruption Budget configuration
|
||||
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||||
##
|
||||
pdb:
|
||||
create: false
|
||||
## Min number of pods that must still be available after the eviction
|
||||
##
|
||||
minAvailable: 1
|
||||
## Max number of pods that can be unavailable after the eviction
|
||||
##
|
||||
# maxUnavailable: 1
|
||||
|
||||
## ServiceAccount
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
|
||||
##
|
||||
serviceAccount:
|
||||
## Specifies whether a ServiceAccount should be created
|
||||
##
|
||||
create: true
|
||||
## The name of the ServiceAccount to use.
|
||||
## If not set and create is true, a name is generated using the rabbitmq.fullname template
|
||||
##
|
||||
# name:
|
||||
|
||||
## Role Based Access
|
||||
## ref: https://kubernetes.io/docs/admin/authorization/rbac/
|
||||
##
|
||||
rbac:
|
||||
## Specifies whether RBAC rules should be created
|
||||
## binding MongoDB ServiceAccount to a role
|
||||
## that allows MongoDB pods querying the K8s API
|
||||
##
|
||||
create: false
|
||||
|
||||
## Init Container paramaters
|
||||
## Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each component
|
||||
## values from the securityContext section of the component
|
||||
##
|
||||
volumePermissions:
|
||||
enabled: false
|
||||
## Bitnami Minideb image
|
||||
## ref: https://hub.docker.com/r/bitnami/minideb/tags/
|
||||
##
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: bitnami/minideb
|
||||
tag: buster
|
||||
## Specify a imagePullPolicy
|
||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
||||
##
|
||||
pullPolicy: Always
|
||||
## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
## Example:
|
||||
## pullSecrets:
|
||||
## - myRegistryKeySecretName
|
||||
##
|
||||
pullSecrets: []
|
||||
## Init Container resource requests and limits
|
||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
##
|
||||
resources:
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
limits: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
requests: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
## Init container Security Context
|
||||
## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
|
||||
## and not the below volumePermissions.securityContext.runAsUser
|
||||
## When runAsUser is set to special value "auto", init container will try to chwon the
|
||||
## data folder to autodetermined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
|
||||
## "auto" is especially useful for OpenShift which has scc with dynamic userids (and 0 is not allowed).
|
||||
## You may want to use this volumePermissions.securityContext.runAsUser="auto" in combination with
|
||||
## podSecurityContext.enabled=false,containerSecurityContext.enabled=false and shmVolume.chmod.enabled=false
|
||||
##
|
||||
securityContext:
|
||||
runAsUser: 0
|
||||
|
||||
## Prometheus Exporter / Metrics
|
||||
##
|
||||
metrics:
|
||||
enabled: false
|
||||
## Bitnami MongoDB Promtheus Exporter image
|
||||
## ref: https://hub.docker.com/r/bitnami/mongodb-exporter/tags/
|
||||
##
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: bitnami/mongodb-exporter
|
||||
tag: 0.11.2-debian-10-r44
|
||||
pullPolicy: IfNotPresent
|
||||
## Optionally specify an array of imagePullSecrets.
|
||||
## Secrets must be manually created in the namespace.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
##
|
||||
# pullSecrets:
|
||||
# - myRegistryKeySecretName
|
||||
|
||||
## String with extra flags to the metrics exporter
|
||||
## ref: https://github.com/percona/mongodb_exporter/blob/master/mongodb_exporter.go
|
||||
##
|
||||
extraFlags: ""
|
||||
|
||||
## String with additional URI options to the metrics exporter
|
||||
## ref: https://docs.mongodb.com/manual/reference/connection-string
|
||||
##
|
||||
extraUri: ""
|
||||
|
||||
## Metrics exporter container resource requests and limits
|
||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
##
|
||||
resources:
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
limits: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
requests: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
## Prometheus Exporter service configuration
|
||||
##
|
||||
service:
|
||||
## Annotations for Prometheus Exporter pods. Evaluated as a template.
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
||||
##
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "{{ .Values.metrics.service.port }}"
|
||||
prometheus.io/path: "/metrics"
|
||||
type: ClusterIP
|
||||
port: 9216
|
||||
|
||||
## Metrics exporter liveness and readiness probes
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
|
||||
##
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 5
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 3
|
||||
successThreshold: 1
|
||||
readinessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
timeoutSeconds: 1
|
||||
failureThreshold: 3
|
||||
successThreshold: 1
|
||||
|
||||
## Prometheus Service Monitor
|
||||
## ref: https://github.com/coreos/prometheus-operator
|
||||
## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md
|
||||
##
|
||||
serviceMonitor:
|
||||
## If the operator is installed in your cluster, set to true to create a Service Monitor Entry
|
||||
enabled: false
|
||||
|
||||
## Specify the namespace where Prometheus Operator is running
|
||||
##
|
||||
# namespace: monitoring
|
||||
|
||||
## Specify the interval at which metrics should be scraped
|
||||
##
|
||||
interval: 30s
|
||||
## Specify the timeout after which the scrape is ended
|
||||
##
|
||||
# scrapeTimeout: 30s
|
||||
## Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with
|
||||
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
|
||||
##
|
||||
additionalLabels: {}
|
||||
|
||||
## Custom PrometheusRule to be defined
|
||||
## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
|
||||
##
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
additionalLabels: {}
|
||||
## Specify the namespace where Prometheus Operator is running
|
||||
##
|
||||
# namespace: monitoring
|
||||
|
||||
## Define individual alerting rules as required
|
||||
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#rulegroup
|
||||
## https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
|
||||
##
|
||||
## This is an example of a rule, you should add the below code block under the "rules" param, removing the brackets
|
||||
## - name: example
|
||||
## rules:
|
||||
## - alert: HighRequestLatency
|
||||
## expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
|
||||
## for: 10m
|
||||
## labels:
|
||||
## severity: page
|
||||
## annotations:
|
||||
## summary: High request latency
|
||||
##
|
||||
rules: {}
|
||||
7
charts/hub/regcred.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: regcred
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
data:
|
||||
.dockerconfigjson: xxxxkeytoberequestedxxx
|
||||
308
charts/hub/templates/kerberos-hub/hub-api.yaml
Normal file
@@ -0,0 +1,308 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hub-api-svc
|
||||
labels:
|
||||
app: hub-api-svc
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 80
|
||||
name: frontend
|
||||
protocol: TCP
|
||||
- port: 8081
|
||||
name: backend
|
||||
targetPort: 8081
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: hub-api
|
||||
---
|
||||
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ else }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{ end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: hub-api-ingress
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: {{ .Values.ingress }}
|
||||
{{- if eq .Values.ingress "nginx" }}
|
||||
kubernetes.io/tls-acme: "true"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.kerberoshub.api.tls }}
|
||||
tls:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.api.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-api-svc
|
||||
servicePort: 8081
|
||||
{{- if .Values.kerberoshub.api.legacyUrl }}
|
||||
- host: "{{ .Values.kerberoshub.api.legacyUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-api-svc
|
||||
servicePort: 8081
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.api.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-api-svc
|
||||
port:
|
||||
number: 8081
|
||||
{{- if .Values.kerberoshub.api.legacyUrl }}
|
||||
- host: "{{ .Values.kerberoshub.api.legacyUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-api-svc
|
||||
port:
|
||||
number: 8081
|
||||
{{- end }}
|
||||
- host: "admin.{{ .Values.kerberoshub.api.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-api-svc
|
||||
port:
|
||||
number: 80
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-api
|
||||
spec:
|
||||
replicas: {{ .Values.kerberoshub.api.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: hub-api
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: hub-api
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.kerberoshub.api.volumes }}
|
||||
volumes:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-api
|
||||
image: "{{ .Values.kerberoshub.api.repository }}:{{ .Values.kerberoshub.api.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.api.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 100Mi
|
||||
cpu: 50m
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: http
|
||||
{{- with .Values.kerberoshub.api.volumeMounts}}
|
||||
volumeMounts:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: READ_ONLY
|
||||
value: "{{ .Values.readonly }}"
|
||||
- name: CLOUD_API_URL
|
||||
value: "{{ .Values.kerberoshub.api.url }}"
|
||||
- name: API_URL
|
||||
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}"
|
||||
- name: PUBLIC_URL
|
||||
value: "{{ .Values.kerberoshub.frontend.schema }}://{{ .Values.kerberoshub.frontend.url }}"
|
||||
{{ if .Values.isPrivate }}
|
||||
- name: KERBEROS_PRIVATE_CLOUD
|
||||
value: "true"
|
||||
{{ else }}
|
||||
- name: KERBEROS_PRIVATE_CLOUD
|
||||
value: "false"
|
||||
{{ end }}
|
||||
- name: KERBEROS_LANGUAGE
|
||||
value: "{{ .Values.kerberoshub.api.language }}"
|
||||
- name: KERBEROS_FALLBACK_LANGUAGE
|
||||
value: "{{ .Values.kerberoshub.api.fallbackLanguage }}"
|
||||
- name: API_KEY
|
||||
value: "{{ .Values.kerberoshub.api.apiKey }}"
|
||||
|
||||
# Kerberos Hub
|
||||
- name: LICENSE_KEY
|
||||
value: "{{ .Values.license }}"
|
||||
- name: LICENSE_API_URL
|
||||
value: "{{ .Values.licenseServer.url }}"
|
||||
- name: LICENSE_PUBLIC_API_TOKEN
|
||||
value: "{{ .Values.licenseServer.token }}"
|
||||
|
||||
# Authorization - Authentication secret
|
||||
- name: KERBEROS_JWT_SECRET
|
||||
value: "{{ .Values.kerberoshub.api.jwtSecret }}"
|
||||
|
||||
# SSO (OIDC) setup
|
||||
- name: SSO_ISSUER
|
||||
value: "{{ .Values.kerberoshub.api.sso.issuer }}"
|
||||
- name: SSO_CLIENTID
|
||||
value: "{{ .Values.kerberoshub.api.sso.clientId }}"
|
||||
- name: SSO_CLIENTSECRET
|
||||
value: "{{ .Values.kerberoshub.api.sso.clientSecret }}"
|
||||
- name: SSO_REDIRECTURL
|
||||
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}{{ .Values.kerberoshub.api.sso.redirectUrl }}"
|
||||
|
||||
# Kerberos pipeline
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
- name: QUEUE_NAME
|
||||
value: "{{ .Values.queueName }}"
|
||||
|
||||
# Stripe for billing
|
||||
- name: STRIPE_KEY
|
||||
value: "{{ .Values.kerberoshub.api.stripe.privateKey }}"
|
||||
|
||||
# AWS (Legacy, use Kerberos Vault instead)
|
||||
- name: AWS_REGION
|
||||
value: "{{ .Values.kerberoshub.api.aws.region }}"
|
||||
- name: AWS_S3_BUCKET
|
||||
value: "{{ .Values.kerberoshub.api.aws.bucket }}"
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
value: "{{ .Values.kerberoshub.api.aws.accessKey }}"
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
value: "{{ .Values.kerberoshub.api.aws.secretKey }}"
|
||||
|
||||
# Kerberos Vault (Main instance, within Kerberos Hub you can assign additional Vaults to sites).
|
||||
- name: STORAGE_URI
|
||||
value: "{{ .Values.kerberosvault.uri }}"
|
||||
- name: STORAGE_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.accesskey }}"
|
||||
- name: STORAGE_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.secretkey }}"
|
||||
|
||||
# Kerberos Vault: archiving credentials. When creating a task, the underlying recording will be
|
||||
# copied to this storage provider, using the specific account credentials, for deletion/retention.
|
||||
- name: STORAGE_ARCHIVE_PROVIDER
|
||||
value: "{{ .Values.kerberosvault.archive.provider }}"
|
||||
- name: STORAGE_ARCHIVE_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.archive.accesskey }}"
|
||||
- name: STORAGE_ARCHIVE_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.archive.secretkey }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
|
||||
# Mongodb
|
||||
- name: MONGODB_DATABASE_CLOUD
|
||||
value: "Kerberos"
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Slack notifications (this will send events/logs to a specific channel).
|
||||
- name: SLACK_ENABLED
|
||||
value: "{{ .Values.kerberoshub.api.slack.enabled }}"
|
||||
- name: SLACK_HOOK
|
||||
value: "{{ .Values.kerberoshub.api.slack.hook }}"
|
||||
- name: SLACK_USERNAME
|
||||
value: "{{ .Values.kerberoshub.api.slack.username }}"
|
||||
|
||||
# Elastic search - Kibana
|
||||
- name: LOGGING_ELASTICSEARCH
|
||||
value: "{{ .Values.kerberoshub.api.elasticsearch.enabled }}"
|
||||
- name: LOGGING_ELASTICSEARCH_PROTOCOL
|
||||
value: "{{ .Values.kerberoshub.api.elasticsearch.protocol }}"
|
||||
- name: LOGGING_ELASTICSEARCH_HOST
|
||||
value: "{{ .Values.kerberoshub.api.elasticsearch.host }}"
|
||||
- name: LOGGING_ELASTICSEARCH_PORT
|
||||
value: "{{ .Values.kerberoshub.api.elasticsearch.port }}"
|
||||
- name: LOGGING_ELASTICSEARCH_INDEX
|
||||
value: "{{ .Values.kerberoshub.api.elasticsearch.index }}"
|
||||
- name: LOGGING_ELASTICSEARCH_USERNAME
|
||||
value: "{{ .Values.kerberoshub.api.elasticsearch.username }}"
|
||||
- name: LOGGING_ELASTICSEARCH_PASSWORD
|
||||
value: "{{ .Values.kerberoshub.api.elasticsearch.password }}"
|
||||
|
||||
# Mail settings
|
||||
- name: MAIL_PROVIDER
|
||||
value: "{{ .Values.email.provider }}"
|
||||
- name: EMAIL_FROM
|
||||
value: "{{ .Values.email.from }}"
|
||||
- name: EMAIL_FROM_DISPLAYNAME
|
||||
value: "{{ .Values.email.displayName }}"
|
||||
|
||||
# Mail templates
|
||||
- name: WELCOME_TEMPLATE
|
||||
value: "{{ .Values.email.templates.welcome }}"
|
||||
- name: WELCOME_TITLE
|
||||
value: "{{ .Values.email.templates.welcomeTitle }}"
|
||||
- name: ACTIVATE_TEMPLATE
|
||||
value: "{{ .Values.email.templates.activate }}"
|
||||
- name: ACTIVATE_TITLE
|
||||
value: "{{ .Values.email.templates.activateTitle }}"
|
||||
- name: FORGOT_TEMPLATE
|
||||
value: "{{ .Values.email.templates.forgot }}"
|
||||
- name: FORGOT_TITLE
|
||||
value: "{{ .Values.email.templates.forgotTitle }}"
|
||||
- name: SHARE_TEMPLATE
|
||||
value: "{{ .Values.email.templates.share }}"
|
||||
- name: SHARE_TITLE
|
||||
value: "{{ .Values.email.templates.shareTitle }}"
|
||||
|
||||
# SMTP
|
||||
- name: SMTP_SERVER
|
||||
value: "{{ .Values.email.smtp.server }}"
|
||||
- name: SMTP_PORT
|
||||
value: "{{ .Values.email.smtp.port }}"
|
||||
- name: SMTP_USERNAME
|
||||
value: "{{ .Values.email.smtp.username }}"
|
||||
- name: SMTP_PASSWORD
|
||||
value: "{{ .Values.email.smtp.password }}"
|
||||
|
||||
# Mailgun
|
||||
- name: MAILGUN_DOMAIN
|
||||
value: "{{ .Values.email.mailgun.domain }}"
|
||||
- name: MAILGUN_API_KEY
|
||||
value: "{{ .Values.email.mailgun.apikey }}"
|
||||
46
charts/hub/templates/kerberos-hub/hub-cleanup.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-cleanup
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: hub-cleanup
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: hub-cleanup
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-cleanup
|
||||
image: "{{ .Values.kerberoshub.cleanup.repository }}:{{ .Values.kerberoshub.cleanup.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.cleanup.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
- name: MAX_DAYS
|
||||
value: "30"
|
||||
- name: MONGODB_DATABASE_CLOUD
|
||||
value: "Kerberos"
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
201
charts/hub/templates/kerberos-hub/hub-frontend-demo.yaml
Normal file
@@ -0,0 +1,201 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hub-frontend-demo-svc
|
||||
labels:
|
||||
app: hub-frontend-demo-svc
|
||||
spec:
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
name: http
|
||||
selector:
|
||||
app: hub-frontend-demo
|
||||
---
|
||||
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ else }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{ end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: hub-frontend-demo-ingress
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: {{ .Values.ingress }}
|
||||
{{- if eq .Values.ingress "nginx" }}
|
||||
kubernetes.io/tls-acme: "true"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||
{{- end }}
|
||||
spec:
|
||||
|
||||
{{- with .Values.kerberoshub.frontend.demoTls }}
|
||||
tls:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.frontend.demoUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-demo-svc
|
||||
servicePort: 80
|
||||
{{- else }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.frontend.demoUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-frontend-demo-svc
|
||||
port:
|
||||
number: 80
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-frontend-demo
|
||||
spec:
|
||||
replicas: {{ .Values.kerberoshub.frontend.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: hub-frontend-demo
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: hub-frontend-demo
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.kerberoshub.frontend.volumes }}
|
||||
volumes:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-frontend-demo
|
||||
image: "{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.frontend.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: http
|
||||
{{- with .Values.kerberoshub.frontend.volumeMounts}}
|
||||
volumeMounts:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: SSO_DOMAIN
|
||||
value: "{{ .Values.kerberoshub.frontend.ssoDomain }}"
|
||||
- name: TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.title }}"
|
||||
- name: LOGO_NAME
|
||||
value: "{{ .Values.kerberoshub.frontend.logo }}"
|
||||
- name: API_URL
|
||||
value: "" # legacy
|
||||
- name: NEW_API_URL
|
||||
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}"
|
||||
{{ if .Values.isPrivate }}
|
||||
- name: PRIVATE_EDITION
|
||||
value: "true"
|
||||
{{ else }}
|
||||
- name: PRIVATE_EDITION
|
||||
value: "false"
|
||||
{{ end }}
|
||||
- name: PRODUCTION
|
||||
value: "true"
|
||||
- name: DEMO
|
||||
value: "true"
|
||||
|
||||
# Mqtt (VERNEMQ)
|
||||
- name: MQTT_PROTOCOL
|
||||
value: "{{ .Values.mqtt.protocol }}"
|
||||
- name: MQTT_SERVER
|
||||
value: "{{ .Values.mqtt.host }}"
|
||||
- name: MQTT_PORT
|
||||
value: "{{ .Values.mqtt.port }}"
|
||||
- name: MQTT_USERNAME
|
||||
value: "{{ .Values.mqtt.username }}"
|
||||
- name: MQTT_PASSWORD
|
||||
value: "{{ .Values.mqtt.password }}"
|
||||
|
||||
# Turn (Pion)
|
||||
- name: TURN_SERVER
|
||||
value: "{{ .Values.turn.host }}"
|
||||
- name: TURN_USERNAME
|
||||
value: "{{ .Values.turn.username }}"
|
||||
- name: TURN_PASSWORD
|
||||
value: "{{ .Values.turn.password }}"
|
||||
|
||||
# Mixpanel for monitoring
|
||||
- name: MIXPANEL_KEY
|
||||
value: "{{ .Values.kerberoshub.frontend.mixpanel.apikey }}"
|
||||
|
||||
# Sentry for fetching client side issues.
|
||||
- name: SENTRY_URL
|
||||
value: "{{ .Values.kerberoshub.frontend.sentry.url }}"
|
||||
|
||||
# PostHog credentials
|
||||
- name: POSTHOG_KEY
|
||||
value: "{{ .Values.kerberoshub.frontend.posthog.key }}"
|
||||
- name: POSTHOG_URL
|
||||
value: "{{ .Values.kerberoshub.frontend.posthog.url }}"
|
||||
|
||||
# Stripe for billing
|
||||
- name: STRIPE_KEY
|
||||
value: "{{ .Values.kerberoshub.frontend.stripe.publicKey }}"
|
||||
|
||||
# Google maps for using and displaying cameras, sites on a map
|
||||
- name: GOOGLEMAPS_KEY
|
||||
value: "{{ .Values.kerberoshub.frontend.googlemaps.apikey }}"
|
||||
|
||||
# Zendesk for support
|
||||
- name: ZENDESK_URL
|
||||
value: "{{ .Values.kerberoshub.frontend.zendesk.url }}"
|
||||
|
||||
# Titles and descriptions on pages
|
||||
- name: LOGIN_DESCRIPTION
|
||||
value: "{{ .Values.kerberoshub.frontend.loginDescription }}"
|
||||
- name: LOGIN_COPYRIGHT
|
||||
value: "{{ .Values.kerberoshub.frontend.loginCopyright }}"
|
||||
- name: PAGE_DASHBOARD_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.dashboardTitle }}"
|
||||
- name: PAGE_DASHBOARD_SUB_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.dashboardSubTitle }}"
|
||||
- name: PAGE_LATESTEVENTS_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.latestEventsTitle }}"
|
||||
- name: PAGE_LATESTEVENTS_SUB_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.latestEventsSubTitle }}"
|
||||
- name: PAGE_LIVESTREAM_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.livestreamTitle }}"
|
||||
- name: PAGE_LIVESTREAM_SUB_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.livestreamSubTitle }}"
|
||||
- name: PAGE_MEDIA_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.mediaTitle }}"
|
||||
- name: PAGE_MEDIA_SUB_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.mediaSubTitle }}"
|
||||
- name: PAGE_DASHBOARD_CPU_USAGE
|
||||
value: "{{ .Values.kerberoshub.frontend.cpuUsageDescription }}"
|
||||
- name: PAGE_DASHBOARD_FPS
|
||||
value: "{{ .Values.kerberoshub.frontend.framesPerSecondDescription }}"
|
||||
- name: PAGE_DASHBOARD_MLA
|
||||
value: "{{ .Values.kerberoshub.frontend.mlaUtilizationDescription }}"
|
||||
- name: PAGE_DASHBOARD_OBJECTS
|
||||
value: "{{ .Values.kerberoshub.frontend.objectsDetectedDescription }}"
|
||||
230
charts/hub/templates/kerberos-hub/hub-frontend.yaml
Normal file
@@ -0,0 +1,230 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hub-frontend-svc
|
||||
labels:
|
||||
app: hub-frontend-svc
|
||||
spec:
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
name: http
|
||||
selector:
|
||||
app: hub-frontend
|
||||
---
|
||||
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ else }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{ end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: hub-frontend-ingress
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: {{ .Values.ingress }}
|
||||
{{- if eq .Values.ingress "nginx" }}
|
||||
kubernetes.io/tls-acme: "true"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||
{{- end }}
|
||||
spec:
|
||||
|
||||
{{- with .Values.kerberoshub.frontend.tls }}
|
||||
tls:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.frontend.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-svc
|
||||
servicePort: 80
|
||||
{{- if .Values.kerberoshub.frontend.legacyUrl }}
|
||||
- host: "{{ .Values.kerberoshub.frontend.legacyUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-svc
|
||||
servicePort: 80
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.frontend.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-frontend-svc
|
||||
port:
|
||||
number: 80
|
||||
{{- if .Values.kerberoshub.frontend.legacyUrl }}
|
||||
- host: "{{ .Values.kerberoshub.frontend.legacyUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-frontend-svc
|
||||
port:
|
||||
number: 80
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-frontend
|
||||
spec:
|
||||
replicas: {{ .Values.kerberoshub.frontend.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: hub-frontend
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: hub-frontend
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.kerberoshub.frontend.volumes }}
|
||||
volumes:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-frontend
|
||||
image: "{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.frontend.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: http
|
||||
{{- with .Values.kerberoshub.frontend.volumeMounts}}
|
||||
volumeMounts:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: SSO_DOMAIN
|
||||
value: "{{ .Values.kerberoshub.frontend.ssoDomain }}"
|
||||
- name: TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.title }}"
|
||||
- name: LOGO_NAME
|
||||
value: "{{ .Values.kerberoshub.frontend.logo }}"
|
||||
- name: API_URL
|
||||
value: "" # legacy
|
||||
- name: NEW_API_URL
|
||||
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}"
|
||||
{{ if .Values.isPrivate }}
|
||||
- name: PRIVATE_EDITION
|
||||
value: "true"
|
||||
{{ else }}
|
||||
- name: PRIVATE_EDITION
|
||||
value: "false"
|
||||
{{ end }}
|
||||
- name: PRODUCTION
|
||||
value: "true"
|
||||
- name: DEMO
|
||||
value: "false"
|
||||
- name: MULTI_TENANT
|
||||
value: "{{ .Values.kerberoshub.frontend.multiTenant }}"
|
||||
- name: TENANT_BASE_DOMAIN
|
||||
value: "{{ .Values.kerberoshub.frontend.tenantBaseDomain }}"
|
||||
|
||||
# Mqtt (VERNEMQ)
|
||||
- name: MQTT_PROTOCOL
|
||||
value: "{{ .Values.mqtt.protocol }}"
|
||||
- name: MQTT_SERVER
|
||||
value: "{{ .Values.mqtt.host }}"
|
||||
- name: MQTT_PORT
|
||||
value: "{{ .Values.mqtt.port }}"
|
||||
- name: MQTT_USERNAME
|
||||
value: "{{ .Values.mqtt.username }}"
|
||||
- name: MQTT_PASSWORD
|
||||
value: "{{ .Values.mqtt.password }}"
|
||||
- name: MQTT_LEGACY_SERVER
|
||||
value: "{{ .Values.mqtt.legacy.host }}"
|
||||
- name: MQTT_LEGACY_PORT
|
||||
value: "{{ .Values.mqtt.legacy.port }}"
|
||||
|
||||
# Turn (Pion)
|
||||
- name: TURN_SERVER
|
||||
value: "{{ .Values.turn.host }}"
|
||||
- name: TURN_USERNAME
|
||||
value: "{{ .Values.turn.username }}"
|
||||
- name: TURN_PASSWORD
|
||||
value: "{{ .Values.turn.password }}"
|
||||
|
||||
# Mixpanel for monitoring
|
||||
- name: MIXPANEL_KEY
|
||||
value: "{{ .Values.kerberoshub.frontend.mixpanel.apikey }}"
|
||||
|
||||
# Sentry for fetching client side issues.
|
||||
- name: SENTRY_URL
|
||||
value: "{{ .Values.kerberoshub.frontend.sentry.url }}"
|
||||
|
||||
# PostHog credentials
|
||||
- name: POSTHOG_KEY
|
||||
value: "{{ .Values.kerberoshub.frontend.posthog.key }}"
|
||||
- name: POSTHOG_URL
|
||||
value: "{{ .Values.kerberoshub.frontend.posthog.url }}"
|
||||
|
||||
# Stripe for billing
|
||||
- name: STRIPE_KEY
|
||||
value: "{{ .Values.kerberoshub.frontend.stripe.publicKey }}"
|
||||
|
||||
# Google maps for using and displaying cameras, sites on a map
|
||||
- name: GOOGLEMAPS_KEY
|
||||
value: "{{ .Values.kerberoshub.frontend.googlemaps.apikey }}"
|
||||
|
||||
# Zendesk for support
|
||||
- name: ZENDESK_URL
|
||||
value: "{{ .Values.kerberoshub.frontend.zendesk.url }}"
|
||||
|
||||
# Titles and descriptions on pages
|
||||
- name: LOGIN_DESCRIPTION
|
||||
value: "{{ .Values.kerberoshub.frontend.loginDescription }}"
|
||||
- name: LOGIN_COPYRIGHT
|
||||
value: "{{ .Values.kerberoshub.frontend.loginCopyright }}"
|
||||
- name: PAGE_DASHBOARD_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.dashboardTitle }}"
|
||||
- name: PAGE_DASHBOARD_SUB_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.dashboardSubTitle }}"
|
||||
- name: PAGE_LATESTEVENTS_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.latestEventsTitle }}"
|
||||
- name: PAGE_LATESTEVENTS_SUB_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.latestEventsSubTitle }}"
|
||||
- name: PAGE_LIVESTREAM_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.livestreamTitle }}"
|
||||
- name: PAGE_LIVESTREAM_SUB_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.livestreamSubTitle }}"
|
||||
- name: PAGE_MEDIA_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.mediaTitle }}"
|
||||
- name: PAGE_MEDIA_SUB_TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.mediaSubTitle }}"
|
||||
- name: PAGE_DASHBOARD_CPU_USAGE
|
||||
value: "{{ .Values.kerberoshub.frontend.cpuUsageDescription }}"
|
||||
- name: PAGE_DASHBOARD_FPS
|
||||
value: "{{ .Values.kerberoshub.frontend.framesPerSecondDescription }}"
|
||||
- name: PAGE_DASHBOARD_MLA
|
||||
value: "{{ .Values.kerberoshub.frontend.mlaUtilizationDescription }}"
|
||||
- name: PAGE_DASHBOARD_OBJECTS
|
||||
value: "{{ .Values.kerberoshub.frontend.objectsDetectedDescription }}"
|
||||
66
charts/hub/templates/kerberos-hub/hub-monitor-device.yaml
Normal file
@@ -0,0 +1,66 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-monitor-device
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: hub-monitor-device
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: hub-monitor-device
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-monitor-device
|
||||
image: "{{ .Values.kerberoshub.monitordevice.repository }}:{{ .Values.kerberoshub.monitordevice.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.monitordevice.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
# Mongodb
|
||||
- name: MONGODB_DATABASE_CLOUD
|
||||
value: "Kerberos"
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Mail settings
|
||||
- name: MAIL_PROVIDER
|
||||
value: "{{ .Values.email.provider }}"
|
||||
- name: EMAIL_FROM
|
||||
value: "{{ .Values.email.from }}"
|
||||
- name: EMAIL_FROM_DISPLAYNAME
|
||||
value: "{{ .Values.email.displayName }}"
|
||||
|
||||
# Mail templates
|
||||
- name: DEVICE_TEMPLATE
|
||||
value: "{{ .Values.email.templates.device }}"
|
||||
|
||||
# - Plain SMTP
|
||||
- name: SMTP_SERVER
|
||||
value: "{{ .Values.email.smtp.server }}"
|
||||
- name: SMTP_PORT
|
||||
value: "{{ .Values.email.smtp.port }}"
|
||||
- name: SMTP_USERNAME
|
||||
value: "{{ .Values.email.smtp.username }}"
|
||||
- name: SMTP_PASSWORD
|
||||
value: "{{ .Values.email.smtp.password }}"
|
||||
@@ -0,0 +1,39 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-reactivate-subscription
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: hub-reactivate-subscription
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: hub-reactivate-subscription
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
containers:
|
||||
- name: hub-reactivate-subscription
|
||||
image: "{{ .Values.kerberoshub.reactivate.repository }}:{{ .Values.kerberoshub.reactivate.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.reactivate.pullPolicy }}
|
||||
env:
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
value: "{{ .Values.kerberoshub.api.aws.accessKey }}"
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
value: "{{ .Values.kerberoshub.api.aws.secretKey }}"
|
||||
67
charts/hub/templates/kerberos-pipeline/pipe-analysis.yaml
Normal file
@@ -0,0 +1,67 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-analysis
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-analysis
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-analysis
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-analysis
|
||||
image: "{{ .Values.kerberospipeline.analysis.repository }}:{{ .Values.kerberospipeline.analysis.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.analysis.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
- name: CLOUD_PROVIDER
|
||||
value: "{{ .Values.cloudProvider }}"
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
|
||||
# Kerberos Vault
|
||||
- name: KERBEROS_STORAGE_URI
|
||||
value: "{{ .Values.kerberosvault.uri }}"
|
||||
- name: KERBEROS_STORAGE_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.accesskey }}"
|
||||
- name: KERBEROS_STORAGE_SECRET
|
||||
value: "{{ .Values.kerberosvault.secretkey }}"
|
||||
49
charts/hub/templates/kerberos-pipeline/pipe-counting.yaml
Normal file
@@ -0,0 +1,49 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-counting
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-counting
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-counting
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-counting
|
||||
image: "{{ .Values.kerberospipeline.counting.repository }}:{{ .Values.kerberospipeline.counting.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.counting.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
- name: CLOUD_PROVIDER
|
||||
value: "{{ .Values.cloudProvider }}"
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
@@ -0,0 +1,49 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-dominantcolor
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-dominantcolor
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-dominantcolor
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-dominantcolor
|
||||
image: "{{ .Values.kerberospipeline.dominantColor.repository }}:{{ .Values.kerberospipeline.dominantColor.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.dominantColor.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
- name: CLOUD_PROVIDER
|
||||
value: "{{ .Values.cloudProvider }}"
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
59
charts/hub/templates/kerberos-pipeline/pipe-event.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-event
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-event
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-event
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-event
|
||||
image: "{{ .Values.kerberospipeline.event.repository }}:{{ .Values.kerberospipeline.event.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.event.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
- name: CLOUD_PROVIDER
|
||||
value: "{{ .Values.cloudProvider }}"
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
82
charts/hub/templates/kerberos-pipeline/pipe-monitor.yaml
Normal file
@@ -0,0 +1,82 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-monitor
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-monitor
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-monitor
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-monitor
|
||||
image: "{{ .Values.kerberospipeline.monitor.repository }}:{{ .Values.kerberospipeline.monitor.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.monitor.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
# Database
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Queue
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
|
||||
# Mail settings
|
||||
- name: MAIL_PROVIDER
|
||||
value: "{{ .Values.email.provider }}"
|
||||
- name: EMAIL_FROM
|
||||
value: "{{ .Values.email.from }}"
|
||||
- name: EMAIL_FROM_DISPLAYNAME
|
||||
value: "{{ .Values.email.displayName }}"
|
||||
|
||||
# Mail templates
|
||||
- name: DISABLED_TEMPLATE
|
||||
value: "{{ .Values.email.templates.disabled }}"
|
||||
- name: HIGHUPLOAD_TEMPLATE
|
||||
value: "{{ .Values.email.templates.highupload }}"
|
||||
|
||||
# SMTP
|
||||
- name: SMTP_SERVER
|
||||
value: "{{ .Values.email.smtp.server }}"
|
||||
- name: SMTP_PORT
|
||||
value: "{{ .Values.email.smtp.port }}"
|
||||
- name: SMTP_USERNAME
|
||||
value: "{{ .Values.email.smtp.username }}"
|
||||
- name: SMTP_PASSWORD
|
||||
value: "{{ .Values.email.smtp.password }}"
|
||||
95
charts/hub/templates/kerberos-pipeline/pipe-notify-test.yaml
Normal file
@@ -0,0 +1,95 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-notify-test
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-notify-test
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-notify-test
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.kerberospipeline.notifyTest.volumes }}
|
||||
volumes:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-notify-test
|
||||
image: "{{ .Values.kerberospipeline.notifyTest.repository }}:{{ .Values.kerberospipeline.notifyTest.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.notifyTest.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
{{- with .Values.kerberospipeline.notifyTest.volumeMounts}}
|
||||
volumeMounts:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Kerberos Vault
|
||||
- name: STORAGE_URI
|
||||
value: "{{ .Values.kerberosvault.uri }}"
|
||||
- name: STORAGE_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.accesskey }}"
|
||||
- name: STORAGE_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.secretkey }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
|
||||
# Mail settings
|
||||
- name: MAIL_PROVIDER
|
||||
value: "{{ .Values.email.provider }}"
|
||||
- name: EMAIL_FROM
|
||||
value: "{{ .Values.email.from }}"
|
||||
- name: EMAIL_FROM_DISPLAYNAME
|
||||
value: "{{ .Values.email.displayName }}"
|
||||
|
||||
# Mail templates
|
||||
- name: DETECT_TEMPLATE
|
||||
value: "{{ .Values.email.templates.detection }}"
|
||||
|
||||
# SMTP
|
||||
- name: SMTP_SERVER
|
||||
value: "{{ .Values.email.smtp.server }}"
|
||||
- name: SMTP_PORT
|
||||
value: "{{ .Values.email.smtp.port }}"
|
||||
- name: SMTP_USERNAME
|
||||
value: "{{ .Values.email.smtp.username }}"
|
||||
- name: SMTP_PASSWORD
|
||||
value: "{{ .Values.email.smtp.password }}"
|
||||
103
charts/hub/templates/kerberos-pipeline/pipe-notify.yaml
Normal file
@@ -0,0 +1,103 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-notify
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-notify
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-notify
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.kerberospipeline.notify.volumes }}
|
||||
volumes:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-notify
|
||||
image: "{{ .Values.kerberospipeline.notify.repository }}:{{ .Values.kerberospipeline.notify.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.notify.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
{{- with .Values.kerberospipeline.notify.volumeMounts}}
|
||||
volumeMounts:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
- name: MAIL_PROVIDER
|
||||
value: "{{ .Values.email.provider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
|
||||
# Kerberos Vault
|
||||
- name: STORAGE_URI
|
||||
value: "{{ .Values.kerberosvault.uri }}"
|
||||
- name: STORAGE_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.accesskey }}"
|
||||
- name: STORAGE_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.secretkey }}"
|
||||
|
||||
# Mail settings
|
||||
- name: MAIL_PROVIDER
|
||||
value: "{{ .Values.email.provider }}"
|
||||
- name: EMAIL_FROM
|
||||
value: "{{ .Values.email.from }}"
|
||||
- name: EMAIL_FROM_DISPLAYNAME
|
||||
value: "{{ .Values.email.displayName }}"
|
||||
|
||||
# Mail templates
|
||||
- name: DETECT_TEMPLATE
|
||||
value: "{{ .Values.email.templates.detection }}"
|
||||
|
||||
# SMTP
|
||||
- name: SMTP_SERVER
|
||||
value: "{{ .Values.email.smtp.server }}"
|
||||
- name: SMTP_PORT
|
||||
value: "{{ .Values.email.smtp.port }}"
|
||||
- name: SMTP_USERNAME
|
||||
value: "{{ .Values.email.smtp.username }}"
|
||||
- name: SMTP_PASSWORD
|
||||
value: "{{ .Values.email.smtp.password }}"
|
||||
|
||||
# Mailgun
|
||||
- name: MAILGUN_DOMAIN
|
||||
value: "{{ .Values.email.mailgun.domain }}"
|
||||
- name: MAILGUN_API_KEY
|
||||
value: "{{ .Values.email.mailgun.apikey }}"
|
||||
59
charts/hub/templates/kerberos-pipeline/pipe-sequence.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-sequence
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-sequence
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-sequence
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-sequence
|
||||
image: "{{ .Values.kerberospipeline.sequence.repository }}:{{ .Values.kerberospipeline.sequence.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.sequence.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
- name: CLOUD_PROVIDER
|
||||
value: "{{ .Values.cloudProvider }}"
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
59
charts/hub/templates/kerberos-pipeline/pipe-throttler.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-throttler
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-throttler
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-throttler
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-throttler
|
||||
image: "{{ .Values.kerberospipeline.throttler.repository }}:{{ .Values.kerberospipeline.throttler.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.throttler.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
- name: CLOUD_PROVIDER
|
||||
value: "{{ .Values.cloudProvider }}"
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
49
charts/hub/templates/kerberos-pipeline/pipe-thumbnail.yaml
Normal file
@@ -0,0 +1,49 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-thumbnail
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-thumbnail
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-thumbnail
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-thumbnail
|
||||
image: "{{ .Values.kerberospipeline.thumbnail.repository }}:{{ .Values.kerberospipeline.thumbnail.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.thumbnail.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
- name: CLOUD_PROVIDER
|
||||
value: "{{ .Values.cloudProvider }}"
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
56
charts/hub/templates/kerberos-vault/vault-forwarder.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: vault-forwarder
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: vault-forwarder
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: vault-forwarder
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: vault-forwarder
|
||||
image: "{{ .Values.kerberoshub.forwarder.repository }}:{{ .Values.kerberoshub.forwarder.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.forwarder.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
env:
|
||||
- name: ITERATION_SPEED
|
||||
value: "5"
|
||||
- name: BUFFER_TIME
|
||||
value: "3"
|
||||
# Mongodb
|
||||
- name: MONGODB_DATABASE_CLOUD
|
||||
value: "Kerberos"
|
||||
- name: MONGODB_HOST
|
||||
value: "{{ .Values.mongodb.host }}"
|
||||
- name: MONGODB_DATABASE_CREDENTIALS
|
||||
value: "{{ .Values.mongodb.adminDatabase }}"
|
||||
- name: MONGODB_USERNAME
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Mqtt (VERNEMQ)
|
||||
- name: MQTT_URI
|
||||
value: "{{ .Values.mqtt.host }}"
|
||||
- name: MQTT_USERNAME
|
||||
value: "{{ .Values.mqtt.username }}"
|
||||
- name: MQTT_PASSWORD
|
||||
value: "{{ .Values.mqtt.password }}"
|
||||
58
charts/hub/templates/kerberos-vault/vault-proxy.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: vault-proxy
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app: vault-proxy
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: vault-proxy
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
containers:
|
||||
- name: vault-proxy
|
||||
image: "{{ .Values.kerberoshub.proxy.repository }}:{{ .Values.kerberoshub.proxy.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.proxy.pullPolicy }}
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
env:
|
||||
# Kerberos Hub API
|
||||
- name: KERBEROS_API_CHECK_SUBSCRIPTION
|
||||
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}/user/has-subscription"
|
||||
# Kerberos Vault
|
||||
- name: KSTORAGE_URI
|
||||
value: "{{ .Values.kerberosvault.uri }}/storage"
|
||||
- name: KSTORAGE_ACCESSKEY
|
||||
value: "{{ .Values.kerberosvault.accesskey }}"
|
||||
- name: KSTORAGE_SECRET
|
||||
value: "{{ .Values.kerberosvault.secretkey }}"
|
||||
- name: KSTORAGE_PROVIDER
|
||||
value: "{{ .Values.kerberosvault.provider }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: vault-proxy-svc
|
||||
labels:
|
||||
app: vault-proxy-svc
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
name: http
|
||||
selector:
|
||||
app: vault-proxy
|
||||
24
charts/hub/traefik/values-ssl.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
dashboard:
|
||||
enabled: true
|
||||
domain: yourdomain.com
|
||||
serviceType: NodePort
|
||||
rbac:
|
||||
enabled: true
|
||||
ssl:
|
||||
enabled: true
|
||||
enforced: true
|
||||
permanentRedirect: true
|
||||
acme:
|
||||
enabled: true
|
||||
challengeType: "dns-01"
|
||||
email: ...
|
||||
caServer: https://acme-v02.api.letsencrypt.org/directory
|
||||
domains:
|
||||
enabled: true
|
||||
domainsList:
|
||||
- main: "*.yourdomain.com"
|
||||
dnsProvider:
|
||||
name: cloudflare
|
||||
cloudflare:
|
||||
CLOUDFLARE_EMAIL: youremail
|
||||
CLOUDFLARE_API_KEY: yourpassword
|
||||
345
charts/hub/values.yaml
Normal file
@@ -0,0 +1,345 @@
|
||||
# Default values for kerberoshub.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
###########################################################################
|
||||
# LICENSING information: you will need both a license to run Kerberos Hub,
|
||||
# and a Registry Key to pull the Kerberos Hub docker images from our private Gitlab repository.
|
||||
# ----
|
||||
# Get your license from support@kerberos.io
|
||||
license: "---ENTER-YOUR-LICENSE-HERE---"
|
||||
licenseServer:
|
||||
url: "https://license.kerberos.io/verify"
|
||||
token: "214%ˆ#ddfsf@#3rfdsgl_)23sffeqasSwefDSFNBM" # do not change otherwise Kerberos Hub will not work.
|
||||
# The registry secret to be able to download all the Docker images.
|
||||
# Needs to be delivered after license purchase.
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
|
||||
# Set to 'true' if this is a private deployment.
|
||||
isPrivate: true
|
||||
|
||||
# If you plan a migration or doing maintenance, you can enable readonly.
|
||||
# This will stop any write process to mongodb or any processing done in the Kerberos Hub pipeline.
|
||||
readOnly: false
|
||||
|
||||
# Which network ingress you are using in your Kubernetes Cluster
|
||||
ingress: "nginx" # or "traefik"
|
||||
|
||||
# A mongodb instance is required to store all the relevant metadata.
|
||||
mongodb:
|
||||
host: mongodb.mongodb.svc.cluster.local
|
||||
#host: "mongodb-0.mongodb-headless.mongodb:27017,mongodb-1.mongodb-headless.mongodb:27017"
|
||||
adminDatabase: admin
|
||||
username: yourusername
|
||||
password: "yourpassword"
|
||||
|
||||
# A MQTT broker (vernemq) is used to have a bi-directional
|
||||
# communication between enterprise agents and kerberos hub.
|
||||
mqtt:
|
||||
host: "mqtt.yourdomain.com"
|
||||
port: "8443"
|
||||
protocol: "wss"
|
||||
username: "yourusername"
|
||||
password: "yourpassword"
|
||||
legacy:
|
||||
host: ""
|
||||
port: ""
|
||||
|
||||
# We are using a pipeline that is orchestrated through Kafka topics
|
||||
# Events are send back and forth until the processing is done.
|
||||
queueProvider: "KAFKA"
|
||||
queueName: "kcloud-event-queue" # This is the topic to which all events are send.
|
||||
kafka:
|
||||
broker: "kafka1.yourdomain.com:9094,kafka2.yourdomain.com:9094"
|
||||
username: "yourusername"
|
||||
password: "yourpassword"
|
||||
mechanism: "PLAIN"
|
||||
security: "SASL_PLAINTEXT"
|
||||
|
||||
# For allowing WEBRTC a STUN and TURN server is required.
|
||||
turn:
|
||||
host: "turn:turn.yourdomain.com:8443"
|
||||
username: "username1"
|
||||
password: "password1"
|
||||
|
||||
# We have a kerberos vault component installed which contains all the
|
||||
# recordings. Kerberos vault is queried to retrieve the recordings
|
||||
# from the appropriate provider.
|
||||
kerberosvault:
|
||||
uri: "https://api.storage.yourdomain.com"
|
||||
accesskey: "xxx"
|
||||
secretkey: "xxx"
|
||||
provider: "a-provider"
|
||||
|
||||
# Archiving is used when creating a task. The underlying recording of the task will be copied from its
|
||||
# existing provider to the below archived provider. Seperate credentials are used, as it makes possible to
|
||||
# specify another retention period.
|
||||
archive:
|
||||
accesskey: "xxx"
|
||||
secretkey: "xxx"
|
||||
provider: "an-archive-provider"
|
||||
|
||||
email:
|
||||
provider: "mailgun"
|
||||
from: "support@yourdomain.com"
|
||||
displayName: "yourdomain.com"
|
||||
mailgun:
|
||||
domain: "mg.yourdomain.com"
|
||||
apikey: "xxxx"
|
||||
smtp:
|
||||
server: "smtp.yourdomain.com"
|
||||
port: "465"
|
||||
username: "yourusername"
|
||||
password: "yourpassword"
|
||||
templates:
|
||||
welcome: "welcome"
|
||||
welcomeTitle: "Welcome to Kerberos Hub"
|
||||
activate: "activate"
|
||||
activateTitle: "Wonderful! Your Kerberos Hub is now active"
|
||||
forgot: "forgot"
|
||||
forgotTitle: "Password reset Kerberos Hub. You forgot your password"
|
||||
share: "share"
|
||||
shareTitle: "[Action] You received a recording from Kerberos Hub"
|
||||
detection: "detection"
|
||||
disabled: "disabled"
|
||||
highupload: "highupload"
|
||||
device: "device"
|
||||
|
||||
# Following are all the different deployments needed to make
|
||||
# Kerberos hub properly working.
|
||||
|
||||
kerberoshub:
|
||||
api:
|
||||
repository: registry.gitlab.com/kerberos-io/kerberos-cloud-api
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.561814049"
|
||||
replicas: 2
|
||||
jwtSecret: "this-is-a-secret-please-change-to-random-string" # change to a random value, this is for generating JWT tokens.
|
||||
schema: "https"
|
||||
url: "api.yourdomain.com"
|
||||
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
# mountPath: /mail
|
||||
#volumes:
|
||||
# - name: custom-email-templates
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
|
||||
# When migrating to another url, this might help migrating.
|
||||
#legacyUrl: "api.legacy.yourdomain.com"
|
||||
|
||||
# Admin API's are made available for automation of Kerberos Hub.
|
||||
# To access those API's (e.g. creation of owner users), an API key needs to be provided.
|
||||
apiKey: "a-random-admin-api-key"
|
||||
tls:
|
||||
- hosts:
|
||||
- "api.yourdomain.com"
|
||||
secretName: kerberoshub-api
|
||||
#- hosts:
|
||||
# - "api.legacy.yourdomain.com"
|
||||
# secretName: kerberoshub-api-legacy
|
||||
- hosts:
|
||||
- "admin.api.yourdomain.com"
|
||||
secretName: kerberoshub-admin
|
||||
language: "english"
|
||||
fallbackLanguage: "english"
|
||||
# Legacy (reseller) it is possible to link to AWS S3 and IAM (however Kerberos Vault is now the recommended option).
|
||||
# This is primarily used for creation of subscriptions, and not needed if you are using mainly Kerberos Vault.
|
||||
aws:
|
||||
region: "xxx"
|
||||
bucket: "xxx"
|
||||
accessKey: "xxx"
|
||||
secretKey: "xxx"
|
||||
stripe: # We use stripe for billing, so it's possible to resell Kerberos Hub if agreed.
|
||||
privateKey: "xxx"
|
||||
slack: # Slack is used in the api, to send logs to a specific Slack channel.
|
||||
enabled: "true"
|
||||
hook: "yourslackhook" # https://hooks.slack.com/services/T08Q2Q9V5/xxKT/JALxxAk26bHtuqTfZ
|
||||
username: "Kerberos Hub" # The slack username
|
||||
elasticsearch: # Logs of the kerberos hub will be send to an elastic search cluster.
|
||||
enabled: "true"
|
||||
protocol: "http"
|
||||
host: "yourelasticsearchinstance.com"
|
||||
port: "9200"
|
||||
index: "kerberos-cloud"
|
||||
username: ""
|
||||
password: ""
|
||||
sso: # OIDC settings for allowing SSO.
|
||||
issuer: "" #"https://accounts.google.com"
|
||||
clientId: "" # 4294xxxxsk4no3.apps.googleusercontent.com"
|
||||
clientSecret: "" # UksvZ-QKGdB1W2mOu5l_Jg3R"
|
||||
redirectUrl: "/sso/response"
|
||||
frontend:
|
||||
repository: registry.gitlab.com/kerberos-io/kerberos-cloud-ng
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.562012749"
|
||||
replicas: 2
|
||||
schema: "https"
|
||||
url: "yourdomain.com"
|
||||
# The front-end but in read-only mode
|
||||
#demoUrl: "demo.yourdomain.com"
|
||||
# When migrating to another url, this might help migrating.
|
||||
#legacyUrl: "legacy.yourdomain.com"
|
||||
|
||||
tls:
|
||||
- hosts:
|
||||
- "yourdomain.com"
|
||||
secretName: kerberoshub
|
||||
#- hosts:
|
||||
# - "legacy.yourdomain.com"
|
||||
# secretName: kerberoshub-legacy
|
||||
#demoTls:
|
||||
# - hosts:
|
||||
# - "demo.yourdomain.com"
|
||||
# secretName: kerberoshub-demo
|
||||
ssoDomain: "@yourdomain.com"
|
||||
mixpanel: # We can keep track logging in Mixpanel as well
|
||||
apikey: "xxx"
|
||||
sentry: # We can trace errors in Sentry
|
||||
url: "https://xxx@sentry.io/xxx"
|
||||
stripe: # We use stripe for billing, so it's possible to resell Kerberos Hub if agreed.
|
||||
publicKey: ""
|
||||
googlemaps: # Google maps is used inside the application to visualise cameras and sites.
|
||||
apikey: "xxxx"
|
||||
zendesk: # We can use different support tools, for now we use Zendesk but others can be integrated
|
||||
url: "yourdomain.zendesk.com"
|
||||
posthog: # Posthog is used for auditing and user interaction logging
|
||||
key: "xxx"
|
||||
url: "https://posthog.domain.com"
|
||||
|
||||
# Multi tenancy (domains)
|
||||
# By default the Kerberos Hub allows multi-tenancy through the concept
|
||||
# of accounts and subaccounts. However through the concept of domains, you
|
||||
# take it a step further. Within a domain, user accounts are unique, and are prefixed by a (domain\).
|
||||
#multiTenant: true
|
||||
#tenantBaseDomain: "yourdomain.com" # this would resolve in following sub domain "https://domain.kerberos.io"
|
||||
|
||||
# Page title (browser)
|
||||
title: "Kerberos Hub - Video surveillance as it should be"
|
||||
|
||||
# You can style Kerberos hub as you wish.
|
||||
# 1. we do the styling on our side and bake it in the Docker image (change the logo attribute to your company name)
|
||||
# 2. you bring your own logo (set logo to 'custom'), and mount the css file and favicons.
|
||||
# we will need to include your logo in the Docker image, so please reach out to us.
|
||||
logo: "custom"
|
||||
# Custom layout: override css
|
||||
# By providing a style.css file in the custom folder
|
||||
# this file will override any css styling.
|
||||
#volumeMounts:
|
||||
# - name: custom-layout
|
||||
# mountPath: /usr/share/nginx/html/assets/custom
|
||||
# - name: custom-favicon
|
||||
# mountPath: /usr/share/nginx/html/assets/favicon
|
||||
#volumes:
|
||||
# - name: custom-layout
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
# - name: custom-favicon
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-favicon-claim
|
||||
|
||||
# By specifying the below environments variables, you can tweak the
|
||||
# headings and paragraphs of Kerberos Hub.
|
||||
# Login page
|
||||
loginDescription: ""
|
||||
loginCopyright: ""
|
||||
# Dashboard page
|
||||
dashboardTitle: ""
|
||||
dashboardSubTitle: ""
|
||||
# Latest events page
|
||||
latestEventsTitle: ""
|
||||
latestEventsSubTitle: ""
|
||||
# Livestream/view page
|
||||
livestreamTitle: ""
|
||||
livestreamSubTitle: ""
|
||||
# Media page
|
||||
mediaTitle: ""
|
||||
mediaSubTitle: ""
|
||||
# Optional - for custom page.
|
||||
cpuUsageDescription: ""
|
||||
framesPerSecondDescription: ""
|
||||
mlaUtilizationDescription: ""
|
||||
objectsDetectedDescription: ""
|
||||
|
||||
cleanup:
|
||||
repository: registry.gitlab.com/kerberos-io/kerberos-cloud-cleanup
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2547054620"
|
||||
forwarder:
|
||||
repository: registry.gitlab.com/kerberos-io/vault-forwarder
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.1613962421"
|
||||
monitordevice:
|
||||
repository: registry.gitlab.com/kerberos-io/kerberos-monitor-device
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.1919848645"
|
||||
reactivate:
|
||||
repository: registry.gitlab.com/kerberos-io/kerberos-reactivate
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2041756405"
|
||||
# This proxy is legacy for the old agent, will be migrated in the new Hub API.
|
||||
proxy:
|
||||
repository: registry.gitlab.com/kerberos-io/kerberos-cloud-proxy
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2041838648"
|
||||
|
||||
kerberospipeline:
|
||||
event:
|
||||
repository: registry.gitlab.com/kerberos-io/kcloud-event-queue
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.766190255"
|
||||
monitor:
|
||||
repository: registry.gitlab.com/kerberos-io/kcloud-monitor-queue
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2040627860"
|
||||
sequence:
|
||||
repository: registry.gitlab.com/kerberos-io/kcloud-sequence-queue
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2314347527"
|
||||
throttler:
|
||||
repository: registry.gitlab.com/kerberos-io/kcloud-throttler-queue
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.1613950978"
|
||||
notify:
|
||||
repository: registry.gitlab.com/kerberos-io/kcloud-notify-queue
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2577548836"
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
# mountPath: /mail
|
||||
#volumes:
|
||||
# - name: custom-email-templates
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
notifyTest:
|
||||
repository: registry.gitlab.com/kerberos-io/kcloud-notify-test-queue
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2552881172"
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
# mountPath: /mail
|
||||
#volumes:
|
||||
# - name: custom-email-templates
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
analysis:
|
||||
repository: registry.gitlab.com/kerberos-io/kcloud-analysis-queue
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2487163772"
|
||||
dominantColor:
|
||||
repository: registry.gitlab.com/kerberos-io/kcloud-dominantcolor-queue
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.906298340"
|
||||
thumbnail:
|
||||
repository: registry.gitlab.com/kerberos-io/kcloud-thumbnail-queue
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.1294067330"
|
||||
counting:
|
||||
repository: kerberos/hub-pipe-counting
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2488400759"
|
||||
243
charts/hub/vernemq/values.yaml
Normal file
@@ -0,0 +1,243 @@
|
||||
# Default values for vernemq.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: vernemq/vernemq
|
||||
tag: 1.12.3-alpine
|
||||
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
serviceMonitor:
|
||||
create: false
|
||||
labels: {}
|
||||
|
||||
service:
|
||||
# Can be disabled if more advanced use cases require more complex setups, e.g., combining LoadBalancer and ClusterIP for internal and external access. See also issue #274.
|
||||
enabled: true
|
||||
# NodePort - Listen to a port on nodes and forward to the service.
|
||||
# ClusterIP - Listen on the service internal to the cluster only.
|
||||
# LoadBalancer - Create a LoadBalancer in the cloud provider and forward to the service.
|
||||
type: LoadBalancer
|
||||
# clusterIP: 10.1.2.4
|
||||
# externalIPs: []
|
||||
# loadBalancerIP: 10.1.2.4
|
||||
# loadBalancerSourceRanges: []
|
||||
# externalTrafficPolicy: Local
|
||||
# sessionAffinity: None
|
||||
# sessionAffinityConfig: {}
|
||||
mqtt:
|
||||
enabled: true
|
||||
port: 1883
|
||||
# This is the port used by nodes to expose the service
|
||||
nodePort: 1883
|
||||
mqtts:
|
||||
enabled: true
|
||||
port: 8883
|
||||
# This is the port used by nodes to expose the service
|
||||
nodePort: 8883
|
||||
ws:
|
||||
enabled: true
|
||||
port: 8080
|
||||
# This is the port used by nodes to expose the service
|
||||
nodePort: 8080
|
||||
wss:
|
||||
enabled: true
|
||||
port: 8443
|
||||
# This is the port used by nodes to expose the service
|
||||
nodePort: 8443
|
||||
annotations: {}
|
||||
labels: {}
|
||||
|
||||
## Ingress can optionally be applied when enabling the MQTT websocket service
|
||||
## This allows for an ingress controller to route web ports and arbitrary hostnames
|
||||
## and paths to the websocket service as well as allow the controller to handle TLS
|
||||
## termination for the websocket traffic. Ingress is only possible for traffic exchanged
|
||||
## over HTTP, so ONLY the websocket service take advantage of ingress.
|
||||
ingress:
|
||||
className: ""
|
||||
enabled: false
|
||||
|
||||
labels: {}
|
||||
|
||||
annotations: {}
|
||||
|
||||
## Hosts must be provided if ingress is enabled.
|
||||
##
|
||||
hosts: []
|
||||
# - vernemq.domain.com
|
||||
|
||||
## Paths to use for ingress rules.
|
||||
##
|
||||
paths:
|
||||
- path: /
|
||||
pathType: ImplementationSpecific
|
||||
|
||||
|
||||
## TLS configuration for ingress
|
||||
## Secret must be manually created in the namespace
|
||||
##
|
||||
tls: []
|
||||
# - secretName: vernemq-tls
|
||||
# hosts:
|
||||
# - vernemq.domain.com
|
||||
|
||||
## VerneMQ resources requests and limits
|
||||
## Ref: http://kubernetes.io/docs/user-guide/compute-resources
|
||||
resources: {}
|
||||
## We usually recommend not to specify default resources and to leave this as a conscious
|
||||
## choice for the user. This also increases chances charts run on environments with little
|
||||
## resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
# limits:
|
||||
# cpu: 1
|
||||
# memory: 256Mi
|
||||
# requests:
|
||||
# cpu: 1
|
||||
# memory: 256Mi
|
||||
|
||||
## Node labels for pod assignment
|
||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
|
||||
nodeSelector: {}
|
||||
|
||||
## Node tolerations for pod assignment
|
||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
|
||||
tolerations: []
|
||||
|
||||
## Pod affinity
|
||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
podAntiAffinity: soft
|
||||
|
||||
securityContext:
|
||||
runAsUser: 10000
|
||||
runAsGroup: 10000
|
||||
fsGroup: 10000
|
||||
|
||||
## If RBAC is enabled on the cluster,VerneMQ needs a service account
|
||||
## with permissisions sufficient to list pods
|
||||
rbac:
|
||||
create: true
|
||||
serviceAccount:
|
||||
create: true
|
||||
## Service account name to be used.
|
||||
## If not set and serviceAccount.create is true a name is generated using the fullname template.
|
||||
# name:
|
||||
|
||||
persistentVolume:
|
||||
## If true, VerneMQ will create/use a Persistent Volume Claim
|
||||
## If false, use local directory
|
||||
enabled: false
|
||||
|
||||
## VerneMQ data Persistent Volume access modes
|
||||
## Must match those of existing PV or dynamic provisioner
|
||||
## Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
|
||||
## VerneMQ data Persistent Volume size
|
||||
size: 5Gi
|
||||
|
||||
## VerneMQ data Persistent Volume Storage Class
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
# storageClass: ""
|
||||
|
||||
## Annotations for Persistent Volume Claim
|
||||
annotations: {}
|
||||
|
||||
extraVolumeMounts: []
|
||||
## Additional volumeMounts to the pod.
|
||||
# - name: additional-volume-mount
|
||||
# mountPath: /var/additional-volume-path
|
||||
|
||||
extraVolumes: []
|
||||
## Additional volumes to the pod.
|
||||
# - name: additional-volume
|
||||
# emptyDir: {}
|
||||
|
||||
# A list of secrets and their paths to mount inside the pod
|
||||
# This is useful for mounting certificates for security (tls)
|
||||
secretMounts:
|
||||
- name: vernemq-certificates
|
||||
secretName: vernemq-certificates-secret
|
||||
path: /etc/ssl/vernemq
|
||||
|
||||
statefulset:
|
||||
## Start and stop pods in Parallel or OrderedReady (one-by-one.) Note - Can not change after first release.
|
||||
## Ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
|
||||
podManagementPolicy: OrderedReady
|
||||
## Statefulsets rolling update update strategy
|
||||
## Ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#rolling-update
|
||||
updateStrategy: RollingUpdate
|
||||
## Configure how much time VerneMQ takes to move offline queues to other nodes
|
||||
## Ref: https://vernemq.com/docs/clustering/#detailed-cluster-leave-case-a-make-a-live-node-leave
|
||||
terminationGracePeriodSeconds: 60
|
||||
## Liveness and Readiness probe values
|
||||
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 3
|
||||
readinessProbe:
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 3
|
||||
podAnnotations: {}
|
||||
# prometheus.io/scrape: "true"
|
||||
# prometheus.io/port: "8888"
|
||||
annotations: {}
|
||||
labels: {}
|
||||
lifecycle: {}
|
||||
|
||||
pdb:
|
||||
enabled: false
|
||||
minAvailable: 1
|
||||
# maxUnavailable: 1
|
||||
|
||||
## VerneMQ settings
|
||||
|
||||
additionalEnv:
|
||||
- name: DOCKER_VERNEMQ_ALLOW_REGISTER_DURING_NETSPLIT
|
||||
value: "on"
|
||||
- name: DOCKER_VERNEMQ_ALLOW_PUBLISH_DURING_NETSPLIT
|
||||
value: "on"
|
||||
- name: DOCKER_VERNEMQ_ALLOW_SUBSCRIBE_DURING_NETSPLIT
|
||||
value: "on"
|
||||
- name: DOCKER_VERNEMQ_ALLOW_UNSUBSCRIBE_DURING_NETSPLIT
|
||||
value: "on"
|
||||
- name: DOCKER_VERNEMQ_ACCEPT_EULA
|
||||
value: "yes"
|
||||
- name: DOCKER_VERNEMQ_ALLOW_ANONYMOUS
|
||||
value: "off"
|
||||
- name: DOCKER_VERNEMQ_USER_YOURUSERNAME
|
||||
value: "yourpassword"
|
||||
- name: DOCKER_VERNEMQ_LISTENER__SSL__CAFILE
|
||||
value: "/etc/ssl/vernemq/tls.crt"
|
||||
- name: DOCKER_VERNEMQ_LISTENER__SSL__CERTFILE
|
||||
value: "/etc/ssl/vernemq/tls.crt"
|
||||
- name: DOCKER_VERNEMQ_LISTENER__SSL__KEYFILE
|
||||
value: "/etc/ssl/vernemq/tls.key"
|
||||
- name: DOCKER_VERNEMQ_LISTENER__WSS__CAFILE
|
||||
value: "/etc/ssl/vernemq/tls.crt"
|
||||
- name: DOCKER_VERNEMQ_LISTENER__WSS__CERTFILE
|
||||
value: "/etc/ssl/vernemq/tls.crt"
|
||||
- name: DOCKER_VERNEMQ_LISTENER__WSS__KEYFILE
|
||||
value: "/etc/ssl/vernemq/tls.key"
|
||||
|
||||
envFrom: []
|
||||
# add additional environment variables e.g. from a configmap or secret
|
||||
# can be usefull if you wanna use authentication via files
|
||||
# - secretRef:
|
||||
# name: vernemq-users
|
||||
11
charts/hub/vernemq/vernemq-certificate.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: vernemq-certificates
|
||||
spec:
|
||||
dnsNames:
|
||||
- "mqtt.yourdomain.com"
|
||||
issuerRef:
|
||||
kind: ClusterIssuer
|
||||
name: vernemq-letsencrypt-iss
|
||||
secretName: vernemq-certificates-secret
|
||||
18
charts/hub/vernemq/vernemq-issuer.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: ClusterIssuer
|
||||
metadata:
|
||||
name: vernemq-letsencrypt-iss
|
||||
spec:
|
||||
acme:
|
||||
email: xxx@xxx.io
|
||||
server: https://acme-v02.api.letsencrypt.org/directory
|
||||
privateKeySecretRef:
|
||||
name: vernemq-letsencrypt-iss-key
|
||||
solvers:
|
||||
- selector: {}
|
||||
dns01:
|
||||
cloudflare:
|
||||
email: xxx@xxx.io
|
||||
apiKeySecretRef:
|
||||
name: cloudflare-api-key-secret
|
||||
key: api-key
|
||||
7
charts/hub/vernemq/vernemq-secret.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: cloudflare-api-key-secret
|
||||
type: Opaque
|
||||
stringData:
|
||||
api-key: xxxx
|
||||