diff --git a/Dockerfile b/Dockerfile index 36d95f5..8ffc3dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,66 +1,100 @@ -FROM casjaysdevdocker/nginx:latest as build +FROM casjaysdevdocker/alpine:latest AS build -ARG LICENSE=WTFPL \ - IMAGE_NAME=aria2 \ - TIMEZONE=America/New_York \ - PORT=6800 \ - ARIANG_VERSION=1.2.4 \ - DOMAIN=0.0.0.0:8080 +ARG ALPINE_VERSION="v3.16" +ARG ARIANG_VERSION="1.2.4 " -ENV SHELL=/bin/bash \ - TERM=xterm-256color \ - HOSTNAME=${HOSTNAME:-casjaysdev-$IMAGE_NAME} \ - TZ=$TIMEZONE +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" -WORKDIR /usr/local/www/ariang +ARG PACK_LIST="bash aria2 unzip nginx" -RUN mkdir -p /bin/ /config/ /data/ && \ - rm -Rf /bin/.gitkeep /config/.gitkeep /data/.gitkeep && \ - apk update -U --no-cache && \ - apk add --no-cache \ - aria2 \ - unzip && \ - rm -R /etc/nginx && \ - mkdir -p /aria2/config /aria2/data /tmp/ariang /usr/local/www/ariang && \ - cd /tmp/ariang && \ +ENV LANG=en_US.utf8 \ + ENV=ENV=~/.bashrc \ + TZ="America/New_York" \ + SHELL="/bin/sh" \ + TERM="xterm-256color" \ + TIMEZONE="${TZ:-$TIMEZONE}" \ + HOSTNAME="casjaysdev-aria2" + +COPY ./rootfs/. / + +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} && \ curl -q -LSsf https://github.com/mayswind/AriaNg/releases/download/$ARIANG_VERSION/AriaNg-$ARIANG_VERSION.zip -o /tmp/AriaNg-$ARIANG_VERSION.zip && \ unzip /tmp/AriaNg-$ARIANG_VERSION.zip && \ - rsync -ahP /tmp/ariang/. /usr/local/www/ariang/ && \ - rm -Rf /tmp/ariang + mkdir -p /var/www/ariang && \ + rsync -ahP /tmp/ariang/. /var/www/ariang/ && \ + rm -Rf /tmp/ariang /tmp/AriaNg-$ARIANG_VERSION.zip -COPY ./bin/. /usr/local/bin/ -COPY ./config/. /config/ -COPY ./data/. /data/ +RUN echo 'Running cleanup' ; \ + 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 -ARG BUILD_DATE="$(date +'%Y-%m-%d %H:%M')" -LABEL org.label-schema.name="aria2" \ - org.label-schema.description="Aria2 downloader and AriaNg webui Docker image based on Alpine Linux" \ - org.label-schema.url="https://hub.docker.com/r/casjaysdevdocker/aria2" \ - org.label-schema.vcs-url="https://github.com/casjaysdevdocker/aria2" \ - org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.version=$BUILD_DATE \ - org.label-schema.vcs-ref=$BUILD_DATE \ - org.label-schema.license="$LICENSE" \ - org.label-schema.vcs-type="Git" \ - org.label-schema.schema-version="latest" \ - org.label-schema.vendor="CasjaysDev" \ - maintainer="CasjaysDev " +ARG \ + SERVICE_PORT="6800" \ + EXPOSE_PORTS="6800" \ + PHP_SERVER="aria2" \ + NODE_VERSION="system" \ + NODE_MANAGER="system" \ + BUILD_VERSION="latest" \ + LICENSE="MIT" \ + IMAGE_NAME="aria2" \ + BUILD_DATE="Wed Oct 19 05:13:52 PM EDT 2022" \ + TIMEZONE="America/New_York" -ENV SHELL="/bin/bash" \ +LABEL maintainer="CasjaysDev " \ + 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 LANG=en_US.utf8 \ + ENV=~/.bashrc \ + SHELL="/bin/bash" \ + PORT="${SERVICE_PORT}" \ TERM="xterm-256color" \ - HOSTNAME="casjaysdev-aria2" \ - TZ="${TZ:-America/New_York}" - -WORKDIR /aria2 - -VOLUME ["/root", "/aria2/data", "/aria2/config"] - -EXPOSE $PORT + PHP_SERVER="${PHP_SERVER}" \ + CONTAINER_NAME="${IMAGE_NAME}" \ + TZ="${TZ:-America/New_York}" \ + TIMEZONE="${TZ:-$TIMEZONE}" \ + HOSTNAME="casjaysdev-${IMAGE_NAME}" COPY --from=build /. / -HEALTHCHECK --interval=15s --timeout=3s CMD ["/usr/local/bin/entrypoint-aria2.sh", "healthcheck"] +USER root +WORKDIR /data/aria2 -ENTRYPOINT ["/usr/local/bin/entrypoint-aria2.sh"] +VOLUME [ "/config","/data" ] + +EXPOSE $EXPOSE_PORTS + +#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" ] diff --git a/README.md b/README.md new file mode 100644 index 0000000..3458e31 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +## 👋 Welcome to aria2 🚀 + +aria2 README + + +## Install my system scripts + +```shell + sudo bash -c "$(curl -q -LSsf "https://github.com/systemmgr/installer/raw/main/install.sh")" + sudo systemmgr --config && sudo systemmgr install scripts +``` + +## Get source files + +```shell +dockermgr download src aria2 +``` + +OR + +```shell +git clone "https://github.com/casjaysdevdocker/aria2" "$HOME/Projects/github/casjaysdevdocker/aria2" +``` + +## Build container + +```shell +cd "$HOME/Projects/github/casjaysdevdocker/aria2" +buildx +``` + +## Authors + +🤖 casjay: [Github](https://github.com/casjay) [Docker](https://hub.docker.com/r/casjay) 🤖 +📽 dockermgr: [Github](https://github.com/dockermgr) [Docker](https://hub.docker.com/r/dockermgr) 📽 +⛵ CasjaysDev Docker: [Github](https://github.com/casjaysdevdocker) [Docker](https://hub.docker.com/r/casjaysdevdocker) ⛵ diff --git a/bin/entrypoint-aria2.sh b/bin/entrypoint-aria2.sh deleted file mode 100755 index b812904..0000000 --- a/bin/entrypoint-aria2.sh +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env bash -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -##@Version : 202207112232-git -# @Author : Jason Hempstead -# @Contact : jason@casjaysdev.com -# @License : LICENSE.md -# @ReadME : entrypoint-aria2.sh --help -# @Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments -# @Created : Monday, Jul 11, 2022 22:32 EDT -# @File : entrypoint-aria2.sh -# @Description : -# @TODO : -# @Other : -# @Resource : -# @sudo/root : no -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Set bash options -[ -n "$DEBUG" ] && set -x -set -o pipefail -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -APPNAME="$(basename "$0" 2>/dev/null)" -VERSION="202207112232-git" -HOME="${USER_HOME:-$HOME}" -USER="${SUDO_USER:-$USER}" -RUN_USER="${SUDO_USER:-$USER}" -SRC_DIR="${BASH_SOURCE%/*}" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Set functions -__exec_bash() { - local cmd="${*:-/bin/bash}" - local exitCode=0 - echo "Executing command: $cmd" - $cmd || exitCode=10 - return ${exitCode:-$?} -} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__find() { ls -A "$*" 2>/dev/null; } -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Define default variables -TZ="${TZ:-America/New_York}" -HOSTNAME="${HOSTNAME:-casjaysdev-bin}" -BIN_DIR="${BIN_DIR:-/usr/local/bin}" -DATA_DIR="${DATA_DIR:-$(__find /data/ 2>/dev/null | grep '^' || false)}" -CONFIG_DIR="${CONFIG_DIR:-$(__find /config/ 2>/dev/null | grep '^' || false)}" -CONFIG_COPY="${CONFIG_COPY:-false}" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Additional variables -ARIA2RPCPORT="${ARIA2RPCPORT:-6800}" - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Export variables -export TZ HOSTNAME -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# import variables from file -[[ -f "/root/env.sh" ]] && . "/root/env.sh" -[[ -f "/config/.env.sh" ]] && . "/config/.env.sh" -[[ -f "/root/env.sh" ]] && [[ ! -f "/config/.env.sh" ]] && cp -Rf "/root/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 -[[ -n "${CONFIG_DIR}" ]] && { [[ -d "${CONFIG_DIR}" ]] && rm -Rf "${CONFIG_DIR}/.gitkeep" || mkdir -p "/config/"; } -[[ -n "${DATA_DIR}" ]] && { [[ -d "${DATA_DIR}" ]] && rm -Rf "${DATA_DIR}/.gitkeep" || mkdir -p "/data/"; } -[[ -n "${BIN_DIR}" ]] && { [[ -d "${BIN_DIR}" ]] && rm -Rf "${BIN_DIR}/.gitkeep" || mkdir -p "/bin/"; } -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Copy config files to /etc -if [[ -n "${CONFIG_DIR}" ]] && [[ "${CONFIG_COPY}" = "true" ]]; then - for config in ${CONFIG_DIR}; do - if [[ -d "/config/$config" ]]; then - [[ -d "/etc/$config" ]] || mkdir -p "/etc/$config" - cp -Rf "/config/$config/." "/etc/$config/" - elif [[ -f "/config/$config" ]]; then - cp -Rf "/config/$config" "/etc/$config" - fi - done -fi -[[ -f "/etc/.env.sh" ]] && rm -Rf "/etc/.env.sh" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Additional commands -if [ -f "/aria2/config/ariang.js" ]; then - ln -sf "/aria2/config/ariang.js" "/usr/local/www/ariang/js/aria-ng-f1dd57abb9.min.js" -else - cp -Rf "/etc/ariang.js" "/aria2/config/ariang.js" - ln -sf "/aria2/config/ariang.js" "/usr/local/www/ariang/js/aria-ng-f1dd57abb9.min.js" -fi -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# allow Changing of port [unsupported] -if [[ -n "$ARIA2RPCPORT" ]] && [[ "$ARIA2RPCPORT" != "6800" ]]; then - echo "Changing rpc request port to $ARIA2RPCPORT" - sed -i "s|6800|${ARIA2RPCPORT}|g" "/etc/nginx/nginx.conf" - sed -i "ss|6800|${ARIA2RPCPORT}|g" "" -fi -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# set rpc secret -if [ -n "$RPC_SECRET" ]; then - echo "Changing rpc secret to $RPC_SECRET" - grep -sq "rpc-secret=*" "/etc/aria2.conf" || - echo "rpc-secret=$RPC_SECRET" >>"/etc/aria2.conf" || - sed -i "s|rpc-secret=.*|rpc-secret=$RPC_SECRET|g" "/etc/aria2.conf" - sed -i "s|secret: |secret: $RPC_SECRET|g" "/usr/local/www/ariang/js/aria-ng-f1dd57abb9.min.js" -fi -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[ -d "/etc/nginx" ] && cp -Rf "/etc/nginx/." "/aria2/config/nginx/" -[ -f "/etc/aria2.conf" ] && cp -Rf "/etc/aria2.conf" "/aria2/config/aria2.conf" -[ -f "/aria2/config/aria2.session" ] || touch "/aria2/config/aria2.session" -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -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 - if curl -q -LSsf -o /dev/null -s -w "200" "http://localhost:$ARIA2RPCPORT"; then - echo "$(uname -s) $(uname -m) is running" - exit 0 - else - echo "FAIL" - exit 10 - fi - exitCode=$? - ;; - -*/bin/sh | */bin/bash | bash | shell | sh) # Launch shell - shift 1 - __exec_bash "${@:-/bin/bash}" - exitCode=$? - ;; - -*) # Execute primary command - [ -f "/etc/nginx/nginx.conf" ] && nginx -c /etc/nginx/nginx.conf & - if [[ $# -eq 0 ]]; then - [ -f "/etc/aria2.conf" ] && - __exec_bash aria2c --conf-path="/etc/aria2.conf" || exit 10 - else - __exec_bash "/bin/bash" - fi - exitCode=$? - ;; -esac -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# end of entrypoint -exit ${exitCode:-$?} -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/.gitkeep b/data/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/rootfs/usr/local/bin/entrypoint.sh b/rootfs/usr/local/bin/entrypoint.sh new file mode 100755 index 0000000..469798c --- /dev/null +++ b/rootfs/usr/local/bin/entrypoint.sh @@ -0,0 +1,280 @@ +#!/usr/bin/env bash +# shellcheck shell=bash +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +##@Version : 202210191713-git +# @@Author : Jason Hempstead +# @@Contact : jason@casjaysdev.com +# @@License : LICENSE.md +# @@ReadME : entrypoint.sh --help +# @@Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments +# @@Created : Wednesday, Oct 19, 2022 17:13 EDT +# @@File : entrypoint.sh +# @@Description : entrypoint point for aria2 +# @@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-nginx.sh & + start-aria2.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-aria2}" +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 + cp -Rf "$create_conf" "/etc/$create_conf_name" 2>/dev/null + 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:-$?} +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rootfs/usr/local/bin/start-aria2.sh b/rootfs/usr/local/bin/start-aria2.sh new file mode 100755 index 0000000..d0a4acb --- /dev/null +++ b/rootfs/usr/local/bin/start-aria2.sh @@ -0,0 +1,178 @@ +#!/usr/bin/env bash +# shellcheck shell=bash +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +##@Version : 202210191713-git +# @@Author : Jason Hempstead +# @@Contact : jason@casjaysdev.com +# @@License : LICENSE.md +# @@ReadME : start-aria2.sh --help +# @@Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments +# @@Created : Wednesday, Oct 19, 2022 17:13 EDT +# @@File : start-aria2.sh +# @@Description : script to start aria2 +# @@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:$ARIA2RPCPORT" || 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-aria2}" +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="${ARIA2RPCPORT:-8080}" +SERVICE_NAME="aria2" +SERVICE_COMMAND="aria2c --conf-path=/etc/aria2.conf" +export exec_message="Starting $SERVICE_NAME on $CONTAINER_IP_ADDRESS:$SERVICE_PORT" +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# 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 +if [ -f "/config/aria2/aria-ng-f1dd57abb9.min.js" ]; then + rm -Rf "/var/www/ariang/js/aria-ng-f1dd57abb9.min.js" + ln -sf "/config/aria2/aria-ng-f1dd57abb9.min.js" "/var/www/ariang/js/aria-ng-f1dd57abb9.min.js" +fi +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +if [ -n "$RPC_SECRET" ]; then + echo "Changing rpc secret to $RPC_SECRET" + grep -sq "rpc-secret=*" "/etc/aria2.conf" || + echo "rpc-secret=$RPC_SECRET" >>"/etc/aria2.conf" || + sed -i "s|rpc-secret=.*|rpc-secret=$RPC_SECRET|g" "/etc/aria2.conf" + sed -i "s|secret: |secret: $RPC_SECRET|g" "/var/www/ariang/js/aria-ng-f1dd57abb9.min.js" +fi +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# allow Changing of port [unsupported] +if [ -n "$SERVICE_PORT" ] && [ "$SERVICE_PORT" != "8080" ]; then + echo "Changing rpc request port to $SERVICE_PORT" + sed -i "s|8080|${SERVICE_PORT}|g" "/etc/nginx/nginx.conf" + sed -i "ss|8080|${SERVICE_PORT}|g" "/var/www/ariang/js/aria-ng-f1dd57abb9.min.js" +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 $? + ;; + +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" + __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 diff --git a/config/ariang.js b/rootfs/usr/local/share/template-files/config/aria2/aria-ng-f1dd57abb9.min.js similarity index 99% rename from config/ariang.js rename to rootfs/usr/local/share/template-files/config/aria2/aria-ng-f1dd57abb9.min.js index 03a86de..d9be0d4 100755 --- a/config/ariang.js +++ b/rootfs/usr/local/share/template-files/config/aria2/aria-ng-f1dd57abb9.min.js @@ -525,7 +525,7 @@ browserNotification: !1, rpcAlias: '', rpcHost: 'localhost', - rpcPort: '6800', + rpcPort: '8080', rpcInterface: 'jsonrpc', protocol: 'ws', httpMethod: 'POST', @@ -2106,7 +2106,7 @@ 'rpc-listen-port': { type: 'integer', readonly: !0, - defaultValue: '6800', + defaultValue: '8080', }, 'rpc-max-request-size': { type: 'string', diff --git a/config/aria2.conf b/rootfs/usr/local/share/template-files/config/aria2/aria2.conf similarity index 90% rename from config/aria2.conf rename to rootfs/usr/local/share/template-files/config/aria2/aria2.conf index ba610d2..16030ed 100644 --- a/config/aria2.conf +++ b/rootfs/usr/local/share/template-files/config/aria2/aria2.conf @@ -1,8 +1,8 @@ # Default configuration for aria2 -dir=/aria2/data -log=/aria2/data/aria2.log -input-file=/aria2/config/aria2.session -save-session=/aria2/config/aria2.session +dir=/data/aria2 +log=/proc/self/fd/2 +input-file=/config/aria2/aria2.session +save-session=/config/aria2/aria2.session enable-rpc=true rpc-listen-port=8080 rpc-allow-origin-all=true diff --git a/config/aria2.session b/rootfs/usr/local/share/template-files/config/aria2/aria2.session similarity index 100% rename from config/aria2.session rename to rootfs/usr/local/share/template-files/config/aria2/aria2.session diff --git a/config/nginx/mime.types b/rootfs/usr/local/share/template-files/config/nginx/mime.types similarity index 100% rename from config/nginx/mime.types rename to rootfs/usr/local/share/template-files/config/nginx/mime.types diff --git a/config/nginx/nginx.conf b/rootfs/usr/local/share/template-files/config/nginx/nginx.conf similarity index 72% rename from config/nginx/nginx.conf rename to rootfs/usr/local/share/template-files/config/nginx/nginx.conf index ea8a1d3..b514869 100644 --- a/config/nginx/nginx.conf +++ b/rootfs/usr/local/share/template-files/config/nginx/nginx.conf @@ -2,7 +2,7 @@ user root; worker_processes 1; -error_log /var/log/nginx/error.log warn; +error_log /proc/self/fd/2 error; pid /var/run/nginx.pid; events { @@ -10,20 +10,20 @@ events { } http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - access_log /var/log/nginx/access.log main; - sendfile on; - keepalive_timeout 65; - gzip on; - map $http_upgrade $connection_upgrade { default upgrade; '' close; } + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + sendfile on; + keepalive_timeout 65; + gzip on; + map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { - listen 6800; - root /usr/local/www/ariang; + listen 80 6800; + root /var/www/ariang; index index.html; proxy_intercept_errors off; add_header X-Frame-Options "SAMEORIGIN" always; @@ -77,5 +77,5 @@ http { access_log off; return 200 '{"status":"OK"}'; } - } + } } diff --git a/bin/.gitkeep b/rootfs/usr/local/share/template-files/data/.gitkeep similarity index 100% rename from bin/.gitkeep rename to rootfs/usr/local/share/template-files/data/.gitkeep diff --git a/config/.gitkeep b/rootfs/usr/local/share/template-files/defaults/.gitkeep similarity index 100% rename from config/.gitkeep rename to rootfs/usr/local/share/template-files/defaults/.gitkeep