158 lines
6.2 KiB
YAML
158 lines
6.2 KiB
YAML
captainVersion: 4
|
|
|
|
services:
|
|
$$cap_appname:
|
|
depends_on:
|
|
- $$cap_appname-db
|
|
environment:
|
|
DATABASE_URL: 'ecto://postgres:$$cap_postgres_password@srv-captain--$$cap_appname-db/postgres'
|
|
SECRET_KEY_BASE: $$cap_secret_key
|
|
BACKEND_URL: $$cap_appname.$$cap_root_domain
|
|
MIX_ENV: $$cap_mix_env
|
|
REACT_APP_URL: $$cap_appname.$$cap_root_domain
|
|
FROM_ADDRESS: $$cap_email_from_address
|
|
MAILGUN_API_KEY: $$cap_mailgun_api_key
|
|
DOMAIN: $$cap_email_from_domain
|
|
SLACK_BOT_ACCESS_TOKEN: $$cap_slack_bot_access_token
|
|
PAPERCUPS_SLACK_CLIENT_ID: $$cap_slack_client_id
|
|
PAPERCUPS_SLACK_CLIENT_SECRET: $$cap_slack_client_secret
|
|
SENTRY_DSN: $$cap_sentry_dsn
|
|
PAPERCUPS_STRIPE_SECRET: $$cap_stripe_secret
|
|
REACT_APP_GOOGLE_ANALYTICS_ID: $$cap_react_google_analytics_id
|
|
REACT_APP_SLACK_CLIENT_ID: $$cap_react_slack_client_id
|
|
REACT_APP_SENTRY_DSN: $$cap_react_sentry_dsn
|
|
REACT_APP_LOGROCKET_ID: $$cap_react_logrocket_id
|
|
REACT_APP_STRIPE_PUBLIC_KEY: $$cap_react_stripe_public_id
|
|
REACT_APP_FILE_UPLOADS_ENABLED: $$cap_upload_enabled
|
|
CUSTOMER_IO_SITE_ID: $$cap_customer_io_site_id
|
|
CUSTOMER_IO_API_KEY: $$cap_customer_io_api_key
|
|
AWS_ACCESS_KEY_ID: $$cap_aws_access_key_id
|
|
AWS_SECRET_ACCESS_KEY: $$cap_aws_secret_key
|
|
BUCKET_NAME: $$cap_aws_bucket
|
|
AWS_REGION: $$cap_aws_region
|
|
REQUIRE_DB_SSL: $$cap_db_require_ssl
|
|
|
|
caproverExtra:
|
|
containerHttpPort: '4000'
|
|
dockerfileLines:
|
|
- FROM papercups/papercups:$$cap_papercups_tag
|
|
- ENTRYPOINT sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && echo 'running' && /entrypoint.sh run"
|
|
|
|
$$cap_appname-db:
|
|
image: postgres:$$cap_postgres_tag
|
|
volume:
|
|
- '$$cap_appname-db-data:/var/lib/postgresql/data'
|
|
environment:
|
|
POSTGRES_PASSWORD: $$cap_postgres_password
|
|
caproverExtra:
|
|
notExposeAsWebApp: true
|
|
|
|
caproverOneClickApp:
|
|
variables:
|
|
- id: $$cap_papercups_tag
|
|
label: Papercups Tag
|
|
defaultValue: 1.1.0
|
|
description: 'Check out their docker page for the valid tags https://hub.docker.com/r/papercups/papercups/tags'
|
|
- id: $$cap_postgres_tag
|
|
label: Postgres Tag
|
|
defaultValue: 9.6-alpine
|
|
description: 'Check out their docker page for the valid tags https://hub.docker.com/_/postgres?tab=tags'
|
|
- id: $$cap_postgres_password
|
|
label: Postgres Password
|
|
defaultValue: $$cap_gen_random_hex(16)
|
|
- id: $$cap_secret_key
|
|
label: Papercups Secret Key
|
|
defaultValue: $$cap_gen_random_hex(64)
|
|
validRegex: /.{64,}/
|
|
description: 'Must be at least 64 bytes'
|
|
- id: $$cap_mix_env
|
|
label: Mix Env
|
|
defaultValue: prod
|
|
description: 'Learn more at https://hexdocs.pm/mix/Mix.html#module-environments'
|
|
- id: $$cap_upload_enabled
|
|
label: Enable Papercups Upload
|
|
defaultValue: 1
|
|
- id: $$cap_email_from_address
|
|
label: Email From Address
|
|
defaultValue: 'noreply@mail.papercups.io'
|
|
- id: $$cap_mailgun_api_key
|
|
label: Mailgun API Key
|
|
defaultValue: ''
|
|
- id: $$cap_email_from_domain
|
|
label: Email From Domain
|
|
defaultValue: '$$cap_appname.$$cap_root_domain'
|
|
- id: $$cap_slack_bot_access_token
|
|
label: Slack Bot Access Token
|
|
defaultValue: ''
|
|
- id: $$cap_slack_client_id
|
|
label: Slack Bot Client ID
|
|
defaultValue: ''
|
|
- id: $$cap_slack_client_secret
|
|
label: Slack Bot Client Secret
|
|
defaultValue: ''
|
|
- id: $$cap_sentry_dsn
|
|
label: Sentry DSN
|
|
defaultValue: ''
|
|
- id: $$cap_stripe_secret
|
|
label: Stripe Secret
|
|
defaultValue: ''
|
|
- id: $$cap_react_google_analytics_id
|
|
label: Google Analytics ID
|
|
defaultValue: ''
|
|
- id: $$cap_react_slack_client_id
|
|
label: Papercups's React Slack Client ID
|
|
defaultValue: ''
|
|
- id: $$cap_react_sentry_dsn
|
|
label: Papercups's React Sentry DSN
|
|
defaultValue: ''
|
|
- id: $$cap_react_logrocket_id
|
|
label: Papercups's React LogRocket ID
|
|
defaultValue: ''
|
|
- id: $$cap_react_stripe_public_id
|
|
label: Papercups's React Stripe Public ID
|
|
defaultValue: ''
|
|
- id: $$cap_customer_io_site_id
|
|
label: Customer.io Site ID
|
|
defaultValue: ''
|
|
- id: $$cap_customer_io_api_key
|
|
label: Customer.io API Key
|
|
defaultValue: ''
|
|
- id: $$cap_aws_access_key_id
|
|
label: AWS Access Key ID
|
|
defaultValue: ''
|
|
- id: $$cap_aws_secret_key
|
|
label: AWS Secret Key ID
|
|
defaultValue: ''
|
|
- id: $$cap_aws_bucket
|
|
label: AWS Bucket
|
|
defaultValue: ''
|
|
- id: $$cap_aws_region
|
|
label: AWS Region
|
|
defaultValue: ''
|
|
- id: $$cap_db_require_ssl
|
|
label: DB Require SSL
|
|
defaultValue: 'false'
|
|
instructions:
|
|
start: >-
|
|
Papercups is an open source live customer chat web app written in Elixir.
|
|
For more info visit https://papercups.io/
|
|
end: |-
|
|
Papercups has been successfully deployed!
|
|
|
|
--------------------------------------------
|
|
|
|
Before you proceed, you must:
|
|
1. Enable HTTPS
|
|
2. Enable Websocket Support
|
|
|
|
--------------------------------------------
|
|
|
|
App is available as http://$$cap_appname.$$cap_root_domain
|
|
displayName: Papercups
|
|
isOfficial: false
|
|
description: >-
|
|
Papercups is an open source live customer chat web app written in Elixir.
|
|
documentation: >-
|
|
This docker-compose is taken from https://github.com/papercups-io/papercups/blob/master/docker-compose.prod.yml
|
|
Papercups's example environment https://github.com/papercups-io/papercups/blob/master/.env.example
|