feat: add novu (#757)

This commit is contained in:
Ronald Loyko 2022-10-10 07:57:00 +03:00 committed by GitHub
parent c9adae846e
commit b0eea0ef16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 227 additions and 0 deletions

227
public/v4/apps/novu.yml Normal file
View File

@ -0,0 +1,227 @@
captainVersion: 4
services:
$$cap_appname-cache:
caproverExtra:
notExposeAsWebApp: 'true'
image: redis:$$cap_REDIS_VERSION
$$cap_appname-db:
caproverExtra:
notExposeAsWebApp: 'true'
image: mongo:$$cap_MONGO_VERSION
environment:
PUID: $$cap_PUID
PGID: $$cap_PGID
volumes:
- $$cap_appname-db:/data/db
$$cap_appname-api:
caproverExtra:
containerHttpPort: $$cap_NOVU_API_PORT
image: $$cap_NOVU_IMAGE_URL/api:$$cap_NOVU_IMAGE_VERSION
environment:
NODE_ENV: $$cap_ENVIRONMENT
API_ROOT_URL: http://$$cap_appname-api.$$cap_root_domain
DISABLE_USER_REGISTRATION: $$cap_NOVU_DISABLE_USER_REGISTRATION
PORT: $$cap_NOVU_API_PORT
FRONT_BASE_URL: http://$$cap_appname.$$cap_root_domain
MONGO_URL: mongodb://srv-captain--$$cap_appname-db/$$cap_MONGO_DB
REDIS_HOST: srv-captain--$$cap_appname-cache
REDIS_PORT: $$cap_REDIS_PORT
REDIS_DB_INDEX: $$cap_REDIS_DB_INDEX
S3_LOCAL_STACK: $$cap_NOVU_S3_LOCAL_STACK
S3_BUCKET_NAME: $$cap_NOVU_S3_BUCKET_NAME
S3_REGION: $$cap_NOVU_S3_REGION
AWS_ACCESS_KEY_ID: $$cap_NOVU_AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $$cap_NOVU_AWS_SECRET_ACCESS_KEY
JWT_SECRET: $$cap_NOVU_JWT_SECRET
STORE_ENCRYPTION_KEY: $$cap_NOVU_STORE_ENCRYPTION_KEY
SENTRY_DSN: $$cap_NOVU_API_SENTRY_DSN
depends_on:
- $$cap_appname-db
- $$cap_appname-cache
$$cap_appname-ws:
caproverExtra:
containerHttpPort: $$cap_NOVU_PORT_WEBSOCKET
image: $$cap_NOVU_IMAGE_URL/ws:$$cap_NOVU_IMAGE_VERSION
environment:
PORT: $$cap_NOVU_PORT_WEBSOCKET
NODE_ENV: $$cap_ENVIRONMENT
MONGO_URL: mongodb://srv-captain--$$cap_appname-db/$$cap_MONGO_DB
REDIS_HOST: srv-captain--$$cap_appname-cache
REDIS_PORT: $$cap_REDIS_PORT
JWT_SECRET: $$cap_NOVU_JWT_SECRET
depends_on:
- $$cap_appname-db
- $$cap_appname-cache
$$cap_appname:
caproverExtra:
containerHttpPort: $$cap_NOVU_PORT_APPLICATION
image: $$cap_NOVU_IMAGE_URL/web:$$cap_NOVU_IMAGE_VERSION
environment:
REACT_APP_API_URL: http://$$cap_appname-api.$$cap_root_domain
REACT_APP_ENVIRONMENT: $$cap_ENVIRONMENT
REACT_APP_WIDGET_EMBED_PATH: http://$$cap_appname-embed.$$cap_root_domain/embed.umd.min.js
REACT_APP_DOCKER_HOSTED_ENV: $$cap_NOVU_DOCKER_HOSTED_ENVIRONMENT
depends_on:
- $$cap_appname-api
$$cap_appname-widget:
caproverExtra:
containerHttpPort: $$cap_NOVU_PORT_WIDGET
image: $$cap_NOVU_IMAGE_URL/widget:$$cap_NOVU_IMAGE_VERSION
environment:
REACT_APP_API_URL: http://$$cap_appname-api.$$cap_root_domain
REACT_APP_WS_URL: http://$$cap_appname-ws.$$cap_root_domain
REACT_APP_ENVIRONMENT: $$cap_ENVIRONMENT
depends_on:
- $$cap_appname-api
- $$cap_appname
$$cap_appname-embed:
caproverExtra:
containerHttpPort: $$cap_NOVU_PORT_EMBED
image: $$cap_NOVU_IMAGE_URL/embed:$$cap_NOVU_IMAGE_VERSION
environment:
WIDGET_URL: http://$$cap_appname-widget.$$cap_root_domain
depends_on:
- $$cap_appname-widget
caproverOneClickApp:
displayName: Novu
isOfficial: true
description: Open Source Notification Infrastructure For Developers
documentation: https://docs.novu.co
instructions:
start: |-
Novu is a fully functional real-time notification center for your web and react apps.
The only open-source notifications infrastructure that manages multi-channel content, scheduled notifications, digest engine, user preferences, and delivers Email, SMS, Push and Chat notifications using a single API.
end: |-
Novu has been successfully deployed! It might take few moments before it's fully started.
You can access it at `http://$$cap_appname.$$cap_root_domain`.
variables:
- id: $$cap_NOVU_IMAGE_VERSION
label: Application | Version
description: Version tag of Novu's Docker images. Check out their valid tags at https://github.com/novuhq/novu/pkgs/container/novu%2Fapi
defaultValue: '0.8.0'
validRegex: /.{1,}/
- id: $$cap_NOVU_IMAGE_URL
label: Application | Image URL
description: URL to Novu's Docker images.
defaultValue: ghcr.io/novuhq/novu
validRegex: /.{1,}/
- id: $$cap_REDIS_VERSION
label: Redis | Version
description: Version tag of Redis' image. Check out their valid tags at https://hub.docker.com/_/redis/tags
defaultValue: '7.0.5'
validRegex: /.{1,}/
- id: $$cap_MONGO_VERSION
label: MongoDB | Version
description: Version tag of MongoDB's image. Check out their valid tags at https://hub.docker.com/_/mongo/tags
defaultValue: '6.0.2'
validRegex: /.{1,}/
- id: $$cap_ENVIRONMENT
label: General | Environment
description: Application environment (e.g `dev`, `test`, `prod`, `ci`, `local`).
defaultValue: prod
validRegex: /^(dev|test|prod|ci|local)$/
- id: $$cap_NOVU_DOCKER_HOSTED_ENVIRONMENT
label: General | Docker-Hosted Environment
description: Whether to the application is hosted in Docker.
defaultValue: 'true'
validRegex: /^(true|false)$/
- id: $$cap_PUID
label: General | User ID
description: User ID that the process uses, run `id $user` on your instance to see the ID.
defaultValue: 1000
validRegex: /.{1,}/
- id: $$cap_PGID
label: General | Group ID
description: Group ID that the process uses, run `id $user` on your instance to see the ID.
defaultValue: 1000
validRegex: /.{1,}/
- id: $$cap_NOVU_JWT_SECRET
label: Security | JWT Secret
description: Secret for JWT.
defaultValue: $$cap_gen_random_hex(32)
validRegex: /.{1,}/
- id: $$cap_NOVU_STORE_ENCRYPTION_KEY
label: Security | Store Encryption Key
description: Key for store encryption.
defaultValue: $$cap_gen_random_hex(32)
validRegex: /.{1,}/
- id: $$cap_NOVU_DISABLE_USER_REGISTRATION
label: Privacy | Disable User Registration
description: Whether to disable user registration.
defaultValue: 'false'
validRegex: /^(true|false)$/
- id: $$cap_NOVU_API_PORT
label: API | Port
description: Port of Novu's API.
defaultValue: 3000
validRegex: /.{1,}/
- id: $$cap_NOVU_API_SENTRY_DSN
label: API | Sentry DSN
description: Sentry's DSN for error tracking. Leave empty to disable.
- id: $$cap_REDIS_PORT
label: Redis | Port
description: Port of Redis' host.
defaultValue: 6379
validRegex: /.{1,}/
- id: $$cap_REDIS_DB_INDEX
label: Redis | Database Index
description: Index of the database in Redis.
defaultValue: 2
validRegex: /.{1,}/
- id: $$cap_MONGO_DB
label: MongoDB | Database Name
description: Name of the database in MongoDB.
defaultValue: novu
validRegex: /.{1,}/
- id: $$cap_NOVU_PORT_EMBED
label: Networking | Embed Port
description: Port of Novu's embed host.
defaultValue: 4701
validRegex: /.{1,}/
- id: $$cap_NOVU_PORT_WIDGET
label: Networking | Widget Port
description: Port of Novu's widget host.
defaultValue: 4500
validRegex: /.{1,}/
- id: $$cap_NOVU_PORT_APPLICATION
label: Networking | Web Port
description: Port of Novu's web host.
defaultValue: 4200
validRegex: /.{1,}/
- id: $$cap_NOVU_PORT_WEBSOCKET
label: Networking | WebSocket Port
description: Port of Novu's WebSocket host.
defaultValue: 3002
validRegex: /.{1,}/
- id: $$cap_NOVU_S3_LOCAL_STACK
label: S3 | Local Stack URL
description: URL to Localstack instance. Leave to `http://localhost:4566` to use local file storage.
defaultValue: http://localhost:4566
validRegex: /.{1,}/
- id: $$cap_NOVU_S3_BUCKET_NAME
label: S3 | Bucket Name
description: Name of the bucket. Leave to `novu-local` to use local file storage.
defaultValue: novu-local
validRegex: /.{1,}/
- id: $$cap_NOVU_S3_REGION
label: S3 | Region
description: Region of the storage. Leave to `us-east-1` if using local file storage.
defaultValue: us-east-1
validRegex: /.{1,}/
- id: $$cap_NOVU_AWS_ACCESS_KEY_ID
label: S3 | AWS Access Key ID
description: Access key ID for AWS. Leave to `test` to use local file storage.
defaultValue: test
validRegex: /.{1,}/
- id: $$cap_NOVU_AWS_SECRET_ACCESS_KEY
label: S3 | AWS Secret Access Key
description: Secret access key for AWS. Leave to `test` to use local file storage.
defaultValue: test
validRegex: /.{1,}/

BIN
public/v4/logos/novu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB