-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
docker-compose.yml
109 lines (107 loc) · 5.06 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
# Docker Compose file for Vapor
#
# Install Docker on your system to run and test
# your Vapor app in a production-like environment.
#
# Note: This file is intended for testing and does not
# implement best practices for a production deployment.
#
# Learn more: https://docs.docker.com/compose/reference/
#
# Build images: docker-compose build
# Start app: docker-compose up app
# Stop all: docker-compose down
#
version: '3.7'
x-shared_environment: &shared_environment
LOG_LEVEL: ${LOG_LEVEL:-debug}
PARSE_SERVER_APPLICATION_ID: ${PARSE_SERVER_APPLICATION_ID}
PARSE_SERVER_PRIMARY_KEY: ${PARSE_SERVER_PRIMARY_KEY}
PARSE_SERVER_READ_ONLY_PRIMARY_KEY: 367F7395-2E3A-46B1-ABA3-963A25D533C3
PARSE_SERVER_WEBHOOK_KEY: ${PARSE_SERVER_WEBHOOK_KEY}
PARSE_SERVER_ENCRYPTION_KEY: 72F8F23D-FDDB-4792-94AE-72897F0688F9
PARSE_SERVER_TRUST_PROXY: 'true'
PARSE_SERVER_OBJECT_ID_SIZE: 32
PARSE_SERVER_DATABASE_URI: postgres://${PG_PARSE_USER}:${PG_PARSE_PASSWORD}@db:${DB_PORT}/${PG_PARSE_DB}
PORT: ${PORT}
PARSE_SERVER_MOUNT_PATH: ${MOUNT_PATH}
PARSE_SERVER_CLOUD: /parse-server/cloud/main.js
PARSE_SERVER_MOUNT_GRAPHQL: 'false'
PARSE_SERVER_ALLOW_CLIENT_CLASS_CREATION: 'true' # Don't allow classes to be created on the client side. You can create classes by using ParseDashboard instead
PARSE_SERVER_ALLOW_CUSTOM_OBJECTID: 'true' # Required to be true for ParseCareKit
PARSE_SERVER_ENABLE_SCHEMA_HOOKS: 'true' # When this is true, only need one server for PARSE_SERVER_SWIFT_URLS
PARSE_SERVER_DIRECT_ACCESS: 'false' # WARNING: Setting to 'true' is known to cause crashes on parse-hipaa running postgres
PARSE_SERVER_ENABLE_PRIVATE_USERS: 'true'
PARSE_SERVER_USING_PARSECAREKIT: 'false' # If you are not using ParseCareKit, set this to 'false'
PARSE_SERVER_RATE_LIMIT: 'true'
PARSE_SERVER_RATE_LIMIT_REQUEST_COUNT: '100'
PARSE_SERVER_RATE_LIMIT_INCLUDE_PRIMARY_KEY: 'false'
PARSE_SERVER_RATE_LIMIT_INCLUDE_INTERNAL_REQUESTS: 'false'
PARSE_DASHBOARD_START: 'true'
PARSE_DASHBOARD_APP_NAME: Parse HIPAA
PARSE_DASHBOARD_USERNAMES: parse, parseRead
PARSE_DASHBOARD_USER_PASSWORDS: 1234, 1234
PARSE_DASHBOARD_USER_PASSWORD_ENCRYPTED: 'false'
PARSE_DASHBOARD_ALLOW_INSECURE_HTTP: 1
PARSE_DASHBOARD_COOKIE_SESSION_SECRET: AB8849B6-D725-4A75-AA73-AB7103F0363F # This should be constant across all deployments on your system
PARSE_DASHBOARD_MOUNT_PATH: /dashboard # This needs to be exactly what you plan it to be behind the proxy, i.e. If you want to access cs.uky.edu/dashboard it should be "/dashboard"
PARSE_VERBOSE: 'false'
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # Needed for wait-for-postgres.sh
services:
cloud-code:
image: parse-server-swift:latest
build:
context: .
environment:
<<: *shared_environment
PARSE_SERVER_SWIFT_HOST_NAME: cloud-code # Should be same name as docker service
PARSE_SERVER_SWIFT_PORT: 8080
PARSE_SERVER_SWIFT_DEFAULT_MAX_BODY_SIZE: 16kb
PARSE_SERVER_SWIFT_URLS: http://parse:1337/parse #,http://parse2:1337/parse # Only need to list one server.
PARSE_SERVER_SWIFT_APPLICATION_ID: ${PARSE_SERVER_APPLICATION_ID}
PARSE_SERVER_SWIFT_PRIMARY_KEY: ${PARSE_SERVER_PRIMARY_KEY}
PARSE_SERVER_SWIFT_WEBHOOK_KEY: ${PARSE_SERVER_WEBHOOK_KEY}
# ports:
# - '8081:8080'
# user: '0' # uncomment to run as root for testing purposes even though Dockerfile defines 'vapor' user.
restart: always
command: ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "8080"]
# volumes:
# - ./.env:/app/.env
# - ./.env.production:/app/.env.production # Mount production environment if you have one.
depends_on:
- parse
parse:
image: netreconlab/parse-hipaa:6.4.0-dashboard
# Uncomment the image below to use Parse Server 5.4.0 instead. Be sure to comment out 6.0.0x
#image: netreconlab/parse-hipaa:5.4.0-dashboard
environment:
<<: *shared_environment
PARSE_SERVER_URL: http://parse:${PORT}${MOUNT_PATH}
PARSE_SERVER_PUBLIC_URL: http://localhost:${PORT}${MOUNT_PATH}
PARSE_DASHBOARD_SERVER_URL: http://localhost:${PORT}${MOUNT_PATH}
ports:
- 127.0.0.1:${PORT}:${PORT}
volumes:
- ./parse/wait-for-postgres.sh:/parse-server/wait-for-postgres.sh
- ./parse/index.js:/parse-server/index.js
# Uncomment the mount below to use Parse Server 5.4.0 instead. Be sure to comment out the index.js mount above
#- ./parse/index-5.4.0.js:/parse-server/index.js
- ./parse/cloud:/parse-server/cloud
- ./parse/files:/parse-server/files # All files uploaded from users are stored to an ecrypted drive locally for HIPAA compliance
restart: always
command: ["./wait-for-postgres.sh", "db", "node", "index.js"]
depends_on:
- db
db:
image: netreconlab/hipaa-postgres:latest
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
PG_PARSE_USER: ${PG_PARSE_USER}
PG_PARSE_PASSWORD: ${PG_PARSE_PASSWORD}
PG_PARSE_DB: ${PG_PARSE_DB}
PMM_USER: ${PMM_USER}
PMM_PASSWORD: ${PMM_PASSWORD}
restart: always
ports:
- 127.0.0.1:${DB_PORT}:${DB_PORT}