Skip to content

Commit a1b45b5

Browse files
author
Kristan Kenney
committed
Introduce functions to write known keys
1 parent 7eabe99 commit a1b45b5

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

func/syshealth.sh

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,120 @@
22

33
# Hestia Control Panel - System Health Check Function Library
44

5+
6+
# Write known configuration keys to $HESTIA/conf/defaults/
7+
function write_kv_config_file () {
8+
# Ensure configuration directory exists
9+
if [ ! -d "$HESTIA/conf/defaults/" ]; then
10+
mkdir "$HESTIA/conf/defaults/"
11+
fi
12+
13+
# Remove previous known good configuration
14+
if [ -f "$HESTIA/conf/defaults/$system.conf" ]; then
15+
rm -f $HESTIA/conf/defaults/$system.conf
16+
fi
17+
18+
touch $HESTIA/conf/defaults/$system.conf
19+
20+
for key in ${known_keys[@]}; do
21+
echo $key >> $HESTIA/conf/defaults/$system.conf
22+
done
23+
}
24+
25+
# Update list of known keys for web.conf files
26+
function syshealth_update_web_config_format () {
27+
28+
# WEB DOMAINS
29+
# Create array of known keys in configuration file
30+
system="web"
31+
known_keys=(DOMAIN IP IP6 CUSTOM_DOCROOT CUSTOM_PHPROOT FASTCGI_CACHE ALIAS TPL SSL SSL_FORCE SSL_HOME LETSENCRYPT FTP_USER FTP_MD5 FTP_PATH BACKEND PROXY PROXY_EXT STATS STATS_USER STATS_CRYPT SUSPENDED TIME DATE)
32+
write_kv_config_file
33+
unset system
34+
unset known_keys
35+
}
36+
37+
# Update list of known keys for dns.conf files
38+
function syshealth_update_dns_config_format () {
39+
40+
# DNS DOMAINS
41+
# Create array of known keys in configuration file
42+
system="dns"
43+
known_keys=(DOMAIN IP TPL TTL EXP SOA SERIAL SRC RECORDS SUSPENDED TIME DATE)
44+
write_kv_config_file
45+
unset system
46+
unset known_keys
47+
48+
# DNS RECORDS
49+
system="dns_records"
50+
known_keys=(ID RECORD TYPE PRIORITY VALUE SUSPENDED TIME DATE TTL)
51+
write_kv_config_file
52+
unset system
53+
unset known_keys
54+
}
55+
56+
# Update list of known keys for mail.conf files
57+
function syshealth_update_mail_config_format () {
58+
59+
# MAIL DOMAINS
60+
# Create array of known keys in configuration file
61+
system="mail"
62+
known_keys=(DOMAIN ANTIVIRUS ANTISPAM DKIM WEBMAIL SSL LETSENCRYPT CATCHALL ACCOUNTS U_DISK SUSPENDED TIME DATE)
63+
write_kv_config_file
64+
unset system
65+
unset known_keys
66+
67+
# MAIL ACCOUNTS
68+
system="mail_accounts"
69+
known_keys=(ACCOUNT ALIAS AUTOREPLY FWD FWD_ONLY MD5 QUOTA U_DISK SUSPENDED TIME DATE)
70+
write_kv_config_file
71+
unset system
72+
unset known_keys
73+
}
74+
75+
# Update list of known keys for user.conf files
76+
function syshealth_update_user_config_format () {
77+
78+
# USER CONFIGURATION
79+
# Create array of known keys in configuration file
80+
system="user"
81+
known_keys=(NAME PACKAGE CONTACT CRON_REPORTS MD5 RKEY TWOFA QRCODE PHPCLI ROLE SUSPENDED SUSPENDED_USERS SUSPENDED_WEB SUSPENDED_DNS SUSPENDED_MAIL SUSPENDED_DB SUSPENDED_CRON IP_AVAIL IP_OWNED U_USERS U_DISK U_DISK_DIRS U_DISK_WEB U_DISK_MAIL U_DISK_DB U_BANDWIDTH U_WEB_DOMAINS U_WEB_SSL U_WEB_ALIASES U_DNS_DOMAINS U_DNS_RECORDS U_MAIL_DKIM U_MAIL_DKIM U_MAIL_ACCOUNTS U_MAIL_DOMAINS U_MAIL_SSL U_DATABASES U_CRON_JOBS U_BACKUPS LANGUAGE NOTIFICATIONS TIME DATE)
82+
write_kv_config_file
83+
unset system
84+
unset known_keys
85+
86+
# CRON JOB CONFIGURATION
87+
# Create array of known keys in configuration file
88+
system="cron"
89+
known_keys=(JOB MIN HOUR DAY MONTH WDAY CMD SUSPENDED TIME DATE)
90+
write_kv_config_file
91+
unset system
92+
unset known_keys
93+
}
94+
95+
# Update list of known keys for db.conf files
96+
function syshealth_update_database_config_format () {
97+
98+
# DATABASE CONFIGURATION
99+
# Create array of known keys in configuration file
100+
system="db"
101+
known_keys=(DB DBUSER MD5 HOST TYPE CHARSET U_DISK SUSPENDED TIME DATE)
102+
write_kv_config_file
103+
unset system
104+
unset known_keys
105+
}
106+
107+
# Update list of known keys for ip.conf files
108+
function syshealth_update_ip_config_format () {
109+
110+
# IP ADDRESS
111+
# Create array of known keys in configuration file
112+
system="ip"
113+
known_keys=(OWNER STATUS NAME U_SYS_USERS U_WEB_DOMAINS INTERFACE NETMASK NAT HELO TIME DATE)
114+
write_kv_config_file
115+
unset system
116+
unset known_keys
117+
}
118+
5119
# Repair System Configuration
6120
# Adds missing variables to $HESTIA/conf/hestia.conf with safe default values
7121
function syshealth_repair_system_config () {

0 commit comments

Comments
 (0)