install.fairie/.config/taskfiles/cloud/Taskfile-dyno.yml
Brian Zalewski f42899b107 Latest
2022-12-24 15:04:59 -05:00

591 lines
34 KiB
YAML

---
version: '3'
vars:
CLOUDFLARE_API_TOKEN: '' # Needed when `CONFIGURE_CLOUDFLARE_DNS` is set to `true`
CLOUDFLARE_DNS_ZONE: '' # Needed when `CONFIGURE_CLOUDFLARE_DNS` is set to `true`
CONFIGURE_CLOUDFLARE_DNS: false # Set to `true` to configure Cloudflare DNS to point to the custom domain. Provide values for the below variables when set to `true`
CONFIGURE_CUSTOM_DOMAIN: false # Used in conjunction with `DOMAIN` value set for each application. Set to `true` to configure custom domains
env:
REGION: us # The region to deploy the application to
tasks:
appsmith:
summary: |
Task to deploy `appsmith` to Heroku.
Below are the environment variables that can be configured. Set the values in the `env` section.
APPSMITH_DISABLE_TELEMETRY: Share anonymous usage data
APPSMITH_ENCRYPTION_PASSWORD: Encryption password to encrypt all sensitive credentials in the database. You can use any random string. The more random, the better.
APPSMITH_ENCRYPTION_SALT: Encryption salt used to encrypt all sensitive credentials in the database. You can use any random string. The more random, the better.
APPSMITH_MONGODB_URI: Your Mongo Database URI. Since Heroku doesn't support a managed MongoDB instance, you'll have to create a Mongo DB instance on another service such as https://cloud.mongodb.com
APPSMITH_SUPERVISOR_PASSWORD: Basic authentication password to access Supervisor UI - An web interface, which allow you to manage various process
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
env:
APPSMITH_DISABLE_TELEMETRY: true
APPSMITH_ENCRYPTION_PASSWORD: 'kna%si*sj19lk>0s'
APPSMITH_ENCRYPTION_SALT: 'm,a-01s'
APPSMITH_MONGODB_URI: mongo.example.com
APPSMITH_SUPERVISOR_PASSWORD: "sdf'6as9I1a"
cmds:
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"appsmith-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/appsmithorg/appsmith/tarball/master\"},\
\"overrides\":{\"env\":{\"APPSMITH_DISABLE_TELEMETRY\": $APPSMITH_DISABLE_TELEMETRY, \"APPSMITH_ENCRYPTION_PASSWORD\":\
\"$APPSMITH_ENCRYPTION_PASSWORD\", \"APPSMITH_ENCRYPTION_SALT\": \"$APPSMITH_ENCRYPTION_SALT\", \"APPSMITH_MONGODB_URI\":\
\"$APPSMITH_MONGODB_URI\", \"APPSMITH_SUPERVISOR_PASSWORD\": \"$APPSMITH_SUPERVISOR_PASSWORD\"}}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a appsmith-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: appsmith
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
baserow:
summary: |
Task to deploy `baserow` to Heroku.
Below are the environment variables that can be configured. Set the values in the `env` section.
BASEROW_PUBLIC_URL: The public URL of your Heroku Baserow app. If empty, the default Heroku app URL is used, but if it differs it must be changed. (eg. https://baserow-test.com).
BASEROW_AMOUNT_OF_WORKERS: The amount of workers per dyno.
AWS_ACCESS_KEY_ID: The spaces API key.
AWS_SECRET_ACCESS_KEY: The spaces API secret key.
AWS_STORAGE_BUCKET_NAME: The name of your space.
AWS_S3_REGION_NAME: Name of the Digital Ocean spaces region (eg. ams3) or Name of the AWS S3 region to use (eg. eu-west-1)
AWS_S3_ENDPOINT_URL: Custom S3 URL to use when connecting to S3, including scheme.
AWS_S3_CUSTOM_DOMAIN: Your custom domain where the files can be downloaded from.
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
env:
AWS_ACCESS_KEY_ID: ''
AWS_S3_CUSTOM_DOMAIN: ''
AWS_S3_ENDPOINT_URL: ''
AWS_S3_REGION_NAME: ''
AWS_SECRET_ACCESS_KEY: ''
AWS_STORAGE_BUCKET_NAME: ''
BASEROW_AMOUNT_OF_WORKERS: '1'
BASEROW_PUBLIC_URL: https://baserow.megabyte.space
cmds:
- task: bucket:create
vars:
AWS_ACCESS_KEY_ID: '{{.AWS_ACCESS_KEY_ID}}'
AWS_REGION: '{{.AWS_S3_REGION_NAME}}'
AWS_SECRET_ACCESS_KEY: '{{.AWS_SECRET_ACCESS_KEY}}'
BUCKET_NAME: '{{.AWS_STORAGE_BUCKET_NAME}}'
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"baserow-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/bram2w/baserow/tarball/master\"},\
\"overrides\":{\"env\":{{\"BASEROW_PUBLIC_URL\":\"$BASEROW_PUBLIC_URL\",\"BASEROW_AMOUNT_OF_WORKERS\":\
\"$BASEROW_AMOUNT_OF_WORKERS\",\"AWS_ACCESS_KEY_ID\":\"$AWS_ACCESS_KEY_ID\",\"AWS_SECRET_ACCESS_KEY\":\
\"$AWS_SECRET_ACCESS_KEY\",\"AWS_STORAGE_BUCKET_NAME\":\"$AWS_STORAGE_BUCKET_NAME\",\"AWS_S3_REGION_NAME\":\
\"$AWS_S3_REGION_NAME\",\"AWS_S3_ENDPOINT_URL\":\"$AWS_S3_ENDPOINT_URL\",\"AWS_S3_CUSTOM_DOMAIN\":\"$AWS_S3_CUSTOM_DOMAIN\"}}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a baserow-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: baserow
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
chatwoot:
summary: |
Task to deploy `chatwoot` to Heroku.
Below are the environment variables that can be configured. Set the values in the `env` section.
FRONTEND_URL: Public root URL of the Chatwoot installation. This will be used in the emails.
INSTALLATION_ENV: Installation method used for Chatwoot.
RACK_ENV: Environment for rack middleware.
RAILS_ENV: Environment for rails middleware.
REDIS_OPENSSL_VERIFY_MODE: OpenSSL verification mode for Redis connections. Ref https://help.heroku.com/HC0F8CUS/redis-connection-issues
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
env:
FRONTEND_URL: https://chatwoot.megabyte.space
INSTALLATION_ENV: heroku
RACK_ENV: production
RAILS_ENV: production
REDIS_OPENSSL_VERIFY_MODE: none
cmds:
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"chatwoot-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/chatwoot/chatwoot/tarball/master\"},\
\"overrides\":{\"env\":{\"FRONTEND_URL\": \"$FRONTEND_URL\", \"INSTALLATION_ENV\": \"$INSTALLATION_ENV\", \"RACK_ENV\":\
\"$RACK_ENV\", \"RAILS_ENV\": \"$RAILS_ENV\", \"REDIS_OPENSSL_VERIFY_MODE\": \"$REDIS_OPENSSL_VERIFY_MODE\"}}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a chatwoot-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: chatwoot
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
directus:
summary: |
Task to deploy `directus` to Heroku.
Below are the environment variables that can be configured. Set the values in the `env` section.
ACCESS_TOKEN_TTL: The access token TTL.
ADMIN_EMAIL: The initial admin email.
ADMIN_PASSWORD: The initial admin password.
CACHE_ENABLED: Whether the cache should be enabled or not.
CACHE_NAMESPACE: The cache namespace.
CACHE_STORE: The cache store to use.
CONFIG_PATH: Application config loader path.
DB_CLIENT: Database server type.
EMAIL_SMTP_HOST: The email server host.
EMAIL_SMTP_POOL: Whether to setup smtp pooling or not.
EMAIL_SMTP_PORT: The email server port.
EMAIL_SMTP_SECURE: Whether email connection is secure or not.
EMAIL_TRANSPORT: The email transport.
EXTENSIONS_PATH: The application's extension folder.
OAUTH_PROVIDERS: OAuth providers.
PUBLIC_URL: Application public URL.
RATE_LIMITER_DURATION: Rate limiter duration in minutes.
RATE_LIMITER_ENABLED: Whether the rate limiter should be enabled or not.
RATE_LIMITER_KEY_PREFIX: The rate limiter key prefixes.
RATE_LIMITER_POINTS: Rate limiter points.
RATE_LIMITER_STORE: The rate limiter storage type.
REFRESH_TOKEN_COOKIE_SAME_SITE: Same site cookie policy.
REFRESH_TOKEN_COOKIE_SECURE: Whether cookies should be secure (http-only) or not.
REFRESH_TOKEN_TTL: The refresh token TTL.
STORAGE_CLOUD_BUCKET: The storage bucket name.
STORAGE_CLOUD_DRIVER: The storage driver.
STORAGE_CLOUD_ENDPOINT: The storage endpoint URL.
STORAGE_CLOUD_KEY: The storage key id.
STORAGE_CLOUD_PUBLIC_URL: The storage key id.
STORAGE_CLOUD_REGION: The storage bucket region.
STORAGE_CLOUD_ROOT: Storage root location.
STORAGE_CLOUD_SECRET: The storage secret key.
STORAGE_LOCATIONS: The storage key. Please refer to the docs for more information.
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
env:
ACCESS_TOKEN_TTL: 15m
ADMIN_EMAIL: admin@email.com
ADMIN_PASSWORD: RandomPasword$
CACHE_ENABLED: true
CACHE_NAMESPACE: cache
CACHE_STORE: redis
CONFIG_PATH: /app/directus.config.js
DB_CLIENT: pg
EMAIL_SMTP_HOST: smtp.example.com
EMAIL_SMTP_POOL: true
EMAIL_SMTP_PORT: '587'
EMAIL_SMTP_SECURE: false
EMAIL_TRANSPORT: smtp
EXTENSIONS_PATH: /app/extensions
OAUTH_PROVIDERS: ''
PUBLIC_URL: /
RATE_LIMITER_DURATION: '1'
RATE_LIMITER_ENABLED: true
RATE_LIMITER_KEY_PREFIX: rate-limitter
RATE_LIMITER_POINTS: '30'
RATE_LIMITER_STORE: redis
REFRESH_TOKEN_COOKIE_SAME_SITE: true
REFRESH_TOKEN_COOKIE_SECURE: true
REFRESH_TOKEN_TTL: 7d
STORAGE_CLOUD_BUCKET: your-bucket
STORAGE_CLOUD_DRIVER: s3
STORAGE_CLOUD_ENDPOINT: https://nyc3.digitaloceanspaces.com
STORAGE_CLOUD_KEY: your-s3-key-id
STORAGE_CLOUD_PUBLIC_URL: https://your-bucket.nyc3.digitaloceanspaces.com
STORAGE_CLOUD_REGION: nyc3
STORAGE_CLOUD_ROOT: /
STORAGE_CLOUD_SECRET: your-s3-secret-key
STORAGE_LOCATIONS: cloud
cmds:
- task: bucket:create
vars:
AWS_ACCESS_KEY_ID: '{{.STORAGE_CLOUD_KEY}}'
AWS_REGION: '{{.STORAGE_CLOUD_REGION}}'
AWS_SECRET_ACCESS_KEY: '{{.STORAGE_CLOUD_SECRET}}'
BUCKET_NAME: '{{.STORAGE_CLOUD_BUCKET}}'
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"directus-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/directus-community/heroku-template/tarball/master\"},\
\"overrides\":{\"env\":{\"ACCESS_TOKEN_TTL\": \"$ACCESS_TOKEN_TTL\", \"ADMIN_EMAIL\": \"$ADMIN_EMAIL\", \"ADMIN_PASSWORD\":\
\"$ADMIN_PASSWORD$\", \"CACHE_ENABLED\": $CACHE_ENABLED, \"CACHE_NAMESPACE\": \"$CACHE_NAMESPACE\", \"CACHE_STORE\":\
\"$CACHE_STORE\", \"CONFIG_PATH\": \"$CONFIG_PATH\", \"DB_CLIENT\": \"$DB_CLIENT\", \"EMAIL_SMTP_HOST\": \"$EMAIL_SMTP_HOST\",\
\"EMAIL_SMTP_POOL\": $EMAIL_SMTP_POOL, \"EMAIL_SMTP_PORT\": \"$EMAIL_SMTP_PORT\", \"EMAIL_SMTP_SECURE\": $EMAIL_SMTP_SECURE,\
\"EMAIL_TRANSPORT\": \"$EMAIL_TRANSPORT\", \"EXTENSIONS_PATH\": \"$EXTENSIONS_PATH\", \"OAUTH_PROVIDERS\": \"$OAUTH_PROVIDERS\",\
\"PUBLIC_URL\": \"$PUBLIC_URL\", \"RATE_LIMITER_DURATION\": \"$RATE_LIMITER_DURATION\", \"RATE_LIMITER_ENABLED\": $RATE_LIMITER_ENABLED,\
\"RATE_LIMITER_KEY_PREFIX\": \"$RATE_LIMITER_KEY_PREFIX\", \"RATE_LIMITER_POINTS\": \"$RATE_LIMITER_POINTS\", \"RATE_LIMITER_STORE\":\
\"$RATE_LIMITER_STORE\", \"REFRESH_TOKEN_COOKIE_SAME_SITE\": $REFRESH_TOKEN_COOKIE_SAME_SITE, \"REFRESH_TOKEN_COOKIE_SECURE\":\
\"$REFRESH_TOKEN_COOKIE_SECURE\", \"REFRESH_TOKEN_TTL\": \"$REFRESH_TOKEN_TTL\", \"STORAGE_CLOUD_BUCKET\": \"$STORAGE_CLOUD_BUCKET\",\
\"STORAGE_CLOUD_DRIVER\": \"$STORAGE_CLOUD_DRIVER\", \"STORAGE_CLOUD_ENDPOINT\": \"$STORAGE_CLOUD_ENDPOINT\", \"STORAGE_CLOUD_KEY\":\
\"$STORAGE_CLOUD_KEY\", \"STORAGE_CLOUD_PUBLIC_URL\": \"$STORAGE_CLOUD_PUBLIC_URL\", \"STORAGE_CLOUD_REGION\": \"$STORAGE_CLOUD_REGION\",\
\"STORAGE_CLOUD_ROOT\": \"$STORAGE_CLOUD_ROOT\", \"STORAGE_CLOUD_SECRET\": \"$STORAGE_CLOUD_SECRET\", \"STORAGE_LOCATIONS\": \"$STORAGE_LOCATIONS\"}}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a directus-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: directus
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
ghostonheroku:
summary: |
Task to deploy `ghost-on-heroku` to Heroku.
Below are the environment variables that can be configured. Set the values in the `env` section.
PUBLIC_URL: The HTTPS URL of this app: either your custom domain or default 'herokuapp.com' hostname.
S3_ACCESS_KEY_ID: Set your AWS Access Key ID to enable S3 file storage. Leave blank to disable file uploads.
S3_ACCESS_SECRET_KEY: AWS Access Secret Key, if using S3 file storage.
S3_ASSET_HOST_URL: Optional custom CDN asset host url, if using S3 file storage.
S3_BUCKET_NAME: Name of your S3 bucket on AWS, if using S3 file storage.
S3_BUCKET_REGION: Region of your S3 bucket on AWS, if using S3 file storage.
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
env:
PUBLIC_URL: https://ghost.megabyte.space
S3_ACCESS_KEY_ID: S3 access key id
S3_ACCESS_SECRET_KEY: S3 secret access key
S3_ASSET_HOST_URL: e.g https://my.custom.domain/
S3_BUCKET_NAME: S3 bucket
S3_BUCKET_REGION: S3 bucket region (e.g. us-east-1)
cmds:
- task: bucket:create
vars:
AWS_ACCESS_KEY_ID: '{{.S3_ACCESS_KEY_ID}}'
AWS_REGION: '{{.S3_BUCKET_REGION}}'
AWS_SECRET_ACCESS_KEY: '{{.S3_ACCESS_SECRET_KEY}}'
BUCKET_NAME: '{{.S3_BUCKET_NAME}}'
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"ghostonheroku-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/cobyism/ghost-on-heroku/tarball/master\"},\
\"overrides\":{\"env\":{\"PUBLIC_URL\": \"$PUBLIC_URL\", \"S3_ACCESS_KEY_ID\": \"$S3_ACCESS_KEY_ID\",\
\"S3_ACCESS_SECRET_KEY\": \"$S3_ACCESS_SECRET_KEY\", \"S3_ASSET_HOST_URL\": \"$S3_ASSET_HOST_URL\",\
\"S3_BUCKET_NAME\": \"$S3_BUCKET_NAME\", \"S3_BUCKET_REGION\": \"$S3_BUCKET_REGION\"}}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a ghostonheroku-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: ghostonheroku
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
hasura:
summary: |
Task to deploy `hasura` to Heroku.
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
cmds:
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"hasura-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/hasura/graphql-engine-heroku/tarball/master\"}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a hasura-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: hasura
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
manet:
summary: |
Task to deploy `manet` to Heroku.
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
cmds:
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"manet-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/vbauer/manet/tarball/master\"}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a manet-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: manet
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
metabase:
summary: |
Task to deploy `metabase` to Heroku.
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
cmds:
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"metabase-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/metabase/metabase-deploy/tarball/master\"}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a metabase-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: metabase
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
nocodb:
summary: |
Task to deploy `nocodb` to Heroku.
Below are the environment variables that can be configured. Set the values in the `env` section.
NC_ONE_CLICK: Used for Heroku one-click deployment
NODE_TLS_REJECT_UNAUTHORIZED: Reject unauthorized
AWS_ACCESS_KEY_ID: For Litestream - S3 access key id
AWS_SECRET_ACCESS_KEY: For Litestream - S3 secret access key
AWS_BUCKET_REGION: Region where the bucket is present
AWS_BUCKET: For Litestream - S3 bucket
AWS_BUCKET_PATH: For Litestream - S3 bucket path (like folder within S3 bucket)
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
env:
AWS_ACCESS_KEY_ID: S3 access key id
AWS_BUCKET: S3 bucket
AWS_BUCKET_PATH: S3 bucket path (like folder within S3 bucket)
AWS_BUCKET_REGION: S3 Region
AWS_SECRET_ACCESS_KEY: S3 secret access key
NC_ONE_CLICK: true
NODE_TLS_REJECT_UNAUTHORIZED: '0'
cmds:
- task: bucket:create
vars:
AWS_ACCESS_KEY_ID: '{{.AWS_ACCESS_KEY_ID}}'
AWS_REGION: '{{.AWS_BUCKET_REGION}}'
AWS_SECRET_ACCESS_KEY: '{{.AWS_SECRET_ACCESS_KEY}}'
BUCKET_NAME: '{{.AWS_BUCKET}}'
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"nocodb-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/nocodb/nocodb-seed-heroku/tarball/master\"},\
\"overrides\":{\"env\":{\"NC_ONE_CLICK\": $NC_ONE_CLICK, \"NODE_TLS_REJECT_UNAUTHORIZED\": \"$NODE_TLS_REJECT_UNAUTHORIZED\",\
\"AWS_ACCESS_KEY_ID\": \"$AWS_ACCESS_KEY_ID\", \"AWS_SECRET_ACCESS_KEY\": \"$AWS_SECRET_ACCESS_KEY\", \"AWS_BUCKET\":\
\"$AWS_BUCKET\", \"AWS_BUCKET_PATH\": \"$AWS_BUCKET_PATH\"}}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a nocodb-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: nocodb
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
tooljet:
summary: |
Task to deploy `tooljet` to Heroku.
Below are the environment variables that can be configured. Set the values in the `env` section.
DEPLOYMENT_PLATFORM: Platform ToolJet is deployed on
DISABLE_MULTI_WORKSPACE: Disables Multi-Workspace feature
DISABLE_SIGNUPS: Disable sign up in login page only applicable if Multi-Workspace feature is turned on
LOCKBOX_MASTER_KEY: Master key for encrypting datasource credentials.
NODE_ENV: Environment [production/development]
NODE_OPTIONS: Node options configured to increase node memory to support app build
SECRET_KEY_BASE: Used by ToolJet server as the input secret to the application's key generator.
TOOLJET_HOST: Public URL of ToolJet installtion. This is usually https://<app-name-in-first-step>.herokuapp.com
TOOLJET_SERVER_URL: URL of ToolJet server installtion. (This is same as the TOOLJET_HOST for Heroku deployments)
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
env:
DEPLOYMENT_PLATFORM: heroku
DISABLE_MULTI_WORKSPACE: false
DISABLE_SIGNUPS: false
LOCKBOX_MASTER_KEY: m@s73rk8s
NODE_ENV: production
NODE_OPTIONS: --max-old-space-size=4096
SECRET_KEY_BASE: SomeC0m6l00
TOOLJET_HOST: https://tooljet.herokuapp.com
TOOLJET_SERVER_URL: https://tooljet.herokuapp.com
cmds:
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"tooljet-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/tooljet/tooljet/tarball/master\"},\
\"overrides\":{\"env\":{\"DEPLOYMENT_PLATFORM\": \"$DEPLOYMENT_PLATFORM\", \"DISABLE_MULTI_WORKSPACE\":\
\"$DISABLE_MULTI_WORKSPACE\", \"DISABLE_SIGNUPS\": $DISABLE_SIGNUPS, \"LOCKBOX_MASTER_KEY\":\
\"$LOCKBOX_MASTER_KEY\", \"NODE_ENV\": \"$NODE_ENV\", \"NODE_OPTIONS\": \"$NODE_OPTIONS\",\
\"SECRET_KEY_BASE\": \"$SECRET_KEY_BASE\", \"TOOLJET_HOST\": \"$TOOLJET_HOST\", \"TOOLJET_SERVER_URL\": \"$TOOLJET_SERVER_URL\"}}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a tooljet-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: tooljet
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
urltopdf:
summary: |
Task to deploy `url-to-pdf-api` to Heroku.
Below are the environment variables that can be configured. Set the values in the `env` section.
ALLOW_HTTP: When set to "true", unsecure requests are allowed
API_TOKENS: Comma-separated list of accepted keys in x-api-key header
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
env:
ALLOW_HTTP: false
API_TOKENS: ''
cmds:
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body "{\"app\":{\"region\":\"$REGION\",\"name\":\"urltopdf-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/alvarcarto/url-to-pdf-api/tarball/master\"},\
\"overrides\":{\"env\":{\"ALLOW_HTTP\": $ALLOW_HTTP, \"API_TOKENS\": \"$API_TOKENS\"}}}"
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a urltopdf-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: urltopdf
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'
whoogle:
summary: |
Task to deploy `whoogle` to Heroku.
Below are the environment variables that can be configured. Set the values in the `env` section.
WHOOGLE_ALT_IG: The site to use as a replacement for instagram.com when site alternatives are enabled in the config.
WHOOGLE_ALT_IMG: The site to use as a replacement for imgur.com when site alternatives are enabled in the config.
WHOOGLE_ALT_MD: The site to use as a replacement for medium.com when site alternatives are enabled in the config.
WHOOGLE_ALT_RD: The site to use as a replacement for reddit.com when site alternatives are enabled in the config.
WHOOGLE_ALT_TL: The Google Translate alternative to use for all searches following the 'translate ___' structure.
WHOOGLE_ALT_TW: The site to use as a replacement for twitter.com when site alternatives are enabled in the config.
WHOOGLE_ALT_WIKI: The site to use as a replacement for wikipedia.com when site alternatives are enabled in the config.
WHOOGLE_ALT_YT: The site to use as a replacement for youtube.com when site alternatives are enabled in the config.
WHOOGLE_CONFIG_ALTS: [CONFIG] Use social media alternatives (set to 1 or leave blank)
WHOOGLE_CONFIG_BLOCK: [CONFIG] Block websites from search results (comma-separated list)
WHOOGLE_CONFIG_COUNTRY: [CONFIG] The country to use for restricting search results (use values from https://raw.githubusercontent.com/benbusby/whoogle-search/develop/app/static/settings/countries.json)
WHOOGLE_CONFIG_DISABLE: [CONFIG] Disable ability for client to change config (set to 1 or leave blank)
WHOOGLE_CONFIG_GET_ONLY: [CONFIG] Search using GET requests only (set to 1 or leave blank)
WHOOGLE_CONFIG_LANGUAGE: [CONFIG] The language to use for the interface (use values from https://raw.githubusercontent.com/benbusby/whoogle-search/develop/app/static/settings/languages.json)
WHOOGLE_CONFIG_NEAR: [CONFIG] Restrict results to only those near a particular city
WHOOGLE_CONFIG_NEW_TAB: [CONFIG] Always open results in new tab (set to 1 or leave blank)
WHOOGLE_CONFIG_SAFE: [CONFIG] Use safe mode for searches (set to 1 or leave blank)
WHOOGLE_CONFIG_SEARCH_LANGUAGE: [CONFIG] The language to use for search results (use values from https://raw.githubusercontent.com/benbusby/whoogle-search/develop/app/static/settings/languages.json)
WHOOGLE_CONFIG_STYLE: [CONFIG] Custom CSS styling (provide CSS or leave blank)
WHOOGLE_CONFIG_THEME: [CONFIG] Set theme to 'dark', 'light', or 'system'
WHOOGLE_CONFIG_TOR: [CONFIG] Use Tor, if available (set to 1 or leave blank)
WHOOGLE_CONFIG_VIEW_IMAGE: [CONFIG] Enable View Image option (set to 1 or leave blank)
WHOOGLE_MINIMAL: Remove everything except basic result cards from all search queries (set to 1 or leave blank)
WHOOGLE_PASS: The password for basic auth. WHOOGLE_USER must also be set if used. Leave empty to disable.
WHOOGLE_PROXY_LOC: The location of the proxy server (host or ip). Leave empty to disable.
WHOOGLE_PROXY_PASS: The password of the proxy server. Leave empty to disable.
WHOOGLE_PROXY_TYPE: The type of the proxy server. For example "socks5". Leave empty to disable.
WHOOGLE_PROXY_USER: The username of the proxy server. Leave empty to disable.
WHOOGLE_URL_PREFIX: The URL prefix to use for the whoogle instance (i.e. "/whoogle")
WHOOGLE_USER: The username for basic auth. WHOOGLE_PASS must also be set if used. Leave empty to disable.
The below variable can be used to pass the value of Custom Domain for the application
DOMAIN: The custom domain to be added to the application. Set this to a valid value to add the domain (`CONFIGURE_CUSTOM_DOMAIN` should be set to `true`).
vars:
DOMAIN: ''
env:
WHOOGLE_ALT_IG: farside.link/bibliogram/u
WHOOGLE_ALT_IMG: farside.link/rimgo
WHOOGLE_ALT_MD: farside.link/scribe
WHOOGLE_ALT_RD: farside.link/libreddit
WHOOGLE_ALT_TL: farside.link/lingva
WHOOGLE_ALT_TW: farside.link/nitter
WHOOGLE_ALT_WIKI: farside.link/wikiless
WHOOGLE_ALT_YT: farside.link/invidious
WHOOGLE_CONFIG_ALTS: ''
WHOOGLE_CONFIG_BLOCK: ''
WHOOGLE_CONFIG_COUNTRY: countryUS
WHOOGLE_CONFIG_DISABLE: ''
WHOOGLE_CONFIG_GET_ONLY: ''
WHOOGLE_CONFIG_LANGUAGE: lang_en
WHOOGLE_CONFIG_NEAR: ''
WHOOGLE_CONFIG_NEW_TAB: ''
WHOOGLE_CONFIG_SAFE: ''
WHOOGLE_CONFIG_SEARCH_LANGUAGE: lang_en
WHOOGLE_CONFIG_STYLE: ':root { /* LIGHT THEME COLORS */ --whoogle-background: #d8dee9; --whoogle-accent: #2e3440; --whoogle-text: #3B4252; --whoogle-contrast-text: #eceff4; --whoogle-secondary-text: #70757a; --whoogle-result-bg: #fff; --whoogle-result-title: #4c566a; --whoogle-result-url: #81a1c1; --whoogle-result-visited: #a3be8c; /* DARK THEME COLORS */ --whoogle-dark-background: #222; --whoogle-dark-accent: #685e79; --whoogle-dark-text: #fff; --whoogle-dark-contrast-text: #000; --whoogle-dark-secondary-text: #bbb; --whoogle-dark-result-bg: #000; --whoogle-dark-result-title: #1967d2; --whoogle-dark-result-url: #4b11a8; --whoogle-dark-result-visited: #bbbbff; }'
WHOOGLE_CONFIG_THEME: system
WHOOGLE_CONFIG_TOR: ''
WHOOGLE_CONFIG_VIEW_IMAGE: ''
WHOOGLE_MINIMAL: ''
WHOOGLE_PASS: ''
WHOOGLE_PROXY_LOC: ''
WHOOGLE_PROXY_PASS: ''
WHOOGLE_PROXY_TYPE: ''
WHOOGLE_PROXY_USER: ''
WHOOGLE_URL_PREFIX: /whoogle
WHOOGLE_USER: ''
cmds:
- |
RNDM=$(shuf -i 10000-1000000 -n 1)
heroku api POST /app-setups --body '{\"app\":{\"region\":\"$REGION\",\"name\":\"whoogle-$RNDM\"},\
\"source_blob\":{\"url\":\"https://api.github.com/repos/benbusby/whoogle-search/tarball/master\"},\
\"overrides\":{\"env\":{\"WHOOGLE_ALT_IG\": \"$WHOOGLE_ALT_IG\", \"WHOOGLE_ALT_IMG\":\
\"$WHOOGLE_ALT_IMG\", \"WHOOGLE_ALT_MD\": \"$WHOOGLE_ALT_MD\", \"WHOOGLE_ALT_RD\": \"$WHOOGLE_ALT_RD\",\
\"WHOOGLE_ALT_TL\": \"$WHOOGLE_ALT_TL\", \"WHOOGLE_ALT_TW\": \"$WHOOGLE_ALT_TW\", \"WHOOGLE_ALT_WIKI\":\
\"$WHOOGLE_ALT_WIKI\", \"WHOOGLE_ALT_YT\": \"$WHOOGLE_ALT_YT\", \"WHOOGLE_CONFIG_ALTS\": \"$WHOOGLE_CONFIG_ALTS\",\
\"WHOOGLE_CONFIG_BLOCK\": \"$WHOOGLE_CONFIG_BLOCK\", \"WHOOGLE_CONFIG_COUNTRY\": \"$WHOOGLE_CONFIG_COUNTRY\",\
\"WHOOGLE_CONFIG_DISABLE\": \"$WHOOGLE_CONFIG_DISABLE\", \"WHOOGLE_CONFIG_GET_ONLY\": \"$WHOOGLE_CONFIG_GET_ONLY\",\
\"WHOOGLE_CONFIG_LANGUAGE\": \"$WHOOGLE_CONFIG_LANGUAGE\", \"WHOOGLE_CONFIG_NEAR\": \"$WHOOGLE_CONFIG_NEAR\",\
\"WHOOGLE_CONFIG_NEW_TAB\": \"$WHOOGLE_CONFIG_NEW_TAB\", \"WHOOGLE_CONFIG_SAFE\": \"$WHOOGLE_CONFIG_SAFE\",\
\"WHOOGLE_CONFIG_SEARCH_LANGUAGE\": \"$WHOOGLE_CONFIG_SEARCH_LANGUAGE\", \"WHOOGLE_CONFIG_STYLE\":\
\"$WHOOGLE_CONFIG_STYLE\", \"WHOOGLE_CONFIG_THEME\": \"$WHOOGLE_CONFIG_THEME\", \"WHOOGLE_CONFIG_TOR\":\
\"$WHOOGLE_CONFIG_TOR\", \"WHOOGLE_CONFIG_VIEW_IMAGE\": \"$WHOOGLE_CONFIG_VIEW_IMAGE\", \"WHOOGLE_MINIMAL\":\
\"$WHOOGLE_MINIMAL\", \"WHOOGLE_PASS\": \"$WHOOGLE_PASS\", \"WHOOGLE_PROXY_LOC\": \"$WHOOGLE_PROXY_LOC\",\
\"WHOOGLE_PROXY_PASS\": \"$WHOOGLE_PROXY_PASS\", \"WHOOGLE_PROXY_TYPE\": \"$WHOOGLE_PROXY_TYPE\",\
\"WHOOGLE_PROXY_USER\": \"$WHOOGLE_PROXY_USER\", \"WHOOGLE_URL_PREFIX\": \"$WHOOGLE_URL_PREFIX\", \"WHOOGLE_USER\": \"$WHOOGLE_USER\"}}}'
{{if and (eq .CONFIGURE_CUSTOM_DOMAIN "true") (ne .DOMAIN "")}}heroku domains:add {{.DOMAIN}} -a whoogle-$RNDM {{end}}
- task: cloudflare:dns
vars:
CLOUDFLARE_API_TOKEN: '{{.CLOUDFLARE_API_TOKEN}}'
CLOUDFLARE_DNS_ZONE: '{{.CLOUDFLARE_DNS_ZONE}}'
CLOUDFLARE_RECORD_NAME: whoogle
CLOUDFLARE_RECORD_VALUE: '{{.DOMAIN}}'
CONFIGURE_CLOUDFLARE_DNS: '{{.CONFIGURE_CLOUDFLARE_DNS}}'