feat: add novu (#757)
This commit is contained in:
parent
c9adae846e
commit
b0eea0ef16
|
|
@ -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,}/
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
Loading…
Reference in New Issue