diff --git a/gen_tdp b/gen_tdp
new file mode 100755
index 0000000..dcb5ea0
--- /dev/null
+++ b/gen_tdp
@@ -0,0 +1,62 @@
+#!/bin/bash
+###############################################################################
+#
+# $0 A bash script to generate the tilde.json file as described by
+# http://protocol.club/~datagrok/beta-wiki/tdp.html
+#
+# This command takes no arguments, and sends outputs to stdout.
+# Version 1.2
+#
+# Licensed under a the AGPL 3.0 or later, by Ubergeek (ubergeek@thunix.net)
+# https://www.gnu.org/licenses/gpl-3.0.en.html
+#
+###############################################################################
+
+CONFIG=./setenv.sh
+
+if [ ! -f "$CONFIG" ]; then
+ echo "Config file does not exist, or not at the location specified. Please create the file, or correct the location."
+ exit 1
+fi
+
+. $CONFIG
+
+cat << _EOF
+{
+ "name" : "$SITE_TITLE",
+ "url" : "$SITE",
+ "want_users":$WANT_USERS,
+ "admin_email": "$ADMIN_EMAIL",
+ "signup_url": "$SIGNUP_URL",
+ "description": "$DESCRIPTION",
+_EOF
+
+echo -ne "\t\"user_count\":"
+echo $(for i in $(members tilde); do echo $i; done | sort | uniq | wc -l)","
+echo -e "\t\"generated_at\" : \"$(date)\","
+echo -e "\t\"uptime\" : \"$(uptime | cut -f1 -d,)\","
+
+member_count=$(for i in $(members tilde); do echo $i; done | sort | uniq | wc -l)
+
+echo -e "\t\"users\": ["
+
+for i in $(for i in $(members tilde); do echo $i; done | sort | uniq); do
+ let count=$count+1
+ echo -e "\t{\n\t\t\"user_name\": \"$i\","
+ set mod_time= "$(stat -c '%Y' /home/$i/public_html/index.* 2> /dev/null | head -n1)"
+ if [ ! "$mod_time" == "" ]; then
+ echo -e "\t\t\"mtime\" : \"0\","
+ else
+ echo -e "\t\t\"mtime\" : \"$(stat -c '%Y' /home/$i/public_html/index.* 2> /dev/null | head -n1)\","
+ fi
+ echo -e "\t\t\"title\" : \""$(curl -L $SITE/~$i -so - |grep -iPo '(?<=
)(.*)(?=)')"\""
+ if [ $count -eq $(for i in $(members tilde); do echo $i; done | sort | uniq | wc -l) ]; then
+ echo -e "\t}"
+ else
+ echo -e "\t},"
+ fi
+done
+echo -e "\t],"
+echo -e "\t\"generated_by\":\"bash_tdp\""
+echo "}"
+
diff --git a/makeuser b/makeuser
index 025f590..97a028d 100755
--- a/makeuser
+++ b/makeuser
@@ -11,6 +11,9 @@ LIST_NAME="thunix-join@lists.tildeverse.org"
ADMIN_EMAIL="root@thunix.net"
EMAIL_TEMPLATE="email.tmpl"
YAML_FILE="$1.yml"
+GEN_TDP="./gen_tdp"
+TILDE_JSON="var/www/thunix.cf/tilde.json"
+
# This one for team
# ZNC_USER="/home/znc/add_znc_user.sh"
@@ -95,6 +98,7 @@ case $1 in
git commit -am "Adding user $1"
git push
cd $place
+ $GEN_TDP | sudo tee $TILDE_JSON
# End Thunix specific section
;;
diff --git a/makeuser_no_ansible b/makeuser_no_ansible
new file mode 100755
index 0000000..ae69a3f
--- /dev/null
+++ b/makeuser_no_ansible
@@ -0,0 +1,75 @@
+#!/bin/bash
+# ---------------------------------------------------------------------------
+# makeuser - tilde new user creation
+# Usage: makeuser [-h|--help] ""
+# ---------------------------------------------------------------------------
+#
+# Forked from tilde.team's make user script (
+PROGNAME=${0##*/}
+VERSION="0.4"
+LIST_NAME="thunix-join@lists.tildeverse.org"
+ADMIN_EMAIL="root@thunix.net"
+EMAIL_TEMPLATE="email.tmpl"
+YAML_FILE="$1.yml"
+# This one for team
+# ZNC_USER="/home/znc/add_znc_user.sh"
+
+# This one for Thunix
+ZNC_USER="/var/lib/znc/create-znc_account.sh"
+
+# Set location to your repo for ansible here
+# It is only needed for thunix
+REPO_LOCATION="/home/ubergeek/repos/ansible/"
+
+error_exit() {
+ echo -e "${PROGNAME}: ${1:-"Unknown Error"}" >&2
+ exit 1
+}
+
+usage() {
+ echo -e "usage: $PROGNAME [-h|--help] \"\""
+}
+
+sub_to_list() {
+ echo "
+From: $1
+Subject: subscribe
+" | sudo -u $1 mail $LIST_NAME
+}
+
+[[ $(id -u) == 0 ]] && error_exit "Do not run this script as root."
+
+case $1 in
+ -h | --help)
+ usage; exit ;;
+ -* | --*)
+ usage; error_exit "unknown option $1" ;;
+ *)
+ [[ $# -ne 3 ]] && error_exit "not enough args"
+ echo "adding new user $1"
+ newpw=`pwgen -1B 10`
+ pwcrypt=$(perl -e "print crypt('${newpw}', 'sa');")
+# sudo useradd -m -g 1000 -p $pwcrypt -s /bin/bash $1 || exit 1
+# This is the welcome for team.
+# sed -e "s/newusername/$1/g" -e "s/newpassword/$newpw/" $EMAIL_TEMPLATE | sudo mail $1 $2 $ADMIN_EMAIL
+
+# This is the welcome email for thunix
+ sed -e "s/newusername/$1/g" -e "s/newpassword/$newpw/g" email.tmpl | sudo mail -s "Welcome to Thunix!" $2
+ sed -e "s/newusername/$1/g" -e "s/newpassword/$newpw/g" email.tmpl | sudo mail -s "Welcome to Thunix!" $ADMIN_EMAIL
+ sub_to_list $1
+
+# This line is for team
+# sudo -u znc $ZNC_USER $1
+# This one is for Thunix
+ sudo $ZNC_USER $1 $pwcrypt
+
+# We don't need this for thunix, since ansible will do it
+# echo "$3" | tee /home/$1/.ssh/authorized_keys
+
+# If root doesn't have a fediverse account, comment this out
+# sudo toot "welcome new user ~$1!"
+
+ ;;
+
+esac
+
diff --git a/setenv.sh b/setenv.sh
new file mode 100644
index 0000000..eee6c26
--- /dev/null
+++ b/setenv.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# Here is where you set config variables.
+
+export SITE_TITLE="Thunix"
+export SITE="https://thunix.net"
+export WANT_USERS="true"
+export ADMIN_EMAIL="root@thunix.net"
+export SIGNUP_URL="https://thunix.net/signup"
+export DESCRIPTION="Thunix is a community, centered around access to a public *nix system. Thunix offers shell accounts with complete set of programming tools, and follows a continuous integration-continuous deployment of system configuration."