add a demoscript

master
Cold-Egg 5 years ago
parent 02cdeaa47c
commit cbe376baaa

@ -1,7 +1,5 @@
LITESPEED=1.6.4.lh LITESPEED=1.6.4.lh
WEB_ADMIN_PASSWORD=litespeed
MYSQL_DATABASE=wordpress MYSQL_DATABASE=wordpress
MYSQL_ROOT_PASSWORD=password MYSQL_ROOT_PASSWORD=password
MYSQL_USER=wordpress MYSQL_USER=wordpress

@ -9,8 +9,8 @@ notifications:
slack: 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= 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: template:
- "Repo %{repository_slug} *%{result}* build (<%{build_url}|#%{build_number}>) for commit (<%{compare_url}|%{commit}>) on branch %{branch}." - "Repo %{repository_slug} *%{result}* build (<%{build_url}|#%{build_number}>) for commit (<%{compare_url}|%{commit}>)"
- "_%{commit_message}_" - "%{author}: _%{commit_message}_"
- "Execution time: *%{duration}*" - "Execution time: *%{duration}*"
- "Message: *%{message}*" - "Message: *%{message}*"
on_success: always on_success: always

@ -4,7 +4,7 @@ DOMAIN=''
help_message(){ help_message(){
echo 'Command [-app app_name] [-domain domain_name]' 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(){ check_input(){
@ -15,7 +15,7 @@ check_input(){
} }
app_download(){ 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 exit 0
} }

@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
DEFAULT_VH_ROOT='/var/www/vhosts' DEFAULT_VH_ROOT='/var/www/vhosts'
VH_DOC_ROOT='' VH_DOC_ROOT=''
VHNAME=''
APP_NAME='' APP_NAME=''
DOMAIN='' DOMAIN=''
WWW_UID='' WWW_UID=''
@ -9,7 +10,7 @@ PUB_IP=$(curl http://checkip.amazonaws.com)
help_message(){ help_message(){
echo 'Command [-app app_name] [-domain domain_name]' 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(){ check_input(){
@ -38,17 +39,19 @@ get_owner(){
} }
get_db_pass(){ get_db_pass(){
if [ -f ${DEFAULT_VH_ROOT}/${1}/.db_pass ]; then 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_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_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 '"') SQL_PASS=$(grep -i Password ${VH_DOC_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"')
else else
echo 'DB_PASS can not locate!' echo 'DB_PASS can not locate!'
fi fi
} }
set_vh_docroot(){ 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" VH_DOC_ROOT="${DEFAULT_VH_ROOT}/${1}/html"
else else
echo "${DEFAULT_VH_ROOT}/${1}/html does not exist, please add domain first! Abort!" echo "${DEFAULT_VH_ROOT}/${1}/html does not exist, please add domain first! Abort!"
@ -57,16 +60,15 @@ set_vh_docroot(){
} }
check_sql_native(){ check_sql_native(){
local COUNTER=0 local COUNTER=0
local LIMIT_NUM=100 local LIMIT_NUM=100
until [ "$(curl -v mysql:3306 2>&1 | grep native)" ]; until [ "$(curl -v mysql:3306 2>&1 | grep native)" ]; do
do echo "Counter: ${COUNTER}/${LIMIT_NUM}"
echo "Counter: ${COUNTER}/${LIMIT_NUM}"
COUNTER=$((COUNTER+1)) COUNTER=$((COUNTER+1))
if [ ${COUNTER} = 10 ]; then if [ ${COUNTER} = 10 ]; then
echo '--- MySQL is starting, please wait... ---' echo '--- MySQL is starting, please wait... ---'
elif [ ${COUNTER} = ${LIMIT_NUM} ]; then elif [ ${COUNTER} = ${LIMIT_NUM} ]; then
echo '--- MySQL is timeout, exit! ---' echo '--- MySQL is timeout, exit! ---'
exit 1 exit 1
fi fi
sleep 1 sleep 1
@ -84,12 +86,12 @@ preinstall_wordpress(){
NEWDBPWD="define('DB_NAME', '${SQL_DB}');" NEWDBPWD="define('DB_NAME', '${SQL_DB}');"
linechange 'DB_NAME' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" linechange 'DB_NAME' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}"
elif [ -f ${VH_DOC_ROOT}/wp-config.php ]; then 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 exit 1
else else
echo 'Skip!' echo 'Skip!'
exit 2 exit 2
fi fi
} }
app_wordpress_dl(){ app_wordpress_dl(){
@ -108,34 +110,37 @@ main(){
get_owner get_owner
cd ${VH_DOC_ROOT} cd ${VH_DOC_ROOT}
if [ "${APP_NAME}" = 'wordpress' ] || [ "${APP_NAME}" = 'wp' ]; then if [ "${APP_NAME}" = 'wordpress' ] || [ "${APP_NAME}" = 'wp' ]; then
check_sql_native check_sql_native
app_wordpress_dl app_wordpress_dl
preinstall_wordpress preinstall_wordpress
exit 0 exit 0
else else
echo "APP: ${APP_NAME} not support, exit!" echo "APP: ${APP_NAME} not support, exit!"
exit 1 exit 1
fi fi
} }
while [ ! -z "${1}" ]; do while [ ! -z "${1}" ]; do
case ${1} in case ${1} in
-[hH] | -help | --help) -[hH] | -help | --help)
help_message help_message
;; ;;
-app | -a | -A) shift -app | -a | -A) shift
check_input "${1}" check_input "${1}"
APP_NAME="${1}" APP_NAME="${1}"
;; ;;
-d | -D | -domain) shift -d | -D | -domain) shift
check_input "${1}" check_input "${1}"
DOMAIN="${1}" DOMAIN="${1}"
set_vh_docroot ${DOMAIN} set_vh_docroot ${DOMAIN}
;; ;;
*) -vhname) shift
help_message VHNAME="${1}"
;; ;;
esac *)
shift help_message
;;
esac
shift
done done
main main

@ -10,9 +10,9 @@ SET_OK=0
help_message(){ help_message(){
echo 'Command [-domain xxx]' 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 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' 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(){ 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 docker-compose exec mysql su -c "mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e 'status'" >/dev/null 2>&1
if [ ${?} != 0 ]; then if [ ${?} != 0 ]; then
echo "DB access failed, please check!" echo "DB access failed, please check!"

@ -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

@ -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 \ RUN apt-get install mysql-client lsphp73 lsphp73-common lsphp73-mysql lsphp73-opcache \
lsphp73-curl lsphp73-json lsphp73-imagick lsphp73-redis lsphp73-memcached -y 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 EXPOSE 7080
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \ RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \

@ -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 \ RUN apt-get install mysql-client lsphp73 lsphp73-common lsphp73-mysql lsphp73-opcache \
lsphp73-curl lsphp73-json lsphp73-imagick lsphp73-redis lsphp73-memcached -y 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 EXPOSE 7080
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \ 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 && \ 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 ln -s /usr/local/lsws/lsphp73/bin/php7.3 /usr/bin/php
RUN rm -rf /usr/local/lsws/conf RUN rm -rf /usr/local/lsws/conf
ADD conf /usr/local/lsws/conf ADD conf /usr/local/lsws/conf
RUN chown 999 /usr/local/lsws/conf -R RUN chown 999 /usr/local/lsws/conf -R

Loading…
Cancel
Save