mirror of
https://github.com/casjaysdevdocker/ddns
synced 2025-09-18 09:57:47 -04:00
🗃️ Committing everything that changed 🗃️
This commit is contained in:
332
rootfs/usr/local/bin/entrypoint.sh
Executable file
332
rootfs/usr/local/bin/entrypoint.sh
Executable file
@@ -0,0 +1,332 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck shell=bash
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
##@Version : 202210201909-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 19:09 EDT
|
||||
# @@File : entrypoint.sh
|
||||
# @@Description : entrypoint point for ddns
|
||||
# @@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-ddns.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-ddns}"
|
||||
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"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
DATE="$(date +%Y%m%d)01"
|
||||
OLD_DATE="${OLD_DATE:-2018020901}"
|
||||
NETDEV="$(ip route 2>/dev/null | grep default | sed -e "s/^.*dev.//" -e "s/.proto.*//" | awk '{print $1}')"
|
||||
IPV4_ADDR="$(ifconfig $NETDEV 2>/dev/null | grep -E "venet|inet" | grep -v "127.0.0." | grep 'inet' | grep -v inet6 | awk '{print $2}' | sed s/addr://g | head -n1 | grep '^' || echo '')"
|
||||
IPV6_ADDR="$(ifconfig "$NETDEV" 2>/dev/null | grep -E "venet|inet" | grep 'inet6' | grep -i global | awk '{print $2}' | head -n1 | grep '^' || echo '')"
|
||||
IPV4_ADDR_GATEWAY="$(ip route show default | awk '/default/ {print $3}' | head -n1 | grep '^' || echo '')"
|
||||
HOSTNAME="$(hostname -s).${DOMAIN_NAME}"
|
||||
export IPV4_ADDR="${IPV4_ADDR:-10.0.0.2}"
|
||||
export IPV4_ADDR_SUBNET="${IPV4_ADDR_SUBNET:-10.0.0.0}"
|
||||
export IPV4_ADDR_START="${IPV4_ADDR_START:-10.0.100.1}"
|
||||
export IPV4_ADDR_END="${IPV4_ADDR_END:-10.0.100.254}"
|
||||
export IPV4_ADDR_NETMASK="${IPV4_ADDR_NETMASK:-255.255.0.0}"
|
||||
export IPV4_ADDR_GATEWAY="${IPV4_ADDR_GATEWAY:-10.0.0.1}"
|
||||
export IPV6_ADDR="${IP6_ADDR:-2001:0db8:edfa:1234::2}"
|
||||
export IPV6_ADDR_SUBNET="${IPV6_ADDR_SUBNET:-2001:0db8:edfa:1234::}"
|
||||
export IPV6_ADDR_START="${IPV6_ADDR_START:-2001:0db8:edfa:1234:5678::1}"
|
||||
export IPV6_ADDR_END="${IPV6_ADDR_END:-2001:0db8:edfa:1234:5678::ffff}"
|
||||
export IPV6_ADDR_NETMASK="${IPV6_ADDR_NETMASK:-64}"
|
||||
export IPV6_ADDR_GATEWAY="${IPV6_ADDR_GATEWAY:-2001:0db8:edfa:1234::1}"
|
||||
export DOMAIN_NAME="${DOMAIN_NAME:-test}"
|
||||
[ "$DOMAIN_NAME" == "local" ] && DOMAIN_NAME="test"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# 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 DATE OLD_DATE NETDEV IPV4_ADDR IPV6_ADDR IPV4_ADDR_GATEWAY DOMAIN_NAME
|
||||
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 "/data/log" ] || mkdir -p "/data/log"
|
||||
[ -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
|
||||
if [ ! -f "/config/env" ]; then
|
||||
echo "Creating file: /config/env" &>>/data/log/entrypoint.log
|
||||
cat <<EOF >/config/env
|
||||
export RNDC_KEY="${RNDC_KEY:-}"
|
||||
export OLD_DATE="${OLD_DATE:-2018020901}"
|
||||
export NETDEV="$(ip route 2>/dev/null | grep default | sed -e "s/^.*dev.//" -e "s/.proto.*//" | awk '{print $1}')"
|
||||
export IPV4_ADDR="$(ifconfig $NETDEV 2>/dev/null | grep -E "venet|inet" | grep -v "127.0.0." | grep 'inet' | grep -v inet6 | awk '{print $2}' | sed s/addr://g | head -n1 | grep '^' || echo '')"
|
||||
export IPV6_ADDR="$(ifconfig "$NETDEV" 2>/dev/null | grep -E "venet|inet" | grep 'inet6' | grep -i global | awk '{print $2}' | head -n1 | grep '^' || echo '')"
|
||||
export IPV4_ADDR="${IPV4_ADDR:-10.0.0.2}"
|
||||
export IPV4_ADDR_SUBNET="${IPV4_ADDR_SUBNET:-10.0.0.0}"
|
||||
export IPV4_ADDR_START="${IPV4_ADDR_START:-10.0.100.1}"
|
||||
export IPV4_ADDR_END="${IPV4_ADDR_END:-10.0.100.254}"
|
||||
export IPV4_ADDR_NETMASK="${IPV4_ADDR_NETMASK:-255.255.0.0}"
|
||||
export IPV4_ADDR_GATEWAY="${IPV4_ADDR_GATEWAY:-10.0.0.1}"
|
||||
export IPV6_ADDR="${IP6_ADDR:-2001:0db8:edfa:1234::2}"
|
||||
export IPV6_ADDR_SUBNET="${IPV6_ADDR_SUBNET:-2001:0db8:edfa:1234::}"
|
||||
export IPV6_ADDR_START="${IPV6_ADDR_START:-2001:0db8:edfa:1234:5678::1}"
|
||||
export IPV6_ADDR_END="${IPV6_ADDR_END:-2001:0db8:edfa:1234:5678::ffff}"
|
||||
export IPV6_ADDR_NETMASK="${IPV6_ADDR_NETMASK:-64}"
|
||||
export IPV6_ADDR_GATEWAY="${IPV6_ADDR_GATEWAY:-2001:0db8:edfa:1234::1}"
|
||||
|
||||
EOF
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
[ -f "/root/.bashrc" ] || printf "source /etc/profile\ncd %s\n" "$HOME" >"/root/.bashrc"
|
||||
[ -f "/root/.bashrc" ] && source "/root/.bashrc"
|
||||
[ -f "/config/env" ] && source "/config/env"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# 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:-$?}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
269
rootfs/usr/local/bin/start-ddns.sh
Executable file
269
rootfs/usr/local/bin/start-ddns.sh
Executable file
@@ -0,0 +1,269 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck shell=bash
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
##@Version : 202210201909-git
|
||||
# @@Author : Jason Hempstead
|
||||
# @@Contact : jason@casjaysdev.com
|
||||
# @@License : LICENSE.md
|
||||
# @@ReadME : start-ddns.sh --help
|
||||
# @@Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments
|
||||
# @@Created : Thursday, Oct 20, 2022 19:09 EDT
|
||||
# @@File : start-ddns.sh
|
||||
# @@Description : script to start ddns
|
||||
# @@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"
|
||||
for proc in named tor tftp named dhcp radvd nginx; do
|
||||
ps aux | __pgrep "$proc" && echo "$proc" || status=$((status + 1))
|
||||
done
|
||||
#__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:-$?}
|
||||
}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
__run_dns() { named-checkconf -z /etc/named.conf && named -c /etc/named.conf || return 1; }
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# 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-ddns}"
|
||||
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="ddns"
|
||||
SERVICE_COMMAND="$SERVICE_NAME"
|
||||
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
|
||||
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# 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"
|
||||
{
|
||||
echo 'Starting dynamic DNS server...'
|
||||
date '+%Y-%m-%d %H:%M'
|
||||
echo "Setting hostname to $HOSTNAME"
|
||||
} &>/data/log/entrypoint.log
|
||||
[ -d "/data/log" ] && rm -Rf /data/log/* || mkdir -p "/data/log"
|
||||
[ -f "/etc/profile" ] && [ ! -f "/root/.profile" ] && cp -Rf "/etc/profile" "/root/.profile"
|
||||
|
||||
if [ -f "/config/rndc.key" ]; then
|
||||
RNDC_KEY="$(cat /config/rndc.key | grep secret | awk '{print $2}' | sed 's|;||g;s|"||g')"
|
||||
else
|
||||
rndc-confgen -a -c /etc/rndc.key &>>/data/log/named.log
|
||||
RNDC_KEY="$(cat /etc/rndc.key | grep secret | awk '{print $2}' | sed 's|;||g;s|"||g')"
|
||||
[ -f "/config/rndc.key" ] || cp -Rf "/etc/rndc.key" "/config/rndc.key" &>>/data/log/entrypoint.log
|
||||
[ -f "/config/rndc.conf" ] || { [ -f "/etc/rndc.conf" ] && cp -Rf "/etc/rndc.conf" "/config/rndc.conf" &>>/data/log/entrypoint.log; }
|
||||
fi
|
||||
[ -d "/run/tor" ] || mkdir -p "/run/tor" &>>/data/log/entrypoint.log
|
||||
[ -d "/etc/dhcp" ] || mkdir -p "/etc/dhcp" &>>/data/log/entrypoint.log
|
||||
[ -d "/run/dhcp" ] || mkdir -p "/run/dhcp" &>>/data/log/entrypoint.log
|
||||
[ -d "/var/tftpboot" ] && [ ! -d "/data/tftp" ] && mv -f "/var/tftpboot" "/data/tftp" &>>/data/log/entrypoint.log
|
||||
[ -d "/var/lib/dhcp" ] || mkdir -p "/var/lib/dhcp" &>>/data/log/entrypoint.log
|
||||
[ -d "/data/tor" ] || cp -Rf "/var/lib/tor" "/data/tor" &>>/data/log/entrypoint.log
|
||||
[ -d "/data/htdocs/www" ] || cp -Rf "/var/lib/ddns/data/htdocs/www" "/data/htdocs/www" &>>/data/log/entrypoint.log
|
||||
[ -d "/data/named" ] || cp -Rf "/var/lib/ddns/data/named" "/data/named" &>>/data/log/entrypoint.log
|
||||
[ -d "/config/tor" ] || cp -Rf "/var/lib/ddns/config/tor" "/config/tor" &>>/data/log/entrypoint.log
|
||||
[ -d "/config/dhcp" ] || cp -Rf "/var/lib/ddns/config/dhcp" "/config/dhcp" &>>/data/log/entrypoint.log
|
||||
[ -d "/config/named" ] || cp -Rf "/var/lib/ddns/config/named" "/config/named" &>>/data/log/entrypoint.log
|
||||
[ -f "/config/radvd.conf" ] || cp -Rf "/var/lib/ddns/config/radvd.conf" "/config/radvd.conf" &>>/data/log/entrypoint.log
|
||||
[ -f "/config/named.conf" ] || cp -Rf "/var/lib/ddns/config/named.conf" "/config/named.conf" &>>/data/log/entrypoint.log
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
find "/config" "/data" -type f -exec sed -i 's|'${OLD_DATE:-2018020901}'|'$DATE'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_DOMAIN|'$DOMAIN_NAME'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_WITH_RNDC_KEY|'$RNDC_KEY'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_ADDRESS|'$IPV4_ADDR'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_ADDR_START|'$IPV4_ADDR_START'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_ADDR_END|'$IPV4_ADDR_END'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_SUBNET|'$IPV4_ADDR_SUBNET'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_NETMASK|'$IPV4_ADDR_NETMASK'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_GATEWAY|'$IPV4_ADDR_GATEWAY'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_ADDRESS|'$IPV6_ADDR'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_ADDR_START|'$IPV6_ADDR_START'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_ADDR_END|'$IPV6_ADDR_END'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_SUBNET|'$IPV6_ADDR_SUBNET'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_NETMASK|'$IPV6_ADDR_NETMASK'|g' {} \;
|
||||
find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_GATEWAY|'$IPV6_ADDR_GATEWAY'|g' {} \;
|
||||
|
||||
if [ -f "/config/named.conf" ]; then
|
||||
echo "Initializing named" &>>/data/log/entrypoint.log
|
||||
rm -R /data/log/dns/* &>>/data/log/entrypoint.log
|
||||
cp -Rf "/config/named.conf" "/etc/named.conf"
|
||||
[ -d "/data/log/dns" ] || mkdir -p "/data/log/dns"
|
||||
[ -d "/data/named" ] && cp -Rf "/data/named" "/var/named"
|
||||
[ -d "/config/named" ] && cp -Rf "/config/named" "/etc/named"
|
||||
[ -f "/config/rndc.key" ] && cp -Rf "/config/rndc.key" "/etc/rndc.key"
|
||||
[ -f "/config/rndc.conf" ] && cp -Rf "/config/rndc.conf" "/etc/rndc.conf"
|
||||
chmod -f 777 "/data/log/dns"
|
||||
__run_dns &>>/data/log/named.log &
|
||||
sleep .5
|
||||
fi
|
||||
|
||||
if [ -n "$IP6_ADDR" ]; then
|
||||
if [ -f "/config/dhcp/dhcpd6.conf" ]; then
|
||||
echo "Initializing dhcpd6" &>>/data/log/entrypoint.log
|
||||
cp -Rf "/config/dhcp/dhcpd6.conf" "/etc/dhcp/dhcpd6.conf"
|
||||
touch /var/lib/dhcp/dhcpd6.leases
|
||||
dhcpd -6 -cf /etc/dhcp/dhcpd6.conf &>>/data/log/dhcpd6.log &
|
||||
sleep .5
|
||||
fi
|
||||
if [ -f "/config/radvd.conf" ]; then
|
||||
echo "Initializing radvd" &>>/data/log/entrypoint.log
|
||||
cp -Rf "/config/radvd.conf" "/etc/radvd.conf"
|
||||
radvd -C /etc/radvd.conf &>>/data/log/radvd.log &
|
||||
sleep .5
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f "/config/dhcp/dhcpd4.conf" ]; then
|
||||
echo "Initializing dhcpd4" &>>/data/log/entrypoint.log
|
||||
cp -Rf "/config/dhcp/dhcpd4.conf" "/etc/dhcp/dhcpd4.conf"
|
||||
touch /var/lib/dhcp/dhcpd.leases
|
||||
dhcpd -4 -cf /etc/dhcp/dhcpd4.conf &>>/data/log/dhcpd4.log &
|
||||
sleep .5
|
||||
fi
|
||||
|
||||
if [ -d "/config/tor" ]; then
|
||||
echo "Initializing tor" &>>/data/log/entrypoint.log
|
||||
[ -d "/config/tor" ] && cp -Rf "/config/tor" "/etc/tor"
|
||||
chown -Rf root:root "/var/lib/tor"
|
||||
chmod 700 "/run/tor"
|
||||
tor -f "/etc/tor/torrc" &>>/data/log/tor.log &
|
||||
fi
|
||||
if [ -d "/data/tftp" ]; then
|
||||
echo "Initializing tftp" &>>/data/log/entrypoint.log
|
||||
rm -Rf "/var/tftpboot"
|
||||
ln -sf "/data/tftp" "/var/tftpboot"
|
||||
in.tftpd -vv -L /var/tftpboot &>/data/log/tftpd.log &
|
||||
fi
|
||||
if [ -f "/data/htdocs/www/index.php" ]; then
|
||||
echo "Initializing web on $IP_ADDR" &>>/data/log/entrypoint.log
|
||||
nginx -c "/etc/nginx/nginx.conf" &>>/data/log/php.log &
|
||||
sleep .5
|
||||
fi
|
||||
sleep 5
|
||||
date +'%Y-%m-%d %H:%M' >/data/log/entrypoint.log
|
||||
echo "Initializing completed" &>>/data/log/entrypoint.log
|
||||
tail -n 1000 -f /data/log/*.log
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Set exit code
|
||||
exitCode="${exitCode:-$?}"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# End application
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# lets exit with code
|
||||
exit ${exitCode:-$?}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# end
|
102
rootfs/usr/local/share/template-files/config/dhcp/dhcpd4.conf
Executable file
102
rootfs/usr/local/share/template-files/config/dhcp/dhcpd4.conf
Executable file
@@ -0,0 +1,102 @@
|
||||
######
|
||||
#Domain REPLACE_DOMAIN is dynamic DNS
|
||||
#
|
||||
#DHCP REPLACE_IPV4_ADDRESS
|
||||
|
||||
|
||||
key rndc-key {
|
||||
algorithm hmac-md5;
|
||||
secret REPLACE_WITH_RNDC_KEY;
|
||||
}
|
||||
|
||||
zone REPLACE_DOMAIN {
|
||||
primary 127.0.0.1;
|
||||
key rndc-key;
|
||||
}
|
||||
|
||||
zone in-addr.arpa. {
|
||||
primary 127.0.0.1;
|
||||
key rndc-key;
|
||||
}
|
||||
|
||||
#option T150 code 150 = string;
|
||||
#option wpad-url code 252 = text;
|
||||
#option wpad-url "http://REPLACE_DOMAIN/wpad.dat ";
|
||||
|
||||
authoritative;
|
||||
ddns-ttl 3600;
|
||||
ddns-updates on;
|
||||
ddns-update-style interim;
|
||||
update-static-leases on;
|
||||
update-conflict-detection off;
|
||||
update-optimization on;
|
||||
use-host-decl-names on;
|
||||
ddns-domainname "REPLACE_DOMAIN";
|
||||
ddns-rev-domainname "in-addr.arpa.";
|
||||
allow client-updates;
|
||||
allow unknown-clients;
|
||||
allow booting ;
|
||||
allow bootp ;
|
||||
next-server REPLACE_IPV4_ADDRESS;
|
||||
filename "linux.0";
|
||||
max-lease-time 3600;
|
||||
default-lease-time 3600;
|
||||
dynamic-bootp-lease-length 3600;
|
||||
|
||||
subnet REPLACE_IPV4_SUBNET netmask REPLACE_IPV4_NETMASK {
|
||||
dynamic-bootp-lease-length 3600;
|
||||
option slp-directory-agent true REPLACE_IPV4_ADDRESS;
|
||||
option log-servers REPLACE_IPV4_ADDRESS;
|
||||
option time-servers REPLACE_IPV4_ADDRESS;
|
||||
allow client-updates;
|
||||
ddns-updates on;
|
||||
update-conflict-detection off;
|
||||
update-static-leases true;
|
||||
option routers REPLACE_IPV4_GATEWAY;
|
||||
option subnet-mask REPLACE_IPV4_NETMASK;
|
||||
option nis-domain "REPLACE_DOMAIN";
|
||||
option domain-name "REPLACE_DOMAIN";
|
||||
option domain-search "REPLACE_DOMAIN";
|
||||
option domain-name-servers REPLACE_IPV4_ADDRESS;
|
||||
option time-offset -18000;
|
||||
option ntp-servers REPLACE_IPV4_ADDRESS;
|
||||
option netbios-name-servers REPLACE_IPV4_ADDRESS;
|
||||
option netbios-node-type 8;
|
||||
range dynamic-bootp REPLACE_IPV4_ADDR_START REPLACE_IPV4_ADDR_END;
|
||||
default-lease-time 3600;
|
||||
max-lease-time 3600;
|
||||
authoritative;
|
||||
allow unknown-clients;
|
||||
allow booting;
|
||||
allow bootp;
|
||||
update-static-leases on;
|
||||
next-server REPLACE_IPV4_ADDRESS;
|
||||
filename "pxelinux.0";
|
||||
}
|
||||
|
||||
option architecture-type code 93 = unsigned integer 16;
|
||||
|
||||
class "pxeclients" {
|
||||
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
|
||||
|
||||
if option architecture-type = 0 {
|
||||
filename "pxelinux.0";
|
||||
} elsif option architecture-type = 9 {
|
||||
filename "syslinux64.efi";
|
||||
} elsif option architecture-type = 7 {
|
||||
filename "syslinux64.efi";
|
||||
} elsif option architecture-type = 6 {
|
||||
filename "syslinux32.efi";
|
||||
}
|
||||
}
|
||||
|
||||
## Begin Fixed Addresses ##
|
||||
#Servers REPLACE_IPV4_ADDRESS
|
||||
#################################################
|
||||
|
||||
# host ddns {
|
||||
# hardware ethernet 52:54:00:8f:c5:cb;
|
||||
# fixed-address REPLACE_IPV4_ADDRESS;
|
||||
# ddns-hostname monitor;
|
||||
# ddns-domainname "REPLACE_DOMAIN";
|
||||
# }
|
99
rootfs/usr/local/share/template-files/config/dhcp/dhcpd6.conf
Executable file
99
rootfs/usr/local/share/template-files/config/dhcp/dhcpd6.conf
Executable file
@@ -0,0 +1,99 @@
|
||||
#Domain REPLACE_DOMAIN is dynamic DNS
|
||||
#
|
||||
#Servers REPLACE_IPV6_ADDR
|
||||
|
||||
key rndc-key {
|
||||
algorithm hmac-md5;
|
||||
secret REPLACE_WITH_RNDC_KEY;
|
||||
}
|
||||
|
||||
zone REPLACE_DOMAIN {
|
||||
primary 127.0.0.1;
|
||||
key rndc-key;
|
||||
}
|
||||
|
||||
zone ip6.arpa {
|
||||
primary 127.0.0.1;
|
||||
key rndc-key;
|
||||
}
|
||||
|
||||
#option T150 code 150 = string;
|
||||
#option wpad-url code 252 = text;
|
||||
#option wpad-url "http://REPLACE_DOMAIN/wpad.dat";
|
||||
|
||||
authoritative;
|
||||
ddns-ttl 3600;
|
||||
ddns-updates on;
|
||||
ddns-update-style interim;
|
||||
update-static-leases on;
|
||||
update-conflict-detection off;
|
||||
update-optimization on;
|
||||
use-host-decl-names on;
|
||||
ddns-domainname "REPLACE_DOMAIN";
|
||||
ddns-rev-domainname "ip6.arpa.";
|
||||
allow client-updates;
|
||||
allow unknown-clients;
|
||||
allow booting ;
|
||||
allow bootp ;
|
||||
option dhcp6.bootfile-url "tftp://[REPLACE_IPV6_ADDRESS]/linux.0";
|
||||
option dhcp6.bootfile-url code 59 = string ;
|
||||
max-lease-time 43200;
|
||||
default-lease-time 43200;
|
||||
dynamic-bootp-lease-length 43200;
|
||||
|
||||
subnet6 REPLACE_IPV6_SUBNET/REPLACE_IPV6_SUBNET {
|
||||
dynamic-bootp-lease-length 3600;
|
||||
allow client-updates;
|
||||
ddns-ttl 43200;
|
||||
ddns-updates on;
|
||||
ddns-update-style standard;
|
||||
update-static-leases on;
|
||||
update-static-leases true;
|
||||
update-conflict-detection off;
|
||||
update-optimization false;
|
||||
use-host-decl-names on;
|
||||
ddns-domainname "REPLACE_DOMAIN";
|
||||
ddns-rev-domainname "ip6.arpa";
|
||||
option subnet-mask IPV4_ADDR_NETMASK;
|
||||
option nis-domain "REPLACE_DOMAIN";
|
||||
option domain-name "REPLACE_DOMAIN";
|
||||
option dhcp6.name-servers REPLACE_IPV6_ADDRESS;
|
||||
option time-offset -18000;
|
||||
option netbios-node-type 8;
|
||||
option dhcp6.domain-search "REPLACE_DOMAIN";
|
||||
range6 REPLACE_IPV6_ADDR_START REPLACE_IPV6_ADDR_END;
|
||||
default-lease-time 43200;
|
||||
max-lease-time 43200;
|
||||
authoritative;
|
||||
allow unknown-clients;
|
||||
allow booting;
|
||||
allow bootp;
|
||||
option dhcp6.bootfile-url "tftp://[REPLACE_IPV6_ADDRESS]/linux.0";
|
||||
}
|
||||
|
||||
option architecture-type code 93 = unsigned integer 16;
|
||||
|
||||
class "pxeclients" {
|
||||
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
|
||||
|
||||
if option architecture-type = 0 {
|
||||
filename "pxelinux.0";
|
||||
} elsif option architecture-type = 9 {
|
||||
filename "syslinux64.efi";
|
||||
} elsif option architecture-type = 7 {
|
||||
filename "syslinux64.efi";
|
||||
} elsif option architecture-type = 6 {
|
||||
filename "syslinux32.efi";
|
||||
}
|
||||
}
|
||||
|
||||
## Begin Fixed Addresses ##
|
||||
#Servers REPLACE_IPV6_ADDRESS
|
||||
#################################################
|
||||
|
||||
# host ddns {
|
||||
# hardware ethernet 00:50:56:a1:87:a8;
|
||||
# fixed-address6 REPLACE_IPV6_ADDRESS;
|
||||
# ddns-hostname ddns;
|
||||
# ddns-domainname "REPLACE_DOMAIN";
|
||||
# }
|
38
rootfs/usr/local/share/template-files/config/named.conf
Normal file
38
rootfs/usr/local/share/template-files/config/named.conf
Normal file
@@ -0,0 +1,38 @@
|
||||
#
|
||||
options {
|
||||
version "";
|
||||
directory "/var/named";
|
||||
pid-file "/var/run/named/named.pid";
|
||||
dump-file "/var/named/data/dump.db";
|
||||
memstatistics-file "/var/log/named/mem.stats";
|
||||
statistics-file "/var/log/named/named.stats";
|
||||
zone-statistics yes;
|
||||
max-cache-size 15m;
|
||||
interface-interval 60;
|
||||
lame-ttl 0;
|
||||
max-ncache-ttl 10800;
|
||||
recursion yes;
|
||||
allow-transfer { any; };
|
||||
allow-recursion { any; };
|
||||
allow-query { any; };
|
||||
transfer-format many-answers;
|
||||
listen-on { any; };
|
||||
listen-on-v6 { any; };
|
||||
notify yes;
|
||||
also-notify { };
|
||||
dnssec-validation auto;
|
||||
managed-keys-directory "/etc/named/keys/";
|
||||
|
||||
forwarders { 1.1.1.1; 8.8.8.8; 8.8.4.4; 9.9.9.9; };
|
||||
};
|
||||
|
||||
include "/etc/named/config/0000-logging.conf";
|
||||
include "/etc/named/config/0001-rndc.key";
|
||||
include "/etc/named/config/0001-rndc.conf";
|
||||
include "/etc/named/config/0002-acl.conf";
|
||||
|
||||
include "/etc/named/zones/000-hint.conf";
|
||||
include "/etc/named/zones/000-localhost.zone";
|
||||
include "/etc/named/zones/000-localdomain.zone";
|
||||
include "/etc/named/zones/001-ddns.zone";
|
||||
include "/etc/named/zones/000-tor.zone";
|
@@ -0,0 +1,8 @@
|
||||
#Certbot DNS
|
||||
dns_rfc2136_server = 127.0.0.1
|
||||
# TSIG key name
|
||||
dns_rfc2136_name = certbot.
|
||||
# TSIG key secret
|
||||
dns_rfc2136_secret = REPLACE_WITH_RNDC_KEY
|
||||
# TSIG key algorithm
|
||||
dns_rfc2136_algorithm = HMAC-MD5
|
@@ -0,0 +1,9 @@
|
||||
;default soa records
|
||||
$TTL 38400 ; 10 hours 40 minutes
|
||||
@ IN SOA dns dns-admin (
|
||||
2021040901 ; serial
|
||||
10800 ; refresh (3 hours)
|
||||
3600 ; retry (1 hour)
|
||||
1209600 ; expire (2 weeks)
|
||||
38400 ; minimum (10 hours 40 minutes)
|
||||
)
|
@@ -0,0 +1,2 @@
|
||||
;default nameservers
|
||||
@ IN NS dns
|
@@ -0,0 +1,8 @@
|
||||
;local dns
|
||||
dns IN A REPLACE_IPV4_ADDRESS
|
||||
dns IN AAAA REPLACE_IPV6_ADDRESS
|
||||
|
||||
default._domainkey IN TXT ( "v=DKIM1; k=rsa; "
|
||||
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWQ16IV4OzWniRotqTNUvuwO5KknZMm5F5cOQl+Ch20Zm5D3RSL27AcjGE8DXIlkADDG3jFoXKOPilmCyf6ikqDX9PwBpeveY6ugaASMl6DHK4PSGZby6EmFuNu59kIpPJXac7Wwvy7Kd5mWVTZBxQt3ersDf8KRzL+Akr0IE7DwIDAQAB" ) ;
|
||||
*.default._domainkey IN TXT ( "v=DKIM1; k=rsa; "
|
||||
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWQ16IV4OzWniRotqTNUvuwO5KknZMm5F5cOQl+Ch20Zm5D3RSL27AcjGE8DXIlkADDG3jFoXKOPilmCyf6ikqDX9PwBpeveY6ugaASMl6DHK4PSGZby6EmFuNu59kIpPJXac7Wwvy7Kd5mWVTZBxQt3ersDf8KRzL+Akr0IE7DwIDAQAB" ) ;
|
@@ -0,0 +1,104 @@
|
||||
logging {
|
||||
# channel default {
|
||||
# file "/data/log/dns/default.log";
|
||||
# severity debug;
|
||||
# print-category yes;
|
||||
# print-severity yes;
|
||||
# print-time yes;
|
||||
# };
|
||||
# category lame-servers {
|
||||
# default;
|
||||
# };
|
||||
# category dispatch {
|
||||
# default;
|
||||
# };
|
||||
# category network {
|
||||
# default;
|
||||
# };
|
||||
# category unmatched {
|
||||
# default;
|
||||
# };
|
||||
# category client {
|
||||
# default;
|
||||
# };
|
||||
# category resolver {
|
||||
# default;
|
||||
# };
|
||||
# category config {
|
||||
# default;
|
||||
# };
|
||||
# category database {
|
||||
# default;
|
||||
# };
|
||||
# category general {
|
||||
# default;
|
||||
# };
|
||||
# category default {
|
||||
# default;
|
||||
# };
|
||||
|
||||
channel security {
|
||||
file "/data/log/dns/default.log";
|
||||
severity dynamic;
|
||||
print-severity yes;
|
||||
print-time yes;
|
||||
};
|
||||
category security {
|
||||
security;
|
||||
};
|
||||
category dnssec {
|
||||
security;
|
||||
};
|
||||
|
||||
channel xfer-in {
|
||||
file "/data/log/dns/default.log";
|
||||
severity info;
|
||||
print-category yes;
|
||||
print-severity yes;
|
||||
print-time yes;
|
||||
};
|
||||
category xfer-in {
|
||||
xfer-in;
|
||||
};
|
||||
channel xfer-out {
|
||||
file "/data/log/dns/default.log";
|
||||
severity info;
|
||||
print-category yes;
|
||||
print-severity yes;
|
||||
print-time yes;
|
||||
};
|
||||
category xfer-out {
|
||||
xfer-out;
|
||||
};
|
||||
|
||||
channel update {
|
||||
file "/data/log/dns/default.log";
|
||||
severity info;
|
||||
print-category yes;
|
||||
print-severity yes;
|
||||
print-time yes;
|
||||
};
|
||||
category update {
|
||||
update;
|
||||
};
|
||||
|
||||
channel notify {
|
||||
file "/data/log/dns/default.log";
|
||||
severity info;
|
||||
print-category yes;
|
||||
print-severity yes;
|
||||
print-time yes;
|
||||
};
|
||||
category notify {
|
||||
notify;
|
||||
};
|
||||
|
||||
channel querylog {
|
||||
file "/data/log/dns/default.log";
|
||||
severity info;
|
||||
print-time yes;
|
||||
};
|
||||
category queries {
|
||||
querylog;
|
||||
};
|
||||
};
|
@@ -0,0 +1,3 @@
|
||||
controls {
|
||||
inet 127.0.0.1 allow { trusted; } keys { "rndc-key"; };
|
||||
};
|
@@ -0,0 +1,4 @@
|
||||
key "rndc-key" {
|
||||
algorithm hmac-md5;
|
||||
secret "REPLACE_WITH_RNDC_KEY";
|
||||
};
|
@@ -0,0 +1,10 @@
|
||||
acl "trusted" {
|
||||
127.0.0.0/8;
|
||||
10.0.0.0/8;
|
||||
172.0.0.0/12;
|
||||
192.168.0.0/16;
|
||||
::1/128;
|
||||
2001:db8:edfa:1234::/64;
|
||||
localhost;
|
||||
localnets;
|
||||
};
|
@@ -0,0 +1,5 @@
|
||||
;host info
|
||||
@ HINFO "HP DL360" "CentOS"
|
||||
* HINFO "HP DL360" "CentOS"
|
||||
@ IN TXT "Hosted on REPLACE_DOMAIN"
|
||||
* IN TXT "Hosted on REPLACE_DOMAIN"
|
@@ -0,0 +1,5 @@
|
||||
;default server
|
||||
@ IN A REPLACE_IPV4_ADDRESS
|
||||
* IN A REPLACE_IPV4_ADDRESS
|
||||
@ IN AAAA REPLACE_IPV6_ADDRESS
|
||||
* IN AAAA REPLACE_IPV6_ADDRESS
|
@@ -0,0 +1,33 @@
|
||||
$ORIGIN .
|
||||
$TTL 0 ; 0 seconds
|
||||
@ IN SOA . . (
|
||||
1930 ; serial
|
||||
0 ; refresh (0 seconds)
|
||||
0 ; retry (0 seconds)
|
||||
0 ; expire (0 seconds)
|
||||
0 ; minimum (0 seconds)
|
||||
)
|
||||
KEYDATA 20201227202202 20180303084353 19700101000000 257 3 8 (
|
||||
AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQ
|
||||
bSEW0O8gcCjFFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh
|
||||
/RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37NZWA
|
||||
JQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXp
|
||||
oY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3
|
||||
LQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGO
|
||||
Yl7OyQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGc
|
||||
LmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0=
|
||||
) ; KSK; alg = RSASHA256; key id = 19036
|
||||
; next refresh: Sun, 27 Dec 2020 20:22:02 GMT
|
||||
; trusted since: Sat, 03 Mar 2018 08:43:53 GMT
|
||||
KEYDATA 20201227202202 20180303084353 19700101000000 257 3 8 (
|
||||
AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTO
|
||||
iW1vkIbzxeF3+/4RgWOq7HrxRixHlFlExOLAJr5emLvN
|
||||
7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQuCaSnIDdD5
|
||||
LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8
|
||||
efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7
|
||||
pr+eoZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLY
|
||||
A4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXGXws
|
||||
9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU=
|
||||
) ; KSK; alg = RSASHA256; key id = 20326
|
||||
; next refresh: Sun, 27 Dec 2020 20:22:02 GMT
|
||||
; trusted since: Sat, 03 Mar 2018 08:43:53 GMT
|
@@ -0,0 +1,4 @@
|
||||
zone "." in {
|
||||
type hint;
|
||||
file "data/hint";
|
||||
};
|
@@ -0,0 +1,6 @@
|
||||
zone "local" {
|
||||
type master;
|
||||
file "data/localdomain.conf";
|
||||
allow-update { trusted; };
|
||||
allow-transfer { trusted; };
|
||||
};
|
@@ -0,0 +1,14 @@
|
||||
zone "localhost" {
|
||||
type master;
|
||||
file "data/localhost.zone";
|
||||
};
|
||||
|
||||
zone "0.0.127.in-addr.arpa" {
|
||||
type master;
|
||||
file "data/localhost4.rev";
|
||||
};
|
||||
|
||||
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
|
||||
type master;
|
||||
file "data/localhost6.rev";
|
||||
};
|
@@ -0,0 +1,10 @@
|
||||
zone "onion" {
|
||||
type forward;
|
||||
forward only;
|
||||
forwarders { 127.0.0.1 port 8053; };
|
||||
};
|
||||
zone "exit" {
|
||||
type forward;
|
||||
forward only;
|
||||
forwarders { 127.0.0.1 port 8053; };
|
||||
};
|
@@ -0,0 +1,21 @@
|
||||
zone "REPLACE_DOMAIN" {
|
||||
type master;
|
||||
file "dynamic/ddns.zone";
|
||||
allow-update { trusted; };
|
||||
allow-transfer { trusted; };
|
||||
};
|
||||
|
||||
zone "in-addr.arpa" {
|
||||
type master;
|
||||
file "reverse/in-addr.arpa.rev";
|
||||
allow-update { trusted; };
|
||||
allow-transfer { trusted; };
|
||||
|
||||
};
|
||||
|
||||
zone "ip6.arpa" {
|
||||
type master;
|
||||
file "reverse/ip6.arpa.rev";
|
||||
allow-update { trusted; };
|
||||
allow-transfer { trusted; };
|
||||
};
|
@@ -0,0 +1,99 @@
|
||||
|
||||
types {
|
||||
text/html html htm shtml;
|
||||
text/css css;
|
||||
text/xml xml;
|
||||
image/gif gif;
|
||||
image/jpeg jpeg jpg;
|
||||
application/javascript js;
|
||||
application/atom+xml atom;
|
||||
application/rss+xml rss;
|
||||
|
||||
text/mathml mml;
|
||||
text/plain txt;
|
||||
text/vnd.sun.j2me.app-descriptor jad;
|
||||
text/vnd.wap.wml wml;
|
||||
text/x-component htc;
|
||||
|
||||
image/avif avif;
|
||||
image/png png;
|
||||
image/svg+xml svg svgz;
|
||||
image/tiff tif tiff;
|
||||
image/vnd.wap.wbmp wbmp;
|
||||
image/webp webp;
|
||||
image/x-icon ico;
|
||||
image/x-jng jng;
|
||||
image/x-ms-bmp bmp;
|
||||
|
||||
font/woff woff;
|
||||
font/woff2 woff2;
|
||||
|
||||
application/java-archive jar war ear;
|
||||
application/json json;
|
||||
application/mac-binhex40 hqx;
|
||||
application/msword doc;
|
||||
application/pdf pdf;
|
||||
application/postscript ps eps ai;
|
||||
application/rtf rtf;
|
||||
application/vnd.apple.mpegurl m3u8;
|
||||
application/vnd.google-earth.kml+xml kml;
|
||||
application/vnd.google-earth.kmz kmz;
|
||||
application/vnd.ms-excel xls;
|
||||
application/vnd.ms-fontobject eot;
|
||||
application/vnd.ms-powerpoint ppt;
|
||||
application/vnd.oasis.opendocument.graphics odg;
|
||||
application/vnd.oasis.opendocument.presentation odp;
|
||||
application/vnd.oasis.opendocument.spreadsheet ods;
|
||||
application/vnd.oasis.opendocument.text odt;
|
||||
application/vnd.openxmlformats-officedocument.presentationml.presentation
|
||||
pptx;
|
||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
||||
xlsx;
|
||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document
|
||||
docx;
|
||||
application/vnd.wap.wmlc wmlc;
|
||||
application/wasm wasm;
|
||||
application/x-7z-compressed 7z;
|
||||
application/x-cocoa cco;
|
||||
application/x-java-archive-diff jardiff;
|
||||
application/x-java-jnlp-file jnlp;
|
||||
application/x-makeself run;
|
||||
application/x-perl pl pm;
|
||||
application/x-pilot prc pdb;
|
||||
application/x-rar-compressed rar;
|
||||
application/x-redhat-package-manager rpm;
|
||||
application/x-sea sea;
|
||||
application/x-shockwave-flash swf;
|
||||
application/x-stuffit sit;
|
||||
application/x-tcl tcl tk;
|
||||
application/x-x509-ca-cert der pem crt;
|
||||
application/x-xpinstall xpi;
|
||||
application/xhtml+xml xhtml;
|
||||
application/xspf+xml xspf;
|
||||
application/zip zip;
|
||||
|
||||
application/octet-stream bin exe dll;
|
||||
application/octet-stream deb;
|
||||
application/octet-stream dmg;
|
||||
application/octet-stream iso img;
|
||||
application/octet-stream msi msp msm;
|
||||
|
||||
audio/midi mid midi kar;
|
||||
audio/mpeg mp3;
|
||||
audio/ogg ogg;
|
||||
audio/x-m4a m4a;
|
||||
audio/x-realaudio ra;
|
||||
|
||||
video/3gpp 3gpp 3gp;
|
||||
video/mp2t ts;
|
||||
video/mp4 mp4;
|
||||
video/mpeg mpeg mpg;
|
||||
video/quicktime mov;
|
||||
video/webm webm;
|
||||
video/x-flv flv;
|
||||
video/x-m4v m4v;
|
||||
video/x-mng mng;
|
||||
video/x-ms-asf asx asf;
|
||||
video/x-ms-wmv wmv;
|
||||
video/x-msvideo avi;
|
||||
}
|
@@ -0,0 +1,65 @@
|
||||
# Default nginx configuration
|
||||
user root;
|
||||
worker_processes 1;
|
||||
|
||||
error_log /dev/stderr warn;
|
||||
pid /tmp/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
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; }
|
||||
|
||||
server {
|
||||
listen SERVER_PORT;
|
||||
root /data/htdocs/www;
|
||||
index index.html index.php index.cgi index.pl index.aspx awstats.pl index.unknown.php index.default.php index.txt index.json;
|
||||
proxy_intercept_errors off;
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-XSS-Protection "1; mode=block" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header Referrer-Policy "no-referrer-when-downgrade" always;
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' *; frame-src 'self' *; object-src 'self'" always;
|
||||
|
||||
location = /favicon.ico {
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location = /robots.txt {
|
||||
allow all;
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location /nginx_status {
|
||||
stub_status;
|
||||
}
|
||||
|
||||
location /health {
|
||||
default_type text/html;
|
||||
allow all;
|
||||
access_log off;
|
||||
return 200 'OK';
|
||||
}
|
||||
|
||||
location /health.json {
|
||||
default_type application/json;
|
||||
allow all;
|
||||
access_log off;
|
||||
return 200 '{"status":"OK"}';
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,73 @@
|
||||
# Default nginx configuration
|
||||
user root;
|
||||
worker_processes 1;
|
||||
|
||||
error_log /dev/stderr warn;
|
||||
pid /tmp/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
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; }
|
||||
|
||||
server
|
||||
listen SERVER_PORT ssl http2 default_server;
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log info;
|
||||
keepalive_timeout 75 75;
|
||||
root /data/htdocs/www;
|
||||
index index.html index.php index.cgi index.pl index.aspx awstats.pl index.unknown.php index.default.php index.txt index.json;
|
||||
proxy_intercept_errors off;
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-XSS-Protection "1; mode=block" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header Referrer-Policy "no-referrer-when-downgrade" always;
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' *; frame-src 'self' *; object-src 'self'" always;
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
|
||||
ssl_prefer_server_ciphers off;
|
||||
ssl_certificate /config/ssl/localhost.crt;
|
||||
ssl_certificate_key /config/ssl/localhost.key;
|
||||
|
||||
location = /favicon.ico {
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location = /robots.txt {
|
||||
allow all;
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location /nginx_status {
|
||||
stub_status;
|
||||
}
|
||||
|
||||
location /health {
|
||||
default_type text/html;
|
||||
allow all;
|
||||
access_log off;
|
||||
return 200 'OK';
|
||||
}
|
||||
|
||||
location /health.json {
|
||||
default_type application/json;
|
||||
allow all;
|
||||
access_log off;
|
||||
return 200 '{"status":"OK"}';
|
||||
}
|
||||
}
|
||||
}
|
10
rootfs/usr/local/share/template-files/config/radvd.conf
Normal file
10
rootfs/usr/local/share/template-files/config/radvd.conf
Normal file
@@ -0,0 +1,10 @@
|
||||
# RADVD with DHCPd6 configuration
|
||||
# /etc/radvd.conf
|
||||
interface eth0 {
|
||||
AdvManagedFlag on;
|
||||
AdvSendAdvert on;
|
||||
# AdvAutonomous off;
|
||||
AdvOtherConfigFlag on;
|
||||
MinRtrAdvInterval 3;
|
||||
MaxRtrAdvInterval 60;
|
||||
};
|
49
rootfs/usr/local/share/template-files/config/tor/torrc
Normal file
49
rootfs/usr/local/share/template-files/config/tor/torrc
Normal file
@@ -0,0 +1,49 @@
|
||||
## https://github.com/torproject/tor/blob/main/src/config/torrc.sample.in
|
||||
############### Configuration file for a typical Tor user
|
||||
ControlSocket /run/tor/control
|
||||
ControlSocketsGroupWritable 1
|
||||
CookieAuthentication 1
|
||||
CookieAuthFile /run/tor/control.authcookie
|
||||
CookieAuthFileGroupReadable 1
|
||||
SOCKSPort 9050
|
||||
SOCKSPolicy accept *
|
||||
RunAsDaemon 0
|
||||
DataDirectory /var/lib/tor
|
||||
ControlPort 9051
|
||||
Log error stderr
|
||||
#HashedControlPassword 16:kfhkajdsfhkjadhfiuhfhdjcahsf
|
||||
|
||||
############### dnsforwarder
|
||||
DNSPort 8053
|
||||
AutomapHostsOnResolve 1
|
||||
AutomapHostsSuffixes .exit,.onion
|
||||
|
||||
############### This section is just for location-hidden services ###
|
||||
#HiddenServiceDir /data/tor/hidden/default
|
||||
#HiddenServicePort 22 127.0.0.2:22
|
||||
|
||||
################ This section is just for relays #####################
|
||||
#ORPort 9001
|
||||
#ORPort 443 NoListen
|
||||
#ORPort 127.0.0.1:9090 NoAdvertise
|
||||
#Address noname.example.com
|
||||
# OutboundBindAddress 10.0.0.5
|
||||
#Nickname ididnteditheconfig
|
||||
#RelayBandwidthRate 100 KBytes # Throttle traffic to 100KB/s (800Kbps)
|
||||
#RelayBandwidthBurst 200 KBytes # But allow bursts up to 200KB (1600Kb)
|
||||
#AccountingMax 40 GBytes
|
||||
#AccountingStart day 00:00
|
||||
#AccountingStart month 3 15:00
|
||||
#ContactInfo Random Person <nobody AT example dot com>
|
||||
#DirPort 9030 # what port to advertise for directory connections
|
||||
#DirPort 80 NoListen
|
||||
#DirPort 127.0.0.1:9091 NoAdvertise
|
||||
#DirPortFrontPage /etc/tor/tor-exit-notice.html
|
||||
#MyFamily $keyid,$keyid,...
|
||||
#ExitPolicy accept *:6660-6667,reject *:* # allow irc ports on IPv4 and IPv6 but no more
|
||||
#ExitPolicy accept *:119 # accept nntp ports on IPv4 and IPv6 as well as default exit policy
|
||||
#ExitPolicy accept *4:119 # accept nntp ports on IPv4 only as well as default exit policy
|
||||
#ExitPolicy accept6 *6:119 # accept nntp ports on IPv6 only as well as default exit policy
|
||||
#ExitPolicy reject *:* # no exits allowed
|
||||
#BridgeRelay 1
|
||||
#PublishServerDescriptor 0
|
133
rootfs/usr/local/share/template-files/data/htdocs/www/index.php
Normal file
133
rootfs/usr/local/share/template-files/data/htdocs/www/index.php
Normal file
@@ -0,0 +1,133 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="Keywords" content="Casjay, CasjaysDev, Jason M. Hempstead, Website, About Me">
|
||||
<meta name="Description" content="Created By Casjays Developments">
|
||||
<meta name="generator" content="CasjaysDev">
|
||||
<link rel="shortcut icon" href="https://static.casjay.net/favicon.ico" />
|
||||
<link rel="stylesheet" href="https://static.casjay.net/default-css/github-ribbon.css" />
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootswatch/4.5.0/darkly/bootstrap.min.css" integrity="sha384-Bo21yfmmZuXwcN/9vKrA5jPUMhr7znVBBeLxT9MA4r2BchhusfJ6+n8TLGUcRAtL" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="https:///static.casjay.net/default-css/casjaysdev.css">
|
||||
<script src="htps://static.casjay.net/default-js/errorpages/isup.js" async defer></script>
|
||||
<script src="https://static.casjay.net/default-js/errorpages/homepage.js" async defer></script>
|
||||
<script src="https://static.casjay.net/default-js/errorpages/loaddomain.js" async defer></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@widgetbot/crate@3" async defer></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" async defer></script>
|
||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" async defer></script>
|
||||
<!-- Begin Main Site -->
|
||||
<title>Dynamic DNS Server</title>
|
||||
</head>
|
||||
|
||||
<!-- Begin Body -->
|
||||
<body>
|
||||
<!-- Begin Main Body -->
|
||||
<div class="container pt-3">
|
||||
<h1>Welcome</h1>
|
||||
Your dynamic dns server has been setup<br />
|
||||
Your config files can be found in the /config directory.<br />
|
||||
Your data files can be found in the /data directory.<br />
|
||||
Your web files can be found in the /data/htdocs/www directory.<br />
|
||||
and your log files can be found in /data/logs<br />
|
||||
</div>
|
||||
<!-- End Main End Body -->
|
||||
|
||||
<br />
|
||||
<!-- Begin Footer -->
|
||||
<div class="footer footer-custom col-sm-12" align="center">
|
||||
<br>
|
||||
<!-- Begin Casjays Developments Footer -->
|
||||
Copyright 1999 - 2021
|
||||
<br />
|
||||
<a href="https://casjay.net" target="_blank">Casjays Developments</a> and <a href="https://malaks-us.github.com/jason" target="_blank">Jason M. Hempstead-Malak</a><br />
|
||||
Hosting by <a href="https://casjay.net/hosting" target="_blank">Casjays Developments: Hosting</a><br />
|
||||
and powered by <a href="https://casjaysdev.com" target="_blank">CasjaysDev.com</a>
|
||||
<br />
|
||||
<br />
|
||||
<a href="https://www.patreon.com/casjay" target="_blank"><img src="https://img.shields.io/badge/patreon-donate-orange.svg" border="0" alt="Casjays Patreon Page"></a>
|
||||
<a href="https://www.paypal.me/casjaysdev" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-green.svg?casjay@yahoo.com" alt="Casjays Paypal Page"></a>
|
||||
<br />
|
||||
<br />
|
||||
<a href="https://help.casjay.net" target="_blank">CasjaysDev Support</a> |
|
||||
<a href="https://bugs.casjay.net" target="_blank">CasjaysDev Bugs</a> <br />
|
||||
<a href="https://status.casjay.net" target="_blank">System Status</a> |
|
||||
<a href="https://servers.casjay.net" target="_blank">Service Status</a> |
|
||||
<a href="https://status.casjaysdev.com" target="_blank">Complete Status</a> <br />
|
||||
<a href="https://casjaysdev.com/domains.html" target="_blank">Casjays Developments Domains</a>
|
||||
<br />
|
||||
<br />
|
||||
Casjays Developments privacy policy can be found at<br />
|
||||
<a href="https://casjaysdev.com/policy/" target="_blank">https://casjaysdev.com/policy</a>
|
||||
<br />
|
||||
<!-- End Casjays Developments Footer -->
|
||||
|
||||
<!-- Begin theme Code -->
|
||||
<div class="text-center" style="color: royalblue;">
|
||||
<br />
|
||||
Made with 💜💜💜💜💜💜 by <br />
|
||||
<a href="http://github.com/casjay" target="_blank" rel="noopener">Jason M. Hempstead (Casjay)</a>
|
||||
<br />
|
||||
This site is powered by an <a href="https://github.com/casjay-templates" target="_blank">open source</a> theme
|
||||
</div>
|
||||
<br />
|
||||
<!-- End theme Code -->
|
||||
|
||||
<!-- Begin last updated -->
|
||||
<span style="color: skyblue;">Last update on: 11/12/2021</span>
|
||||
<!-- End last updated -->
|
||||
|
||||
<!-- Begin Google Track -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-936146-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-936146-1');
|
||||
</script>
|
||||
<!-- Eng Google Track -->
|
||||
<br />
|
||||
<!-- Begin EU compliant -->
|
||||
<div align="center">
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
|
||||
<script>
|
||||
window.addEventListener("load", function() {
|
||||
window.cookieconsent.initialise({
|
||||
"palette": {
|
||||
"popup": {
|
||||
"background": "#64386b",
|
||||
"text": "#ffcdfd"
|
||||
},
|
||||
"button": {
|
||||
"background": "transparent",
|
||||
"text": "#f8a8ff",
|
||||
"border": "#f8a8ff"
|
||||
}
|
||||
},
|
||||
"content": {
|
||||
"message": "In accordance with the EU GDPR law this message is being displayed. - ",
|
||||
"dismiss": "I Agree",
|
||||
"link": "CasjaysDev Policy",
|
||||
"href": "https://casjaysdev.com/policy/"
|
||||
},
|
||||
"type": "opt-out"
|
||||
})
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
<br />
|
||||
<!-- End EU compliant -->
|
||||
<br /> <br />
|
||||
<!-- End Footer -->
|
||||
|
||||
<!-- End Body -->
|
||||
</body>
|
||||
<!-- End Site -->
|
||||
|
||||
</html>
|
77
rootfs/usr/local/share/template-files/data/named/data/hint
Normal file
77
rootfs/usr/local/share/template-files/data/named/data/hint
Normal file
@@ -0,0 +1,77 @@
|
||||
;
|
||||
. 3600000 NS A.ROOT-SERVERS.NET.
|
||||
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
|
||||
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30
|
||||
;
|
||||
; FORMERLY NS1.ISI.EDU
|
||||
;
|
||||
. 3600000 NS B.ROOT-SERVERS.NET.
|
||||
B.ROOT-SERVERS.NET. 3600000 A 199.9.14.201
|
||||
B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:200::b
|
||||
;
|
||||
; FORMERLY C.PSI.NET
|
||||
;
|
||||
. 3600000 NS C.ROOT-SERVERS.NET.
|
||||
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
|
||||
C.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2::c
|
||||
;
|
||||
; FORMERLY TERP.UMD.EDU
|
||||
;
|
||||
. 3600000 NS D.ROOT-SERVERS.NET.
|
||||
D.ROOT-SERVERS.NET. 3600000 A 199.7.91.13
|
||||
D.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2d::d
|
||||
;
|
||||
; FORMERLY NS.NASA.GOV
|
||||
;
|
||||
. 3600000 NS E.ROOT-SERVERS.NET.
|
||||
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
|
||||
E.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:a8::e
|
||||
;
|
||||
; FORMERLY NS.ISC.ORG
|
||||
;
|
||||
. 3600000 NS F.ROOT-SERVERS.NET.
|
||||
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
|
||||
F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2f::f
|
||||
;
|
||||
; FORMERLY NS.NIC.DDN.MIL
|
||||
;
|
||||
. 3600000 NS G.ROOT-SERVERS.NET.
|
||||
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
|
||||
G.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:12::d0d
|
||||
;
|
||||
; FORMERLY AOS.ARL.ARMY.MIL
|
||||
;
|
||||
. 3600000 NS H.ROOT-SERVERS.NET.
|
||||
H.ROOT-SERVERS.NET. 3600000 A 198.97.190.53
|
||||
H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::53
|
||||
;
|
||||
; FORMERLY NIC.NORDU.NET
|
||||
;
|
||||
. 3600000 NS I.ROOT-SERVERS.NET.
|
||||
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
|
||||
I.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fe::53
|
||||
;
|
||||
; OPERATED BY VERISIGN, INC.
|
||||
;
|
||||
. 3600000 NS J.ROOT-SERVERS.NET.
|
||||
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
|
||||
J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:c27::2:30
|
||||
;
|
||||
; OPERATED BY RIPE NCC
|
||||
;
|
||||
. 3600000 NS K.ROOT-SERVERS.NET.
|
||||
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
|
||||
K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fd::1
|
||||
;
|
||||
; OPERATED BY ICANN
|
||||
;
|
||||
. 3600000 NS L.ROOT-SERVERS.NET.
|
||||
L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
|
||||
L.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:9f::42
|
||||
;
|
||||
; OPERATED BY WIDE
|
||||
;
|
||||
. 3600000 NS M.ROOT-SERVERS.NET.
|
||||
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
|
||||
M.ROOT-SERVERS.NET. 3600000 AAAA 2001:dc3::35
|
||||
; End of file
|
@@ -0,0 +1,13 @@
|
||||
; Default zone
|
||||
$ORIGIN local.
|
||||
$TTL 38400
|
||||
; ***********CHANGE THESE TO MATCH PROVIDER***************
|
||||
$INCLUDE /etc/named/hosted/host.ddns.conf
|
||||
$INCLUDE /etc/named/hosted/ip.ddns.conf
|
||||
; **********Common Files**********
|
||||
$INCLUDE /etc/named/common/001-soa.inc
|
||||
$INCLUDE /etc/named/common/002-nameservers.inc
|
||||
$INCLUDE /etc/named/common/003-dns.inc
|
||||
|
||||
$INCLUDE /var/named/dynamic/inc/static.ipv4.ddns.zone
|
||||
$INCLUDE /var/named/dynamic/inc/static.ipv6.ddns.zone
|
@@ -0,0 +1,11 @@
|
||||
$ttl 38400
|
||||
localhost. IN SOA localhost. admin.localhost. (
|
||||
2018020901 10800 3600 1209600 38400
|
||||
)
|
||||
|
||||
localhost. IN NS localhost.
|
||||
localhost. IN A 127.0.0.1
|
||||
localhost. IN AAAA ::1
|
||||
localhost. IN MX 0 localhost.
|
||||
localhost. IN TXT "v=spf1 a mx ptr all"
|
||||
localhost. IN SPF "v=spf1 a mx ptr all"
|
@@ -0,0 +1,7 @@
|
||||
$ttl 38400
|
||||
0.0.127.in-addr.arpa. IN SOA 127.0.0.1. admin.localhost. (
|
||||
2018020901 10800 3600 1209600 38400
|
||||
)
|
||||
|
||||
0.0.127.in-addr.arpa. IN NS localhost.
|
||||
1.0.0.127.in-addr.arpa. IN PTR localhost.
|
@@ -0,0 +1,7 @@
|
||||
$ttl 38400
|
||||
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN SOA 127.0.0.1. admin.localhost. (
|
||||
2018020901 10800 3600 1209600 38400
|
||||
)
|
||||
|
||||
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN NS localhost.
|
||||
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN PTR localhost.
|
@@ -0,0 +1,23 @@
|
||||
; REPLACE_DOMAIN
|
||||
$ORIGIN REPLACE_DOMAIN.
|
||||
$TTL 38400 ; 10 hours 40 minutes
|
||||
@ IN SOA dns.REPLACE_DOMAIN. dns-admin.REPLACE_DOMAIN. (
|
||||
2020083021 ; serial
|
||||
10800 ; refresh (3 hours)
|
||||
3600 ; retry (1 hour)
|
||||
1209600 ; expire (2 weeks)
|
||||
38400 ; minimum (10 hours 40 minutes)
|
||||
)
|
||||
|
||||
; **********Common Files**********
|
||||
$INCLUDE /etc/named/common/002-nameservers.inc
|
||||
$INCLUDE /etc/named/common/003-dns.inc
|
||||
|
||||
; ***********CHANGE THESE TO MATCH PROVIDER***************
|
||||
$INCLUDE /etc/named/hosted/host.ddns.conf
|
||||
$INCLUDE /etc/named/hosted/ip.ddns.conf
|
||||
|
||||
; **********Address Files**********
|
||||
$INCLUDE /var/named/dynamic/inc/static.ipv4.ddns.zone
|
||||
$INCLUDE /var/named/dynamic/inc/static.ipv6.ddns.zone
|
||||
$INCLUDE /var/named/dynamic/inc/cnames.ddns.zone
|
@@ -0,0 +1,7 @@
|
||||
; cname mappings
|
||||
smtp CNAME mail
|
||||
pop3 CNAME mail
|
||||
imap CNAME mail
|
||||
|
||||
@ MX 1 mail
|
||||
* MX 1 mail
|
@@ -0,0 +1,14 @@
|
||||
; static ipv4 reverse mappings
|
||||
$ORIGIN .
|
||||
$TTL 38400 ; 10 hours 40 minutes
|
||||
in-addr.arpa IN SOA dns.REPLACE_DOMAIN. admin.REPLACE_DOMAIN. (
|
||||
2018013087 ; serial
|
||||
10800 ; refresh (3 hours)
|
||||
3600 ; retry (1 hour)
|
||||
1209600 ; expire (2 weeks)
|
||||
38400 ; minimum (10 hours 40 minutes)
|
||||
)
|
||||
NS dns1.REPLACE_DOMAIN.
|
||||
NS dns2.REPLACE_DOMAIN.
|
||||
|
||||
$ORIGIN in-addr.arpa.
|
@@ -0,0 +1,5 @@
|
||||
; static ipv4 mappings
|
||||
localhost A 127.0.0.1
|
||||
gateway A 192.168.1.254
|
||||
|
||||
* A REPLACE_IPV4_ADDRESS
|
@@ -0,0 +1 @@
|
||||
; static ipv6 reverse mappings
|
@@ -0,0 +1 @@
|
||||
; static ipv6 mappings
|
@@ -0,0 +1,12 @@
|
||||
; static srv mappings
|
||||
; _kerberos-master._tcp.REPLACE_DOMAIN. 86400 IN SRV 0 100 88 sso.REPLACE_DOMAIN.
|
||||
; _kerberos-master._udp.REPLACE_DOMAIN. 86400 IN SRV 0 100 88 sso.REPLACE_DOMAIN.
|
||||
; _kerberos._tcp.REPLACE_DOMAIN. 86400 IN SRV 0 100 88 sso.REPLACE_DOMAIN.
|
||||
; _kerberos._udp.REPLACE_DOMAIN. 86400 IN SRV 0 100 88 sso.REPLACE_DOMAIN.
|
||||
; _kerberos.REPLACE_DOMAIN. 86400 IN TXT "REPLACE_DOMAIN"
|
||||
; _kpasswd._tcp.REPLACE_DOMAIN. 86400 IN SRV 0 100 464 sso.REPLACE_DOMAIN.
|
||||
; _kpasswd._udp.REPLACE_DOMAIN. 86400 IN SRV 0 100 464 sso.REPLACE_DOMAIN.
|
||||
; _ldap._tcp.REPLACE_DOMAIN. 86400 IN SRV 0 100 389 sso.REPLACE_DOMAIN.
|
||||
; _ntp._udp.REPLACE_DOMAIN. 86400 IN SRV 0 100 123 sso.REPLACE_DOMAIN.
|
||||
; ipa-ca.REPLACE_DOMAIN. 86400 IN A REPLACE_IPV4_ADDRESS
|
||||
; ipa-ca.REPLACE_DOMAIN. 86400 IN AAAA 2001:db8:edfa:1234:5678::ff1f
|
@@ -0,0 +1,12 @@
|
||||
$ORIGIN .
|
||||
$TTL 38400 ; 10 hours 40 minutes
|
||||
in-addr.arpa IN SOA dns.REPLACE_DOMAIN. admin.REPLACE_DOMAIN. (
|
||||
2018013087 ; serial
|
||||
10800 ; refresh (3 hours)
|
||||
3600 ; retry (1 hour)
|
||||
1209600 ; expire (2 weeks)
|
||||
38400 ; minimum (10 hours 40 minutes)
|
||||
)
|
||||
NS dns.REPLACE_DOMAIN.
|
||||
|
||||
$INCLUDE /var/named/dynamic/inc/static.ipv4.arpa.rev
|
@@ -0,0 +1,13 @@
|
||||
$ORIGIN .
|
||||
$TTL 38400 ; 10 hours 40 minutes
|
||||
ip6.arpa. IN SOA dns.REPLACE_DOMAIN. admin.REPLACE_DOMAIN. (
|
||||
2018013087 ; serial
|
||||
10800 ; refresh (3 hours)
|
||||
3600 ; retry (1 hour)
|
||||
1209600 ; expire (2 weeks)
|
||||
38400 ; minimum (10 hours 40 minutes)
|
||||
)
|
||||
NS dns.REPLACE_DOMAIN.
|
||||
|
||||
$ORIGIN ip6.arpa.
|
||||
$INCLUDE /var/named/dynamic/inc/static.ipv6.arpa.rev
|
@@ -0,0 +1 @@
|
||||
|
Reference in New Issue
Block a user