Skip to content
Snippets Groups Projects
start 2.97 KiB
Newer Older
  • Learn to ignore specific revisions
  • # NOTE: The canonical source for this file is in the metabase/metabase repository.
    # Please update it there then copy to the metabase/metabase-deploy repository.
    
    
    # Translate various Heroku environment variables to Metabase equivalents
    
    
    if [ "$PORT" ]; then
        export MB_JETTY_PORT="$PORT"
    fi
    
    
    if [ "$DATABASE_URL" ]; then
    
        if [[ $string == *"?"* ]]; then
            # if DATABASE_URL already has a query string don't mess with it
            export MB_DB_CONNECTION_URI="$DATABASE_URL"
        else
            # otherwise add the SSL parameters to ensure upgraded databases work on Heroku
            export MB_DB_CONNECTION_URI="$DATABASE_URL?ssl=true&sslmode=require&sslfactory=org.postgresql.ssl.NonValidatingFactory"
        fi
    
    if [ "$MAILGUN_SMTP_LOGIN" ]; then
    
        export MB_EMAIL_SMTP_HOST="$MAILGUN_SMTP_SERVER"
    
        export MB_EMAIL_SMTP_PORT="$MAILGUN_SMTP_PORT"
        export MB_EMAIL_SMTP_USERNAME="$MAILGUN_SMTP_LOGIN"
        export MB_EMAIL_SMTP_PASSWORD="$MAILGUN_SMTP_PASSWORD"
    fi
    
    
    # SendGrid (Heroku)
    if [ "$SENDGRID_USERNAME" ]; then
        export MB_EMAIL_SMTP_HOST="smtp.sendgrid.net"
        export MB_EMAIL_SMTP_PORT="587"
        export MB_EMAIL_SMTP_USERNAME="$SENDGRID_USERNAME"
        export MB_EMAIL_SMTP_PASSWORD="$SENDGRID_PASSWORD"
        export MB_EMAIL_SMTP_SECURITY="tls"
    fi
    
    # Mandrill (Heroku)
    if [ "$MANDRILL_USERNAME" ]; then
        export MB_EMAIL_SMTP_HOST="smtp.mandrillapp.com"
        export MB_EMAIL_SMTP_PORT="587"
        export MB_EMAIL_SMTP_USERNAME="$MANDRILL_USERNAME"
        export MB_EMAIL_SMTP_PASSWORD="$MANDRILL_APIKEY"
    fi
    
    # Postmark (Heroku)
    # NOTE: requires configuring sender signature for "from" address
    if [ "$POSTMARK_API_TOKEN" ]; then
        export MB_EMAIL_SMTP_HOST="$POSTMARK_SMTP_SERVER"
        export MB_EMAIL_SMTP_PORT="25"
        export MB_EMAIL_SMTP_USERNAME="$POSTMARK_API_TOKEN"
        export MB_EMAIL_SMTP_PASSWORD="$POSTMARK_API_TOKEN"
        export MB_EMAIL_SMTP_SECURITY="tls"
    fi
    
    # SparkPost (Heroku)
    # NOTE: requires additional configuration
    if [ "$SPARKPOST_SMTP_USERNAME" ]; then
        export MB_EMAIL_SMTP_HOST="$SPARKPOST_SMTP_HOST"
        export MB_EMAIL_SMTP_PORT="$SPARKPOST_SMTP_PORT"
        export MB_EMAIL_SMTP_USERNAME="$SPARKPOST_SMTP_USERNAME"
        export MB_EMAIL_SMTP_PASSWORD="$SPARKPOST_SMTP_PASSWORD"
    fi
    
    
    # AWS Elastic Beanstalk w/ RDS
    if [ ! -z "$RDS_HOSTNAME" ]; then
        # EEK: this is a bit fragile.  if user picks a non-standard port for their db we are screwed :(
        if [ "$RDS_PORT" == "3306" ]; then
            export MB_DB_TYPE=mysql
        else
            export MB_DB_TYPE=postgres
        fi
    
        export MB_DB_DBNAME=$RDS_DB_NAME
        export MB_DB_USER=$RDS_USERNAME
        export MB_DB_PASS=$RDS_PASSWORD
        export MB_DB_HOST=$RDS_HOSTNAME
        export MB_DB_PORT=$RDS_PORT
    fi
    
    
    Cam Saul's avatar
    Cam Saul committed
    JAVA_OPTS="${JAVA_OPTS} -XX:+IgnoreUnrecognizedVMOptions"
    JAVA_OPTS="${JAVA_OPTS} -Dfile.encoding=UTF-8"
    JAVA_OPTS="${JAVA_OPTS} --add-opens=java.base/java.net=ALL-UNNAMED"
    
    JAVA_OPTS="${JAVA_OPTS} --add-modules=java.xml.bind"
    
    Cam Saul's avatar
    Cam Saul committed
    
    exec java $JAVA_OPTS -jar ./target/uberjar/metabase.jar