summaryrefslogtreecommitdiffhomepage
path: root/public/v4/apps/papercups.yml
blob: 7aa7ff6761c6762bd3602c1e3119e6847f2fdf4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
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: '[email protected]'
        - 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