#! /bin/bash set -e set +u source /usr/local/etc/library.sh [[ "$1" != "--defaults" ]] || echo "INFO: Restoring template to default settings" >&2 is_docker && echo "INFO: Docker installation detected" >&2 if [[ "$1" != "--defaults" ]]; then LETSENCRYPT_DOMAIN="$( # force defaults during initial build if ! [[ -f /.ncp-image ]]; then source "${BINDIR}/NETWORKING/letsencrypt.sh" tmpl_letsencrypt_domain fi )" fi [[ -z "$LETSENCRYPT_DOMAIN" ]] || echo "INFO: Letsencrypt domain is ${LETSENCRYPT_DOMAIN}" >&2 # skip during build if ! [[ -f /.ncp-image ]] && [[ "$1" != "--defaults" ]] && [[ -f "${BINDIR}/SYSTEM/metrics.sh" ]]; then METRICS_IS_ENABLED="$( source "${BINDIR}/SYSTEM/metrics.sh" tmpl_metrics_enabled && echo yes || echo no )" else METRICS_IS_ENABLED=no fi echo "INFO: Metrics enabled: ${METRICS_IS_ENABLED}" >&2 echo "### DO NOT EDIT! THIS FILE HAS BEEN AUTOMATICALLY GENERATED. CHANGES WILL BE OVERWRITTEN ###" echo "" cat < DocumentRoot /var/www/nextcloud EOF if [[ "$1" != "--defaults" ]] && [[ -n "$LETSENCRYPT_DOMAIN" ]]; then echo " ServerName ${LETSENCRYPT_DOMAIN}" # try the obvious path first LETSENCRYPT_CERT_BASE_PATH="/etc/letsencrypt/live/${LETSENCRYPT_DOMAIN,,}" # find the most recent cert otherwise [[ -f "${LETSENCRYPT_CERT_BASE_PATH}/fullchain.pem" ]] || { LETSENCRYPT_CERT_BASE_PATH="$(find /etc/letsencrypt/live -type d -name "${LETSENCRYPT_DOMAIN,,}*" -printf "%T@ %p\n" | sort -n | cut -f2 -d' ' | tail -1)" } # otherwise, in some installs this is the path we use [[ -f "${LETSENCRYPT_CERT_BASE_PATH}/fullchain.pem" ]] || { if [[ -d "/etc/letsencrypt/live/ncp-nextcloud" ]]; then LETSENCRYPT_CERT_BASE_PATH="/etc/letsencrypt/live/ncp-nextcloud" fi } else # Make sure the default snakeoil cert exists [ -f /etc/ssl/certs/ssl-cert-snakeoil.pem ] || make-ssl-cert generate-default-snakeoil --force-overwrite unset LETSENCRYPT_DOMAIN fi # NOTE: we fall back to self-signed snakeoil certs if we couldn't get a LE one [[ -f "${LETSENCRYPT_CERT_BASE_PATH}/fullchain.pem" ]] && [[ -f "${LETSENCRYPT_CERT_BASE_PATH}/privkey.pem" ]] && { LETSENCRYPT_CERT_PATH="${LETSENCRYPT_CERT_BASE_PATH}/fullchain.pem" LETSENCRYPT_KEY_PATH="${LETSENCRYPT_CERT_BASE_PATH}/privkey.pem" } cat < ProxyPass http://localhost:9100/metrics Order deny,allow Allow from all AuthType Basic AuthName "System Metrics" AuthUserFile /usr/local/etc/metrics.htpasswd Require host localhost Require valid-user ProxyPass http://localhost:9000/metrics Order deny,allow Allow from all AuthType Basic AuthName "NCP Metrics" AuthUserFile /usr/local/etc/metrics.htpasswd Require host localhost Require valid-user EOF fi cat < Options +FollowSymlinks AllowOverride All Dav off LimitRequestBody 0 SSLRenegBufferSize 10486000 Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains" EOF if ! [[ -f /.ncp-image ]]; then echo -e "Apache self check:" apache2ctl -t 1>&2 fi