Skip to content

Commit

Permalink
fix: working external S3 ODK media storage
Browse files Browse the repository at this point in the history
  • Loading branch information
spwoodcock committed Dec 6, 2024
1 parent 7df0a58 commit b8a6ad0
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 18 deletions.
4 changes: 2 additions & 2 deletions docker-compose.development.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,8 @@ services:
- SENTRY_ORG_SUBDOMAIN=${SENTRY_ORG_SUBDOMAIN:-o130137}
- SENTRY_KEY=${SENTRY_KEY:-3cf75f54983e473da6bd07daddf0d2ee}
- SENTRY_PROJECT=${SENTRY_PROJECT:-1298632}
- S3_ENDPOINT=${S3_ENDPOINT}
- S3_ODK_BUCKET_NAME=${S3_ODK_BUCKET_NAME:-"fmtm-odk-media"}
- S3_SERVER=${S3_ENDPOINT}
- S3_BUCKET_NAME=${S3_ODK_BUCKET_NAME:-"fmtm-odk-media"}
- S3_ACCESS_KEY=${S3_ACCESS_KEY}
- S3_SECRET_KEY=${S3_SECRET_KEY}
networks:
Expand Down
12 changes: 7 additions & 5 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ services:
- ./src/frontend:/app
- /app/node_modules/
environment:
- VITE_API_URL=${API_URL:-http://api.${FMTM_DOMAIN}:${FMTM_DEV_PORT:-7050}}
- VITE_API_URL=http://api.${FMTM_DOMAIN}:${FMTM_DEV_PORT:-7050}
ports:
- "7051:7051"
networks:
Expand All @@ -154,7 +154,7 @@ services:
- /app/.svelte-kit/
# - ../ui:/app/node_modules/@hotosm/ui:ro
environment:
- VITE_API_URL=${API_URL:-http://api.${FMTM_DOMAIN}:${FMTM_DEV_PORT:-7050}}
- VITE_API_URL=http://api.${FMTM_DOMAIN}:${FMTM_DEV_PORT:-7050}
- VITE_SYNC_URL=http://sync.${FMTM_DOMAIN}:${FMTM_DEV_PORT:-7050}
networks:
- fmtm-net
Expand Down Expand Up @@ -194,8 +194,9 @@ services:
- SENTRY_ORG_SUBDOMAIN=${SENTRY_ORG_SUBDOMAIN:-o130137}
- SENTRY_KEY=${SENTRY_KEY:-3cf75f54983e473da6bd07daddf0d2ee}
- SENTRY_PROJECT=${SENTRY_PROJECT:-1298632}
- S3_ENDPOINT=${S3_ENDPOINT:-"http://s3:9000"}
- S3_ODK_BUCKET_NAME=${S3_ODK_BUCKET_NAME:-"fmtm-odk-media"}
# Note S3_ENDPOINT is hardcoded here for when we use tunnel config
- S3_SERVER="http://s3:9000
- S3_BUCKET_NAME=${S3_ODK_BUCKET_NAME:-"fmtm-odk-media"}
- S3_ACCESS_KEY=${S3_ACCESS_KEY}
- S3_SECRET_KEY=${S3_SECRET_KEY}
# ports:
Expand Down Expand Up @@ -326,7 +327,8 @@ services:
- .env
# Hardcode some vars for dev, as not necessarily present in the .env file
environment:
- S3_ENDPOINT=${S3_ENDPOINT:-"http://s3:9000"}
# Note S3_ENDPOINT is hardcoded here for when we use tunnel config
- S3_ENDPOINT="http://s3:9000
- S3_BACKUP_BUCKET_NAME=${S3_BACKUP_BUCKET_NAME:-"fmtm-db-backups"}
networks:
- fmtm-net
Expand Down
22 changes: 11 additions & 11 deletions odkcentral/api/container-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
set -eo pipefail

check_all_s3_vars_present() {
if [ -z "${S3_ENDPOINT}" ]; then
echo "Environment variable S3_ENDPOINT is not set."
if [ -z "${S3_SERVER}" ]; then
echo "Environment variable S3_SERVER is not set."
exit 1
fi
if [ -z "${S3_ACCESS_KEY}" ]; then
Expand All @@ -15,16 +15,16 @@ check_all_s3_vars_present() {
echo "Environment variable S3_SECRET_KEY is not set."
exit 1
fi
if [ -z "${S3_ODK_BUCKET_NAME}" ]; then
echo "Environment variable S3_ODK_BUCKET_NAME is not set."
if [ -z "${S3_BUCKET_NAME}" ]; then
echo "Environment variable S3_BUCKET_NAME is not set."
exit 1
fi

# Strip any extra unrequired "quotes"
export S3_ENDPOINT="${S3_ENDPOINT//\"/}"
export S3_SERVER="${S3_SERVER//\"/}"
export S3_ACCESS_KEY="${S3_ACCESS_KEY//\"/}"
export S3_SECRET_KEY="${S3_SECRET_KEY//\"/}"
export S3_ODK_BUCKET_NAME="${S3_ODK_BUCKET_NAME//\"/}"
export S3_BUCKET_NAME="${S3_BUCKET_NAME//\"/}"
}

# Check env vars + strip extra quotes on vars
Expand All @@ -50,11 +50,11 @@ echo "Elevating user to admin"
odk-cmd --email "${SYSADMIN_EMAIL}" user-promote || true

### Create S3 bucket for submission photo storage ###
BUCKET_NAME="${S3_ODK_BUCKET_NAME}"
echo "Creating S3 bucket ${BUCKET_NAME} to store submission media"
mc alias set s3 "$S3_ENDPOINT" "$S3_ACCESS_KEY" "$S3_SECRET_KEY"
mc mb "s3/${BUCKET_NAME}" --ignore-existing
mc anonymous set download "s3/${BUCKET_NAME}"
echo "Creating S3 bucket ${S3_BUCKET_NAME} to store submission media"
mc alias set s3 "$S3_SERVER" "$S3_ACCESS_KEY" "$S3_SECRET_KEY"
mc mb "s3/${S3_BUCKET_NAME}" --ignore-existing
# Prevent anonymous access (pre-signed URL download only)
mc anonymous set none "s3/${S3_BUCKET_NAME}"

### Run server (hardcode WORKER_COUNT=1 for dev) ###
export WORKER_COUNT=1
Expand Down

0 comments on commit b8a6ad0

Please sign in to comment.