#!/usr/bin/env bash # shellcheck shell=bash # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ##@Version : 202210181648-git # @@Author : Jason Hempstead # @@Contact : jason@casjaysdev.pro # @@License : LICENSE.md # @@ReadME : start-lighttpd.sh --help # @@Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments # @@Created : Tuesday, Oct 18, 2022 16:48 EDT # @@File : start-lighttpd.sh # @@Description : # @@Changelog : New script # @@TODO : Better documentation # @@Other : # @@Resource : # @@Terminal App : no # @@sudo/root : no # @@Template : other/start-service # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Set functions __pcheck() { [ -n "$(which pgrep 2>/dev/null)" ] && pgrep "$1" || return 1; } __find() { find "$1" -mindepth 1 -type f,d 2>/dev/null | grep '^' || return 10; } __curl() { curl -q -LSsf -o /dev/null -s -w "200" "$@" 2>/dev/null || return 10; } __pgrep() { __pcheck "$1" || ps aux 2>/dev/null | grep -F " $1" | grep -qv 'grep' || return 10; } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - __certbot() { [ -n "$SSL_CERT_BOT" ] && type -P certbot &>/dev/null || { export SSL_CERT_BOT="" && return 10; } certbot certonly --webroot -w "${WWW_ROOT_DIR:-/data/htdocs/www}" -d $DOMANNAME -d $DOMANNAME \ --put-all-related-files-into "$SSL_DIR" –key-path "$SSL_KEY" –fullchain-path "$SSL_CERT" } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - __heath_check() { status=0 health="Good" __pgrep "${1:-$SERVICE_NAME}" || status=$((status + 1)) #__curl "http://localhost:$HTTP_PORT/server-health" || status=$((status + 1)) [ "$status" -eq 0 ] || health="Errors reported see docker logs --follow $CONTAINER_NAME" echo "$(uname -s) $(uname -m) is running and the health is: $health" return ${status:-$?} } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Set variables DISPLAY="${DISPLAY:-}" LANG="${LANG:-C.UTF-8}" DOMANNAME="${DOMANNAME:-}" TZ="${TZ:-America/New_York}" HTTP_PORT="${HTTP_PORT:-80}" HTTPS_PORT="${HTTPS_PORT:-443}" SERVICE_PORT="${SERVICE_PORT:-}" SERVICE_NAME="${CONTAINER_NAME}" HOSTNAME="${HOSTNAME:-casjaysdev-lighttpd}" HOSTADMIN="${HOSTADMIN:-root@${DOMANNAME:-$HOSTNAME}}" SSL_CERT_BOT="${SSL_CERT_BOT:-false}" SSL_ENABLED="${SSL_ENABLED:-false}" SSL_DIR="${SSL_DIR:-/config/ssl}" SSL_CA="${SSL_CA:-$SSL_DIR/ca.crt}" SSL_KEY="${SSL_KEY:-$SSL_DIR/server.key}" SSL_CERT="${SSL_CERT:-$SSL_DIR/server.crt}" SSL_CONTAINER_DIR="${SSL_CONTAINER_DIR:-/etc/ssl/CA}" WWW_ROOT_DIR="${WWW_ROOT_DIR:-/data/htdocs}" LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}" DEFAULT_DATA_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/data}" DEFAULT_CONF_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}" DEFAULT_TEMPLATE_DIR="${DEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}" CONTAINER_IP_ADDRESS="$(ip a | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}' | sed 's|/*||g')" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Overwrite variables #SERVICE_NAME="" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Create default config if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -n "$DEFAULT_TEMPLATE_DIR" ]; then [ -d "/config" ] && cp -Rf "$DEFAULT_TEMPLATE_DIR/." "/config/" fi # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Copy custom config files if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -n "$DEFAULT_CONF_DIR" ]; then [ -d "/config" ] && cp -Rf "$DEFAULT_CONF_DIR/." "/config/" fi # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Copy custom data files if [ "$DATA_DIR_INITIALIZED" = "false" ] && [ -n "$DEFAULT_DATA_DIR" ]; then [ -d "/data" ] && cp -Rf "$DEFAULT_DATA_DIR/." "/data/" fi # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Copy html files if [ "$DATA_DIR_INITIALIZED" = "false" ] && [ -d "$DEFAULT_DATA_DIR/data/htdocs" ]; then [ -d "/data" ] && cp -Rf "$DEFAULT_DATA_DIR/data/htdocs/." "$WWW_ROOT_DIR/" fi # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Initialized [ -d "/data" ] && touch "/data/.docker_has_run" [ -d "/config" ] && touch "/config/.docker_has_run" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # APP Variables overrides [ -f "/root/env.sh" ] && . "/root/env.sh" [ -f "/config/env.sh" ] && "/config/env.sh" [ -f "/config/.env.sh" ] && . "/config/.env.sh" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Actions based on env # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # begin main app case "$1" in healthcheck) shift 1 __heath_check "${SERVICE_NAME:-bash}" exit $? ;; *) if __pgrep "$SERVICE_NAME"; then echo "$SERVICE_NAME is running" else echo "Starting $SERVICE_NAME" php-fpm-server & exec lighttpd -f /config/lighttpd/lighttpd.conf -D fi ;; esac # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Set exit code exitCode="${exitCode:-$?}" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # End application # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # lets exit with code exit ${exitCode:-$?} # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # end