parent
89ac02f6fe
commit
8ac5f3e1ab
@ -0,0 +1,97 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
APP_NAME=''
|
||||||
|
DOMAIN=''
|
||||||
|
EPACE=' '
|
||||||
|
SAMPLE=''
|
||||||
|
|
||||||
|
echow(){
|
||||||
|
FLAG=${1}
|
||||||
|
shift
|
||||||
|
echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}"
|
||||||
|
}
|
||||||
|
|
||||||
|
help_message(){
|
||||||
|
echo -e "\033[1mOPTIONS\033[0m"
|
||||||
|
echow '-A, --app [app_name] -D, --domain [DOMAIN_NAME]'
|
||||||
|
echo "${EPACE}${EPACE}Example: appinstall.sh -A wordpress -D example.com"
|
||||||
|
echo "${EPACE}${EPACE}Example: appinstall.sh -A prestashop -D example.com"
|
||||||
|
echow '-H, --help'
|
||||||
|
echo "${EPACE}${EPACE}Display help and exit."
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
check_input(){
|
||||||
|
if [ -z "${1}" ]; then
|
||||||
|
help_message
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_phpmemory(){
|
||||||
|
if [ "${1}" = 'magento' ]; then
|
||||||
|
PHP_INI=$(docker compose exec -T litespeed su -c "php -i | grep 'Loaded Configuration File' | cut -d' ' -f5 " | tr -d '\r')
|
||||||
|
PHP_MEMORY=$(docker compose exec -T litespeed su -c "cat $PHP_INI | grep memory_limit" | tr -d '\r')
|
||||||
|
docker compose exec -T litespeed su -c "sed -i 's/^memory_limit.*/memory_limit = 755M/g' $PHP_INI"
|
||||||
|
echo PHP_INI $PHP_INI
|
||||||
|
echo PHP_MEMORY $PHP_MEMORY
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
revert_phpmemory(){
|
||||||
|
if [ "${1}" = 'magento' ]; then
|
||||||
|
docker compose exec -T litespeed /bin/bash -c "sed -i 's/^memory_limit.*/$PHP_MEMORY/g' $PHP_INI"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
install_packages(){
|
||||||
|
if [ "${1}" = 'wordpress' ]; then
|
||||||
|
docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package ed"
|
||||||
|
docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package unzip"
|
||||||
|
#elif [ "${1}" = 'magento' ]; then
|
||||||
|
# docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package composer"
|
||||||
|
# docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package unzip"
|
||||||
|
# docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package git"
|
||||||
|
elif [ "${1}" = 'prestashop' ]; then
|
||||||
|
docker compose exec -T litespeed /bin/bash -c "pkginstallctl.sh --package unzip"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
app_download(){
|
||||||
|
set_phpmemory ${1}
|
||||||
|
install_packages ${1}
|
||||||
|
docker compose exec -T litespeed bash -c "appinstallctl.sh --app ${1} --domain ${2} ${3}"
|
||||||
|
revert_phpmemory ${1}
|
||||||
|
bash bin/webadmin.sh -r
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
main(){
|
||||||
|
app_download "${APP_NAME}" "${DOMAIN}" "${SAMPLE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
check_input ${1}
|
||||||
|
while [ ! -z "${1}" ]; do
|
||||||
|
case ${1} in
|
||||||
|
-[hH] | -help | --help)
|
||||||
|
help_message
|
||||||
|
;;
|
||||||
|
-[aA] | -app | --app) shift
|
||||||
|
check_input "${1}"
|
||||||
|
APP_NAME="${1}"
|
||||||
|
;;
|
||||||
|
-[dD] | -domain | --domain) shift
|
||||||
|
check_input "${1}"
|
||||||
|
DOMAIN="${1}"
|
||||||
|
;;
|
||||||
|
-[sS] | --sample)
|
||||||
|
SAMPLE='-S'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
help_message
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
main
|
@ -0,0 +1,66 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
redis:
|
||||||
|
image: 'bitnami/redis:latest'
|
||||||
|
environment:
|
||||||
|
- ALLOW_EMPTY_PASSWORD=yes
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
restart: always
|
||||||
|
mysql:
|
||||||
|
image: mariadb:10.5.9
|
||||||
|
logging:
|
||||||
|
driver: none
|
||||||
|
command: --max_allowed_packet=256M
|
||||||
|
volumes:
|
||||||
|
- "./data/db:/var/lib/mysql:delegated"
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||||
|
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||||
|
MYSQL_USER: ${MYSQL_USER}
|
||||||
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
litespeed:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
image: litespeedtech/openlitespeed:${OLS_VERSION}-${PHP_VERSION}
|
||||||
|
logging:
|
||||||
|
driver: none
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- ./lsws/conf:/usr/local/lsws/conf
|
||||||
|
- ./lsws/admin-conf:/usr/local/lsws/admin/conf
|
||||||
|
- ./bin/container:/usr/local/bin
|
||||||
|
- ./sites:/var/www/vhosts/
|
||||||
|
- ./acme:/root/.acme.sh/
|
||||||
|
- ./logs:/usr/local/lsws/logs/
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
- 443:443/udp
|
||||||
|
- 7080:7080
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
DATABASE_HOST: mysql
|
||||||
|
TZ: ${TimeZone}
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
phpmyadmin:
|
||||||
|
image: bitnami/phpmyadmin:5.2.0-debian-11-r43
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
- 8443:8443
|
||||||
|
environment:
|
||||||
|
DATABASE_HOST: mysql
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
driver: bridge
|
Loading…
Reference in new issue