-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsetup-udo-master
executable file
·82 lines (68 loc) · 2.35 KB
/
setup-udo-master
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env bash
NEW_USER="$1"
[[ -z "$2" ]] && NEW_SITE="${NEW_USER}" || NEW_SITE="$2"
[[ -z "$2" ]] && NEW_DB="udo20" || NEW_DB="$2"
MASTER_PATH="/home/masterudonet/udo/masterudonet/site"
MASTER_DB="masterudonet_udo19"
DB_PASS=$(pwgen -sn1B 24)
DB_NAME="${NEW_USER}_${NEW_DB}"
if [[ -z "$NEW_USER" ]]
then
echo "You must provide username"
exit 1
fi
NEW_HOME=$(getent passwd "$NEW_USER" | cut -d: -f6)
if [[ -z "$NEW_HOME" ]] || [[ ! -d "$NEW_HOME" ]]
then
echo "Unable to find home dir for user"
exit 1
fi
CHECKDB=$(mysqlshow "$DB_NAME" | grep -o "$DB_NAME")
if [ "$CHECKDB" != "$DB_NAME" ]
then
echo "Database already exists ($DB_NAME)"
exit 1
fi
if [[ -d "$NEW_HOME/udo/$NEW_SITE" ]]
then
echo "Site data folder already exists, please remove it first"
exit 1
fi
mkdir -p "$NEW_HOME/udo/$NEW_SITE/site";
cp -a "$MASTER_PATH/data" "$NEW_HOME/udo/$NEW_SITE/site"
cp -a "$MASTER_PATH/plug.json" "$NEW_HOME/udo/$NEW_SITE/site"
uapi --user="$NEW_USER" Mysql create_database name="$DB_NAME"
uapi --user="$NEW_USER" Mysql create_user name="$DB_NAME" password="$DB_PASS"
uapi --user="$NEW_USER" Mysql set_privileges_on_database \
user="$DB_NAME" database="$DB_NAME" privileges=ALL
mysqldump $MASTER_DB | mysql "$DB_NAME"
echo "{ \"db\": {
\"db\": \"$DB_NAME\",
\"user\":\"$DB_NAME\",
\"pass\":\"$DB_PASS\"
}}" > "$NEW_HOME/udo/$NEW_SITE/site/conf.json"
chown -R "$NEW_USER:$NEW_USER" "$NEW_HOME/udo"
./start-udo "$NEW_USER" -s "$NEW_SITE"
SETUP=$(whiptail --title "Website Domain Setup" --nocancel \
--menu "Which domain should new website use?" 14 60 3 \
"new" "new.domain.com" \
"www" "domain.com (or domain_com_myudo.net)" \
"none" "Dont setup domain now, I will do it later" 3>&1 1>&2 2>&3)
case $SETUP in
new)
#echo "Not Implmented Yet, you will have to do it manually"
BASE_DOMAIN=$(whmapi1 --output=jsonpretty accountsummary user="${NEW_USER}" | jq -r '.data.acct[0].domain')
NEW_DOMAIN="new.${BASE_DOMAIN}"
whmapi1 --output=jsonpretty create_subdomain domain="$NEW_DOMAIN" document_root="udo/$NEW_SITE/www"
exit 0;
;;
www)
NONCE=$(xxd -l 4 -p /dev/random)
sudo -u "${NEW_USER}" mv "$NEW_HOME/public_html" "$NEW_HOME/public_html.old_$NONCE"
sudo -u "${NEW_USER}" ln -s "$NEW_HOME/udo/$NEW_SITE/www" "$NEW_HOME/public_html"
exit 0;
;;
none)
echo "Skipping setting up domain name"
;;
esac