123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #!/bin/bash
- set -e
- cd /app
- if [ -n "${MYSQL_PORT_3306_TCP_ADDR}" ]; then
- DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2}
- DATABASE_HOST=${DATABASE_HOST:-${MYSQL_PORT_3306_TCP_ADDR}}
- DATABASE_PORT=${DATABASE_PORT:-${MYSQL_PORT_3306_TCP_PORT}}
- elif [ -n "${POSTGRESQL_PORT_5432_TCP_ADDR}" ]; then
- DATABASE_ADAPTER=${DATABASE_ADAPTER:-postgres}
- DATABASE_HOST=${DATABASE_HOST:-${POSTGRESQL_PORT_5432_TCP_ADDR}}
- DATABASE_PORT=${DATABASE_PORT:-${POSTGRESQL_PORT_5432_TCP_PORT}}
- fi
- cat <<EOF > /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)}"
- EOF
- chmod ugo+r /app/.env
- source /app/.env
- case "${DATABASE_ADAPTER}" in
- mysql2) DATABASE_PORT=${DATABASE_PORT:-3306} ;;
- postgres) DATABASE_PORT=${DATABASE_PORT:-5432} ;;
- *) echo "Unsupported database adapter. Available adapters are mysql2, and postgres." && exit 1 ;;
- esac
- /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
- if [ "${DATABASE_HOST}" == "localhost" ]; then
- if [ "${DATABASE_ADAPTER}" == "postgres" ]; then
- echo "DATABASE_ADAPTER 'postgres' is not supported internally. Please provide DATABASE_HOST."
- exit 1
- fi
-
- cat > /etc/supervisor/conf.d/mysqld.conf <<EOF
- [program:mysqld]
- priority=20
- directory=/tmp
- command=/usr/bin/mysqld_safe
- user=root
- autostart=false
- autorestart=true
- stdout_logfile=/var/log/supervisor/%(program_name)s.log
- stderr_logfile=/var/log/supervisor/%(program_name)s.log
- EOF
- supervisorctl reload
-
- chown -R mysql:mysql /var/lib/mysql
- chmod 700 /var/lib/mysql
-
- if [ ! -d /var/lib/mysql/mysql ]; then
- mysql_install_db --user=mysql
- fi
- echo "Starting mysql server..."
- supervisorctl start mysqld >/dev/null
-
- timeout=120
- while ! mysqladmin -uroot ${DATABASE_PASSWORD:+-p$DATABASE_PASSWORD} status >/dev/null 2>&1
- do
- timeout=$(expr $timeout - 1)
- if [ $timeout -eq 0 ]; then
- echo "Failed to start mysql server"
- exit 1
- fi
- sleep 1
- done
- if ! echo "USE ${DATABASE_NAME}" | mysql -uroot ${DATABASE_PASSWORD:+-p$DATABASE_PASSWORD} >/dev/null 2>&1; then
- DB_INIT="yes"
- echo "CREATE DATABASE IF NOT EXISTS \`${DATABASE_NAME}\` DEFAULT CHARACTER SET \`utf8\` COLLATE \`utf8_unicode_ci\`;" | mysql -uroot ${DATABASE_PASSWORD:+-p$DATABASE_PASSWORD}
- echo "GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON \`${DATABASE_NAME}\`.* TO 'root'@'localhost';" | mysql -uroot ${DATABASE_PASSWORD:+-p$DATABASE_PASSWORD}
- fi
- fi
- [ -z "${DO_NOT_MIGRATE}" ] && sudo -u huginn -EH bundle exec rake db:migrate
- [ -z "${DO_NOT_SEED}" ] && sudo -u huginn -EH bundle exec rake db:seed
- [ -n "$INTENTIONALLY_SLEEP" ] && sleep $INTENTIONALLY_SLEEP
- [ -z "${DO_NOT_RUN_JOBS}" ] && perl -pi -e 's/^jobs:/#jobs:/' /app/Procfile
- perl -pi -e 's/rails server$/rails server -p \$PORT/' /app/Procfile
- export PORT
- sudo -u huginn -EH bundle exec foreman start
- exit 0
|