From df8440d9532928da7e8dbda699207d2b3229a31c Mon Sep 17 00:00:00 2001 From: Ian Blenke Date: Sun, 14 Sep 2014 16:27:14 -0400 Subject: [PATCH] Refactored the environment variables to use a HUGINN_ prefix --- docker/README.md | 107 +++++++++++++++++++++++++------------------- docker/scripts/init | 80 ++++++++++++++++++--------------- 2 files changed, 105 insertions(+), 82 deletions(-) diff --git a/docker/README.md b/docker/README.md index cc99ead6..08953981 100644 --- a/docker/README.md +++ b/docker/README.md @@ -27,9 +27,9 @@ There is an exported docker volume of /var/lib/mysql to allow persistence of tha Additionally, the database variables may be overridden from the above as per the standard Huginn documentation: - DATABASE_ADAPTER #(must be either 'postgres' or 'mysql2') - DATABASE_HOST - DATABASE_PORT + HUGINN_DATABASE_ADAPTER #(must be either 'postgres' or 'mysql2') + HUGINN_DATABASE_HOST + HUGINN_DATABASE_PORT This script will run database migrations (rake db:migrate) which should be idempotent. @@ -52,15 +52,15 @@ Simple stand-alone usage: To link to another mysql container, for example: docker run --rm --name newcentury_mysql -p 3306 \ - -e MYSQL_DATABASE=huginn \ - -e MYSQL_USER=huginn \ - -e MYSQL_PASSWORD=somethingsecret \ - -e MYSQL_ROOT_PASSWORD=somethingevenmoresecret \ + -e HUGINN_MYSQL_DATABASE=huginn \ + -e HUGINN_MYSQL_USER=huginn \ + -e HUGINN_MYSQL_PASSWORD=somethingsecret \ + -e HUGINN_MYSQL_ROOT_PASSWORD=somethingevenmoresecret \ cantino/huginn docker run --rm --name huginn --link newcentury_mysql:MYSQL -p 5000:5000 \ - -e DATABASE_NAME=huginn \ - -e DATABASE_USER=huginn \ - -e DATABASE_PASSWORD=somethingsecret \ + -e HUGINN_DATABASE_NAME=huginn \ + -e HUGINN_DATABASE_USER=huginn \ + -e HUGINN_DATABASE_PASSWORD=somethingsecret \ cantino/huginn To link to another container named 'postgres': @@ -69,45 +69,58 @@ To link to another container named 'postgres': ## Environment Variables -Other Huginn 12factored environment variables of note, as generated and put into the .env file as per Huginn documentation: +Other Huginn 12factored environment variables of note, as generated and put into the .env file as per Huginn documentation, +with an additional `HUGINN_` prefix to the variable. - APP_SECRET_TOKEN=${APP_SECRET_TOKEN:-CHANGEME} - DOMAIN=${HUGINN_HOST:-localhost}:${PORT:-5000} - ${ASSET_HOST:+ASSET_HOST=${ASSET_HOST}} - DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2} - DATABASE_ENCODING=${DATABASE_ENCODING:-utf8} - DATABASE_RECONNECT=${DATABASE_RECONNECT:-true} - DATABASE_NAME=${DATABASE_NAME:-huginn} - DATABASE_POOL=${DATABASE_POOL:-5} - DATABASE_USERNAME=${DATABASE_USERNAME:-root} - DATABASE_PASSWORD="${DATABASE_PASSWORD}" - DATABASE_PORT=${DATABASE_PORT:-3306} - DATABASE_HOST=${DATABASE_HOST:-localhost} - DATABASE_PORT=${DATABASE_PORT:-3306} - ${DATABASE_SOCKET:+DATABASE_SOCKET=${DATABASE_SOCKET:-/tmp/mysql.sock}} - ${RAILS_ENV:+RAILS_ENV=${RAILS_ENV:-production}} - FORCE_SSL=${FORCE_SSL:-false} - INVITATION_CODE=${INVITATION_CODE:-try-huginn} - SMTP_DOMAIN=${SMTP_DOMAIM=-example.com} - SMTP_USER_NAME=${SMTP_USER_NAME:-you@gmail.com} - SMTP_PASSWORD=${SMTP_PASSWORD:-somepassword} - SMTP_SERVER=${SMTP_SERVER:-smtp.gmail.com} - SMTP_PORT=${SMTP_PORT:-587} - SMTP_AUTHENTICATION=${SMTP_AUTHENTICATION:-plain} - SMTP_ENABLE_STARTTLS_AUTO=${SMTP_ENABLE_STARTTLS_AUTO:-true} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS:-huginn@example.com} - AGENT_LOG_LENGTH=${AGENT_LOG_LENGTH:-200} - AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID:-your aws access key id}" - AWS_ACCESS_KEY="${AWS_ACCESS_KEY:-your aws access key}" - AWS_SANDBOX=${AWS_SANDBOX:-false} - FARADAY_HTTP_BACKEND=${FARADAY_HTTP_BACKEND:-typhoeus} - DEFAULT_HTTP_USER_AGENT="${DEFAULT_HTTP_USER_AGENT:-Huginn - https://github.com/cantino/huginn}" - ALLOW_JSONPATH_EVAL=${ALLOW_JSONPATH_EVAL:-false} - ENABLE_INSECURE_AGENTS=${ENABLE_INSECURE_AGENTS:-false} - ${USE_GRAPHVIZ_DOT:+USE_GRAPHVIZ_DOT=${USE_GRAPHVIZ_DOT:-dot}} - TIMEZONE="${TIMEZONE:-Pacific Time (US & Canada)}" +These are: -The defaults used are the Huginn defaults as per the [.env.example](https://github.com/cantino/huginn/blob/master/.env.example) file. + HUGINN_APP_SECRET_TOKEN + HUGINN_DOMAIN + HUGINN_ASSET_HOST + HUGINN_DATABASE_ADAPTER + HUGINN_DATABASE_ENCODING + HUGINN_DATABASE_RECONNECT + HUGINN_DATABASE_NAME + HUGINN_DATABASE_POOL + HUGINN_DATABASE_USERNAME + HUGINN_DATABASE_PASSWORD + HUGINN_DATABASE_HOST + HUGINN_DATABASE_PORT + HUGINN_DATABASE_SOCKET + HUGINN_RAILS_ENV + HUGINN_FORCE_SSL + HUGINN_INVITATION_CODE + HUGINN_SMTP_DOMAIM + HUGINN_SMTP_USER_NAME + HUGINN_SMTP_PASSWORD + HUGINN_SMTP_SERVER + HUGINN_SMTP_PORT + HUGINN_SMTP_AUTHENTICATION + HUGINN_SMTP_ENABLE_STARTTLS_AUTO + HUGINN_EMAIL_FROM_ADDRESS + HUGINN_AGENT_LOG_LENGTH + HUGINN_TWITTER_OAUTH_KEY + HUGINN_TWITTER_OAUTH_SECRET + HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_KEY + HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_SECRET + HUGINN_GITHUB_OAUTH_KEY + HUGINN_GITHUB_OAUTH_SECRET + HUGINN_AWS_ACCESS_KEY_ID + HUGINN_AWS_ACCESS_KEY + HUGINN_AWS_SANDBOX + HUGINN_FARADAY_HTTP_BACKEND + HUGINN_DEFAULT_HTTP_USER_AGENT + HUGINN_ALLOW_JSONPATH_EVAL + HUGINN_ENABLE_INSECURE_AGENTS + HUGGIN_ENABLE_SECOND_PRECISION_SCHEDULE + HUGINN_USE_GRAPHVIZ_DOT + HUGINN_TIMEZONE + HUGGIN_FAILED_JOBS_TO_KEEP + + +The above environment variables will override the defaults. The defaults are read from the [.env.example](https://github.com/cantino/huginn/blob/master/.env.example) file. + +For variables in the .env.example that are commented out, the default is to not include that variable in the generated .env file. ## Building on your own diff --git a/docker/scripts/init b/docker/scripts/init index f4a243aa..4b61ae14 100755 --- a/docker/scripts/init +++ b/docker/scripts/init @@ -3,6 +3,9 @@ set -e cd /app +# Default to the environment variable values set in .env.example +source /app/.env.example + # is a mysql or postgresql database linked? # requires that the mysql or postgresql containers have exposed # port 3306 and 5432 respectively. @@ -17,41 +20,48 @@ elif [ -n "${POSTGRESQL_PORT_5432_TCP_ADDR}" ]; then fi cat < /app/.env -APP_SECRET_TOKEN=${APP_SECRET_TOKEN:-CHANGEME} -DOMAIN=${DOMAIN:+${HUGINN_HOST:-localhost}:${PORT:-5000}} -${ASSET_HOST:+ASSET_HOST=${ASSET_HOST}} -DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2} -DATABASE_ENCODING=${DATABASE_ENCODING:-utf8} -DATABASE_RECONNECT=${DATABASE_RECONNECT:-true} -DATABASE_NAME=${DATABASE_NAME:-huginn} -DATABASE_POOL=${DATABASE_POOL:-5} -DATABASE_USERNAME=${DATABASE_USERNAME:-root} -DATABASE_PASSWORD="${DATABASE_PASSWORD}" -DATABASE_PORT=${DATABASE_PORT:-3306} -DATABASE_HOST=${DATABASE_HOST:-localhost} -DATABASE_PORT=${DATABASE_PORT:-3306} -${DATABASE_SOCKET:+DATABASE_SOCKET=${DATABASE_SOCKET:-/tmp/mysql.sock}} -${RAILS_ENV:+RAILS_ENV=${RAILS_ENV:-production}} -FORCE_SSL=${FORCE_SSL:-false} -INVITATION_CODE=${INVITATION_CODE:-try-huginn} -SMTP_DOMAIN=${SMTP_DOMAIM=-example.com} -SMTP_USER_NAME=${SMTP_USER_NAME:-you@gmail.com} -SMTP_PASSWORD=${SMTP_PASSWORD:-somepassword} -SMTP_SERVER=${SMTP_SERVER:-smtp.gmail.com} -SMTP_PORT=${SMTP_PORT:-587} -SMTP_AUTHENTICATION=${SMTP_AUTHENTICATION:-plain} -SMTP_ENABLE_STARTTLS_AUTO=${SMTP_ENABLE_STARTTLS_AUTO:-true} -EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS:-huginn@example.com} -AGENT_LOG_LENGTH=${AGENT_LOG_LENGTH:-200} -AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID:-your aws access key id}" -AWS_ACCESS_KEY="${AWS_ACCESS_KEY:-your aws access key}" -AWS_SANDBOX=${AWS_SANDBOX:-false} -FARADAY_HTTP_BACKEND=${FARADAY_HTTP_BACKEND:-typhoeus} -DEFAULT_HTTP_USER_AGENT="${DEFAULT_HTTP_USER_AGENT:-Huginn - https://github.com/cantino/huginn}" -ALLOW_JSONPATH_EVAL=${ALLOW_JSONPATH_EVAL:-false} -ENABLE_INSECURE_AGENTS=${ENABLE_INSECURE_AGENTS:-false} -${USE_GRAPHVIZ_DOT:+USE_GRAPHVIZ_DOT=${USE_GRAPHVIZ_DOT:-dot}} -TIMEZONE="${TIMEZONE:-Pacific Time (US & Canada)}" +APP_SECRET_TOKEN=${HUGINN_APP_SECRET_TOKEN:-$APP_SECRET_TOKEN} +DOMAIN=${HUGINN_DOMAIN:-$DOMAIN} +${ASSET_HOST:+ASSET_HOST=${HUGINN_ASSET_HOST:-$ASSET_HOST}} +DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-$DATABASE_ADAPTER} +DATABASE_ENCODING=${HUGINN_DATABASE_ENCODING:-$DATABASE_ENCODING} +DATABASE_RECONNECT=${HUGINN_DATABASE_RECONNECT:-$DATABASE_RECONNECT} +DATABASE_NAME=${HUGINN_DATABASE_NAME:-$DATABASE_NAME} +DATABASE_POOL=${HUGINN_DATABASE_POOL:-$DATABASE_POOL} +DATABASE_USERNAME=${HUGINN_DATABASE_USERNAME:-$DATABASE_USERNAME} +DATABASE_PASSWORD="${HUGINN_DATABASE_PASSWORD:-$DATABASE_PASSWORD}" +DATABASE_HOST=${HUGINN_DATABASE_HOST:-${DATABASE_HOST:-localhost}} +DATABASE_PORT=${HUGINN_DATABASE_PORT:-${DATABASE_PORT:-3306}} +${HUGINN_DATABASE_SOCKET:+DATABASE_SOCKET=${HUGINN_DATABASE_SOCKET}} +${HUGINN_RAILS_ENV:+RAILS_ENV=${HUGINN_RAILS_ENV}} +FORCE_SSL=${HUGINN_FORCE_SSL:-$FORCE_SSL} +INVITATION_CODE=${HUGINN_INVITATION_CODE:-$INVITATION_CODE} +SMTP_DOMAIN=${HUGINN_SMTP_DOMAIM:-$SMTP_DOMAIN} +SMTP_USER_NAME=${HUGINN_SMTP_USER_NAME:-$SMTP_USER_NAME} +SMTP_PASSWORD=${HUGINN_SMTP_PASSWORD:-$SMTP_PASSWORD} +SMTP_SERVER=${HUGINN_SMTP_SERVER:-$SMTP_SERVER} +SMTP_PORT=${HUGINN_SMTP_PORT:-$SMTP_PORT} +SMTP_AUTHENTICATION=${HUGINN_SMTP_AUTHENTICATION:-$SMTP_AUTHENTICATION} +SMTP_ENABLE_STARTTLS_AUTO=${HUGINN_SMTP_ENABLE_STARTTLS_AUTO:-$SMTP_ENABLE_STARTTLS_AUTO} +EMAIL_FROM_ADDRESS=${HUGINN_EMAIL_FROM_ADDRESS:-$EMAIL_FROM_ADDRESS} +AGENT_LOG_LENGTH=${HUGINN_AGENT_LOG_LENGTH:-$AGENT_LOG_LENGTH} +TWITTER_OAUTH_KEY=${HUGINN_TWITTER_OAUTH_KEY:-$TWITTER_OAUTH_KEY} +TWITTER_OAUTH_SECRET=${HUGINN_TWITTER_OAUTH_SECRET:-$TWITTER_OAUTH_SECRET} +THIRTY_SEVEN_SIGNALS_OAUTH_KEY=${HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_KEY:-$THIRTY_SEVEN_SIGNALS_OAUTH_KEY} +THIRTY_SEVEN_SIGNALS_OAUTH_SECRET=${HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_SECRET:-$THIRTY_SEVEN_SIGNALS_OAUTH_SECRET} +GITHUB_OAUTH_KEY=${HUGINN_GITHUB_OAUTH_KEY:-$GITHUB_OAUTH_KEY} +GITHUB_OAUTH_SECRET=${HUGINN_GITHUB_OAUTH_SECRET:-$GITHUB_OAUTH_SECRET} +AWS_ACCESS_KEY_ID="${HUGINN_AWS_ACCESS_KEY_ID:-$AWS_ACCESS_KEY_ID}" +AWS_ACCESS_KEY="${HUGINN_AWS_ACCESS_KEY:-$AWS_ACCESS_KEY}" +AWS_SANDBOX=${HUGINN_AWS_SANDBOX:-$AWS_SANDBOX} +FARADAY_HTTP_BACKEND=${HUGINN_FARADAY_HTTP_BACKEND:-$FARADAY_HTTP_BACKEND} +DEFAULT_HTTP_USER_AGENT=${HUGINN_DEFAULT_HTTP_USER_AGENT:-$DEFAULT_HTTP_USER_AGENT} +ALLOW_JSONPATH_EVAL=${HUGINN_ALLOW_JSONPATH_EVAL:-$ALLOW_JSONPATH_EVAL} +ENABLE_INSECURE_AGENTS=${HUGINN_ENABLE_INSECURE_AGENTS:-$HUGINN_ENABLE_INSECURE_AGENTS} +ENABLE_SECOND_PRECISION_SCHEDULE=${HUGGIN_ENABLE_SECOND_PRECISION_SCHEDULE:-$ENABLE_SECOND_PRECISION_SCHEDULE} +${HUGINN_USE_GRAPHVIZ_DOT:+USE_GRAPHVIZ_DOT=${HUGINN_USE_GRAPHVIZ_DOT}} +TIMEZONE="${HUGINN_TIMEZONE:-$TIMEZONE}" +FAILED_JOBS_TO_KEEP=${HUGGIN_FAILED_JOBS_TO_KEEP:-$FAILED_JOBS_TO_KEEP} EOF chmod ugo+r /app/.env source /app/.env