summaryrefslogtreecommitdiffhomepage
path: root/public/v4/apps/whoopsmonitor.yml
blob: e288e823ecbc38a1354cc9f7f07212cec19707c3 (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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
captainVersion: 4
services:
    $$cap_appname-redis:
        caproverExtra:
            notExposeAsWebApp: 'true'
        image: 'bitnami/redis:6.0.8-debian-10-r6'
        environment:
            REDIS_PASSWORD: $$cap_APP_REDIS_PASSWORD
        volumes:
            - $$cap_appname-redis-data:/bitnami

    $$cap_appname-mongodb:
        caproverExtra:
            notExposeAsWebApp: 'true'
        image: bitnami/mongodb:4.4.1-debian-10-r8
        ports:
            - '27017:27017'
        volumes:
            - $$cap_appname-mongodb-data:/bitnami
        environment:
            MONGODB_ROOT_PASSWORD: $$cap_APP_MONGODB_ROOT_PASSWORD
            MONGODB_DATABASE: $$cap_APP_MONGODB_DATABASE
            MONGODB_USERNAME: $$cap_APP_MONGODB_USERNAME
            MONGODB_PASSWORD: $$cap_APP_MONGODB_PASSWORD

    $$cap_appname-api:
        caproverExtra:
            containerHttpPort: '1337'
        restart: always
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock:rw
        ports:
            - '1337:1337'
        image: ghcr.io/whoopsmonitor/whoopsmonitor/api:$$cap_APP_VERSION
        environment:
            NODE_ENV: production
            CONFIG_CORS_ALLOW_ORIGINS: '*'
            APP_PASSWORD: $$cap_APP_PASSWORD
            MONGO_CONNECTION: mongodb://$$cap_APP_MONGODB_USERNAME:$$cap_APP_MONGODB_PASSWORD@srv-captain--$$cap_appname-mongodb:27017/$$cap_APP_MONGODB_DATABASE?authSource=$$cap_APP_MONGODB_DATABASE
            APP_DATA_ENCRYPTION_KEY: $$cap_APP_DATA_ENCRYPTION_KEY
            APP_REDIS_PASSWORD: $$cap_APP_REDIS_PASSWORD
            APP_REDIS_CONNECTION_HOST: srv-captain--$$cap_appname-redis
            APP_REDIS_CONNECTION_PORT: 6379
            APP_TOKEN: $$cap_APP_TOKEN
            APP_QUEUE_NAME_EXECUTE_CHECK: execute-check
            APP_QUEUE_NAME_CLEANUP_CHECK_STATUS: cleanup-check-status
        depends_on:
            - $$cap_appname-mongodb
            - $$cap_appname-redis

    $$cap_appname-monitor:
        restart: always
        image: ghcr.io/whoopsmonitor/whoopsmonitor/monitor:$$cap_APP_VERSION
        ports:
            - '8080:80'
        environment:
            NODE_ENV: production
            API_TOKEN: $$cap_APP_TOKEN
            APP_API_URL: $$cap_APP_API_URL
        depends_on:
            - $$cap_appname-mongodb
            - $$cap_appname-redis
            - $$cap_appname-api

    $$cap_appname-worker:
        caproverExtra:
            notExposeAsWebApp: 'true'
        restart: always
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock:rw
            - $$cap_appname-worker-data:/whoopsmonitor-worker
        image: ghcr.io/whoopsmonitor/whoopsmonitor/worker:$$cap_APP_VERSION
        environment:
            NODE_ENV: production
            APP_REDIS_PASSWORD: $$cap_APP_REDIS_PASSWORD
            APP_REDIS_HOST: srv-captain--$$cap_appname-redis
            APP_REDIS_PORT: 6379
            APP_API_URL: http://srv-captain--$$cap_appname-api:1337
            APP_QUEUE_NAME_EXECUTE_CHECK: execute-check
            APP_QUEUE_NAME_CLEANUP_CHECK_STATUS: cleanup-check-status
            APP_QUEUE_NAME_ALERTING: alerting
            APP_TOKEN: $$cap_APP_TOKEN
        depends_on:
            - $$cap_appname-mongodb
            - $$cap_appname-redis
            - $$cap_appname-api

    $$cap_appname-alerting:
        caproverExtra:
            notExposeAsWebApp: 'true'
        restart: always
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock:rw
        image: ghcr.io/whoopsmonitor/whoopsmonitor/alerting:1.0
        environment:
            NODE_ENV: production
            APP_REDIS_PASSWORD: $$cap_APP_REDIS_PASSWORD
            APP_REDIS_HOST: srv-captain--$$cap_appname-redis
            APP_REDIS_PORT: 6379
            APP_API_URL: http://srv-captain--$$cap_appname-api:1337
            APP_QUEUE_NAME_ALERTING: alerting
            APP_TOKEN: $$cap_APP_TOKEN
        depends_on:
            - $$cap_appname-mongodb
            - $$cap_appname-redis
            - $$cap_appname-api

    $$cap_appname-image-metadata:
        caproverExtra:
            notExposeAsWebApp: 'true'
        restart: always
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock:rw
        image: ghcr.io/whoopsmonitor/whoopsmonitor/image-metadata:1.0
        environment:
            NODE_ENV: production
            API_URL: http://srv-captain--$$cap_appname-api:1337
            APP_TOKEN: $$cap_APP_TOKEN
        depends_on:
            - $$cap_appname-mongodb
            - $$cap_appname-redis
            - $$cap_appname-api

caproverOneClickApp:
    variables:
        - label: Version
          description: Application version, currently 1.0
          defaultValue: '1.0'
          id: $$cap_APP_VERSION

        - label: '* External API URL'
          description: API URL that is availaible from outside, like via browser. You can re-enter this value later but it is mandatory for "monitor" service.
          defaultValue: 'https://'
          id: $$cap_APP_API_URL

        - label: Redis Password
          description: Redis password.
          defaultValue: $$cap_gen_random_hex(32)
          id: $$cap_APP_REDIS_PASSWORD

        - label: Mongo - root password
          description: Root password for Mongo DB.
          defaultValue: $$cap_gen_random_hex(32)
          id: $$cap_APP_MONGODB_ROOT_PASSWORD
        - label: Mongo - database username
          description: Mongo DB username.
          defaultValue: $$cap_gen_random_hex(32)
          id: $$cap_APP_MONGODB_USERNAME
        - label: Mongo - database password
          description: Mongo DB password.
          defaultValue: $$cap_gen_random_hex(32)
          id: $$cap_APP_MONGODB_PASSWORD
        - label: Mongo - database name
          description: Name of the database.
          defaultValue: $$cap_gen_random_hex(32)
          id: $$cap_APP_MONGODB_DATABASE

        - label: Application Password
          description: Admin for your application. There is no account name. Just the password.
          defaultValue: $$cap_gen_random_hex(16)
          id: $$cap_APP_PASSWORD
        - label: Encryption key
          description: Sensitive data stored in Whoops Monitor are all encrypted. It is a base64 key of some string. You should change the default value.
          defaultValue: a3psdWpZdU40WG9zZTRPVHNpdXkxYTlNS0JqRTdZZUs=
          id: $$cap_APP_DATA_ENCRYPTION_KEY
        - label: API token
          description: API token that is used for securing the communication between API and external services.
          defaultValue: $$cap_gen_random_hex(64)
          id: $$cap_APP_TOKEN

    displayName: Whoops Monitor
    isOfficial: true
    description: A monitoring tool that gives you clarity over your application landscape.
    documentation: https://github.com/whoopsmonitor/whoopsmonitor
    instructions:
        start: |-
            A monitoring tool that gives you clarity over your application landscape.
            GitHub: https://github.com/whoopsmonitor/whoopsmonitor
        end: |-
            You're done! 😄

            Your service is available at http://$$cap_appname.$$cap_root_domain

            The password is $$cap_APP_PASSWORD