-
Notifications
You must be signed in to change notification settings - Fork 3
/
docker-compose.yml
245 lines (242 loc) · 11.2 KB
/
docker-compose.yml
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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
version: '3'
services:
foiredis:
image: redis:4.0
container_name: aot_foi_request_redis
ports:
- "6379:6379"
BACKEND:
build:
context: ./request-management-api
dockerfile: dockerfile.local
image: foirequestsbackendimage
container_name: aot_foi_requests_backend_api
depends_on:
- foi-requests-DB
networks:
services-network:
aliases:
- backendnw
ports:
- 15000:5000
environment:
- DATABASE_USERNAME=${FOI_DATABASE_USERNAME}
- DATABASE_PASSWORD=${FOI_DATABASE_PASSWORD}
- DATABASE_NAME=${FOI_DATABASE_NAME}
- DATABASE_HOST=${FOI_DATABASE_HOST}
- DATABASE_PORT=${FOI_DATABASE_PORT}
- FLASK_ENV:production
- FOI_REQUESTQUEUE_REDISHOST=${WEBSOCKET_BROKER_HOST}
- FOI_REQUESTQUEUE_REDISPORT=${WEBSOCKET_BROKER_PORT}
- FOI_REQUESTQUEUE_REDISPASSWORD=${WEBSOCKET_BROKER_PASSCODE}
- FOI_REQUESTQUEUE_REDISCHANNEL=${WEBSOCKET_FOI_RAWREQUEST_TOPIC}
- KEYCLOAK_ADMIN_HOST=${KEYCLOAK_URL}
- KEYCLOAK_ADMIN_REALM=${KEYCLOAK_URL_REALM}
- KEYCLOAK_ADMIN_CLIENT_ID=foi-lob-api
- KEYCLOAK_ADMIN_CLIENT_SECRET=${KEYCLOAK_ADMIN_CLIENT_SECRET}
- KEYCLOAK_ADMIN_SRVACCOUNT=foisrcaccount
- KEYCLOAK_ADMIN_SRVPASSWORD=${KEYCLOAK_ADMIN_SRVPASSWORD}
- KEYCLOAK_ADMIN_INTAKE_GROUPID=${KEYCLOAK_ADMIN_INTAKE_GROUPID}
- BPM_ENGINE_REST_URL=${FORMSFLOW_WF_URL}
- BPM_TOKEN_URL=${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM}/protocol/openid-connect/token
- BPM_CLIENT_ID=forms-flow-bpm
- BPM_CLIENT_SECRET=${KEYCLOAK_BPM_CLIENT_SECRET}
- JWT_OIDC_AUDIENCE=${JWT_OIDC_AUDIENCE}
- CORS_ORIGIN=${CORS_ORIGIN}
- JWT_OIDC_WELL_KNOWN_CONFIG=${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM}/.well-known/openid-configuration
- JWT_OIDC_ALGORITHMS=RS256
- JWT_OIDC_JWKS_URI=${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM}/protocol/openid-connect/certs
- JWT_OIDC_ISSUER=${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM}
- JWT_OIDC_CACHING_ENABLED=True
- JWT_OIDC_JWKS_CACHE_TIMEOUT=300
- CACHE_TIMEOUT=${CACHE_TIMEOUT}
- KC_SRC_ACC_TOKEN_EXPIRY=${KC_SRC_ACC_TOKEN_EXPIRY}
- FOI_REQUESTQUEUE_REDISURL=${FOI_REQUESTQUEUE_REDISURL}
- CACHE_ENABLED=${CACHE_ENABLED}
- CACHE_TYPE=${CACHE_TYPE}
- OSS_S3_FORMS_BUCKET=${OSS_S3_FORMS_BUCKET}
- OSS_S3_FORMS_ACCESS_KEY_ID=${OSS_S3_FORMS_ACCESS_KEY_ID}
- OSS_S3_FORMS_SECRET_ACCESS_KEY=${OSS_S3_FORMS_SECRET_ACCESS_KEY}
- OSS_S3_HOST=${OSS_S3_HOST}
- OSS_S3_REGION=${OSS_S3_REGION}
- OSS_S3_SERVICE=${OSS_S3_SERVICE}
- OSS_S3_ENVIRONMENT=${OSS_S3_ENVIRONMENT}
- OSS_S3_RECORDS_ACCESS_KEY_ID=${OSS_S3_RECORDS_ACCESS_KEY_ID}
- OSS_S3_RECORDS_SECRET_ACCESS_KEY=${OSS_S3_RECORDS_SECRET_ACCESS_KEY}
- OSS_S3_CHUNK_SIZE=${OSS_S3_CHUNK_SIZE}
- TOTAL_RECORDS_UPLOAD_LIMIT=${TOTAL_RECORDS_UPLOAD_LIMIT}
- EVENT_QUEUE_HOST=${EVENT_QUEUE_HOST}
- EVENT_QUEUE_PORT=${EVENT_QUEUE_PORT}
- EVENT_QUEUE_PASSWORD=${EVENT_QUEUE_PASSWORD}
- FOI_NOTIFICATION_DAYS=${FOI_NOTIFICATION_DAYS}
- FOI_ADDITIONAL_HOLIDAYS=${FOI_ADDITIONAL_HOLIDAYS}
- SOCKETIO_PING_INTERVAL=${SOCKETIO_PING_INTERVAL}
- SOCKETIO_PING_TIMEOUT=${SOCKETIO_PING_TIMEOUT}
- SOCKETIO_LOG_ENABLED=${SOCKETIO_LOG_ENABLED}
- SOCKETIO_MESSAGE_QTYPE=${SOCKETIO_MESSAGE_QTYPE}
- SOCKETIO_REDISURL=${SOCKETIO_REDISURL}
- SOCKETIO_REDIS_COMMENT_CHANNEL=${SOCKETIO_REDIS_COMMENT_CHANNEL}
- SOCKETIO_REDIS_HEALTHCHECK_INTERVAL=${SOCKETIO_REDIS_HEALTHCHECK_INTERVAL}
- SOCKETIO_REDIS_CONNECT_TIMEOUT=${SOCKETIO_REDIS_CONNECT_TIMEOUT}
- SOCKETIO_REDIS_SLEEP_TIME=${SOCKETIO_REDIS_SLEEP_TIME}
- SOCKETIO_CONNECT_NONCE=${SOCKETIO_CONNECT_NONCE}
- CACHE_REDISURL=${CACHE_REDISURL}
- PAYBC_REF_NUMBER=${PAYBC_REF_NUMBER}
- PAYBC_PORTAL_URL=${PAYBC_PORTAL_URL}
- PAYBC_TXN_PREFIX=${PAYBC_TXN_PREFIX}
- PAYBC_API_KEY=${PAYBC_API_KEY}
- PAYBC_API_BASE_URL=${PAYBC_API_BASE_URL}
- PAYBC_API_CLIENT=${PAYBC_API_CLIENT}
- PAYBC_API_SECRET=${PAYBC_API_SECRET}
- FOI_FFA_URL=${FOI_FFA_URL}
- EMAIL_SERVER_IMAP=${EMAIL_SERVER_IMAP}
- EMAIL_SERVER_SMTP=${EMAIL_SERVER_SMTP}
- EMAIL_SERVER_SMTP_PORT=${EMAIL_SERVER_SMTP_PORT}
- EMAIL_SRUSERID=${EMAIL_SRUSERID}
- EMAIL_SRPWD=${EMAIL_SRPWD}
- EMAIL_SENDER_ADDRESS=${EMAIL_SENDER_ADDRESS}
- EMAIL_FOLDER_OUTBOX=${EMAIL_FOLDER_OUTBOX}
- EMAIL_FOLDER_INBOX=${EMAIL_FOLDER_INBOX}
- EVENT_QUEUE_CONVERSION_STREAMKEY=${EVENT_QUEUE_CONVERSION_STREAMKEY}
- EVENT_QUEUE_CONVERSION_LARGE_FILE_STREAM_KEY=${EVENT_QUEUE_CONVERSION_LARGE_FILE_STREAM_KEY}
- EVENT_QUEUE_DEDUPE_STREAMKEY=${EVENT_QUEUE_DEDUPE_STREAMKEY}
- EVENT_QUEUE_DEDUPE_LARGE_FILE_STREAMKEY=${EVENT_QUEUE_DEDUPE_LARGE_FILE_STREAMKEY}
- FOI_DOCREVIEWER_BASE_API_URL=${FOI_DOCREVIEWER_BASE_API_URL}
- FOI_DOCREVIEWER_BASE_API_TIMEOUT=${FOI_DOCREVIEWER_BASE_API_TIMEOUT}
- PAYMENT_CONFIG=${PAYMENT_CONFIG}
- FOI_REQ_MANAGEMENT_API_URL=${FOI_REQ_MANAGEMENT_API_URL}
- FOI_RECORD_FORMATS=${FOI_RECORD_FORMATS}
- EVENT_QUEUE_PDFSTITCH_STREAMKEY=${EVENT_QUEUE_PDFSTITCH_STREAMKEY}
- EVENT_QUEUE_PDFSTITCH_LARGE_FILE_STREAMKEY=${EVENT_QUEUE_PDFSTITCH_LARGE_FILE_STREAMKEY}
- STREAM_SEPARATION_FILE_SIZE_LIMIT=${STREAM_SEPARATION_FILE_SIZE_LIMIT}
- MUTE_NOTIFICATION=${MUTE_NOTIFICATION}
- EVENT_QUEUE_PAGECALCULATOR_STREAM_KEY=${EVENT_QUEUE_PAGECALCULATOR_STREAM_KEY}
- UNOPENED_REPORT_CUTOFF_DAYS=${UNOPENED_REPORT_CUTOFF_DAYS}
- UNOPENED_REPORT_WAIT_DAYS=${UNOPENED_REPORT_WAIT_DAYS}
- UNOPENED_REPORT_JARO_CUTOFF=${UNOPENED_REPORT_JARO_CUTOFF}
- UNOPENED_REPORT_EMAIL_RECIPIENT=${UNOPENED_REPORT_EMAIL_RECIPIENT}
- AXIS_API_URL=${AXIS_API_URL}
- AXIS_SYNC_BATCHSIZE=${AXIS_SYNC_BATCHSIZE}
#- LOG_ROOT=${LOG_ROOT}
#- LOG_BASIC=${LOG_BASIC}
#- LOG_TRACING=${LOG_TRACING}
#To tune connection settings (Optional)
#- SQLALCHEMY_POOL_SIZE=${SQLALCHEMY_POOL_SIZE}
#- SQLALCHEMY_MAX_OVERFLOW=${SQLALCHEMY_MAX_OVERFLOW}
#- SQLALCHEMY_POOL_TIMEOUT=${SQLALCHEMY_POOL_TIMEOUT}
#- SQLALCHEMY_CONNECT_TIMEOUT=${SQLALCHEMY_CONNECT_TIMEOUT}
#- SQLALCHEMY_POOL_PRE_PING=${SQLALCHEMY_POOL_PRE_PING}
#- SQLALCHEMY_ECHO=${SQLALCHEMY_ECHO}
foi-requests-DB:
image: postgres
container_name: aot_foi_requests_db_pg
ports:
- "15432:5432"
environment:
- POSTGRES_USER=${FOI_DATABASE_USERNAME}
- POSTGRES_PASSWORD=${FOI_DATABASE_PASSWORD}
networks:
services-network:
aliases:
- db
forms-flow-bpm-db:
image: postgres:latest
environment:
POSTGRES_USER: ${CAMUNDA_JDBC_USER}
POSTGRES_PASSWORD: ${CAMUNDA_JDBC_PASSWORD}
POSTGRES_DB: ${CAMUNDA_JDBC_DB_NAME:-formsflow-bpm}
POSTGRES_HOST_AUTH_METHOD: 'trust'
volumes:
- ./postgres/camunda:/data/postgres
ports:
- '5439:5432'
restart: unless-stopped
networks:
- forms-flow-bpm-network
forms-flow-bpm:
build:
context: ./apps/forms-flow-ai/forms-flow-bpm/
dockerfile: windows.Dockerfile
restart: always
links:
- forms-flow-bpm-db
ports:
- '8000:8080'
environment:
- KEYCLOAK_URL=${KEYCLOAK_URL}
- KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai}
- KEYCLOAK_CLIENTID=forms-flow-bpm
- KEYCLOAK_CLIENTSECRET=${KEYCLOAK_BPM_CLIENT_SECRET}
- CAMUNDA_JDBC_URL=${CAMUNDA_JDBC_URL:-jdbc:postgresql://forms-flow-bpm-db:5432/formsflow-bpm}
- CAMUNDA_JDBC_USER=${CAMUNDA_JDBC_USER:-admin}
- CAMUNDA_JDBC_PASSWORD=${CAMUNDA_JDBC_PASSWORD:-changeme}
- CAMUNDA_JDBC_DRIVER=org.postgresql.Driver
- CAMUNDA_BPM_HISTORY_LEVEL=${CAMUNDA_BPM_HISTORY_LEVEL:-none}
- CAMUNDA_APP_ROOT_LOG_FLAG=${CAMUNDA_APP_ROOT_LOG_FLAG:-ERROR}
- FORMSFLOW_API_URL=${FORMSFLOW_API_URL:-http://{your-ip-address}:16000}
- FORMSFLOW_WEB_URL=${FORMSFLOW_WEB_URL:-http://{your-ip-address}:4000}
- FORMIO_URL=${FORMIO_DEFAULT_PROJECT_URL:-http://{your-ip-address}:3001}
- FORMIO_ROOT_EMAIL=${FORMIO_ROOT_EMAIL:-admin@example.com}
- FORMIO_ROOT_PASSWORD=${FORMIO_ROOT_PASSWORD:-changeme}
- APP_SECURITY_ORIGIN=${APP_SECURITY_ORIGIN:-*}
- WEBSOCKET_SECURITY_ORIGIN=${WEBSOCKET_SECURITY_ORIGIN:-http://localhost:8000}
- WEBSOCKET_MESSAGE_TYPE=${WEBSOCKET_MESSAGE_TYPE:-TASK_EVENT}
- WEBSOCKET_ENCRYPT_KEY=${WEBSOCKET_ENCRYPT_KEY:-vqqJCQjpyt3eSKme}
- WEBSOCKET_BROKER_HOST=${WEBSOCKET_BROKER_HOST}
- WEBSOCKET_BROKER_PORT=${WEBSOCKET_BROKER_PORT}
- WEBSOCKET_BROKER_PASSCODE=${WEBSOCKET_BROKER_PASSCODE}
- WEBSOCKET_FOI_RAWREQUEST_TOPIC=${WEBSOCKET_FOI_RAWREQUEST_TOPIC}
- FORMSFLOW_WF_URL=${FORMSFLOW_WF_URL}
- FOI_REQ_MANAGEMENT_API_URL=${FOI_REQ_MANAGEMENT_API_URL}
- isIMAPEnabled=${isIMAPEnabled:-False}
depends_on:
- forms-flow-bpm-db
networks:
- forms-flow-bpm-network
foi-web:
container_name: foi-web
build:
context: ./forms-flow-web/
dockerfile: Dockerfile.local
args:
- NODE_ENV=${NODE_ENV:-development}
- GENERATE_SOURCEMAP=${GENERATE_SOURCEMAP}
- REACT_APP_KEYCLOAK_CLIENT=${KEYCLOAK_WEB_CLIENTID:-forms-flow-web}
- REACT_APP_WEB_BASE_URL=${FORMSFLOW_API_URL}
- REACT_APP_KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai}
- REACT_APP_KEYCLOAK_URL=${KEYCLOAK_URL}
- REACT_APP_APPLICATION_NAME=${APPLICATION_NAME:-foi-flow}
- REACT_APP_FOI_BASE_API_URL=${FOI_REQ_MANAGEMENT_API_URL}
- REACT_APP_SOCKETIO_CONNECT_URL=${SOCKETIO_CONNECT_URL}
- REACT_APP_SOCKETIO_RECONNECTION_DELAY=${SOCKETIO_RECONNECTION_DELAY}
- REACT_APP_SOCKETIO_RECONNECTION_DELAY_MAX=${SOCKETIO_RECONNECTION_DELAY_MAX}
- REACT_APP_FOI_FLOW_REPORTING_URL=${FOI_FLOW_REPORTING_URL}
- REACT_APP_AXIS_API_URL=${AXIS_API_URL}
- REACT_APP_SOCKETIO_CONNECT_NONCE=${SOCKETIO_CONNECT_NONCE}
- REACT_APP_DOCREVIEWER_WEB_URL=${FOI_DOCREVIEWER_WEB_URL}
- REACT_APP_DOCREVIEWER_BASE_API_URL=${FOI_DOCREVIEWER_BASE_API_URL}
- PAYMENT_EXPIRY_DAYS=${PAYMENT_EXPIRY_DAYS}
- REACT_APP_OSS_S3_FORMS_BUCKET=${OSS_S3_FORMS_BUCKET}
- REACT_APP_OSS_S3_HOST=${OSS_S3_HOST}
- REACT_APP_OSS_S3_CHUNK_SIZE=${OSS_S3_CHUNK_SIZE}
- REACT_APP_TOTAL_RECORDS_UPLOAD_LIMIT=${TOTAL_RECORDS_UPLOAD_LIMIT}
- FOI_FFA_URL=${FOI_FFA_URL}
- REACT_APP_FOI_RECORD_FORMATS=${FOI_RECORD_FORMATS}
- REACT_APP_RECORD_PROCESSING_HRS=${RECORD_PROCESSING_HRS}
- REACT_APP_DISABLE_REDACT_WEBLINK=${DISABLE_REDACT_WEBLINK}
- REACT_APP_DISABLE_GATHERINGRECORDS_TAB=${DISABLE_GATHERINGRECORDS_TAB}
- REACT_APP_RECORD_DOWNLOAD_LIMIT=${RECORD_DOWNLOAD_LIMIT}
- REACT_APP_RECORD_DOWNLOAD_SIZE_LIMIT=${RECORD_DOWNLOAD_SIZE_LIMIT}
- REACT_APP_SESSION_SECURITY_KEY=${REACT_APP_SESSION_SECURITY_KEY}
volumes:
- ".:/app"
- "/app/node_modules"
ports:
- "3000:8080"
tty: true
volumes:
dbdata:
networks:
forms-flow-bpm-network:
services-network:
driver: bridge