100_generate_secrets.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. set -e -o pipefail
  3. # generate secrets and defines them as environment variables
  4. # https://github.com/phusion/baseimage-docker#centrally-defining-your-own-environment-variables
  5. WEB_API_PASSWORD_FILE=/etc/container_environment/WEB_API_PASSWORD
  6. STAGING_PASSWORD_FILE=/etc/container_environment/STAGING_PASSWORD # HTTP auth for history-v1
  7. V1_HISTORY_PASSWORD_FILE=/etc/container_environment/V1_HISTORY_PASSWORD
  8. CRYPTO_RANDOM_FILE=/etc/container_environment/CRYPTO_RANDOM
  9. OT_JWT_AUTH_KEY_FILE=/etc/container_environment/OT_JWT_AUTH_KEY
  10. generate_secret () {
  11. dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev | tr -d '\n+/'
  12. }
  13. if [ ! -f "$WEB_API_PASSWORD_FILE" ] ||
  14. [ ! -f "$STAGING_PASSWORD_FILE" ] ||
  15. [ ! -f "$V1_HISTORY_PASSWORD_FILE" ] ||
  16. [ ! -f "$CRYPTO_RANDOM_FILE" ] ||
  17. [ ! -f "$OT_JWT_AUTH_KEY_FILE" ]
  18. then
  19. echo "generating random secrets"
  20. SECRET=$(generate_secret)
  21. echo "${SECRET}" > ${WEB_API_PASSWORD_FILE}
  22. SECRET=$(generate_secret)
  23. echo "${SECRET}" > ${STAGING_PASSWORD_FILE}
  24. echo "${SECRET}" > ${V1_HISTORY_PASSWORD_FILE}
  25. SECRET=$(generate_secret)
  26. echo "${SECRET}" > ${CRYPTO_RANDOM_FILE}
  27. SECRET=$(generate_secret)
  28. echo "${SECRET}" > ${OT_JWT_AUTH_KEY_FILE}
  29. fi