Skip to content

Commit

Permalink
Miscellaneous changes/updates
Browse files Browse the repository at this point in the history
  • Loading branch information
demyxco committed Feb 21, 2024
1 parent f2a2813 commit bb84dd3
Show file tree
Hide file tree
Showing 16 changed files with 53 additions and 42 deletions.
4 changes: 2 additions & 2 deletions Dockerfile
Expand Up @@ -34,8 +34,8 @@ ENV DEMYX_CODE_SSL false
ENV DEMYX_CF_KEY false
ENV DEMYX_CPU .50
ENV DEMYX_DOCKER_COMPOSE 2.4
ENV DEMYX_DOMAIN false
ENV DEMYX_EMAIL false
ENV DEMYX_DOMAIN localhost
ENV DEMYX_EMAIL info@localhost
ENV DEMYX_HEALTHCHECK true
ENV DEMYX_HEALTHCHECK_DISK /demyx
ENV DEMYX_HEALTHCHECK_DISK_THRESHOLD 80
Expand Down
14 changes: 11 additions & 3 deletions README.md
Expand Up @@ -4,9 +4,7 @@

Demyx is a Docker image that automates and manages WordPress installations. Traefik for reverse proxy with Lets Encrypt SSL/TLS. WordPress sites are powered by OpenLiteSpeed/NGINX-PHP and MariaDB.

<a href="https://demyx.sh/discussions" target="_blank">Discussions</a> | <a href="https://demyx.sh/discord" target="_blank">Discord</a> | <a href="https://demyx.sh/irc" target="_blank">IRC</a>

Everything has been moved to the <a href="https://demyx.sh/kb/getting-started/" target="_blank">Knowledge Base</a>.
Get started at the <a href="https://demyx.sh/kb/getting-started/" target="_blank">Knowledge Base</a> (README).

```
# Install demyx and ping home
Expand All @@ -16,8 +14,18 @@ bash -c "$(curl -sL https://demyx.sh/install)"
wget https://demyx.sh/install; bash install --no-ping
```

[![Demyx Discord](https://discordapp.com/api/guilds/1152828583446859818/widget.png?style=banner2)](https://demyx.sh/discord)

Join us on Discord for latest news, faster support, or just chill.

<a href="https://demyx.sh/sponsor-buymeacoffee" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>

Support this project by buying coffee (please).

[![DigitalOcean Referral Badge](https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%201.svg)](https://demyx.sh/sponsor-digitalocean)

Demyx is proudly sponsored by DigitalOcean.

[![Code Size](https://img.shields.io/github/languages/code-size/demyxsh/demyx?style=flat&color=blue)](https://github.com/demyxsh/demyx)
[![Repository Size](https://img.shields.io/github/repo-size/demyxsh/demyx?style=flat&color=blue)](https://github.com/demyxsh/demyx)
[![Watches](https://img.shields.io/github/watchers/demyxsh/demyx?style=flat&color=blue)](https://github.com/demyxsh/demyx)
Expand Down
7 changes: 3 additions & 4 deletions bin/demyx.sh
Expand Up @@ -11,13 +11,12 @@ demyx() {
local DEMYX_ARG_1="${1:-}"
# shellcheck disable=2034
local DEMYX_ARG_2="${2:-}"

. "$DEMYX_FUNCTION"/global.sh
. "$DEMYX_FUNCTION"/help.sh
. "$DEMYX_FUNCTION"/smtp.sh
trap 'demyx_trap "${BASH_LINENO[*]}" "$LINENO" "${FUNCNAME[*]:-script}" "$?" "$BASH_COMMAND"' ERR
demyx_source "$DEMYX_ARG_1"

demyx_source "$DEMYX_ARG_1"
case "$DEMYX_ARG_1" in
backup) shift
demyx_backup "$@"
Expand Down Expand Up @@ -72,7 +71,7 @@ demyx() {
;;
smtp) shift
demyx_smtp "$@"
;;
;;
update) shift
demyx_update "$@"
;;
Expand All @@ -90,7 +89,7 @@ demyx() {
;;
esac

demyx_proper
demyx_proper
}
#
# Init.
Expand Down
2 changes: 1 addition & 1 deletion function/backup.sh
Expand Up @@ -96,7 +96,7 @@ demyx_backup_all() {
fi

if [[ "$DEMYX_BACKUP_ALL_CHECK" = 1 ]]; then
demyx_warning "$DEMYX_ARG_2 has one or more errors. Please check error log, skipping ..."
demyx_warning "$DEMYX_ARG_2 has one or more errors, skipping ..."
continue
else
eval demyx_backup "$DEMYX_BACKUP_ALL" "$DEMYX_BACKUP_ARGS"
Expand Down
2 changes: 1 addition & 1 deletion function/cron.sh
Expand Up @@ -90,7 +90,7 @@ demyx_cron_daily() {
else
demyx_execute "[CROND DAILY - ${DEMYX_CRON_DAILY_I}] Updating WordPress core, themes, and plugins" \
"demyx_wp $DEMYX_CRON_DAILY_I core update; \
demyx_wp $DEMYX_CRON_DAILY_I plugin update --all"
demyx_wp $DEMYX_CRON_DAILY_I plugin update --all"

# A roundabout way to handle wp-cli nonexistent error
DEMYX_CRON_DAILY_WP_CHECK="$(docker exec "$DEMYX_APP_WP_CONTAINER" wp theme update --all 2>&1 || true)"
Expand Down
1 change: 1 addition & 0 deletions function/env.sh
Expand Up @@ -80,6 +80,7 @@ demyx_env() {
DEMYX_APP_BACKUP=${DEMYX_APP_BACKUP:-true}
DEMYX_APP_BEDROCK_MODE=${DEMYX_APP_BEDROCK_MODE:-production}
DEMYX_APP_CACHE=${DEMYX_APP_CACHE:-false}
DEMYX_APP_CACHE_TYPE=${DEMYX_APP_CACHE_TYPE:-default}
DEMYX_APP_CRON=${DEMYX_APP_CRON:-true}
DEMYX_APP_CRON_WP_INTERVAL=\"${DEMYX_APP_CRON_WP_INTERVAL:-"*/5 * * * *"}\"
DEMYX_APP_CRON_LOGROTATE_INTERVAL=\"${DEMYX_APP_CRON_LOGROTATE_INTERVAL:-"0 0 * * *"}\"
Expand Down
24 changes: 14 additions & 10 deletions function/global.sh
Expand Up @@ -425,14 +425,16 @@ demyx_notification() {
local DEMYX_NOTIFICATION="${1:-}"
local DEMYX_NOTIFICATION_ARG_2="${2:-}"
local DEMYX_NOTIFICATION_BODY=
DEMYX_NOTIFICATION_BODY="$(cat < "$DEMYX_TMP"/demyx_notification | sed 's/\r$//' | sed 's|["'\'']||g' | sed ':a;N;$!ba;s/\n/<br>/g')"

case "$DEMYX_NOTIFICATION" in
error)
DEMYX_NOTIFICATION="[ERROR - $DEMYX_HOSTNAME] $DEMYX_NOTIFICATION_ARG_2"
DEMYX_NOTIFICATION_BODY="$(cat < "$DEMYX_TMP"/demyx_trap | sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g" | sed 's|["'\'']||g' | sed ':a;N;$!ba;s/\n/<br>/g')"
DEMYX_NOTIFICATION_BODY+="$(cat < "$DEMYX_TMP"/demyx_trace | sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g" | sed 's|["'\'']||g' | sed ':a;N;$!ba;s/\n/<br>/g')"
;;
healthcheck)
DEMYX_NOTIFICATION="[HEALTHCHECK - $DEMYX_HOSTNAME] $DEMYX_NOTIFICATION_ARG_2"
DEMYX_NOTIFICATION_BODY="$(cat < "$DEMYX_TMP"/demyx_notify_healthcheck | sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g" | sed 's|["'\'']||g' | sed ':a;N;$!ba;s/\n/<br>/g')"
;;
esac

Expand Down Expand Up @@ -538,13 +540,15 @@ demyx_proper() {
demyx_event
local DEMYX_PROPER="${1:-}"

# Reset properness
if [[ -n "$DEMYX_PROPER" ]]; then
chown -R demyx:demyx "$DEMYX_PROPER"
else
chown -R demyx:demyx "$DEMYX"
chown -R demyx:demyx "$DEMYX_LOG"
fi
{
# Reset properness
if [[ -n "$DEMYX_PROPER" ]]; then
chown -R demyx:demyx "$DEMYX_PROPER"
else
chown -R demyx:demyx "$DEMYX"
chown -R demyx:demyx "$DEMYX_LOG"
fi
} || true
}
#
# Source .env/.sh depending on first argument.
Expand Down Expand Up @@ -677,12 +681,12 @@ demyx_wordpress_ready() {
demyx_app_env wp DEMYX_APP_WP_CONTAINER

local DEMYX_WORDPRESS_READY=0
local DEMYX_WORDPRESS_READY_MESSAGE="Timed out executing: docker exec $DEMYX_APP_WP_CONTAINER wp core is-installed"
local DEMYX_WORDPRESS_READY_MESSAGE="Something is wrong with the WP container, docker logs has been attached"

until docker exec "$DEMYX_APP_WP_CONTAINER" wp core is-installed 2>/dev/null; do
DEMYX_WORDPRESS_READY="$((DEMYX_WORDPRESS_READY+1))"

if [[ "$DEMYX_WORDPRESS_READY" = 5 ]]; then
if [[ "$DEMYX_WORDPRESS_READY" = 10 ]]; then
docker logs "$DEMYX_APP_WP_CONTAINER"
demyx_error custom "$DEMYX_WORDPRESS_READY_MESSAGE"
else
Expand Down
13 changes: 5 additions & 8 deletions function/healthcheck.sh
Expand Up @@ -8,23 +8,20 @@
demyx_healthcheck() {
demyx_event
local DEMYX_HEALTHCHECK_ARG="${1:-$DEMYX_ARG_2}"
shift
local DEMYX_HEALTHCHECK_TRANSIENT="$DEMYX_TMP"/demyx_notification
shift || true
local DEMYX_HEALTHCHECK_TRANSIENT="$DEMYX_TMP"/demyx_notify_healthcheck

if [[ "$DEMYX_HEALTHCHECK" = true ]]; then
demyx_source smtp
case "$DEMYX_HEALTHCHECK_ARG" in
app)
demyx_execute false \
demyx_healthcheck_app
demyx_healthcheck_app
;;
disk)
demyx_execute false \
demyx_healthcheck_disk
demyx_healthcheck_disk
;;
load)
demyx_execute false \
demyx_healthcheck_load
demyx_healthcheck_load
;;
*)
demyx_help healthcheck
Expand Down
2 changes: 1 addition & 1 deletion function/help.sh
Expand Up @@ -265,7 +265,7 @@ demyx_help() {
echo " smtp Sends out a success email if SMTP is configured properly."
echo " update Runs a series of commands to compare local versions of Demyx images to remote versions. It will also update the Demyx helper script on the host."
echo " util|utility Generate various credentials or open a shell to the Demyx Utilities container."
echo " -v|--version|version Show demyx version"
echo " -v|--version|version Show demyx version."
echo " wp Execute wp-cli commands to an app."
echo
;;
Expand Down
9 changes: 4 additions & 5 deletions function/info.sh
Expand Up @@ -117,9 +117,9 @@ demyx_info_app() {

if [[ "$DEMYX_APP_STACK" = ols || "$DEMYX_APP_STACK" = ols-bedrock ]]; then
echo
echo "OLS Admin Login $(demyx_app_proto)://$(demyx_app_domain)/demyx/ols/"
echo "OLS Admin Username $DEMYX_APP_OLS_ADMIN_USERNAME"
echo "OLS Admin Password $DEMYX_APP_OLS_ADMIN_PASSWORD"
echo "OLS Admin Login $(demyx_app_proto)://$(demyx_app_domain)/demyx/ols/"
echo "OLS Admin Username $DEMYX_APP_OLS_ADMIN_USERNAME"
echo "OLS Admin Password $DEMYX_APP_OLS_ADMIN_PASSWORD"
fi

echo
Expand Down Expand Up @@ -161,8 +161,7 @@ demyx_info_app() {

echo "${DEMYX_INFO_APP_JSON%,*}}" > "$DEMYX_TMP"/demyx_info

demyx_execute false \
"cat < ${DEMYX_TMP}/demyx_info"
cat < "$DEMYX_TMP"/demyx_info
else
demyx_app_env wp DEMYX_APP_PATH

Expand Down
2 changes: 1 addition & 1 deletion function/restore.sh
Expand Up @@ -172,7 +172,7 @@ demyx_restore_app() {
docker cp ${DEMYX_APP_PATH}/demyx-custom/. ${DEMYX_APP_WP_CONTAINER}:/etc/demyx/custom; \
docker cp ${DEMYX_APP_PATH}/demyx-log/. ${DEMYX_APP_WP_CONTAINER}:/var/log/demyx; \
demyx_wp $DEMYX_APP_DOMAIN db import ${DEMYX_APP_CONTAINER}.sql
docker exec -t $DEMYX_APP_CONTAINER rm -f /demyx/${DEMYX_APP_CONTAINER}.sql; \
docker exec -t $DEMYX_APP_WP_CONTAINER rm -f /demyx/${DEMYX_APP_CONTAINER}.sql; \
docker stop $DEMYX_APP_WP_CONTAINER"

demyx_compose "$DEMYX_APP_DOMAIN" up -d
Expand Down
4 changes: 3 additions & 1 deletion function/run.sh
Expand Up @@ -238,6 +238,7 @@ demyx_run_clone() {
# Create app directory based on --type.
#
demyx_run_directory() {
demyx_event
case "$DEMYX_APP_TYPE" in
html)
mkdir -p "$DEMYX_HTML"/"$DEMYX_ARG_2"
Expand Down Expand Up @@ -383,7 +384,7 @@ demyx_run_extras() {
DEMYX_RUN_EXTRAS+="--whitelist=$DEMYX_RUN_FLAG_WHITELIST "
fi

if [[ -n "$DEMYX_RUN_FLAG_WWW" ]]; then
if [[ "$DEMYX_RUN_FLAG_WWW" = true ]]; then
DEMYX_RUN_EXTRAS+="--www "
fi

Expand Down Expand Up @@ -445,6 +446,7 @@ demyx_run_table() {
echo "WordPress Container $DEMYX_APP_WP_CONTAINER"

if [[ "$DEMYX_APP_STACK" = ols || "$DEMYX_APP_STACK" = ols-bedrock ]]; then
echo
echo "OLS Admin Login $(demyx_app_proto)://$(demyx_app_domain "$DEMYX_APP_DOMAIN")/demyx/ols/"
echo "OLS Admin Username $DEMYX_APP_OLS_ADMIN_USERNAME"
echo "OLS Admin Password $DEMYX_APP_OLS_ADMIN_PASSWORD"
Expand Down
2 changes: 1 addition & 1 deletion function/smtp.sh
Expand Up @@ -24,5 +24,5 @@ demyx_smtp() {
echo "$DEMYX_SMTP_ARG_2" | sed 's|["'\'']||g' | sed ':a;N;$!ba;s/\n/<br>/g'
} > "$DEMYX_SMTP_FILE"

demyx_execute false "ssmtp $DEMYX_SMTP_TO < $DEMYX_SMTP_FILE"
ssmtp "$DEMYX_SMTP_TO" < "$DEMYX_SMTP_FILE"
}
6 changes: 3 additions & 3 deletions function/update.sh
Expand Up @@ -459,9 +459,9 @@ demyx_update_list() {

echo "Traefik $DEMYX_LOCAL_TRAEFIK_VERSION $DEMYX_REMOTE_TRAEFIK_VERSION"
echo "Utilities $DEMYX_LOCAL_UTILITIES_VERSION $DEMYX_REMOTE_UTILITIES_VERSION"
echo "WordPress $DEMYX_LOCAL_WORDPRESS_VERSION $DEMYX_REMOTE_WORDPRESS_VERSION"
echo " - PHP $DEMYX_LOCAL_WORDPRESS_PHP_VERSION $DEMYX_REMOTE_WORDPRESS_PHP_VERSION"
echo " - PHP Latest $DEMYX_LOCAL_WORDPRESS_PHP_LATEST_VERSION $DEMYX_REMOTE_WORDPRESS_PHP_LATEST_VERSION"
echo "WordPress $DEMYX_LOCAL_WORDPRESS_VERSION $DEMYX_REMOTE_WORDPRESS_VERSION"
echo " - PHP $DEMYX_LOCAL_WORDPRESS_PHP_VERSION $DEMYX_REMOTE_WORDPRESS_PHP_VERSION"
echo " - PHP Latest $DEMYX_LOCAL_WORDPRESS_PHP_LATEST_VERSION $DEMYX_REMOTE_WORDPRESS_PHP_LATEST_VERSION"
[[ "$DEMYX_UPDATE_IMAGES" == *"demyx/wordrpess:bedrock"* ]] && echo " - Bedrock $DEMYX_LOCAL_WORDPRESS_BEDROCK_VERSION $DEMYX_REMOTE_WORDPRESS_BEDROCK_VERSION"

} > "$DEMYX_UPDATE_TRANSIENT"
Expand Down
2 changes: 1 addition & 1 deletion function/wp.sh
Expand Up @@ -47,7 +47,7 @@ demyx_wp_all() {
fi

if [[ "$DEMYX_WP_ALL_CHECK" = 1 ]]; then
demyx_warning "$DEMYX_ARG_2 has one or more errors. Please check error log, skipping ..."
demyx_warning "$DEMYX_ARG_2 has one or more errors, skipping ..."
continue
else
eval demyx_wp "$DEMYX_WP_ALL" "$DEMYX_WP_ARGS"
Expand Down
1 change: 1 addition & 0 deletions function/yml.sh
Expand Up @@ -693,6 +693,7 @@ demyx_yml_ols() {
# YAML template for the ols-bedrock stack.
#
demyx_yml_ols_bedrock() {
demyx_event
demyx_app_env wp "
DEMYX_APP_DOMAIN
DEMYX_APP_DEV
Expand Down

0 comments on commit bb84dd3

Please sign in to comment.