Skip to content

Commit

Permalink
update ns1.theartfarm to use include/djb
Browse files Browse the repository at this point in the history
  • Loading branch information
msimerson committed Mar 24, 2024
1 parent 54a7951 commit ea1fbc9
Showing 1 changed file with 14 additions and 134 deletions.
148 changes: 14 additions & 134 deletions tnpi/ns1.theartfarm.com.sh
Original file line number Diff line number Diff line change
@@ -1,163 +1,41 @@
#!/bin/sh

. mail-toaster.sh || exit
set -e

. mail-toaster.sh
. include/djb.sh

export JAIL_START_EXTRA=""
export JAIL_CONF_EXTRA=""

install_tinydns()
{
tell_status "installing djbdns"
stage_pkg_install rsync daemontools || exit

if [ ! -d "$STAGE_MNT/data/home" ]; then
mkdir "$STAGE_MNT/data/home" || exit
fi
stage_exec pw useradd tinydns -d /data/home/tinydns -m

tell_status "installing ucspi-tcp with IPv6"
stage_make_conf sysutils_ucspi-tcp_SET 'sysutils_ucspi-tcp_SET=IPV6'
stage_port_install sysutils/ucspi-tcp || exit

tell_status "installing djbdns with IPv6"
stage_make_conf dns_djbdns_SET 'dns_djbdns_SET=IP6'
stage_port_install dns/djbdns || exit
}

configure_svscan()
{
if [ ! -d "$STAGE_MNT/var/service" ]; then
tell_status "creating default service dir"
mkdir -p "$STAGE_MNT/var/service" || exit
fi

if [ ! -d "$STAGE_MNT/data/service" ]; then
tell_status "creating local service dir"
mkdir -p "$STAGE_MNT/data/service" || exit
fi
}

configure_tinydns4()
{
tell_status "creating tinydns server"
stage_exec tinydns-conf tinydns bin /var/service/tinydns "$(get_jail_ip stage)"
tee "$STAGE_MNT/var/service/tinydns/run" <<EO_TINYDNS_RUN
#!/bin/sh
# logging enabled
#exec 2>&1
# logging disabled
exec 1>/dev/null 2>&1
exec envuidgid tinydns envdir ./env softlimit -d300000 /usr/local/bin/tinydns
EO_TINYDNS_RUN

echo "/data/root" > "$STAGE_MNT/var/service/tinydns/env/ROOT" || exit
}

configure_tinydns6()
{
tell_status "creating tinydns IPv6 server"
stage_exec tinydns-conf tinydns bin /var/service/tinydns-v6 "$(get_jail_ip6 stage)"
tee "$STAGE_MNT/var/service/tinydns-v6/run" <<EO_TINYDNS_RUN
#!/bin/sh
# logging enabled
#exec 2>&1
# logging disabled
exec 1>/dev/null 2>&1
exec envuidgid tinydns envdir ./env softlimit -d300000 /usr/local/bin/tinydns
EO_TINYDNS_RUN

echo "/data/root" > "$STAGE_MNT/var/service/tinydns-v6/env/ROOT" || exit
}
export JAIL_FSTAB=""

configure_tinydns()
{
configure_svscan
configure_tinydns4
configure_tinydns_data
configure_tinydns6
stage_sysrc sshd_enable="YES"
}

configure_tinydns_data()
{
if [ -d "$ZFS_DATA_MNT/ns1.theartfarm.com/root" ]; then
_data_root="$ZFS_DATA_MNT/ns1.theartfarm.com/root"
if [ -d "$_data_root" ]; then
tell_status "tinydns data already configured"
return
fi

tell_status "configuring tinydns data"
mv "$STAGE_MNT/var/service/tinydns/root" "$ZFS_DATA_MNT/ns1.theartfarm.com/root"
tee -a "$ZFS_DATA_MNT/ns1.theartfarm.com/root/data" <<EO_EXAMPLE
mv "$STAGE_MNT/var/service/tinydns/root" "$_data_root"
tee -a "$_data_root/data" <<EO_EXAMPLE
.example.com:1.2.3.4:a:259200
=www.example.com:1.2.3.5:86400
EO_EXAMPLE
stage_exec make -C /data/root
stage_exec chown -R tinydns /data/root
}

configure_axfrdns()
{
tell_status "creating axfrdns server"
stage_exec axfrdns-conf tinydns bin /var/service/axfrdns /data "$(get_jail_ip stage)"
tee "$STAGE_MNT/var/service/axfrdns/run" <<'EO_AXFRDNS_RUN'
#!/bin/sh
# logging enabled
#exec 2>&1
# logging disabled
exec 1>/dev/null 2>&1
exec envdir ./env sh -c '
exec envuidgid tinydns softlimit -d300000 tcpserver -vDRHl0 -x tcp.cdb -- "$IP" 53 /usr/local/bin/axfrdns
'
EO_AXFRDNS_RUN

tee "$STAGE_MNT/var/service/axfrdns/tcp" <<EOTCP
:allow,AXFR=""
:deny
EOTCP
stage_exec make -C /var/service/axfrdns
}

configure_axfrdns6()
{
tell_status "creating axfrdns IPv6 server"
stage_exec axfrdns-conf tinydns bin /var/service/axfrdns-v6 /data "$(get_jail_ip6 stage)"
tee "$STAGE_MNT/var/service/axfrdns-v6/run" <<'EO_AXFRDNS_RUN'
#!/bin/sh
# logging enabled
#exec 2>&1
# logging disabled
exec 1>/dev/null 2>&1
exec envdir ./env sh -c '
exec envuidgid tinydns softlimit -d300000 tcpserver -vDRHl0 -x tcp.cdb -- "$IP" 53 /usr/local/bin/axfrdns
'
EO_AXFRDNS_RUN

tee "$STAGE_MNT/var/service/axfrdns-v6/tcp" <<EOTCP6
:allow,AXFR=""
:deny
EOTCP6
stage_exec make -C /var/service/axfrdns-v6
}

start_tinydns()
{
tell_status "starting dns daemons"
stage_sysrc svscan_enable="YES"
stage_sysrc sshd_enable="YES"
stage_exec service svscan start || exit
}

test_tinydns()
{
tell_status "testing tinydns"
Expand Down Expand Up @@ -194,9 +72,11 @@ test_tinydns()
base_snapshot_exists || exit
create_staged_fs ns1.theartfarm.com
start_staged_jail ns1.theartfarm.com
install_tinydns
install_daemontools
install_ucspi_tcp
install_djbdns
configure_tinydns
configure_axfrdns
configure_axfrdns4
configure_axfrdns6
start_tinydns
test_tinydns
Expand Down

0 comments on commit ea1fbc9

Please sign in to comment.