diff --git a/.env b/.env index 2e4ed91..07d6de2 100644 --- a/.env +++ b/.env @@ -1,7 +1,5 @@ LITESPEED=1.6.4.build -WEB_ADMIN_PASSWORD=litespeed - MYSQL_DATABASE=wordpress MYSQL_ROOT_PASSWORD=password MYSQL_USER=wordpress diff --git a/.travis.yml b/.travis.yml index b87e590..a8a65f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,8 +9,8 @@ notifications: slack: secure: mSj4SYM4weApU3Ct+nqdaHkLw0J/q5+VH1q0LYnviZ06UpRU/N6lricfu9ihgND2VJ+cwfuQpAegdI1cDFzxDRpZpnzU9Db4N7OW5cDkb8eHpy6XhjQYi5KqWfgamh2UwiqYGgoQBc4gXhGDlChjJQopM+qPesHO9y/ucFAjxdlkEHVdZKNYDiVfiOKCGBzDuP+PbOPiZiqQFBgmFs1YLLrrQ7y5dgdoiai2I72MAN0kngoNB9ZsUgtQ63WTdgPKJOiX+oQMMXgYoP0+9iIhS6/cKHs64Z7jPreYYuWWMTnQPdvaIgh4ASIhUE6FVI5SdFxmajVik8SMlRK1rQApQLJ9wOJammUJHCSI4jfEVQ5H2og9R3+BA0qspBQVZXMTCYfX10Up1tmL+Kev1Za335v2z046gzX4aTiWBxi1I9mYmnYKQiGuaIG5crkPodIAeS9HX/DulMUhPRpa0Djwi7ZJlCAzfuEGDgAlWt/oWfIw66unTY/G6cEaxeEbZ3Ho+bPy48dRxhYW5kRHR1OuHqqfNULYeAGm6AIF3ng+2GjvXh6rhqmstBh/myROqM3X7ofUzEJRo9ow+hDroZLE4mfavn4UAnQybN7FfzuJiOoYTmcws7JzYD8b/G+Aynjw04m0ojDDJN0fVgQ+qltMoCfFMhx8FscF/QjGo/T/zc4= template: - - "Repo %{repository_slug} *%{result}* build (<%{build_url}|#%{build_number}>) for commit (<%{compare_url}|%{commit}>) on branch %{branch}." - - "_%{commit_message}_" + - "Repo %{repository_slug} *%{result}* build (<%{build_url}|#%{build_number}>) for commit (<%{compare_url}|%{commit}>)" + - "%{author}: _%{commit_message}_" - "Execution time: *%{duration}*" - "Message: *%{message}*" on_success: always diff --git a/bin/download.sh b/bin/appinstall.sh old mode 100755 new mode 100644 similarity index 78% rename from bin/download.sh rename to bin/appinstall.sh index ed0df42..2e8ab26 --- a/bin/download.sh +++ b/bin/appinstall.sh @@ -4,7 +4,7 @@ DOMAIN='' help_message(){ echo 'Command [-app app_name] [-domain domain_name]' - echo 'Example: download.sh -app wordpress -d example.com' + echo 'Example: appinstall.sh -app wordpress -d example.com' } check_input(){ @@ -15,7 +15,7 @@ check_input(){ } app_download(){ - docker-compose exec litespeed su -c "downloadctl.sh -app ${1} -domain ${2}" + docker-compose exec litespeed su -c "appinstallctl.sh -app ${1} -domain ${2}" exit 0 } diff --git a/bin/container/downloadctl.sh b/bin/container/appinstallctl.sh old mode 100755 new mode 100644 similarity index 65% rename from bin/container/downloadctl.sh rename to bin/container/appinstallctl.sh index 5ee6251..5d8717c --- a/bin/container/downloadctl.sh +++ b/bin/container/appinstallctl.sh @@ -1,6 +1,7 @@ #!/bin/bash DEFAULT_VH_ROOT='/var/www/vhosts' VH_DOC_ROOT='' +VHNAME='' APP_NAME='' DOMAIN='' WWW_UID='' @@ -9,7 +10,7 @@ PUB_IP=$(curl http://checkip.amazonaws.com) help_message(){ echo 'Command [-app app_name] [-domain domain_name]' - echo 'Example: download.sh -app wordpress -d example.com' + echo 'Example: appinstallctl.sh -app wordpress -d example.com' } check_input(){ @@ -38,17 +39,19 @@ get_owner(){ } get_db_pass(){ - if [ -f ${DEFAULT_VH_ROOT}/${1}/.db_pass ]; then - SQL_DB=$(grep -i Database ${VH_DOC_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') - SQL_USER=$(grep -i Username ${VH_DOC_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') - SQL_PASS=$(grep -i Password ${VH_DOC_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') - else - echo 'DB_PASS can not locate!' + if [ -f ${DEFAULT_VH_ROOT}/${1}/.db_pass ]; then + SQL_DB=$(grep -i Database ${VH_DOC_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') + SQL_USER=$(grep -i Username ${VH_DOC_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') + SQL_PASS=$(grep -i Password ${VH_DOC_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') + else + echo 'DB_PASS can not locate!' fi } set_vh_docroot(){ - if [ -d ${DEFAULT_VH_ROOT}/${1}/html ]; then + if [ "${VHNAME}" != '' ]; then + VH_DOC_ROOT="${DEFAULT_VH_ROOT}/${VHNAME}/html" + elif [ -d ${DEFAULT_VH_ROOT}/${1}/html ]; then VH_DOC_ROOT="${DEFAULT_VH_ROOT}/${1}/html" else echo "${DEFAULT_VH_ROOT}/${1}/html does not exist, please add domain first! Abort!" @@ -57,16 +60,15 @@ set_vh_docroot(){ } check_sql_native(){ - local COUNTER=0 + local COUNTER=0 local LIMIT_NUM=100 - until [ "$(curl -v mysql:3306 2>&1 | grep native)" ]; - do - echo "Counter: ${COUNTER}/${LIMIT_NUM}" + until [ "$(curl -v mysql:3306 2>&1 | grep native)" ]; do + echo "Counter: ${COUNTER}/${LIMIT_NUM}" COUNTER=$((COUNTER+1)) if [ ${COUNTER} = 10 ]; then echo '--- MySQL is starting, please wait... ---' elif [ ${COUNTER} = ${LIMIT_NUM} ]; then - echo '--- MySQL is timeout, exit! ---' + echo '--- MySQL is timeout, exit! ---' exit 1 fi sleep 1 @@ -84,12 +86,12 @@ preinstall_wordpress(){ NEWDBPWD="define('DB_NAME', '${SQL_DB}');" linechange 'DB_NAME' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" elif [ -f ${VH_DOC_ROOT}/wp-config.php ]; then - echo "${VH_DOC_ROOT}/wp-config.php already exist, exit !" + echo "${VH_DOC_ROOT}/wp-config.php already exist, exit !" exit 1 else - echo 'Skip!' + echo 'Skip!' exit 2 - fi + fi } app_wordpress_dl(){ @@ -108,34 +110,37 @@ main(){ get_owner cd ${VH_DOC_ROOT} if [ "${APP_NAME}" = 'wordpress' ] || [ "${APP_NAME}" = 'wp' ]; then - check_sql_native - app_wordpress_dl + check_sql_native + app_wordpress_dl preinstall_wordpress exit 0 else - echo "APP: ${APP_NAME} not support, exit!" + echo "APP: ${APP_NAME} not support, exit!" exit 1 fi } while [ ! -z "${1}" ]; do - case ${1} in - -[hH] | -help | --help) - help_message - ;; - -app | -a | -A) shift - check_input "${1}" - APP_NAME="${1}" - ;; - -d | -D | -domain) shift - check_input "${1}" - DOMAIN="${1}" + case ${1} in + -[hH] | -help | --help) + help_message + ;; + -app | -a | -A) shift + check_input "${1}" + APP_NAME="${1}" + ;; + -d | -D | -domain) shift + check_input "${1}" + DOMAIN="${1}" set_vh_docroot ${DOMAIN} - ;; - *) - help_message - ;; - esac - shift + ;; + -vhname) shift + VHNAME="${1}" + ;; + *) + help_message + ;; + esac + shift done main diff --git a/bin/database.sh b/bin/database.sh index 69a47c5..e24a841 100755 --- a/bin/database.sh +++ b/bin/database.sh @@ -10,9 +10,9 @@ SET_OK=0 help_message(){ echo 'Command [-domain xxx]' - echo 'Command [-user xxx] [-password xxx] [-database xxx]' + echo 'Command [-domain xxx] [-user xxx] [-password xxx] [-database xxx]' echo 'Example 1: database.sh -domain example.com' - echo 'Example 2: domain.sh -user USERNAME -password PASSWORD -database DATABASENAME' + echo 'Example 2: database.sh -domain example.com -user USERNAME -password PASSWORD -database DATABASENAME' echo 'Script will auto assign database & username by the domain and random password for example 1' } @@ -71,7 +71,7 @@ add_sql_client(){ } check_db_access(){ - add_sql_client + #add_sql_client docker-compose exec mysql su -c "mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e 'status'" >/dev/null 2>&1 if [ ${?} != 0 ]; then echo "DB access failed, please check!" diff --git a/bin/demosite.sh b/bin/demosite.sh new file mode 100644 index 0000000..e803183 --- /dev/null +++ b/bin/demosite.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +source .env +DEMO_VH='localhost' +APP_NAME='wordpress' +DEMO_PATH="/var/www/${DEMO_VH}" + +help_message(){ + echo 'Command [-domain]' + echo 'Script will get database password and wordpress password from .env file and install the demo wordpress site for you' +} + +check_input(){ + if [ -z "${1}" ]; then + help_message + exit 1 + fi +} + +run_database(){ + bash bin/database.sh -domain ${DEMO_VH} -user ${MYSQL_USER} -password ${MYSQL_PASSWORD} -database ${MYSQL_DATABASE} +} + + +app_download(){ + docker-compose exec litespeed su -c "appinstallctl.sh -app ${1} -domain ${2} -vhname localhost" +} + +main(){ + run_database + app_download ${APP_NAME} ${DOMAIN} +} + +while [ ! -z "${1}" ]; do + case ${1} in + -[hH] | -help | --help) + help_message + ;; + *) + help_message + ;; + esac + shift +done +main \ No newline at end of file diff --git a/config/litespeed/1.6.4.lh/Dockerfile b/config/litespeed/1.6.4.lh/Dockerfile index 46fe866..5c2344b 100644 --- a/config/litespeed/1.6.4.lh/Dockerfile +++ b/config/litespeed/1.6.4.lh/Dockerfile @@ -9,9 +9,6 @@ RUN wget https://openlitespeed.org/preuse/openlitespeed-1.6.4.tgz && \ RUN apt-get install mysql-client lsphp73 lsphp73-common lsphp73-mysql lsphp73-opcache \ lsphp73-curl lsphp73-json lsphp73-imagick lsphp73-redis lsphp73-memcached -y -#RUN echo "admin:$(/usr/local/lsws/admin/fcgi-bin/admin_php* -q /usr/local/lsws/admin/misc/htpasswd.php ${WEB_ADMIN_PASSWORD})" \ -# > /usr/local/lsws/admin/conf/htpasswd - EXPOSE 7080 RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \ diff --git a/config/litespeed/1.6.4/Dockerfile b/config/litespeed/1.6.4/Dockerfile index 221b06c..b39a387 100644 --- a/config/litespeed/1.6.4/Dockerfile +++ b/config/litespeed/1.6.4/Dockerfile @@ -13,16 +13,12 @@ RUN apt-get install -y software-properties-common && \ RUN apt-get install mysql-client lsphp73 lsphp73-common lsphp73-mysql lsphp73-opcache \ lsphp73-curl lsphp73-json lsphp73-imagick lsphp73-redis lsphp73-memcached -y -RUN echo "admin:$(/usr/local/lsws/admin/fcgi-bin/admin_php* -q /usr/local/lsws/admin/misc/htpasswd.php ${WEB_ADMIN_PASSWORD})" \ - > /usr/local/lsws/admin/conf/htpasswd - EXPOSE 7080 RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \ chmod +x wp-cli.phar && mv wp-cli.phar /usr/local/bin/wp && \ ln -s /usr/local/lsws/lsphp73/bin/php7.3 /usr/bin/php - RUN rm -rf /usr/local/lsws/conf ADD conf /usr/local/lsws/conf RUN chown 999 /usr/local/lsws/conf -R