🗃️ Committing everything that changed 🗃️
							
								
								
									
										137
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						@@ -1,28 +1,33 @@
 | 
				
			|||||||
FROM casjaysdevdocker/python2:latest AS build
 | 
					FROM casjaysdevdocker/python2:latest AS build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG PORTS="80 9090"
 | 
					ARG ALPINE_VERSION="v3.16"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENV CFLAGS="-static"
 | 
					ARG DEFAULT_DATA_DIR="/usr/local/share/template-files/data" \
 | 
				
			||||||
 | 
					  DEFAULT_CONF_DIR="/usr/local/share/template-files/config" \
 | 
				
			||||||
 | 
					  DEFAULT_TEMPLATE_DIR="/usr/local/share/template-files/defaults"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARG PACK_LIST="bash autoconf musl-dev automake gettext git libtool \
 | 
				
			||||||
 | 
					  openssl openssl-dev linux-headers rrdtool ffmpeg-dev geoip-dev php8-cgi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENV LANG=en_US.utf8 \
 | 
				
			||||||
 | 
					  ENV=ENV=~/.bashrc \
 | 
				
			||||||
 | 
					  TZ="America/New_York" \
 | 
				
			||||||
 | 
					  SHELL="/bin/sh" \
 | 
				
			||||||
 | 
					  TERM="xterm-256color" \
 | 
				
			||||||
 | 
					  TIMEZONE="${TZ:-$TIMEZONE}" \
 | 
				
			||||||
 | 
					  HOSTNAME="casjaysdev-cherokee" \
 | 
				
			||||||
 | 
					  CFLAGS="-static"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN set -ex; \
 | 
				
			||||||
 | 
					  rm -Rf "/etc/apk/repositories"; \
 | 
				
			||||||
 | 
					  mkdir -p "${DEFAULT_DATA_DIR}" "${DEFAULT_CONF_DIR}" "${DEFAULT_TEMPLATE_DIR}"; \
 | 
				
			||||||
 | 
					  echo "http://dl-cdn.alpinelinux.org/alpine/${ALPINE_VERSION}/main" >>"/etc/apk/repositories"; \
 | 
				
			||||||
 | 
					  echo "http://dl-cdn.alpinelinux.org/alpine/${ALPINE_VERSION}/community" >>"/etc/apk/repositories"; \
 | 
				
			||||||
 | 
					  if [ "${ALPINE_VERSION}" = "edge" ]; then echo "http://dl-cdn.alpinelinux.org/alpine/${ALPINE_VERSION}/testing" >>"/etc/apk/repositories" ; fi ; \
 | 
				
			||||||
 | 
					  apk update --update-cache && apk add --no-cache ${PACK_LIST} && \
 | 
				
			||||||
 | 
					  echo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
WORKDIR /tmp/build
 | 
					WORKDIR /tmp/build
 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN apk -U upgrade && \
 | 
					 | 
				
			||||||
  apk add --no-cache \
 | 
					 | 
				
			||||||
  alpine-sdk \
 | 
					 | 
				
			||||||
  autoconf \
 | 
					 | 
				
			||||||
  musl-dev \
 | 
					 | 
				
			||||||
  automake \
 | 
					 | 
				
			||||||
  gettext \
 | 
					 | 
				
			||||||
  git \
 | 
					 | 
				
			||||||
  libtool \
 | 
					 | 
				
			||||||
  openssl \
 | 
					 | 
				
			||||||
  openssl-dev \
 | 
					 | 
				
			||||||
  linux-headers \
 | 
					 | 
				
			||||||
  rrdtool \
 | 
					 | 
				
			||||||
  ffmpeg-dev \
 | 
					 | 
				
			||||||
  geoip-dev \
 | 
					 | 
				
			||||||
  php8-cgi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN mkdir -p "/usr/local/share/template-files/config/defaults/cherokee" "/buildroot" && \
 | 
					RUN mkdir -p "/usr/local/share/template-files/config/defaults/cherokee" "/buildroot" && \
 | 
				
			||||||
  cd /tmp/build && \
 | 
					  cd /tmp/build && \
 | 
				
			||||||
  git clone https://github.com/cherokee/webserver.git . && \
 | 
					  git clone https://github.com/cherokee/webserver.git . && \
 | 
				
			||||||
@@ -46,47 +51,79 @@ RUN mkdir -p "/usr/local/share/template-files/config/defaults/cherokee" "/buildr
 | 
				
			|||||||
  ln -sf /usr/local/share/cherokee/bin/* /usr/local/bin/ && \
 | 
					  ln -sf /usr/local/share/cherokee/bin/* /usr/local/bin/ && \
 | 
				
			||||||
  ln -sf /usr/local/share/cherokee/sbin/* /usr/local/bin/ && \
 | 
					  ln -sf /usr/local/share/cherokee/sbin/* /usr/local/bin/ && \
 | 
				
			||||||
  cp -Rf "/etc/cherokee/." "/usr/local/share/template-files/config/defaults/cherokee/" && \
 | 
					  cp -Rf "/etc/cherokee/." "/usr/local/share/template-files/config/defaults/cherokee/" && \
 | 
				
			||||||
  cp -Rf "/usr/local/." "/buildroot/" && \
 | 
					  cp -Rf "/usr/local/." "/buildroot/"
 | 
				
			||||||
  rm -Rf /var/cache/apk/* /tmp/* /var/tmp/* /tmp/build /usr/src/*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM casjaysdevdocker/php:latest AS source
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN apk add --no-cache geoip rrdtool openssl && \
 | 
					FROM casjaysdevdocker/php:latest AS php
 | 
				
			||||||
  rm -Rf /var/cache/apk/* /tmp/* /var/tmp/*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN apk add --no-cache geoip rrdtool openssl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY ./rootfs/. /
 | 
				
			||||||
COPY --from=build /buildroot/. /usr/local/
 | 
					COPY --from=build /buildroot/. /usr/local/
 | 
				
			||||||
COPY ./bin/. /usr/local/bin/
 | 
					
 | 
				
			||||||
COPY ./data/. /usr/local/share/template-files/data/
 | 
					RUN echo 'Running cleanup' ; \
 | 
				
			||||||
COPY ./config/. /usr/local/share/template-files/config/
 | 
					  rm -Rf /usr/share/doc/* /usr/share/info/* /tmp/* /var/tmp/* ; \
 | 
				
			||||||
 | 
					  rm -Rf /usr/local/bin/.gitkeep /usr/local/bin/.gitkeep /config /data /var/cache/apk/* ; \
 | 
				
			||||||
 | 
					  rm -rf /lib/systemd/system/multi-user.target.wants/* ; \
 | 
				
			||||||
 | 
					  rm -rf /etc/systemd/system/*.wants/* ; \
 | 
				
			||||||
 | 
					  rm -rf /lib/systemd/system/local-fs.target.wants/* ; \
 | 
				
			||||||
 | 
					  rm -rf /lib/systemd/system/sockets.target.wants/*udev* ; \
 | 
				
			||||||
 | 
					  rm -rf /lib/systemd/system/sockets.target.wants/*initctl* ; \
 | 
				
			||||||
 | 
					  rm -rf /lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup* ; \
 | 
				
			||||||
 | 
					  rm -rf /lib/systemd/system/systemd-update-utmp* ; \
 | 
				
			||||||
 | 
					  if [ -d "/lib/systemd/system/sysinit.target.wants" ]; then cd "/lib/systemd/system/sysinit.target.wants" && rm $(ls | grep -v systemd-tmpfiles-setup) ; fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM scratch
 | 
					FROM scratch
 | 
				
			||||||
ARG BUILD_DATE="$(date +'%Y-%m-%d %H:%M')"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
LABEL \
 | 
					ARG \
 | 
				
			||||||
  org.label-schema.name="cherokee" \
 | 
					  SERVICE_PORT="80" \
 | 
				
			||||||
  description="Alpine based image with cherokee and php8." \
 | 
					  EXPOSE_PORTS="80 9090" \
 | 
				
			||||||
  org.label-schema.url="https://hub.docker.com/r/casjaysdevdocker/cherokee" \
 | 
					  PHP_SERVER="cherokee" \
 | 
				
			||||||
  org.label-schema.vcs-url="https://github.com/casjaysdevdocker/cherokee" \
 | 
					  NODE_VERSION="system" \
 | 
				
			||||||
  org.label-schema.build-date=$BUILD_DATE \
 | 
					  NODE_MANAGER="system" \
 | 
				
			||||||
  org.label-schema.version=$BUILD_DATE \
 | 
					  BUILD_VERSION="latest" \
 | 
				
			||||||
  org.label-schema.vcs-ref=$BUILD_DATE \
 | 
					  LICENSE="MIT" \
 | 
				
			||||||
  org.label-schema.license="WTFPL" \
 | 
					  IMAGE_NAME="cherokee" \
 | 
				
			||||||
  org.label-schema.vcs-type="Git" \
 | 
					  BUILD_DATE="Thu Oct 20 04:49:27 PM EDT 2022" \
 | 
				
			||||||
  org.label-schema.schema-version="1.0" \
 | 
					  TIMEZONE="America/New_York"
 | 
				
			||||||
  org.label-schema.vendor="CasjaysDev" \
 | 
					 | 
				
			||||||
  maintainer="CasjaysDev <docker-admin@casjaysdev.com>"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY --from=source /. /
 | 
					LABEL maintainer="CasjaysDev <docker-admin@casjaysdev.com>" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.vendor="CasjaysDev" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.authors="CasjaysDev" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.vcs-type="Git" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.name="${IMAGE_NAME}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.base.name="${IMAGE_NAME}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.license="${LICENSE}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.vcs-ref="${BUILD_VERSION}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.build-date="${BUILD_DATE}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.version="${BUILD_VERSION}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.schema-version="${BUILD_VERSION}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.url="https://hub.docker.com/r/casjaysdevdocker/${IMAGE_NAME}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.vcs-url="https://github.com/casjaysdevdocker/${IMAGE_NAME}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.url.source="https://github.com/casjaysdevdocker/${IMAGE_NAME}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.documentation="https://hub.docker.com/r/casjaysdevdocker/${IMAGE_NAME}" \
 | 
				
			||||||
 | 
					  org.opencontainers.image.description="Containerized version of ${IMAGE_NAME}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENV PHP_SERVER=cherokee
 | 
					ENV LANG=en_US.utf8 \
 | 
				
			||||||
 | 
					  ENV=~/.bashrc \
 | 
				
			||||||
 | 
					  SHELL="/bin/bash" \
 | 
				
			||||||
 | 
					  PORT="${SERVICE_PORT}" \
 | 
				
			||||||
 | 
					  TERM="xterm-256color" \
 | 
				
			||||||
 | 
					  PHP_SERVER="${PHP_SERVER}" \
 | 
				
			||||||
 | 
					  CONTAINER_NAME="${IMAGE_NAME}" \
 | 
				
			||||||
 | 
					  TZ="${TZ:-America/New_York}" \
 | 
				
			||||||
 | 
					  TIMEZONE="${TZ:-$TIMEZONE}" \
 | 
				
			||||||
 | 
					  HOSTNAME="casjaysdev-${IMAGE_NAME}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY --from=php /. /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USER root
 | 
				
			||||||
WORKDIR /data/htdocs/www
 | 
					WORKDIR /data/htdocs/www
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXPOSE $PORTS
 | 
					VOLUME [ "/config","/data" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VOLUME [ "/data", "/config" ]
 | 
					EXPOSE $EXPOSE_PORTS
 | 
				
			||||||
 | 
					 | 
				
			||||||
ENTRYPOINT [ "tini", "--" ]
 | 
					 | 
				
			||||||
HEALTHCHECK --interval=15s --timeout=3s CMD [ "/usr/local/bin/entrypoint-cherokee.sh" "healthcheck" ]
 | 
					 | 
				
			||||||
CMD ["/usr/local/bin/entrypoint-cherokee.sh"]
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#CMD [ "" ]
 | 
				
			||||||
 | 
					ENTRYPOINT [ "tini", "-p", "SIGTERM", "--", "/usr/local/bin/entrypoint.sh" ]
 | 
				
			||||||
 | 
					HEALTHCHECK --start-period=1m --interval=2m --timeout=3s CMD [ "/usr/local/bin/entrypoint.sh", "healthcheck" ]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,45 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env sh
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Set bash options
 | 
					 | 
				
			||||||
[ -n "$DEBUG" ] && set -x
 | 
					 | 
				
			||||||
set -o pipefail
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
export PATH="/usr/local/share/cherokee/bin:/usr/local/share/cherokee/sbin:$PATH"
 | 
					 | 
				
			||||||
[ -f "/config/ssl.env" ] && . "/config/ssl.env"
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
if [ ! -d "/config/cherokee" ] && [ -d "/usr/local/share/template-files/config/cherokee" ]; then
 | 
					 | 
				
			||||||
  mkdir -p "/config/cherokee"
 | 
					 | 
				
			||||||
  cp -Rf "/usr/local/share/template-files/config/cherokee/." "/config/cherokee/"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
[ -d "/data/cherokee/graphs" ] || mkdir -p "/data/cherokee/graphs"
 | 
					 | 
				
			||||||
[ -d "/config/cherokee" ] && cp -Rf "/config/cherokee/." "/etc/cherokee/" || cp -Rf "/usr/local/share/template-files/config/defaults/" "/etc/cherokee/"
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
[ -d "/data/htdocs" ] || mkdir -p "/data/htdocs"
 | 
					 | 
				
			||||||
[ -d "/data/cherokee" ] || mkdir -p "/data/cherokee"
 | 
					 | 
				
			||||||
[ -d "/config/cherokee/themes" ] && cp -Rf "/config/cherokee/themes/." "/usr/local/share/cherokee/share/cherokee/themes/"
 | 
					 | 
				
			||||||
if [ -z "$(ls -A /data/htdocs/www/* 2>/dev/null||echo '')" ]; then
 | 
					 | 
				
			||||||
  mkdir -p "/data/htdocs" "/data/htdocs/cgi-bin"
 | 
					 | 
				
			||||||
  cp -Rf "/usr/local/share/template-files/data/." "/data/"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
[ -d "/usr/lib/cgi-bin" ] && [ -d "" ] && cp -Rf "/usr/lib/cgi-bin/." "/data/htdocs/cgi-bin/"
 | 
					 | 
				
			||||||
[ -f "/config/cherokee/cherokee.conf" ] && cp -Rfv "/config/cherokee/cherokee.conf" "/etc/cherokee/"
 | 
					 | 
				
			||||||
[ -d "/usr/local/share/cherokee/icons" ] && [ ! -d "/config/cherokee/icons" ] && cp -Rf "/usr/local/share/cherokee/icons/." "/config/cherokee/icons/"
 | 
					 | 
				
			||||||
[ -d "/usr/local/share/cherokee/themes" ] && [ ! -d "/config/cherokee/themes" ] && cp -Rf "/usr/local/share/cherokee/themes/." "/config/cherokee/themes/"
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
if [ ! -f "/config/ssl//localhost.crt" ] || [ ! -f "/config/ssl//localhost.key" ]; then
 | 
					 | 
				
			||||||
  create-ssl-cert
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
# Fix permissions
 | 
					 | 
				
			||||||
chmod -Rfv 664 "/data/cherokee"
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Start php-fpm server
 | 
					 | 
				
			||||||
php-fpm-server &
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
if [ ! -f "/tmp/cherokee.pid" ]; then
 | 
					 | 
				
			||||||
  echo "Starting cherokee-admin on port 9090"
 | 
					 | 
				
			||||||
  cherokee-admin -b -p 9090 -C /etc/cherokee/cherokee.conf &
 | 
					 | 
				
			||||||
  echo "Starting cherokee webserver on port 80"
 | 
					 | 
				
			||||||
  exec cherokee -C /etc/cherokee/cherokee.conf || rm -Rf "/tmp/cherokee.pid"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,140 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
# shellcheck shell=bash
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
##@Version           :  202210102226-git
 | 
					 | 
				
			||||||
# @@Author           :  Jason Hempstead
 | 
					 | 
				
			||||||
# @@Contact          :  jason@casjaysdev.com
 | 
					 | 
				
			||||||
# @@License          :  LICENSE.md
 | 
					 | 
				
			||||||
# @@ReadME           :  entrypoint-cherokee.sh --help
 | 
					 | 
				
			||||||
# @@Copyright        :  Copyright: (c) 2022 Jason Hempstead, Casjays Developments
 | 
					 | 
				
			||||||
# @@Created          :  Monday, Oct 10, 2022 22:26 EDT
 | 
					 | 
				
			||||||
# @@File             :  entrypoint-cherokee.sh
 | 
					 | 
				
			||||||
# @@Description      :
 | 
					 | 
				
			||||||
# @@Changelog        :  New script
 | 
					 | 
				
			||||||
# @@TODO             :  Better documentation
 | 
					 | 
				
			||||||
# @@Other            :
 | 
					 | 
				
			||||||
# @@Resource         :
 | 
					 | 
				
			||||||
# @@Terminal App     :  no
 | 
					 | 
				
			||||||
# @@sudo/root        :  no
 | 
					 | 
				
			||||||
# @@Template         :  other/docker-entrypoint
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Set bash options
 | 
					 | 
				
			||||||
[ -n "$DEBUG" ] && set -x
 | 
					 | 
				
			||||||
set -o pipefail
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
APPNAME="$(basename "$0" 2>/dev/null)"
 | 
					 | 
				
			||||||
VERSION="202210102226-git"
 | 
					 | 
				
			||||||
HOME="${USER_HOME:-$HOME}"
 | 
					 | 
				
			||||||
USER="${SUDO_USER:-$USER}"
 | 
					 | 
				
			||||||
RUN_USER="${SUDO_USER:-$USER}"
 | 
					 | 
				
			||||||
SCRIPT_SRC_DIR="${BASH_SOURCE%/*}"
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Set functions
 | 
					 | 
				
			||||||
__version() { echo -e ${GREEN:-}"$VERSION"${NC:-}; }
 | 
					 | 
				
			||||||
__find() { ls -A "$*" 2>/dev/null; }
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# colorization
 | 
					 | 
				
			||||||
[ -n "$SHOW_RAW" ] || printf_color() { echo -e '\t\t'${2:-}"${1:-}${NC}"; }
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
__exec_command() {
 | 
					 | 
				
			||||||
  local cmd="${*:-/bin/bash -l}"
 | 
					 | 
				
			||||||
  local exitCode=0
 | 
					 | 
				
			||||||
  echo "Executing command: $cmd"
 | 
					 | 
				
			||||||
  eval "$cmd" || exitCode=10
 | 
					 | 
				
			||||||
  return ${exitCode:-$?}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Functions
 | 
					 | 
				
			||||||
__heath_check() {
 | 
					 | 
				
			||||||
  local status=0
 | 
					 | 
				
			||||||
  #curl -q -LSsf -o /dev/null -s -w "200" "http://localhost/server-health" || status=$(($status + 1))
 | 
					 | 
				
			||||||
  return ${status:-$?}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Define default variables - don not change these
 | 
					 | 
				
			||||||
TZ="${TZ:-America/New_York}"
 | 
					 | 
				
			||||||
LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}"
 | 
					 | 
				
			||||||
HOSTNAME="${HOSTNAME:-casjaysdev-bin}"
 | 
					 | 
				
			||||||
TEMPLATE_DATA_DIR="$(__find /usr/local/share/template-files/data/ 2>/dev/null | grep '^' || echo '')"
 | 
					 | 
				
			||||||
TEMPLATE_CONFIG_DIR="$(__find /usr/local/share/template-files/config/ 2>/dev/null | grep '^' || echo '')"
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Additional variables and variable overrides
 | 
					 | 
				
			||||||
SSL="true"
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# import variables from file
 | 
					 | 
				
			||||||
[ -f "/root/env.sh" ] && . "/root/env.sh"
 | 
					 | 
				
			||||||
[ -f "/config/env.sh" ] && "/config/env.sh"
 | 
					 | 
				
			||||||
[ -f "/config/.env.sh" ] && . "/config/.env.sh"
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Set timezone
 | 
					 | 
				
			||||||
[ -n "${TZ}" ] && echo "${TZ}" >"/etc/timezone"
 | 
					 | 
				
			||||||
[ -f "/usr/share/zoneinfo/${TZ}" ] && ln -sf "/usr/share/zoneinfo/${TZ}" "/etc/localtime"
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Set hostname
 | 
					 | 
				
			||||||
if [ -n "${HOSTNAME}" ]; then
 | 
					 | 
				
			||||||
  echo "${HOSTNAME}" >"/etc/hostname"
 | 
					 | 
				
			||||||
  echo "127.0.0.1 ${HOSTNAME} localhost ${HOSTNAME}.local" >"/etc/hosts"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Delete any gitkeep files
 | 
					 | 
				
			||||||
if [ "$SSL" = "true" ] || [ "$SSL" = "yes" ]; then
 | 
					 | 
				
			||||||
  if [ -f "/config/ssl/server.crt" ] && [ -f "/config/ssl/server.key" ]; then
 | 
					 | 
				
			||||||
    SSL="on"
 | 
					 | 
				
			||||||
    SSL_CERT="/config/ssl/server.crt"
 | 
					 | 
				
			||||||
    SSL_KEY="/config/ssl/server.key"
 | 
					 | 
				
			||||||
    if [ -f "/config/ssl/ca.crt" ]; then
 | 
					 | 
				
			||||||
      mkdir -p "/etc/ssl/certs"
 | 
					 | 
				
			||||||
      cat "/config/ssl/ca.crt" >>"/etc/ssl/certs/ca-certificates.crt"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    [ -d "/config/ssl" ] || mkdir -p "/config/ssl"
 | 
					 | 
				
			||||||
    export SSL_DIR="/config/ssl"
 | 
					 | 
				
			||||||
    create-ssl-cert
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Update ssl certificates
 | 
					 | 
				
			||||||
[ -f "/config/ssl/ca.crt" ] && cat "/config/ssl/ca.crt" >>"/etc/ssl/certs/ca-certificates.crt"
 | 
					 | 
				
			||||||
type update-ca-certificates &>/dev/null && update-ca-certificates
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Export variables
 | 
					 | 
				
			||||||
export TZ HOSTNAME
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# Additional commands
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
case "$1" in
 | 
					 | 
				
			||||||
--help) # Help message
 | 
					 | 
				
			||||||
  echo 'Docker container for '$APPNAME''
 | 
					 | 
				
			||||||
  echo "Usage: $APPNAME [healthcheck, bash, command]"
 | 
					 | 
				
			||||||
  echo "Failed command will have exit code 10"
 | 
					 | 
				
			||||||
  echo
 | 
					 | 
				
			||||||
  exitCode=$?
 | 
					 | 
				
			||||||
  ;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
healthcheck) # Docker healthcheck
 | 
					 | 
				
			||||||
  __heath_check || exit 10
 | 
					 | 
				
			||||||
  echo "$(uname -s) $(uname -m) is running"
 | 
					 | 
				
			||||||
  exitCode=$?
 | 
					 | 
				
			||||||
  ;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*/bin/sh | */bin/bash | bash | shell | sh) # Launch shell
 | 
					 | 
				
			||||||
  shift 1
 | 
					 | 
				
			||||||
  __exec_command "${@:-/bin/bash}"
 | 
					 | 
				
			||||||
  exitCode=$?
 | 
					 | 
				
			||||||
  ;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*) # Execute primary command
 | 
					 | 
				
			||||||
  if [ $# -eq 0 ]; then
 | 
					 | 
				
			||||||
    cherokee-server
 | 
					 | 
				
			||||||
    exitCode=$?
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    __exec_command "$@"
 | 
					 | 
				
			||||||
    exitCode=$?
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  ;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
# end of entrypoint
 | 
					 | 
				
			||||||
exit ${exitCode:-$?}
 | 
					 | 
				
			||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
					 | 
				
			||||||
							
								
								
									
										284
									
								
								rootfs/usr/local/bin/entrypoint.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						@@ -0,0 +1,284 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					# shellcheck shell=bash
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					##@Version           :  202210201649-git
 | 
				
			||||||
 | 
					# @@Author           :  Jason Hempstead
 | 
				
			||||||
 | 
					# @@Contact          :  jason@casjaysdev.com
 | 
				
			||||||
 | 
					# @@License          :  LICENSE.md
 | 
				
			||||||
 | 
					# @@ReadME           :  entrypoint.sh --help
 | 
				
			||||||
 | 
					# @@Copyright        :  Copyright: (c) 2022 Jason Hempstead, Casjays Developments
 | 
				
			||||||
 | 
					# @@Created          :  Thursday, Oct 20, 2022 16:49 EDT
 | 
				
			||||||
 | 
					# @@File             :  entrypoint.sh
 | 
				
			||||||
 | 
					# @@Description      :  entrypoint point for cherokee
 | 
				
			||||||
 | 
					# @@Changelog        :  New script
 | 
				
			||||||
 | 
					# @@TODO             :  Better documentation
 | 
				
			||||||
 | 
					# @@Other            :
 | 
				
			||||||
 | 
					# @@Resource         :
 | 
				
			||||||
 | 
					# @@Terminal App     :  no
 | 
				
			||||||
 | 
					# @@sudo/root        :  no
 | 
				
			||||||
 | 
					# @@Template         :  other/docker-entrypoint
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Set bash options
 | 
				
			||||||
 | 
					[ -n "$DEBUG" ] && set -x
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Set functions
 | 
				
			||||||
 | 
					__exec_command() {
 | 
				
			||||||
 | 
					  local exitCode=0
 | 
				
			||||||
 | 
					  local cmd="${*:-bash -l}"
 | 
				
			||||||
 | 
					  echo "${exec_message:-Executing command: $cmd}"
 | 
				
			||||||
 | 
					  $cmd || exitCode=1
 | 
				
			||||||
 | 
					  [ "$exitCode" = 0 ] || exitCode=10
 | 
				
			||||||
 | 
					  return ${exitCode:-$?}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					__pcheck() { [ -n "$(which pgrep 2>/dev/null)" ] && pgrep -x "$1" || return 1; }
 | 
				
			||||||
 | 
					__find() { find "$1" -mindepth 1 -type ${2:-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:-$SERVICE_NAME}" || ps aux 2>/dev/null | grep -Fw " ${1:-$SERVICE_NAME}" | grep -qv ' grep' || return 10; }
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					__certbot() {
 | 
				
			||||||
 | 
					  [ -n "$DOMANNAME" ] && [ -n "$CERT_BOT_MAIL" ] || { echo "The variables DOMANNAME and CERT_BOT_MAIL are set" && exit 1; }
 | 
				
			||||||
 | 
					  [ "$SSL_CERT_BOT" = "true" ] && type -P certbot &>/dev/null || { export SSL_CERT_BOT="" && return 10; }
 | 
				
			||||||
 | 
					  certbot $1 --agree-tos -m $CERT_BOT_MAIL certonly --webroot -w "${WWW_ROOT_DIR:-/data/htdocs/www}" -d $DOMAINNAME -d $DOMAINNAME \
 | 
				
			||||||
 | 
					    --put-all-related-files-into "$SSL_DIR" -key-path "$SSL_KEY" -fullchain-path "$SSL_CERT"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					__heath_check() {
 | 
				
			||||||
 | 
					  status=0 health="Good"
 | 
				
			||||||
 | 
					  __pgrep ${1:-} || status=$((status + 1))
 | 
				
			||||||
 | 
					  #__curl "https://1.1.1.1" || 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:-$?}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					__start_all_services() {
 | 
				
			||||||
 | 
					  echo "$service_message"
 | 
				
			||||||
 | 
					  start-fpm.sh &
 | 
				
			||||||
 | 
					  start-cherokee.sh
 | 
				
			||||||
 | 
					  return $?
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Additional functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# export functions
 | 
				
			||||||
 | 
					export -f __exec_command __pcheck __pgrep __find __curl __heath_check __certbot __start_all_services
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Define default variables - do not change these - redefine with -e or set under Additional
 | 
				
			||||||
 | 
					DISPLAY="${DISPLAY:-}"
 | 
				
			||||||
 | 
					LANG="${LANG:-C.UTF-8}"
 | 
				
			||||||
 | 
					DOMAINNAME="${DOMAINNAME:-}"
 | 
				
			||||||
 | 
					TZ="${TZ:-America/New_York}"
 | 
				
			||||||
 | 
					HTTP_PORT="${HTTP_PORT:-80}"
 | 
				
			||||||
 | 
					HTTPS_PORT="${HTTPS_PORT:-}"
 | 
				
			||||||
 | 
					SERVICE_PORT="${SERVICE_PORT:-}"
 | 
				
			||||||
 | 
					SERVICE_NAME="${CONTAINER_NAME:-}"
 | 
				
			||||||
 | 
					HOSTNAME="${HOSTNAME:-casjaysdev-cherokee}"
 | 
				
			||||||
 | 
					HOSTADMIN="${HOSTADMIN:-root@${DOMAINNAME:-$HOSTNAME}}"
 | 
				
			||||||
 | 
					CERT_BOT_MAIL="${CERT_BOT_MAIL:-certbot-mail@casjay.net}"
 | 
				
			||||||
 | 
					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_DATA_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 2>/dev/null | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}' | sed 's|/.*||g')"
 | 
				
			||||||
 | 
					[ -n "$HTTP_PORT" ] || [ -n "$HTTPS_PORT" ] || HTTP_PORT="$SERVICE_PORT"
 | 
				
			||||||
 | 
					[ "$HTTPS_PORT" = "443" ] && HTTP_PORT="$HTTPS_PORT" && SSL_ENABLED="true"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Additional variables and variable overrides
 | 
				
			||||||
 | 
					#SERVICE_NAME=""
 | 
				
			||||||
 | 
					export service_message="Starting $CONTAINER_NAME"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Check if this is a new container
 | 
				
			||||||
 | 
					[ -f "/data/.docker_has_run" ] && DATA_DIR_INITIALIZED="true" || DATA_DIR_INITIALIZED="false"
 | 
				
			||||||
 | 
					[ -f "/config/.docker_has_run" ] && CONFIG_DIR_INITIALIZED="true" || CONFIG_DIR_INITIALIZED="false"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# export variables
 | 
				
			||||||
 | 
					export LANG TZ DOMAINNAME HOSTNAME HOSTADMIN SSL_ENABLED SSL_DIR SSL_CA SSL_KEY SERVICE_NAME
 | 
				
			||||||
 | 
					export SSL_DIR HTTP_PORT HTTPS_PORT LOCAL_BIN_DIR DEFAULT_CONF_DIR CONTAINER_IP_ADDRESS
 | 
				
			||||||
 | 
					export SSL_CONTAINER_DIR SSL_CERT_BOT DISPLAY CONFIG_DIR_INITIALIZED DATA_DIR_INITIALIZED
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# import variables from file
 | 
				
			||||||
 | 
					[ -f "/root/env.sh" ] && . "/root/env.sh"
 | 
				
			||||||
 | 
					[ -f "/config/env.sh" ] && "/config/env.sh"
 | 
				
			||||||
 | 
					[ -f "/config/.env.sh" ] && . "/config/.env.sh"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Set timezone
 | 
				
			||||||
 | 
					[ -n "$TZ" ] && echo "$TZ" >"/etc/timezone"
 | 
				
			||||||
 | 
					[ -f "/usr/share/zoneinfo/$TZ" ] && ln -sf "/usr/share/zoneinfo/$TZ" "/etc/localtime"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Set hostname
 | 
				
			||||||
 | 
					if [ -n "$HOSTNAME" ]; then
 | 
				
			||||||
 | 
					  echo "$HOSTNAME" >"/etc/hostname"
 | 
				
			||||||
 | 
					  echo "127.0.0.1 $HOSTNAME localhost $HOSTNAME.local" >"/etc/hosts"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Add domain to hosts file
 | 
				
			||||||
 | 
					if [ -n "$DOMAINNAME" ]; then
 | 
				
			||||||
 | 
					  echo "$HOSTNAME.${DOMAINNAME:-local}" >"/etc/hostname"
 | 
				
			||||||
 | 
					  echo "127.0.0.1 $HOSTNAME localhost $HOSTNAME.local" >"/etc/hosts"
 | 
				
			||||||
 | 
					  echo "${CONTAINER_IP_ADDRESS:-127.0.0.1} $HOSTNAME.$DOMAINNAME" >>"/etc/hosts"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Delete any gitkeep files
 | 
				
			||||||
 | 
					[ -d "/data" ] && rm -Rf "/data/.gitkeep" "/data"/*/*.gitkeep
 | 
				
			||||||
 | 
					[ -d "/config" ] && rm -Rf "/config/.gitkeep" "/data"/*/*.gitkeep
 | 
				
			||||||
 | 
					[ -f "/usr/local/bin/.gitkeep" ] && rm -Rf "/usr/local/bin/.gitkeep"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Create directories
 | 
				
			||||||
 | 
					[ -d "/etc/ssl" ] || mkdir -p "$SSL_CONTAINER_DIR"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Create files
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Create symlinks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					if [ "$SSL_ENABLED" = "true" ] || [ "$SSL_ENABLED" = "yes" ]; then
 | 
				
			||||||
 | 
					  if [ -f "/config/ssl/server.crt" ] && [ -f "/config/ssl/server.key" ]; then
 | 
				
			||||||
 | 
					    export SSL_ENABLED="true"
 | 
				
			||||||
 | 
					    if [ -n "$SSL_CA" ] && [ -f "$SSL_CA" ]; then
 | 
				
			||||||
 | 
					      mkdir -p "$SSL_CONTAINER_DIR/certs"
 | 
				
			||||||
 | 
					      cat "$SSL_CA" >>"/etc/ssl/certs/ca-certificates.crt"
 | 
				
			||||||
 | 
					      cp -Rf "/config/ssl/." "$SSL_CONTAINER_DIR/"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    [ -d "$SSL_DIR" ] || mkdir -p "$SSL_DIR"
 | 
				
			||||||
 | 
					    create-ssl-cert
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  type update-ca-certificates &>/dev/null && update-ca-certificates
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					[ -f "$SSL_CA" ] && cp -Rfv "$SSL_CA" "$SSL_CONTAINER_DIR/ca.crt"
 | 
				
			||||||
 | 
					[ -f "$SSL_KEY" ] && cp -Rfv "$SSL_KEY" "$SSL_CONTAINER_DIR/server.key"
 | 
				
			||||||
 | 
					[ -f "$SSL_CERT" ] && cp -Rfv "$SSL_CERT" "$SSL_CONTAINER_DIR/server.crt"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Setup bin directory
 | 
				
			||||||
 | 
					SET_USR_BIN=""
 | 
				
			||||||
 | 
					[ -d "/data/bin" ] && SET_USR_BIN+="$(__find /data/bin f) "
 | 
				
			||||||
 | 
					[ -d "/config/bin" ] && SET_USR_BIN+="$(__find /config/bin f) "
 | 
				
			||||||
 | 
					if [ -n "$SET_USR_BIN" ]; then
 | 
				
			||||||
 | 
					  echo "Setting up bin"
 | 
				
			||||||
 | 
					  for create_bin in $SET_USR_BIN; do
 | 
				
			||||||
 | 
					    create_bin_name="$(basename "$create_bin")"
 | 
				
			||||||
 | 
					    ln -sf "$create_bin" "$LOCAL_BIN_DIR/$create_bin_name"
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Create default config
 | 
				
			||||||
 | 
					if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -d "/config" ]; then
 | 
				
			||||||
 | 
					  echo "Copying default config files"
 | 
				
			||||||
 | 
					  if [ -n "$DEFAULT_TEMPLATE_DIR" ] && [ -d "$DEFAULT_TEMPLATE_DIR" ]; then
 | 
				
			||||||
 | 
					    for create_template in "$DEFAULT_TEMPLATE_DIR"/*; do
 | 
				
			||||||
 | 
					      create_template_name="$(basename "$create_template")"
 | 
				
			||||||
 | 
					      cp -Rf "$create_template" "/config/$create_template_name" 2>/dev/null
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Copy custom config files
 | 
				
			||||||
 | 
					if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -d "/config" ]; then
 | 
				
			||||||
 | 
					  echo "Copying custom config files"
 | 
				
			||||||
 | 
					  for create_config in "$DEFAULT_CONF_DIR"/*; do
 | 
				
			||||||
 | 
					    create_config_name="$(basename "$create_config")"
 | 
				
			||||||
 | 
					    cp -Rf "$create_config" "/config/$create_config_name" 2>/dev/null
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Copy custom data files
 | 
				
			||||||
 | 
					if [ "$DATA_DIR_INITIALIZED" = "false" ] && [ -d "/data" ]; then
 | 
				
			||||||
 | 
					  echo "Copying data files"
 | 
				
			||||||
 | 
					  for create_data in "$DEFAULT_DATA_DIR"/*; do
 | 
				
			||||||
 | 
					    create_data_name="$(basename "$create_data")"
 | 
				
			||||||
 | 
					    cp -Rf "$create_data" "/data/$create_data_name" 2>/dev/null
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Copy /config to /etc
 | 
				
			||||||
 | 
					if [ -d "/config" ]; then
 | 
				
			||||||
 | 
					  echo "Copying /config to /etc"
 | 
				
			||||||
 | 
					  for create_conf in /config/*; do
 | 
				
			||||||
 | 
					    if [ -n "$create_conf" ]; then
 | 
				
			||||||
 | 
					      create_conf_name="$(basename "$create_conf")"
 | 
				
			||||||
 | 
					      if [ -e "/etc/$create_conf_name" ]; then
 | 
				
			||||||
 | 
					        if [ -d "/etc/$create_conf_name" ]; then
 | 
				
			||||||
 | 
					          cp -Rf "$create_conf/." "/etc/$create_conf_name/" 2>/dev/null
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					          cp -Rf "$create_conf" "/etc/$create_conf_name" 2>/dev/null
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Unset unneeded variables
 | 
				
			||||||
 | 
					unset SET_USR_BIN create_bin create_bin_name create_template create_template_name
 | 
				
			||||||
 | 
					unset create_data create_data_name create_config create_config_name create_conf create_conf_name
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					[ -f "/data/.docker_has_run" ] || { [ -d "/data" ] && echo "Initialized on: $(date)" >"/data/.docker_has_run"; }
 | 
				
			||||||
 | 
					[ -f "/config/.docker_has_run" ] || { [ -d "/config" ] && echo "Initialized on: $(date)" >"/config/.docker_has_run"; }
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Additional commands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Show message
 | 
				
			||||||
 | 
					echo "Container ip address is: $CONTAINER_IP_ADDRESS"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					case "$1" in
 | 
				
			||||||
 | 
					--help) # Help message
 | 
				
			||||||
 | 
					  echo 'Docker container for '$APPNAME''
 | 
				
			||||||
 | 
					  echo "Usage: $APPNAME [healthcheck, bash, command]"
 | 
				
			||||||
 | 
					  echo "Failed command will have exit code 10"
 | 
				
			||||||
 | 
					  echo ""
 | 
				
			||||||
 | 
					  exit ${exitCode:-$?}
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					healthcheck) # Docker healthcheck
 | 
				
			||||||
 | 
					  __heath_check "${1:-$SERVICE_NAME}" || exitCode=10
 | 
				
			||||||
 | 
					  exit ${exitCode:-$?}
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/bin/sh | */bin/bash | bash | shell | sh) # Launch shell
 | 
				
			||||||
 | 
					  shift 1
 | 
				
			||||||
 | 
					  __exec_command "${@:-/bin/bash}"
 | 
				
			||||||
 | 
					  exit ${exitCode:-$?}
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					certbot)
 | 
				
			||||||
 | 
					  shift 1
 | 
				
			||||||
 | 
					  SSL_CERT_BOT="true"
 | 
				
			||||||
 | 
					  if [ "$1" = "create" ]; then
 | 
				
			||||||
 | 
					    shift 1
 | 
				
			||||||
 | 
					    __certbot
 | 
				
			||||||
 | 
					  elif [ "$1" = "renew" ]; then
 | 
				
			||||||
 | 
					    shift 1
 | 
				
			||||||
 | 
					    __certbot "renew certonly --force-renew"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    __exec_command "certbot" "$@"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*) # Execute primary command
 | 
				
			||||||
 | 
					  if [ $# -eq 0 ]; then
 | 
				
			||||||
 | 
					    __start_all_services
 | 
				
			||||||
 | 
					    exit ${exitCode:-$?}
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    __exec_command "$@"
 | 
				
			||||||
 | 
					    exitCode=$?
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# end of entrypoint
 | 
				
			||||||
 | 
					exit ${exitCode:-$?}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
							
								
								
									
										166
									
								
								rootfs/usr/local/bin/start-cherokee.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						@@ -0,0 +1,166 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					# shellcheck shell=bash
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					##@Version           :  202210201649-git
 | 
				
			||||||
 | 
					# @@Author           :  Jason Hempstead
 | 
				
			||||||
 | 
					# @@Contact          :  jason@casjaysdev.com
 | 
				
			||||||
 | 
					# @@License          :  LICENSE.md
 | 
				
			||||||
 | 
					# @@ReadME           :  start-cherokee.sh --help
 | 
				
			||||||
 | 
					# @@Copyright        :  Copyright: (c) 2022 Jason Hempstead, Casjays Developments
 | 
				
			||||||
 | 
					# @@Created          :  Thursday, Oct 20, 2022 16:49 EDT
 | 
				
			||||||
 | 
					# @@File             :  start-cherokee.sh
 | 
				
			||||||
 | 
					# @@Description      :  script to start cherokee
 | 
				
			||||||
 | 
					# @@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 -x "$1" || return 1; }
 | 
				
			||||||
 | 
					__find() { find "$1" -mindepth 1 -type ${2:-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 -Fw " $1" | grep -qv ' grep' || return 10; }
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					__certbot() {
 | 
				
			||||||
 | 
					  [ -n "$DOMANNAME" ] && [ -n "$CERT_BOT_MAIL" ] || { echo "The variables DOMANNAME and CERT_BOT_MAIL are set" && exit 1; }
 | 
				
			||||||
 | 
					  [ "$SSL_CERT_BOT" = "true" ] && type -P certbot &>/dev/null || { export SSL_CERT_BOT="" && return 10; }
 | 
				
			||||||
 | 
					  certbot $1 --agree-tos -m $CERT_BOT_MAIL certonly --webroot -w "${WWW_ROOT_DIR:-/data/htdocs/www}" -d $DOMAINNAME -d $DOMAINNAME \
 | 
				
			||||||
 | 
					    --put-all-related-files-into "$SSL_DIR" -key-path "$SSL_KEY" -fullchain-path "$SSL_CERT"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					__heath_check() {
 | 
				
			||||||
 | 
					  status=0 health="Good"
 | 
				
			||||||
 | 
					  __pgrep ${1:-} || 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}"
 | 
				
			||||||
 | 
					DOMAINNAME="${DOMAINNAME:-}"
 | 
				
			||||||
 | 
					TZ="${TZ:-America/New_York}"
 | 
				
			||||||
 | 
					HTTP_PORT="${HTTP_PORT:-80}"
 | 
				
			||||||
 | 
					HTTPS_PORT="${HTTPS_PORT:-}"
 | 
				
			||||||
 | 
					SERVICE_PORT="${SERVICE_PORT:-$HTTP_PORT}"
 | 
				
			||||||
 | 
					SERVICE_NAME="${CONTAINER_NAME:-}"
 | 
				
			||||||
 | 
					HOSTNAME="${HOSTNAME:-casjaysdev-cherokee}"
 | 
				
			||||||
 | 
					HOSTADMIN="${HOSTADMIN:-root@${DOMAINNAME:-$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}"
 | 
				
			||||||
 | 
					DATA_DIR_INITIALIZED="${DATA_DIR_INITIALIZED:-}"
 | 
				
			||||||
 | 
					CONFIG_DIR_INITIALIZED="${CONFIG_DIR_INITIALIZED:-}"
 | 
				
			||||||
 | 
					DEFAULT_DATA_DIR="${DEFAULT_DATA_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 2>/dev/null | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}' | sed 's|/.*||g')"
 | 
				
			||||||
 | 
					[ -n "$HTTP_PORT" ] || [ -n "$HTTPS_PORT" ] || HTTP_PORT="$SERVICE_PORT"
 | 
				
			||||||
 | 
					[ "$HTTPS_PORT" = "443" ] && HTTP_PORT="$HTTPS_PORT" && SSL_ENABLED="true"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Overwrite variables
 | 
				
			||||||
 | 
					#SERVICE_PORT=""
 | 
				
			||||||
 | 
					SERVICE_NAME="cherokee"
 | 
				
			||||||
 | 
					SERVICE_COMMAND="cherokee -C /etc/cherokee/cherokee.conf"
 | 
				
			||||||
 | 
					export exec_message="Starting $SERVICE_NAME on $CONTAINER_IP_ADDRESS:$SERVICE_PORT"
 | 
				
			||||||
 | 
					export PATH="/usr/local/share/cherokee/bin:/usr/local/share/cherokee/sbin:$PATH"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Pre copy commands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Check if this is a new container
 | 
				
			||||||
 | 
					[ -z "$DATA_DIR_INITIALIZED" ] && [ -f "/data/.docker_has_run" ] && DATA_DIR_INITIALIZED="true"
 | 
				
			||||||
 | 
					[ -z "$CONFIG_DIR_INITIALIZED" ] && [ -f "/config/.docker_has_run" ] && CONFIG_DIR_INITIALIZED="true"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Create default config
 | 
				
			||||||
 | 
					if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -n "$DEFAULT_TEMPLATE_DIR" ]; then
 | 
				
			||||||
 | 
					  [ -d "/config" ] && cp -Rf "$DEFAULT_TEMPLATE_DIR/." "/config/" 2>/dev/null
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Copy custom config files
 | 
				
			||||||
 | 
					if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -n "$DEFAULT_CONF_DIR" ]; then
 | 
				
			||||||
 | 
					  [ -d "/config" ] && cp -Rf "$DEFAULT_CONF_DIR/." "/config/" 2>/dev/null
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Copy custom data files
 | 
				
			||||||
 | 
					if [ "$DATA_DIR_INITIALIZED" = "false" ] && [ -n "$DEFAULT_DATA_DIR" ]; then
 | 
				
			||||||
 | 
					  [ -d "/data" ] && cp -Rf "$DEFAULT_DATA_DIR/." "/data/" 2>/dev/null
 | 
				
			||||||
 | 
					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/" 2>/dev/null
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Post copy commands
 | 
				
			||||||
 | 
					[ -d "/data/cherokee/graphs" ] || mkdir -p "/data/cherokee/graphs"
 | 
				
			||||||
 | 
					[ -d "/config/cherokee/themes" ] && cp -Rf "/config/cherokee/themes/." "/usr/local/share/cherokee/share/cherokee/themes/"
 | 
				
			||||||
 | 
					[ -d "/usr/local/share/cherokee/icons" ] && [ ! -d "/config/cherokee/icons" ] && mkdir -p "/config/cherokee/icons" && cp -Rf "/usr/local/share/cherokee/icons/." "/config/cherokee/icons/"
 | 
				
			||||||
 | 
					[ -d "/usr/local/share/cherokee/themes" ] && [ ! -d "/config/cherokee/themes" ] && mkdir -p "/config/cherokee/themes" && cp -Rf "/usr/local/share/cherokee/themes/." "/config/cherokee/themes/"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					chmod -Rfv 664 "/data/cherokee"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# begin main app
 | 
				
			||||||
 | 
					case "$1" in
 | 
				
			||||||
 | 
					healthcheck)
 | 
				
			||||||
 | 
					  shift 1
 | 
				
			||||||
 | 
					  __heath_check "${SERVICE_NAME:-bash}"
 | 
				
			||||||
 | 
					  exit $?
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					certbot)
 | 
				
			||||||
 | 
					  shift 1
 | 
				
			||||||
 | 
					  SSL_CERT_BOT="true"
 | 
				
			||||||
 | 
					  if [ "$1" = "create" ]; then
 | 
				
			||||||
 | 
					    shift 1
 | 
				
			||||||
 | 
					    __certbot
 | 
				
			||||||
 | 
					  elif [ "$1" = "renew" ]; then
 | 
				
			||||||
 | 
					    shift 1
 | 
				
			||||||
 | 
					    __certbot "renew certonly --force-renew"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    __exec_command "certbot" "$@"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*)
 | 
				
			||||||
 | 
					  if __pgrep "$SERVICE_NAME" && [ ! -f "/tmp/$SERVICE_NAME.pid" ]; then
 | 
				
			||||||
 | 
					    echo "$SERVICE_NAME is running"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    touch "/tmp/$SERVICE_NAME.pid"
 | 
				
			||||||
 | 
					    echo "Starting cherokee-admin on port 9090"
 | 
				
			||||||
 | 
					    cherokee-admin -b -p 9090 -C /etc/cherokee/cherokee.conf &
 | 
				
			||||||
 | 
					    __exec_command "$SERVICE_COMMAND" || rm -Rf "/tmp/$SERVICE_NAME.pid"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# Set exit code
 | 
				
			||||||
 | 
					exitCode="${exitCode:-$?}"
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# End application
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# lets exit with code
 | 
				
			||||||
 | 
					exit ${exitCode:-$?}
 | 
				
			||||||
 | 
					# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
				
			||||||
 | 
					# end
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB  | 
| 
		 Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB  | 
| 
		 Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 766 B  | 
| 
		 Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB  | 
| 
		 Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 429 B  |