Skip to content

Commit 4420223

Browse files
authored
Support S3 blob storage (#701)
1 parent 2dec77e commit 4420223

File tree

6 files changed

+23
-1
lines changed

6 files changed

+23
-1
lines changed

.env.template

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,9 @@ HTTPS_PORT=443
3939
# SENTRY_ORG_SUBDOMAIN=
4040
# SENTRY_KEY=
4141
# SENTRY_PROJECT=
42+
43+
# Optional: configure S3-compatible storage for binary files
44+
# S3_SERVER=
45+
# S3_ACCESS_KEY=
46+
# S3_SECRET_KEY=
47+
# S3_BUCKET_NAME=

docker-compose.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ services:
7070
- SENTRY_ORG_SUBDOMAIN=${SENTRY_ORG_SUBDOMAIN:-o130137}
7171
- SENTRY_KEY=${SENTRY_KEY:-3cf75f54983e473da6bd07daddf0d2ee}
7272
- SENTRY_PROJECT=${SENTRY_PROJECT:-1298632}
73+
- S3_SERVER=${S3_SERVER:-}
74+
- S3_ACCESS_KEY=${S3_ACCESS_KEY:-}
75+
- S3_SECRET_KEY=${S3_SECRET_KEY:-}
76+
- S3_BUCKET_NAME=${S3_BUCKET_NAME:-}
7377
command: [ "wait-for-it", "${DB_HOST:-postgres14}:5432", "--", "./start-odk.sh" ]
7478
restart: always
7579
logging:

files/service/config.json.template

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@
4444
"orgSubdomain": "${SENTRY_ORG_SUBDOMAIN}",
4545
"key": "${SENTRY_KEY}",
4646
"project": "${SENTRY_PROJECT}"
47+
},
48+
"s3blobStore": {
49+
"server": "${S3_SERVER}",
50+
"accessKey": "${S3_ACCESS_KEY}",
51+
"secretKey": "${S3_SECRET_KEY}",
52+
"bucketName": "${S3_BUCKET_NAME}",
53+
"requestTimeout": 60000
4754
}
4855
}
4956
}

files/service/crontab

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
0 5 * * * root /usr/odk/upload-blobs.sh
12
0 4 * * * root /usr/odk/purge-forms.sh
23
0 3 * * * root /usr/odk/run-analytics.sh
34
0 2 * * * root /usr/odk/process-backlog.sh

files/service/scripts/start-odk.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ echo "generating local service configuration.."
44

55
ENKETO_API_KEY=$(cat /etc/secrets/enketo-api-key) \
66
BASE_URL=$( [ "${HTTPS_PORT}" = 443 ] && echo https://"${DOMAIN}" || echo https://"${DOMAIN}":"${HTTPS_PORT}" ) \
7-
envsubst '$DOMAIN $BASE_URL $SYSADMIN_EMAIL $ENKETO_API_KEY $DB_HOST $DB_USER $DB_PASSWORD $DB_NAME $DB_SSL $EMAIL_FROM $EMAIL_HOST $EMAIL_PORT $EMAIL_SECURE $EMAIL_IGNORE_TLS $EMAIL_USER $EMAIL_PASSWORD $OIDC_ENABLED $OIDC_ISSUER_URL $OIDC_CLIENT_ID $OIDC_CLIENT_SECRET $SENTRY_ORG_SUBDOMAIN $SENTRY_KEY $SENTRY_PROJECT' \
7+
envsubst '$DOMAIN $BASE_URL $SYSADMIN_EMAIL $ENKETO_API_KEY $DB_HOST $DB_USER $DB_PASSWORD $DB_NAME $DB_SSL $EMAIL_FROM $EMAIL_HOST $EMAIL_PORT $EMAIL_SECURE $EMAIL_IGNORE_TLS $EMAIL_USER $EMAIL_PASSWORD $OIDC_ENABLED $OIDC_ISSUER_URL $OIDC_CLIENT_ID $OIDC_CLIENT_SECRET $SENTRY_ORG_SUBDOMAIN $SENTRY_KEY $SENTRY_PROJECT $S3_SERVER $S3_ACCESS_KEY $S3_SECRET_KEY $S3_BUCKET_NAME' \
88
< /usr/share/odk/config.json.template \
99
> /usr/odk/config/local.json
1010

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/sh -eu
2+
3+
cd /usr/odk
4+
/usr/local/bin/node lib/bin/s3.js upload-pending >/proc/1/fd/1 2>/proc/1/fd/2

0 commit comments

Comments
 (0)