diff --git a/bluesky/hooks/smtp_server-relation-joined b/bluesky/hooks/smtp_server-relation-joined new file mode 100755 index 0000000..09fe3ff --- /dev/null +++ b/bluesky/hooks/smtp_server-relation-joined @@ -0,0 +1,65 @@ +#!/bin/bash + +set -e + +host=$(relation-get host) +port=$(relation-get port) +connection_security=$(relation-get connection-security) +auth_method=$(relation-get auth-method) + +## We are creating a URL that looks like this: +## smtp://[login:password@]host:port/?ignoreTLS=true&secure=false +## ref: https://nodemailer.com/smtp/ + +opts=() +declare -A ENV +case "$connection_security" in + "none") + url+="smtp://" + opts+=( + "ignoreTLS=true" + "secure=false" + ) + ;; + "ssl/tls") + url+="smtps://" + ;; + *) + error "Unsupported connection security: $connection_security" + exit 1 + ;; +esac +case "$auth_method" in + "none") + : + ;; + "password") + login=$(relation-get login) || true + password=$(relation-get password) || true + url+="$login:${password//\$/\$\$}@" + ;; + *) + error "Unsupported auth method: $auth_method" + exit 1 + ;; +esac + +url+="$host:$port/" + +first=1 +for opt in "${opts[@]}"; do + if [ $first -eq 1 ]; then + url+="?" + first=0 + else + url+="&" + fi + url+="$opt" +done + +config-add "\ +services: + $MASTER_BASE_SERVICE_NAME: + environment: + PDS_EMAIL_SMTP_URL: \"$url\" +" diff --git a/bluesky/metadata.yml b/bluesky/metadata.yml index ffa6e1f..ff22487 100644 --- a/bluesky/metadata.yml +++ b/bluesky/metadata.yml @@ -2,8 +2,11 @@ docker-image: docker.0k.io/bluesky:0.4.67 ## from: ghcr.io/bluesky-social/pds:0 data-resources: - /var/lib/bluesky -default-options: +docker-compose: + environment: + PDS_EMAIL_FROM_ADDRESS: "no-reply@no-domain.org" +default-options: uses: web-proxy: #constraint: required | recommended | optional @@ -38,3 +41,8 @@ uses: ## - must start with a '/', will start from $SERVICE_DATASTORE #exclude-patterns: # - "/var/lib/odoo/sessions/" + smtp-server: + constraint: optional + auto: pair + solves: + mail: "verify email"