mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-08-23 06:35:56 -07:00
Merge 179cca9566
into 9c44600892
This commit is contained in:
commit
e4486331df
88 changed files with 2107 additions and 911 deletions
|
@ -16,6 +16,7 @@ user=$3
|
||||||
password=$4
|
password=$4
|
||||||
type=${5-api}
|
type=${5-api}
|
||||||
dns_user=${6-dns-cluster}
|
dns_user=${6-dns-cluster}
|
||||||
|
DNS_USER=$dns_user
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
source $VESTA/func/main.sh
|
source $VESTA/func/main.sh
|
||||||
|
@ -42,9 +43,10 @@ is_dnshost_alive
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Concatentating db host string
|
# Concatentating dns host string
|
||||||
str="HOST='$host' USER='$user' PASSWORD='$password' DNS_USER='$dns_user'"
|
str="HOST='$host' PORT='$port' USER='$user' PASSWORD='$password'"
|
||||||
str="$str TYPE='$type' SUSPENDED='no' TIME='$TIME' DATE='$DATE'"
|
str="$str DNS_USER='$dns_user' TYPE='$type' SUSPENDED='no'"
|
||||||
|
str="$str TIME='$TIME' DATE='$DATE'"
|
||||||
|
|
||||||
# Adding host to dns-cluster.conf
|
# Adding host to dns-cluster.conf
|
||||||
echo "$str" >> $VESTA/conf/dns-cluster.conf
|
echo "$str" >> $VESTA/conf/dns-cluster.conf
|
||||||
|
|
|
@ -207,7 +207,6 @@ chmod 660 $USER_DATA/user.conf
|
||||||
|
|
||||||
# Updating quota
|
# Updating quota
|
||||||
if [ "$DISK_QUOTA" = 'yes' ]; then
|
if [ "$DISK_QUOTA" = 'yes' ]; then
|
||||||
echo "Setting quota"
|
|
||||||
$BIN/v-update-user-quota "$user"
|
$BIN/v-update-user-quota "$user"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# info: add ftp account for web domain.
|
# info: add ftp account for web domain.
|
||||||
# options: USER DOMAIN FTP_USER FTP_PASSWORD
|
# options: USER DOMAIN FTP_USER FTP_PASSWORD [FTP_PATH]
|
||||||
#
|
#
|
||||||
# The function creates addutional ftp account for web domain.
|
# The function creates additional ftp account for web domain.
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
@ -15,6 +15,7 @@ domain=$(idn -t --quiet -u "$2" )
|
||||||
domain_idn=$(idn -t --quiet -a "$domain")
|
domain_idn=$(idn -t --quiet -a "$domain")
|
||||||
ftp_user=${1}_${3}
|
ftp_user=${1}_${3}
|
||||||
ftp_password=$4
|
ftp_password=$4
|
||||||
|
ftp_path=$5
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
source $VESTA/func/main.sh
|
source $VESTA/func/main.sh
|
||||||
|
@ -30,57 +31,93 @@ EVENT="$DATE $TIME $SCRIPT $A1 $A2 $A3 $A4 $A5 $A6 $A7 $A8 $A9"
|
||||||
# Verifications #
|
# Verifications #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
check_args '4' "$#" 'USER DOMAIN FTP_USER FTP_PASSWORD'
|
check_args '4' "$#" 'USER DOMAIN FTP_USER FTP_PASSWORD [FTP_PATH]'
|
||||||
validate_format 'user' 'domain' 'ftp_user' 'ftp_password'
|
validate_format 'user' 'domain' 'ftp_user' 'ftp_password'
|
||||||
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
|
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
|
||||||
is_object_valid 'user' 'USER' "$user"
|
is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||||
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||||
|
check_ftp_user=$(grep "^$ftp_user:" /etc/passwd)
|
||||||
|
if [ ! -z "$check_ftp_user" ] && [ "$FTP_USER" != "$ftp_user" ]; then
|
||||||
|
echo "Error: ftp user $ftp_user already exists"
|
||||||
|
log_event "$E_EXISTS" "$EVENT"
|
||||||
|
exit $E_EXISTS
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Get domain values
|
||||||
get_domain_values 'web'
|
get_domain_values 'web'
|
||||||
check_ftp_user=$(grep "^$ftp_user:" /etc/passwd)
|
|
||||||
if [ ! -z "$check_ftp_user" ] && [ "$FTP_USER" != "$ftp_user" ]; then
|
# Defining ftp user shell
|
||||||
echo "Error: ftp user $ftp_user already exists"
|
if [ -z "$FTP_SHELL" ]; then
|
||||||
log_event "$E_EXISTS $EVENT"
|
shell='/sbin/nologin'
|
||||||
exit $E_EXISTS
|
if [ -e "/usr/bin/rssh" ]; then
|
||||||
|
shell='/usr/bin/rssh'
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
shell=$FTP_SHELL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -z "$FTP_USER" ]; then
|
# Defining path
|
||||||
/usr/sbin/userdel -f $FTP_USER > /dev/null 2>&1
|
if [ -z "$ftp_path" ]; then
|
||||||
|
ftp_path_a="$HOMEDIR/$user/web/$domain"
|
||||||
|
else
|
||||||
|
# Validating absolute path
|
||||||
|
ftp_path_a=$(readlink -f "$HOMEDIR/$user/web/$domain/$ftp_path")
|
||||||
|
if [ -z "$(echo $ftp_path_a |grep $HOMEDIR/$user/web/$domain)" ]; then
|
||||||
|
echo "Error: absolute path $ftp_path_a is invalid"
|
||||||
|
log_event "$E_INVALID" "$EVENT"
|
||||||
|
exit $E_INVALID
|
||||||
|
fi
|
||||||
|
# Creating ftp user home directory
|
||||||
|
if [ ! -e "$ftp_path_a" ]; then
|
||||||
|
mkdir -p $ftp_path_a
|
||||||
|
chown $user:$user "$ftp_path_a"
|
||||||
|
chmod 751 "$ftp_path_a"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Define shell
|
# Adding ftp user
|
||||||
shell='/sbin/nologin'
|
|
||||||
if [ -e "/usr/bin/rssh" ]; then
|
|
||||||
shell='/usr/bin/rssh'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Adding user
|
|
||||||
/usr/sbin/useradd $ftp_user \
|
/usr/sbin/useradd $ftp_user \
|
||||||
-s $shell \
|
-s $shell \
|
||||||
-o -u $(id -u $user) \
|
-o -u $(id -u $user) \
|
||||||
-g $(id -u $user) \
|
-g $(id -u $user) \
|
||||||
-M -d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
|
-M -d "$ftp_path_a" > /dev/null 2>&1
|
||||||
|
|
||||||
|
# Set ftp user password
|
||||||
echo "$ftp_user:$ftp_password" | /usr/sbin/chpasswd
|
echo "$ftp_user:$ftp_password" | /usr/sbin/chpasswd
|
||||||
ftp_md5="$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)"
|
ftp_md5=$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Vesta #
|
# Vesta #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Update config
|
# Transforming absolute path to relative
|
||||||
|
ftp_path_r=$(echo $ftp_path_a |sed "s%$HOMEDIR/$user/web/$domain%%")
|
||||||
|
|
||||||
|
# Concatenating ftp variables
|
||||||
|
if [ ! -z "$FTP_USER" ]; then
|
||||||
|
ftp_user="$FTP_USER:$ftp_user"
|
||||||
|
ftp_md5="$FTP_MD5:$ftp_md5"
|
||||||
|
ftp_path="$FTP_PATH:$ftp_path_r"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Adding new key into web.conf
|
||||||
|
add_object_key "web" 'DOMAIN' "$domain" 'FTP_PATH' 'PROXY'
|
||||||
|
|
||||||
|
# Updating config
|
||||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' "$ftp_user"
|
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' "$ftp_user"
|
||||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
|
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
|
||||||
|
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_PATH' "$ftp_path"
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
log_history "added ftp account $ftp_user for $domain"
|
log_history "added ftp account ${1}_${3}@$domain"
|
||||||
log_event "$OK" "$EVENT"
|
log_event "$OK" "$EVENT"
|
||||||
|
|
||||||
exit
|
exit
|
||||||
|
|
|
@ -52,20 +52,20 @@ upd_web_domain_values
|
||||||
|
|
||||||
# Adding statistic config
|
# Adding statistic config
|
||||||
cat $WEBTPL/$type/$type.tpl |\
|
cat $WEBTPL/$type/$type.tpl |\
|
||||||
sed -e "s/%ip%/$ip/g" \
|
sed -e "s|%ip%|$ip|g" \
|
||||||
-e "s/%web_port%/$WEB_PORT/g" \
|
-e "s|%web_port%|$WEB_PORT|g" \
|
||||||
-e "s/%web_system%/$WEB_SYSTEM/g" \
|
-e "s|%web_system%|$WEB_SYSTEM|g" \
|
||||||
-e "s/%web_ssl_port%/$WEB_SSL_PORT/g" \
|
-e "s|%web_ssl_port%|$WEB_SSL_PORT|g" \
|
||||||
-e "s/%rgroups%/$WEB_RGROUPS/g" \
|
-e "s|%rgroups%|$WEB_RGROUPs|g" \
|
||||||
-e "s/%proxy_system%/$PROXY_SYSTEM/g" \
|
-e "s|%proxy_system%|$PROXY_SYSTEM|g" \
|
||||||
-e "s/%proxy_port%/$PROXY_PORT/g" \
|
-e "s|%proxy_port%|$PROXY_PORT|g" \
|
||||||
-e "s/%proxy_ssl_port%/$PROXY_SSL_PORT/g" \
|
-e "s|%proxy_ssl_port%|$PROXY_SSL_PORT|g" \
|
||||||
-e "s/%domain_idn%/$domain_idn/g" \
|
-e "s|%domain_idn%|$domain_idn|g" \
|
||||||
-e "s/%domain%/$domain/g" \
|
-e "s|%domain%|$domain|g" \
|
||||||
-e "s/%user%/$user/g" \
|
-e "s|%user%|$user|g" \
|
||||||
-e "s/%home%/${HOMEDIR////\/}/g" \
|
-e "s|%home%|$HOMEDIR|g" \
|
||||||
-e "s/%alias%/${aliases//,/ }/g" \
|
-e "s|%alias%|${aliases//,/ }|g" \
|
||||||
-e "s/%alias_idn%/${aliases_idn//,/ }/g" \
|
-e "s|%alias_idn%|${aliases_idn//,/ }|g" \
|
||||||
> $HOMEDIR/$user/conf/web/$type.$domain.conf
|
> $HOMEDIR/$user/conf/web/$type.$domain.conf
|
||||||
|
|
||||||
if [ "$type" == 'awstats' ]; then
|
if [ "$type" == 'awstats' ]; then
|
||||||
|
|
|
@ -49,14 +49,6 @@ else
|
||||||
update_user_value "$user" '$LANGUAGE' "$language"
|
update_user_value "$user" '$LANGUAGE' "$language"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit
|
|
||||||
# Changing user contact email
|
|
||||||
old_email=$(get_user_value '$CONTACT')
|
|
||||||
update_user_value "$user" '$CONTACT' "$email"
|
|
||||||
pw_str=$(grep -n "^$user:" /etc/passwd)
|
|
||||||
str=$(echo "$pw_str" | cut -f 1 -d :)
|
|
||||||
sed -i "$str s/$old_email/$email/g" /etc/passwd
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Vesta #
|
# Vesta #
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# info: add ftp account for web domain.
|
# info: change ftp user password.
|
||||||
# options: USER DOMAIN FTP_USER FTP_PASSWORD
|
# options: USER DOMAIN FTP_USER FTP_PASSWORD
|
||||||
#
|
#
|
||||||
# The function creates addutional ftp account for web domain.
|
# The function changes ftp user password.
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
user=$1
|
user=$1
|
||||||
domain=$(idn -t --quiet -u "$2" )
|
domain=$(idn -t --quiet -u "$2" )
|
||||||
domain_idn=$(idn -t --quiet -a "$domain")
|
domain_idn=$(idn -t --quiet -a "$domain")
|
||||||
ftp_user=${1}_${3}
|
ftp_user=$3
|
||||||
ftp_password=$4
|
ftp_password=$4
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
|
@ -33,31 +33,39 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||||
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||||
is_object_value_empty 'web' 'DOMAIN' "$domain" '$FTP_USER'
|
get_domain_values 'web'
|
||||||
|
if [ -z "$(echo $FTP_USER | tr ':' '\n' | grep ^$ftp_user$)" ]; then
|
||||||
|
echo "Error: account $ftp_user doesn't exist"
|
||||||
|
log_event "$E_NOTEXIST" "$EVENT"
|
||||||
|
exit $E_NOTEXIST
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Adding user
|
# Changing ftp user password
|
||||||
/usr/sbin/adduser $ftp_user -g $user -s /sbin/nologin -M \
|
|
||||||
-d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
|
|
||||||
echo "$ftp_user:$ftp_password" | /usr/sbin/chpasswd
|
echo "$ftp_user:$ftp_password" | /usr/sbin/chpasswd
|
||||||
|
ftp_md5=$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)
|
||||||
ftp_md5="$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)"
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Vesta #
|
# Vesta #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Update config
|
# Rebuilding FTP variables
|
||||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' "$ftp_user"
|
position=$(echo $FTP_USER |tr ':' '\n' |grep -n '' |grep ":$ftp_user$" |\
|
||||||
|
cut -f 1 -d:)
|
||||||
|
ftp_md5=$(echo $FTP_MD5 |tr ':' '\n' |grep -n '' |\
|
||||||
|
sed -e "s%^$position:.*%$position:$ftp_md5%" |\
|
||||||
|
cut -f 2 -d :| sed -e "/^$/d"| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||||
|
|
||||||
|
# Updating config
|
||||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
|
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
log_history "added ftp account $ftp_user for $domain"
|
log_history "changed password for $ftp_user on $domain"
|
||||||
log_event "$OK" "$EVENT"
|
log_event "$OK" "$EVENT"
|
||||||
|
|
||||||
exit
|
exit
|
89
bin/v-change-web-domain-ftp-path
Executable file
89
bin/v-change-web-domain-ftp-path
Executable file
|
@ -0,0 +1,89 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# info: change path for ftp user.
|
||||||
|
# options: USER DOMAIN FTP_USER FTP_PATH
|
||||||
|
#
|
||||||
|
# The function changes ftp user path.
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Variable&Function #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Argument defenition
|
||||||
|
user=$1
|
||||||
|
domain=$(idn -t --quiet -u "$2" )
|
||||||
|
domain_idn=$(idn -t --quiet -a "$domain")
|
||||||
|
ftp_user=$3
|
||||||
|
ftp_path=$4
|
||||||
|
|
||||||
|
# Includes
|
||||||
|
source $VESTA/func/main.sh
|
||||||
|
source $VESTA/func/domain.sh
|
||||||
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Verifications #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
check_args '4' "$#" 'USER DOMAIN FTP_USER FTP_PATH'
|
||||||
|
validate_format 'user' 'domain' 'ftp_user'
|
||||||
|
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
|
||||||
|
is_object_valid 'user' 'USER' "$user"
|
||||||
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
|
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||||
|
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||||
|
get_domain_values 'web'
|
||||||
|
if [ -z "$(echo $FTP_USER | tr ':' '\n' | grep ^$ftp_user$)" ]; then
|
||||||
|
echo "Error: account $ftp_user doesn't exist"
|
||||||
|
log_event "$E_NOTEXIST" "$EVENT"
|
||||||
|
exit $E_NOTEXIST
|
||||||
|
fi
|
||||||
|
ftp_path_a=$(readlink -f "$HOMEDIR/$user/web/$domain/$ftp_path")
|
||||||
|
if [ -z "$(echo $ftp_path_a |grep $HOMEDIR/$user/web/$domain)" ]; then
|
||||||
|
echo "Error: absolute path $ftp_path_a is invalid"
|
||||||
|
log_event "$E_INVALID" "$EVENT"
|
||||||
|
exit $E_INVALID
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Action #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# MKDIR if path doesn't exist
|
||||||
|
if [ ! -e "$ftp_path_a" ]; then
|
||||||
|
mkdir -p "$ftp_path_a"
|
||||||
|
chown $user:$user "$ftp_path_a"
|
||||||
|
chmod 751 "$ftp_path_a"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Chaning ftp user path
|
||||||
|
pw_str=$(grep -n "^$ftp_user:" /etc/passwd)
|
||||||
|
str=$(echo "$pw_str" | cut -f 1 -d :)
|
||||||
|
old_path=$(echo "$pw_str" | cut -f 7 -d :)
|
||||||
|
sed -i "$str s%$old_path%$ftp_path_a%g" /etc/passwd
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Vesta #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Transforming absolute path to relative
|
||||||
|
ftp_path_r=$(echo $ftp_path_a |sed "s%$HOMEDIR/$user/web/$domain%%")
|
||||||
|
|
||||||
|
# Rebuilding FTP variables
|
||||||
|
position=$(echo $FTP_USER |tr ':' '\n' |grep -n '' |grep ":$ftp_user$" |\
|
||||||
|
cut -f 1 -d:)
|
||||||
|
ftp_path=$(echo $FTP_PATH |tr ':' '\n' |grep -n '' |\
|
||||||
|
sed -e "s%^$position:.*%$position:$ftp_path_r%" |\
|
||||||
|
cut -f 2 -d :| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||||
|
|
||||||
|
# Updating config
|
||||||
|
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_PATH' "$ftp_path"
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
log_history "changed path to $ftp_path_a for $ftp_user@$domain"
|
||||||
|
log_event "$OK" "$EVENT"
|
||||||
|
|
||||||
|
exit
|
|
@ -89,8 +89,14 @@ fi
|
||||||
sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe
|
sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe
|
||||||
sed -i "/ $user$/d" $VESTA/data/queue/traffic.pipe
|
sed -i "/ $user$/d" $VESTA/data/queue/traffic.pipe
|
||||||
|
|
||||||
# Removing system user
|
# Deleting system user
|
||||||
/usr/sbin/userdel -f $user
|
/usr/sbin/userdel -f $user >> /dev/null 2>&1
|
||||||
|
if [ "$?" != 0 ]; then
|
||||||
|
sed -i "/^$user:/d" /etc/passwd
|
||||||
|
sed -i "/^$user:/d" /etc/shadow
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Deleting user directories
|
||||||
chattr -i $HOMEDIR/$user/conf
|
chattr -i $HOMEDIR/$user/conf
|
||||||
rm -rf $HOMEDIR/$user
|
rm -rf $HOMEDIR/$user
|
||||||
rm -f /var/spool/mail/$user
|
rm -f /var/spool/mail/$user
|
||||||
|
|
|
@ -89,9 +89,15 @@ if [ ! -z "$STATS" ] && [ "$STATS" != 'no' ]; then
|
||||||
rm -f /etc/awstats/$STATS.$domain.conf
|
rm -f /etc/awstats/$STATS.$domain.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Deleting ftp account
|
# Deleting ftp users
|
||||||
if [ ! -z "$FTP_USER" ]; then
|
if [ ! -z "$FTP_USER" ]; then
|
||||||
/usr/sbin/userdel -f $FTP_USER >> /dev/null 2>&1
|
for ftp_user in ${FTP_USER//:/ }; do
|
||||||
|
/usr/sbin/userdel $ftp_user >> /dev/null 2>&1
|
||||||
|
if [ "$?" != 0 ]; then
|
||||||
|
sed -i "/^$ftp_user:/d" /etc/passwd
|
||||||
|
sed -i "/^$ftp_user:/d" /etc/shadow
|
||||||
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Deleting directory
|
# Deleting directory
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# info: delete webdomain ftp account.
|
# info: delete webdomain ftp account
|
||||||
# options: USER DOMAIN
|
# options: USER DOMAIN FTP_USER
|
||||||
#
|
#
|
||||||
# The function deletes additional ftp account.
|
# The function deletes additional ftp account.
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@
|
||||||
user=$1
|
user=$1
|
||||||
domain=$(idn -t --quiet -u "$2" )
|
domain=$(idn -t --quiet -u "$2" )
|
||||||
domain_idn=$(idn -t --quiet -a "$domain")
|
domain_idn=$(idn -t --quiet -a "$domain")
|
||||||
|
ftp_user=$3
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
source $VESTA/func/main.sh
|
source $VESTA/func/main.sh
|
||||||
|
@ -24,14 +25,19 @@ source $VESTA/conf/vesta.conf
|
||||||
# Verifications #
|
# Verifications #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
check_args '2' "$#" 'USER DOMAIN'
|
check_args '3' "$#" 'USER DOMAIN FTP_USER'
|
||||||
validate_format 'user' 'domain'
|
validate_format 'user' 'domain' 'ftp_user'
|
||||||
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
|
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
|
||||||
is_object_valid 'user' 'USER' "$user"
|
is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||||
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||||
is_object_value_exist 'web' 'DOMAIN' "$domain" '$FTP_USER'
|
get_domain_values 'web'
|
||||||
|
if [ -z "$(echo $FTP_USER | tr ':' '\n' | grep ^$ftp_user$)" ]; then
|
||||||
|
echo "Error: account $ftp_user doesn't exist"
|
||||||
|
log_event "$E_NOTEXIST" "$EVENT"
|
||||||
|
exit $E_NOTEXIST
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
@ -39,20 +45,34 @@ is_object_value_exist 'web' 'DOMAIN' "$domain" '$FTP_USER'
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Deleting ftp user
|
# Deleting ftp user
|
||||||
get_domain_values 'web'
|
/usr/sbin/userdel $ftp_user >> /dev/null 2>&1
|
||||||
/usr/sbin/userdel -f $FTP_USER >> /dev/null 2>&1
|
if [ "$?" != 0 ]; then
|
||||||
|
sed -i "/^$ftp_user:/d" /etc/passwd
|
||||||
|
sed -i "/^$ftp_user:/d" /etc/shadow
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Vesta #
|
# Vesta #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Rebuilding FTP variables
|
||||||
|
position=$(echo $FTP_USER |tr ':' '\n' |grep -n '' |grep ":$ftp_user$" |\
|
||||||
|
cut -f 1 -d:)
|
||||||
|
ftp_user=$(echo $FTP_USER |tr ':' '\n' |grep -n '' |grep -v "^$position:" |\
|
||||||
|
cut -f 2 -d :| sed -e "/^$/d"| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||||
|
ftp_md5=$(echo $FTP_MD5 |tr ':' '\n' |grep -n '' |grep -v "^$position:" |\
|
||||||
|
cut -f 2 -d :| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||||
|
ftp_path=$(echo $FTP_PATH |tr ':' '\n' |grep -n '' |grep -v "^$position:" |\
|
||||||
|
cut -f 2 -d :| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||||
|
|
||||||
# Update config
|
# Update config
|
||||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' ''
|
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' "$ftp_user"
|
||||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' ''
|
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
|
||||||
|
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_PATH' "$ftp_path"
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
log_history "deleted ftp account $FTP_USER for $domain"
|
log_history "deleted ftp account ${3} for $domain"
|
||||||
log_event "$OK" "$EVENT"
|
log_event "$OK" "$EVENT"
|
||||||
|
|
||||||
exit
|
exit
|
||||||
|
|
|
@ -37,6 +37,9 @@ json_list_rrd() {
|
||||||
[ "$type" = 'ssh' ]; then
|
[ "$type" = 'ssh' ]; then
|
||||||
title="$(echo $rrd| tr '[:lower:]' '[:upper:]') Usage"
|
title="$(echo $rrd| tr '[:lower:]' '[:upper:]') Usage"
|
||||||
fi
|
fi
|
||||||
|
if [ "$type" = 'mail' ]; then
|
||||||
|
title="Exim Usage"
|
||||||
|
fi
|
||||||
if [ "$type" = 'db' ]; then
|
if [ "$type" = 'db' ]; then
|
||||||
db_type=$(echo $rrd|cut -f 1 -d _ |sed -e 's/mysql/MySQL/g' \
|
db_type=$(echo $rrd|cut -f 1 -d _ |sed -e 's/mysql/MySQL/g' \
|
||||||
-e 's/pgsql/PostgreSQL/g' )
|
-e 's/pgsql/PostgreSQL/g' )
|
||||||
|
@ -84,14 +87,14 @@ if [ -n "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
|
||||||
rrd_types="$rrd_types web"
|
rrd_types="$rrd_types web"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||||
|
rrd_types="$rrd_types mail"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
if [ -n "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
||||||
rrd_types="$rrd_types db"
|
rrd_types="$rrd_types db"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#if [ -n "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
|
||||||
# rrd_types="$rrd_types mail"
|
|
||||||
#fi
|
|
||||||
|
|
||||||
if [ -n "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
|
if [ -n "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
|
||||||
rrd_types="$rrd_types ftp"
|
rrd_types="$rrd_types ftp"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -70,6 +70,7 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
|
|
||||||
# Defining config
|
# Defining config
|
||||||
conf=$USER_DATA/user.conf
|
conf=$USER_DATA/user.conf
|
||||||
|
HOME=$HOMEDIR/$user
|
||||||
|
|
||||||
# Defining fileds to select
|
# Defining fileds to select
|
||||||
fields='$USER $FNAME $LNAME $PACKAGE $WEB_TEMPLATE $PROXY_TEMPLATE
|
fields='$USER $FNAME $LNAME $PACKAGE $WEB_TEMPLATE $PROXY_TEMPLATE
|
||||||
|
@ -81,7 +82,7 @@ fields='$USER $FNAME $LNAME $PACKAGE $WEB_TEMPLATE $PROXY_TEMPLATE
|
||||||
$U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH
|
$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_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS
|
||||||
$U_MAIL_DOMAINS $U_MAIL_DKIM $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS
|
$U_MAIL_DOMAINS $U_MAIL_DKIM $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS
|
||||||
$U_BACKUPS $LANGUAGE $TIME $DATE'
|
$U_BACKUPS $LANGUAGE $HOME $TIME $DATE'
|
||||||
|
|
||||||
# Listing user
|
# Listing user
|
||||||
case $format in
|
case $format in
|
||||||
|
|
|
@ -76,7 +76,11 @@ conf=$USER_DATA/web.conf
|
||||||
|
|
||||||
# Defining fileds to select
|
# Defining fileds to select
|
||||||
fields='$DOMAIN $IP $IP6 $U_DISK $U_BANDWIDTH $TPL $ALIAS $STATS $STATS_USER
|
fields='$DOMAIN $IP $IP6 $U_DISK $U_BANDWIDTH $TPL $ALIAS $STATS $STATS_USER
|
||||||
$SSL $SSL_HOME $FTP_USER $PROXY $PROXY_EXT $SUSPENDED $TIME $DATE'
|
$SSL $SSL_HOME $FTP_USER $FTP_PATH $PROXY $PROXY_EXT $DOCUMENT_ROOT
|
||||||
|
$SUSPENDED $TIME $DATE'
|
||||||
|
|
||||||
|
# Defining document root
|
||||||
|
DOCUMENT_ROOT="$HOMEDIR/$user/web/$domain/public_html"
|
||||||
|
|
||||||
# Listing domains
|
# Listing domains
|
||||||
case $format in
|
case $format in
|
||||||
|
|
|
@ -34,8 +34,8 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
conf=$USER_DATA/web.conf
|
conf=$USER_DATA/web.conf
|
||||||
|
|
||||||
# Defining fileds to select
|
# Defining fileds to select
|
||||||
fields="\$DOMAIN \$IP \$IP6 \$U_DISK \$U_BANDWIDTH \$TPL \$ALIAS"
|
fields="\$DOMAIN \$IP \$IP6 \$U_DISK \$U_BANDWIDTH \$TPL \$ALIAS \$STATS"
|
||||||
fields="$fields \$STATS \$STATS_USER \$SSL \$SSL_HOME \$FTP_USER"
|
fields="$fields \$STATS_USER \$SSL \$SSL_HOME \$FTP_USER \$FTP_PATH"
|
||||||
fields="$fields \$PROXY \$PROXY_EXT \$SUSPENDED \$TIME \$DATE"
|
fields="$fields \$PROXY \$PROXY_EXT \$SUSPENDED \$TIME \$DATE"
|
||||||
|
|
||||||
# Listing domains
|
# Listing domains
|
||||||
|
|
|
@ -45,7 +45,7 @@ if [ -z "$FTP_SYSTEM" ] || [ "$FTP_SYSTEM" = 'remote' ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Restart system
|
# Restart system
|
||||||
/etc/init.d/$FTP_SYSTEM restart >/dev/null 2>&1
|
service $FTP_SYSTEM restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
send_email_report
|
send_email_report
|
||||||
echo "Error: $FTP_SYSTEM restart failed"
|
echo "Error: $FTP_SYSTEM restart failed"
|
||||||
|
|
|
@ -45,7 +45,7 @@ if [ -z "$MAIL_SYSTEM" ] || [ "$MAIL_SYSTEM" = 'remote' ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Restart system
|
# Restart system
|
||||||
/etc/init.d/$MAIL_SYSTEM restart >/dev/null 2>&1
|
service $MAIL_SYSTEM restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
send_email_report
|
send_email_report
|
||||||
echo "Error: $MAIL_SYSTEM restart failed"
|
echo "Error: $MAIL_SYSTEM restart failed"
|
||||||
|
|
|
@ -363,11 +363,16 @@ if [ "$web" != 'no' ]; then
|
||||||
exit $E_PARSING
|
exit $E_PARSING
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Fix for tar < 1.24
|
||||||
|
find $HOMEDIR/$user/web/$domain -type d \
|
||||||
|
-exec chown -h $user:$user {} \;
|
||||||
|
|
||||||
# ReChown files if uid differs
|
# ReChown files if uid differs
|
||||||
if [ "$old_uid" -ne "$new_uid" ]; then
|
if [ "$old_uid" -ne "$new_uid" ]; then
|
||||||
find $HOMEDIR/$user/web/$domain/ -user $old_uid \
|
find $HOMEDIR/$user/web/$domain/ -user $old_uid \
|
||||||
-exec chown -h $user:$user {} \;
|
-exec chown -h $user:$user {} \;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Restart WEB
|
# Restart WEB
|
||||||
|
|
|
@ -110,6 +110,11 @@ for period in $periods; do
|
||||||
$BIN/v-update-sys-rrd-$PROXY_SYSTEM $period >/dev/null 2>&1
|
$BIN/v-update-sys-rrd-$PROXY_SYSTEM $period >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Updating mail stats
|
||||||
|
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||||
|
$BIN/v-update-sys-rrd-mail $period >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
# Updating ftp stats
|
# Updating ftp stats
|
||||||
if [ ! -z "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
|
if [ ! -z "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
|
||||||
$BIN/v-update-sys-rrd-ftp $period >/dev/null 2>&1
|
$BIN/v-update-sys-rrd-ftp $period >/dev/null 2>&1
|
||||||
|
|
96
bin/v-update-sys-rrd-mail
Executable file
96
bin/v-update-sys-rrd-mail
Executable file
|
@ -0,0 +1,96 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# info: update mail rrd
|
||||||
|
# options: PERIOD
|
||||||
|
#
|
||||||
|
# The function is for updating mail rrd database and graphic.
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Variable&Function #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Argument defenition
|
||||||
|
period=${1-daily}
|
||||||
|
|
||||||
|
# Includes
|
||||||
|
source $VESTA/func/main.sh
|
||||||
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Action #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Switching on time period
|
||||||
|
case $period in
|
||||||
|
daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';;
|
||||||
|
weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';;
|
||||||
|
monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';;
|
||||||
|
yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';;
|
||||||
|
*) exit $E_RRD ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Checking directory
|
||||||
|
if [ ! -d "$RRD/mail" ]; then
|
||||||
|
mkdir $RRD/mail
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checking database
|
||||||
|
if [ ! -e "$RRD/mail/mail.rrd" ]; then
|
||||||
|
# Adding database
|
||||||
|
rrdtool create $RRD/mail/mail.rrd --step $RRD_STEP \
|
||||||
|
DS:A:GAUGE:600:U:U \
|
||||||
|
RRA:AVERAGE:0.5:1:600 \
|
||||||
|
RRA:AVERAGE:0.5:6:700 \
|
||||||
|
RRA:AVERAGE:0.5:24:775 \
|
||||||
|
RRA:AVERAGE:0.5:288:797 \
|
||||||
|
RRA:MAX:0.5:1:600 \
|
||||||
|
RRA:MAX:0.5:6:700 \
|
||||||
|
RRA:MAX:0.5:24:775 \
|
||||||
|
RRA:MAX:0.5:288:797
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Parsing data
|
||||||
|
if [ "$period" = 'daily' ]; then
|
||||||
|
a=0
|
||||||
|
a=$(exim -bpc)
|
||||||
|
|
||||||
|
# Updating rrd database
|
||||||
|
rrdtool update $RRD/mail/mail.rrd N:$a
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Updating daily graph
|
||||||
|
rrdtool graph $RRD/mail/$period-mail.png \
|
||||||
|
--imgformat PNG \
|
||||||
|
--height="120" \
|
||||||
|
--width="440" \
|
||||||
|
--start "$start" \
|
||||||
|
--end "$end" \
|
||||||
|
--vertical-label "Queue Size" \
|
||||||
|
--x-grid "$grid" \
|
||||||
|
-c "BACK#7a766d" \
|
||||||
|
-c "SHADEA#7a766d" \
|
||||||
|
-c "SHADEB#7a766d" \
|
||||||
|
-c "FONT#FFFFFF" \
|
||||||
|
-c "CANVAS#302c2d" \
|
||||||
|
-c "GRID#666666" \
|
||||||
|
-c "MGRID#AAAAAA" \
|
||||||
|
-c "FRAME#302c2d" \
|
||||||
|
-c "ARROW#FFFFFF" \
|
||||||
|
DEF:a=$RRD/mail/mail.rrd:A:AVERAGE \
|
||||||
|
COMMENT:'\r' \
|
||||||
|
LINE1:a#fefda0:"Emails " \
|
||||||
|
GPRINT:a:'LAST:Current\:''%8.0lf' \
|
||||||
|
GPRINT:a:'MIN:Min\:''%8.0lf' \
|
||||||
|
GPRINT:a:'MAX:Max\:''%8.0lf\j' &>/dev/null; result=$?
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Vesta #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
if [ "$result" -ne 0 ]; then
|
||||||
|
exit $E_RRD
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit
|
|
@ -95,11 +95,11 @@ rrdtool graph $RRD/mem/$period-mem.png \
|
||||||
GPRINT:used:'LAST: Current\:''%8.0lf' \
|
GPRINT:used:'LAST: Current\:''%8.0lf' \
|
||||||
GPRINT:used:'MIN: Min\:''%8.0lf' \
|
GPRINT:used:'MIN: Min\:''%8.0lf' \
|
||||||
GPRINT:used:'MAX: Max\:''%8.0lf\j' \
|
GPRINT:used:'MAX: Max\:''%8.0lf\j' \
|
||||||
AREA:free#1c74cd:"FREE" \
|
LINE1:free#1c74cd:"FREE" \
|
||||||
GPRINT:free:'LAST: Current\:''%8.0lf' \
|
GPRINT:free:'LAST: Current\:''%8.0lf' \
|
||||||
GPRINT:free:'MIN: Min\:''%8.0lf' \
|
GPRINT:free:'MIN: Min\:''%8.0lf' \
|
||||||
GPRINT:free:'MAX: Max\:''%8.0lf\j'\
|
GPRINT:free:'MAX: Max\:''%8.0lf\j'\
|
||||||
LINE1:swap#f57900:"SWAP" \
|
LINE2:swap#f57900:"SWAP" \
|
||||||
GPRINT:swap:'LAST:Current\:''%8.0lf' \
|
GPRINT:swap:'LAST:Current\:''%8.0lf' \
|
||||||
GPRINT:swap:'MIN:Min\:''%8.0lf' \
|
GPRINT:swap:'MIN:Min\:''%8.0lf' \
|
||||||
GPRINT:swap:'MAX:Max\:''%8.0lf\j' &>/dev/null; result=$?
|
GPRINT:swap:'MAX:Max\:''%8.0lf\j' &>/dev/null; result=$?
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
# Variable&Function #
|
# Variable&Function #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Importing system variables
|
||||||
|
source /etc/profile
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
source $VESTA/func/main.sh
|
source $VESTA/func/main.sh
|
||||||
source $VESTA/conf/vesta.conf
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
|
@ -67,7 +67,7 @@ echo "WEB='$WEB'" > $USER_DATA/backup-excludes.conf
|
||||||
echo "DNS='$DNS'" >> $USER_DATA/backup-excludes.conf
|
echo "DNS='$DNS'" >> $USER_DATA/backup-excludes.conf
|
||||||
echo "MAIL='$MAIL'" >> $USER_DATA/backup-excludes.conf
|
echo "MAIL='$MAIL'" >> $USER_DATA/backup-excludes.conf
|
||||||
echo "DB='$DB'" >> $USER_DATA/backup-excludes.conf
|
echo "DB='$DB'" >> $USER_DATA/backup-excludes.conf
|
||||||
echo "CRON='$DB'" >> $USER_DATA/backup-excludes.conf
|
echo "CRON='$CRON'" >> $USER_DATA/backup-excludes.conf
|
||||||
echo "USER='$USER'" >> $USER_DATA/backup-excludes.conf
|
echo "USER='$USER'" >> $USER_DATA/backup-excludes.conf
|
||||||
chmod 660 $USER_DATA/backup-excludes.conf
|
chmod 660 $USER_DATA/backup-excludes.conf
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
|
|
||||||
# Updating disk quota
|
# Updating disk quota
|
||||||
soft=$(get_user_value '$DISK_QUOTA')
|
soft=$(get_user_value '$DISK_QUOTA')
|
||||||
soft=$((soft * 100))
|
soft=$((soft * 1000))
|
||||||
hard=$((soft + 50000))
|
hard=$((soft + 50000))
|
||||||
|
|
||||||
mnt=$(df -P /home |awk '{print $6}' |tail -n1)
|
mnt=$(df -P /home |awk '{print $6}' |tail -n1)
|
||||||
|
|
|
@ -491,9 +491,9 @@ is_dns_nameserver_valid() {
|
||||||
if [ ! -z "$remote" ]; then
|
if [ ! -z "$remote" ]; then
|
||||||
zone=$USER_DATA/dns/$d.conf
|
zone=$USER_DATA/dns/$d.conf
|
||||||
a_record=$(echo $r |cut -f 1 -d '.')
|
a_record=$(echo $r |cut -f 1 -d '.')
|
||||||
record=$(grep "RECORD='$a_record'" $zone| grep "TYPE='A'")
|
n_record=$(grep "RECORD='$a_record'" $zone| grep "TYPE='A'")
|
||||||
if [ -z "$record" ]; then
|
if [ -z "$n_record" ]; then
|
||||||
echo "Error: corresponding A record $a_record.$d is not exist"
|
echo "Error: corresponding A record $a_record.$d does not exist"
|
||||||
log_event "$E_NOTEXIST" "$EVENT"
|
log_event "$E_NOTEXIST" "$EVENT"
|
||||||
exit $E_NOTEXIST
|
exit $E_NOTEXIST
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -740,11 +740,16 @@ validate_format_mhdmw() {
|
||||||
# proxy extention or DNS record
|
# proxy extention or DNS record
|
||||||
validate_format_common() {
|
validate_format_common() {
|
||||||
exclude="[!|#|$|^|&|(|)|+|=|{|}|:|<|>|?|/|\|\"|'|;|%|\`| ]"
|
exclude="[!|#|$|^|&|(|)|+|=|{|}|:|<|>|?|/|\|\"|'|;|%|\`| ]"
|
||||||
if [[ "$1" =~ $exclude ]] || [ 200 -le ${#1} ]; then
|
if [[ "$1" =~ $exclude ]]; then
|
||||||
echo "Error: $2 $1 is not valid"
|
echo "Error: $2 $1 is not valid"
|
||||||
log_event "$E_INVALID" "$EVENT"
|
log_event "$E_INVALID" "$EVENT"
|
||||||
exit $E_INVALID
|
exit $E_INVALID
|
||||||
fi
|
fi
|
||||||
|
if [ 400 -le ${#1} ]; then
|
||||||
|
echo "Error: $2 $1 is too long"
|
||||||
|
log_event "$E_INVALID" "$EVENT"
|
||||||
|
exit $E_INVALID
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# DNS record value
|
# DNS record value
|
||||||
|
|
|
@ -318,21 +318,36 @@ rebuild_web_domain_conf() {
|
||||||
$WEBTPL/$PROXY_SYSTEM/$PROXY.sh $user $domain $ip $HOMEDIR $docroot
|
$WEBTPL/$PROXY_SYSTEM/$PROXY.sh $user $domain $ip $HOMEDIR $docroot
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking ftp
|
# Defining ftp user shell
|
||||||
if [ ! -z "$FTP_USER" ]; then
|
if [ -z "$FTP_SHELL" ]; then
|
||||||
if [ -z "$(grep ^$FTP_USER: /etc/passwd)" ]; then
|
shell='/sbin/nologin'
|
||||||
shell='/sbin/nologin'
|
if [ -e "/usr/bin/rssh" ]; then
|
||||||
if [ -e "/usr/bin/rssh" ]; then
|
shell='/usr/bin/rssh'
|
||||||
shell='/usr/bin/rssh'
|
fi
|
||||||
fi
|
else
|
||||||
/usr/sbin/useradd $FTP_USER \
|
shell=$FTP_SHELL
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checking ftp users
|
||||||
|
for ftp_user in ${FTP_USER//:/ }; do
|
||||||
|
if [ -z "$(grep ^$ftp_user: /etc/passwd)" ]; then
|
||||||
|
# Parsing ftp user variables
|
||||||
|
position=$(echo $FTP_USER | tr ':' '\n' | grep -n '' |\
|
||||||
|
grep ":$ftp_user$" | cut -f 1 -d:)
|
||||||
|
ftp_path=$(echo $FTP_PATH | tr ':' '\n' | grep -n '' |\
|
||||||
|
grep "^$position:" | cut -f 2 -d :)
|
||||||
|
ftp_md5=$(echo $FTP_MD5 | tr ':' '\n' | grep -n '' |\
|
||||||
|
grep "^$position:" | cut -f 2 -d :)
|
||||||
|
|
||||||
|
# Adding ftp user
|
||||||
|
/usr/sbin/useradd $ftp_user \
|
||||||
-s $shell \
|
-s $shell \
|
||||||
-o -u $(id -u $user) \
|
-o -u $(id -u $user) \
|
||||||
-g $(id -u $user) \
|
-g $(id -u $user) \
|
||||||
-M -d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
|
-M -d "$HOMEDIR/$user/web/$domain${ftp_path}" >/dev/null 2>&1
|
||||||
|
|
||||||
# Update password
|
# Updating ftp user password
|
||||||
shadow=$(grep "^$FTP_USER:" /etc/shadow)
|
shadow=$(grep "^$ftp_user:" /etc/shadow)
|
||||||
shdw3=$(echo "$shadow" | cut -f3 -d :)
|
shdw3=$(echo "$shadow" | cut -f3 -d :)
|
||||||
shdw4=$(echo "$shadow" | cut -f4 -d :)
|
shdw4=$(echo "$shadow" | cut -f4 -d :)
|
||||||
shdw5=$(echo "$shadow" | cut -f5 -d :)
|
shdw5=$(echo "$shadow" | cut -f5 -d :)
|
||||||
|
@ -340,15 +355,14 @@ rebuild_web_domain_conf() {
|
||||||
shdw7=$(echo "$shadow" | cut -f7 -d :)
|
shdw7=$(echo "$shadow" | cut -f7 -d :)
|
||||||
shdw8=$(echo "$shadow" | cut -f8 -d :)
|
shdw8=$(echo "$shadow" | cut -f8 -d :)
|
||||||
shdw9=$(echo "$shadow" | cut -f9 -d :)
|
shdw9=$(echo "$shadow" | cut -f9 -d :)
|
||||||
shadow_str="$FTP_USER:$FTP_MD5:$shdw3:$shdw4:$shdw5:$shdw6"
|
shadow_str="$ftp_user:$ftp_md5:$shdw3:$shdw4:$shdw5:$shdw6"
|
||||||
shadow_str="$shadow_str:$shdw7:$shdw8:$shdw9"
|
shadow_str="$shadow_str:$shdw7:$shdw8:$shdw9"
|
||||||
|
|
||||||
chmod u+w /etc/shadow
|
chmod u+w /etc/shadow
|
||||||
sed -i "/^$FTP_USER:*/d" /etc/shadow
|
sed -i "/^$ftp_user:*/d" /etc/shadow
|
||||||
echo "$shadow_str" >> /etc/shadow
|
echo "$shadow_str" >> /etc/shadow
|
||||||
chmod u-w /etc/shadow
|
chmod u-w /etc/shadow
|
||||||
fi
|
fi
|
||||||
fi
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# DNS domain rebuild
|
# DNS domain rebuild
|
||||||
|
|
|
@ -6,11 +6,21 @@ send_api_cmd() {
|
||||||
USER=admin
|
USER=admin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
auth="user=$USER&password=$PASSWORD&returncode=yes"
|
answer=$(curl -s -k \
|
||||||
cmd="cmd=$1"
|
--data-urlencode "user=$USER" \
|
||||||
args="arg1=$2&arg2=$3&arg3=$4&arg4=$5&arg5=$6&arg6=$7&arg7=$8&arg8=$9"
|
--data-urlencode "password=$PASSWORD" \
|
||||||
args=$(echo "$args" |sed -e "s/+/%2B/g")
|
--data-urlencode "returncode=yes" \
|
||||||
answer=$(curl -s -k --data "$auth&$cmd&$args" https://$HOST:$PORT/api/)
|
--data-urlencode "cmd=$1" \
|
||||||
|
--data-urlencode "arg1=$2" \
|
||||||
|
--data-urlencode "arg2=$3" \
|
||||||
|
--data-urlencode "arg3=$4" \
|
||||||
|
--data-urlencode "arg4=$5" \
|
||||||
|
--data-urlencode "arg5=$6" \
|
||||||
|
--data-urlencode "arg6=$7" \
|
||||||
|
--data-urlencode "arg7=$8" \
|
||||||
|
--data-urlencode "arg8=$9" \
|
||||||
|
https://$HOST:$PORT/api/)
|
||||||
|
|
||||||
if [ "$answer" != '0' ]; then
|
if [ "$answer" != '0' ]; then
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
@ -90,7 +100,7 @@ is_dnshost_alive() {
|
||||||
$send_cmd v-list-sys-config
|
$send_cmd v-list-sys-config
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Error: $type connection to $HOST failed"
|
echo "Error: $type connection to $HOST failed"
|
||||||
log_event "$E_CONNECT $EVENT"
|
log_event "$E_CONNECT" "$EVENT"
|
||||||
exit $E_CONNECT
|
exit $E_CONNECT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -104,7 +114,7 @@ is_dnshost_alive() {
|
||||||
$send_cmd v-list-user $DNS_USER
|
$send_cmd v-list-user $DNS_USER
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Error: dns user $DNS_USER doesn't exist"
|
echo "Error: dns user $DNS_USER doesn't exist"
|
||||||
log_event "$E_NOTEXIST $EVENT"
|
log_event "$E_NOTEXIST" "$EVENT"
|
||||||
exit $E_NOTEXIST
|
exit $E_NOTEXIST
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -146,7 +156,7 @@ remote_dns_health_check() {
|
||||||
echo -e "\n\n--\nVesta Control Panel\n$(hostname)" >> $tmpfile
|
echo -e "\n\n--\nVesta Control Panel\n$(hostname)" >> $tmpfile
|
||||||
cat $tmpfile | $send_mail -s "$subj" $email
|
cat $tmpfile | $send_mail -s "$subj" $email
|
||||||
|
|
||||||
log_event "$E_CONNECT $EVENT"
|
log_event "$E_CONNECT" "$EVENT"
|
||||||
dconf="../../../conf/dns-cluster"
|
dconf="../../../conf/dns-cluster"
|
||||||
update_object_value "$dconf" 'HOST' "$HOST" '$SUSPENDED' 'yes'
|
update_object_value "$dconf" 'HOST' "$HOST" '$SUSPENDED' 'yes'
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
ssl = yes
|
ssl = yes
|
||||||
ssl_cert = </etc/dovecot/dovecot.pem
|
ssl_cert = </usr/local/vesta/ssl/certificate.crt
|
||||||
ssl_key = </etc/dovecot/private/dovecot.pem
|
ssl_key = </usr/local/vesta/ssl/certificate.key
|
||||||
|
|
|
@ -25,9 +25,9 @@ spamd_address = 127.0.0.1 783
|
||||||
av_scanner = clamd: /var/run/clamav/clamd.ctl
|
av_scanner = clamd: /var/run/clamav/clamd.ctl
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
#tls_advertise_hosts = *
|
tls_advertise_hosts = *
|
||||||
#tls_certificate = /usr/local/vesta/ssl/certificate.crt
|
tls_certificate = /usr/local/vesta/ssl/certificate.crt
|
||||||
#tls_privatekey = /usr/local/vesta/ssl/certificate.key
|
tls_privatekey = /usr/local/vesta/ssl/certificate.key
|
||||||
|
|
||||||
daemon_smtp_ports = 25 : 465 : 587 : 2525
|
daemon_smtp_ports = 25 : 465 : 587 : 2525
|
||||||
tls_on_connect_ports = 465
|
tls_on_connect_ports = 465
|
||||||
|
|
|
@ -2,28 +2,25 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>403 — Forbidden</title>
|
<title>403 — Forbidden</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="You do not have permission to view this"/>
|
<meta name="description" content="403 - Forbidden"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:375px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:375px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
a:visited {color: #34536A;}
|
a:visited {color: #34536A;}
|
||||||
a:active {color: #34536A;}
|
a:active {color: #34536A;}
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p><a href="http://%domain%/">%domain%</a></p>
|
<p><a href="http://%domain%/">%domain%</a></p>
|
||||||
|
|
||||||
<h1>403</h1>
|
<h1>403</h1>
|
||||||
<h2>Forbidden</h2>
|
<h2>Forbidden</h2>
|
||||||
<div>
|
<div>
|
||||||
Unfortunately, you do not have permission to view this
|
You do not have permission to view this page.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,28 +1,27 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>404 — Not Found</title>
|
<title>404 — Page Not Found</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="Sorry, page not found"/>
|
<meta name="description" content="404 - Page Not Found"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:375px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:375px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
a:visited {color: #34536A;}
|
a:visited {color: #34536A;}
|
||||||
a:active {color: #34536A;}
|
a:active {color: #34536A;}
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p><a href="http://%domain%/">%domain%</a></p>
|
<p><a href="http://%domain%/">%domain%</a></p>
|
||||||
<h1>404</h1>
|
<h1>404</h1>
|
||||||
<h2>Page Not Found</h2>
|
<h2>Page Not Found</h2>
|
||||||
<div>
|
<div>
|
||||||
It seems that the page you were trying to reach does not exist anymore, or maybe it has just moved.
|
The page you were trying to reach does not exist. Or, maybe it has moved.
|
||||||
You can start again from the <a href="http://%domain%/">home</a> or go back to <a href="javascript:%20history.go(-1)">previous page</a>.
|
You can start again from <a href="http://%domain%/">home</a> or go back to the <a href="javascript:%20history.go(-1)">previous page</a>.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,29 +1,26 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>500 — Internal Sever Error</title>
|
<title>500 — Internal Server Error</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="Sorry, something went wrong. Internal Server Error"/>
|
<meta name="description" content="500 - Internal Server Error"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:375px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:375px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
a:visited {color: #34536A;}
|
a:visited {color: #34536A;}
|
||||||
a:active {color: #34536A;}
|
a:active {color: #34536A;}
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p><a href="http://%domain%/">%domain%</a></p>
|
<p><a href="http://%domain%/">%domain%</a></p>
|
||||||
|
|
||||||
<h1>500</h1>
|
<h1>500</h1>
|
||||||
<h2>Internal Server Error</h2>
|
<h2>Internal Server Error</h2>
|
||||||
<div>
|
<div>
|
||||||
Sorry, something went wrong :(
|
Something went wrong. Please try your request again.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>SUSPEND</title>
|
<title>Website Suspended</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="Sorry, something went wrong. Internal Server Error"/>
|
<meta name="description" content="This website has been suspended."/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:84px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:84px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: 15px 0 25px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
|
@ -15,13 +15,11 @@
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h1>SUSPEND</h1>
|
<h1>SUSPENDED</h1>
|
||||||
<h2>This site has been suspended</h2>
|
<h2>This website has been suspended.</h2>
|
||||||
<div>
|
<div>
|
||||||
Please contact technical support departament.
|
Please contact the technical support department.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -2,28 +2,25 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>403 — Forbidden</title>
|
<title>403 — Forbidden</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="You do not have permission to view this"/>
|
<meta name="description" content="403 - Forbidden"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:375px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:375px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
a:visited {color: #34536A;}
|
a:visited {color: #34536A;}
|
||||||
a:active {color: #34536A;}
|
a:active {color: #34536A;}
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p><a href="http://%domain%/">%domain%</a></p>
|
<p><a href="http://%domain%/">%domain%</a></p>
|
||||||
|
|
||||||
<h1>403</h1>
|
<h1>403</h1>
|
||||||
<h2>Forbidden</h2>
|
<h2>Forbidden</h2>
|
||||||
<div>
|
<div>
|
||||||
Unfortunately, you do not have permission to view this
|
You do not have permission to view this page.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,28 +1,27 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>404 — Not Found</title>
|
<title>404 — Page Not Found</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="Sorry, page not found"/>
|
<meta name="description" content="404 - Page Not Found"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:375px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:375px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
a:visited {color: #34536A;}
|
a:visited {color: #34536A;}
|
||||||
a:active {color: #34536A;}
|
a:active {color: #34536A;}
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p><a href="http://%domain%/">%domain%</a></p>
|
<p><a href="http://%domain%/">%domain%</a></p>
|
||||||
<h1>404</h1>
|
<h1>404</h1>
|
||||||
<h2>Page Not Found</h2>
|
<h2>Page Not Found</h2>
|
||||||
<div>
|
<div>
|
||||||
It seems that the page you were trying to reach does not exist anymore, or maybe it has just moved.
|
The page you were trying to reach does not exist. Or, maybe it has moved.
|
||||||
You can start again from the <a href="http://%domain%/">home</a> or go back to <a href="javascript:%20history.go(-1)">previous page</a>.
|
You can start again from <a href="http://%domain%/">home</a> or go back to the <a href="javascript:%20history.go(-1)">previous page</a>.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,29 +1,26 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>500 — Internal Sever Error</title>
|
<title>500 — Internal Server Error</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="Sorry, something went wrong. Internal Server Error"/>
|
<meta name="description" content="500 - Internal Server Error"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:375px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:375px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
a:visited {color: #34536A;}
|
a:visited {color: #34536A;}
|
||||||
a:active {color: #34536A;}
|
a:active {color: #34536A;}
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p><a href="http://%domain%/">%domain%</a></p>
|
<p><a href="http://%domain%/">%domain%</a></p>
|
||||||
|
|
||||||
<h1>500</h1>
|
<h1>500</h1>
|
||||||
<h2>Internal Server Error</h2>
|
<h2>Internal Server Error</h2>
|
||||||
<div>
|
<div>
|
||||||
Sorry, something went wrong :(
|
Something went wrong. Please try your request again.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>SUSPEND</title>
|
<title>Website Suspended</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="Sorry, something went wrong. Internal Server Error"/>
|
<meta name="description" content="This website has been suspended."/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:84px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:84px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: 15px 0 25px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
|
@ -15,13 +15,11 @@
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h1>SUSPEND</h1>
|
<h1>SUSPENDED</h1>
|
||||||
<h2>This site has been suspended</h2>
|
<h2>This website has been suspended.</h2>
|
||||||
<div>
|
<div>
|
||||||
Please contact technical support departament.
|
Please contact the technical support department.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
ssl = yes
|
ssl = yes
|
||||||
ssl_cert = </etc/dovecot/dovecot.pem
|
ssl_cert = </usr/local/vesta/ssl/certificate.crt
|
||||||
ssl_key = </etc/dovecot/private/dovecot.pem
|
ssl_key = </usr/local/vesta/ssl/certificate.key
|
||||||
|
|
|
@ -25,9 +25,9 @@ spamd_address = 127.0.0.1 783
|
||||||
av_scanner = clamd: /var/run/clamav/clamd.ctl
|
av_scanner = clamd: /var/run/clamav/clamd.ctl
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
#tls_advertise_hosts = *
|
tls_advertise_hosts = *
|
||||||
#tls_certificate = /usr/local/vesta/ssl/certificate.crt
|
tls_certificate = /usr/local/vesta/ssl/certificate.crt
|
||||||
#tls_privatekey = /usr/local/vesta/ssl/certificate.key
|
tls_privatekey = /usr/local/vesta/ssl/certificate.key
|
||||||
|
|
||||||
daemon_smtp_ports = 25 : 465 : 587 : 2525
|
daemon_smtp_ports = 25 : 465 : 587 : 2525
|
||||||
tls_on_connect_ports = 465
|
tls_on_connect_ports = 465
|
||||||
|
|
|
@ -2,28 +2,25 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>403 — Forbidden</title>
|
<title>403 — Forbidden</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="You do not have permission to view this"/>
|
<meta name="description" content="403 - Forbidden"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:375px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:375px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
a:visited {color: #34536A;}
|
a:visited {color: #34536A;}
|
||||||
a:active {color: #34536A;}
|
a:active {color: #34536A;}
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p><a href="http://%domain%/">%domain%</a></p>
|
<p><a href="http://%domain%/">%domain%</a></p>
|
||||||
|
|
||||||
<h1>403</h1>
|
<h1>403</h1>
|
||||||
<h2>Forbidden</h2>
|
<h2>Forbidden</h2>
|
||||||
<div>
|
<div>
|
||||||
Unfortunately, you do not have permission to view this
|
You do not have permission to view this page.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,28 +1,27 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>404 — Not Found</title>
|
<title>404 — Page Not Found</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="Sorry, page not found"/>
|
<meta name="description" content="404 - Page Not Found"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:375px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:375px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
a:visited {color: #34536A;}
|
a:visited {color: #34536A;}
|
||||||
a:active {color: #34536A;}
|
a:active {color: #34536A;}
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p><a href="http://%domain%/">%domain%</a></p>
|
<p><a href="http://%domain%/">%domain%</a></p>
|
||||||
<h1>404</h1>
|
<h1>404</h1>
|
||||||
<h2>Page Not Found</h2>
|
<h2>Page Not Found</h2>
|
||||||
<div>
|
<div>
|
||||||
It seems that the page you were trying to reach does not exist anymore, or maybe it has just moved.
|
The page you were trying to reach does not exist. Or, maybe it has moved.
|
||||||
You can start again from the <a href="http://%domain%/">home</a> or go back to <a href="javascript:%20history.go(-1)">previous page</a>.
|
You can start again from <a href="http://%domain%/">home</a> or go back to the <a href="javascript:%20history.go(-1)">previous page</a>.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,29 +1,26 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>500 — Internal Sever Error</title>
|
<title>500 — Internal Server Error</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="Sorry, something went wrong. Internal Server Error"/>
|
<meta name="description" content="500 - Internal Server Error"/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:180px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:375px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:375px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
a:visited {color: #34536A;}
|
a:visited {color: #34536A;}
|
||||||
a:active {color: #34536A;}
|
a:active {color: #34536A;}
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p><a href="http://%domain%/">%domain%</a></p>
|
<p><a href="http://%domain%/">%domain%</a></p>
|
||||||
|
|
||||||
<h1>500</h1>
|
<h1>500</h1>
|
||||||
<h2>Internal Server Error</h2>
|
<h2>Internal Server Error</h2>
|
||||||
<div>
|
<div>
|
||||||
Sorry, something went wrong :(
|
Something went wrong. Please try your request again.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
<title>SUSPEND</title>
|
<title>Website Suspended</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
<meta name="description" content="Sorry, something went wrong. Internal Server Error"/>
|
<meta name="description" content="This website has been suspended."/>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||||
h1 {font-size:84px; color:#99A7AF; margin: 70px 0 0 0;}
|
h1 {font-size:84px; color:#99A7AF; margin: 70px 0 0 0;}
|
||||||
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
h2 {color: #DE6C5D; font-family: arial; font-size: 20px; font-weight: bold; letter-spacing: -1px; margin: 15px 0 25px;}
|
||||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||||
a:link {color: #34536A;}
|
a:link {color: #34536A;}
|
||||||
|
@ -15,13 +15,11 @@
|
||||||
a:hover {color: #34536A;}
|
a:hover {color: #34536A;}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h1>SUSPEND</h1>
|
<h1>SUSPENDED</h1>
|
||||||
<h2>This site has been suspended</h2>
|
<h2>This website has been suspended.</h2>
|
||||||
<div>
|
<div>
|
||||||
Please contact technical support departament.
|
Please contact the technical support department.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Vesta Debian installer v.01
|
# Vesta Debian installer v.04
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Variables&Functions #
|
# Variables&Functions #
|
||||||
|
@ -16,15 +16,19 @@ software="nginx apache2 apache2-utils apache2.2-common apache2-suexec-custom
|
||||||
php5-curl libapache2-mod-php5 vsftpd mc exim4 exim4-daemon-heavy
|
php5-curl libapache2-mod-php5 vsftpd mc exim4 exim4-daemon-heavy
|
||||||
clamav-daemon flex dovecot-imapd dovecot-pop3d phpMyAdmin awstats
|
clamav-daemon flex dovecot-imapd dovecot-pop3d phpMyAdmin awstats
|
||||||
webalizer jwhois rssh git spamassassin roundcube roundcube-mysql
|
webalizer jwhois rssh git spamassassin roundcube roundcube-mysql
|
||||||
roundcube-plugins sudo bc ftp lsof ntpdate rrdtool
|
roundcube-plugins sudo bc ftp lsof ntpdate rrdtool quota e2fslibs
|
||||||
dnsutils vesta vesta-nginx vesta-php"
|
dnsutils vesta vesta-nginx vesta-php"
|
||||||
|
|
||||||
help() {
|
help() {
|
||||||
echo "usage: $0 [OPTIONS]
|
echo "usage: $0 [OPTIONS]
|
||||||
-e, --email Define email address
|
-e, --email Set email address
|
||||||
-h, --help Print this help and exit
|
|
||||||
-f, --force Force installation
|
-f, --force Force installation
|
||||||
-n, --noupdate Do not run apt-get upgrade command"
|
-h, --help Print this help and exit
|
||||||
|
-n, --noupdate Do not run apt-get upgrade command
|
||||||
|
-m, --mysql-password Set MySQL password instead of generating it
|
||||||
|
-p, --password Set admin password instead of generating it
|
||||||
|
-s, --hostname Set server hostname
|
||||||
|
-q, --quota Enable File System Quota"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,10 +52,14 @@ gen_pass() {
|
||||||
for arg; do
|
for arg; do
|
||||||
delim=""
|
delim=""
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
--help) args="${args}-h " ;;
|
--email) args="${args}-e " ;;
|
||||||
--force) args="${args}-f " ;;
|
--force) args="${args}-f " ;;
|
||||||
--email) args="${args}-e " ;;
|
--help) args="${args}-h " ;;
|
||||||
--noupdate) args="${args}-n " ;;
|
--noupdate) args="${args}-n " ;;
|
||||||
|
--mysql-password) args="${args}-m " ;;
|
||||||
|
--password) args="${args}-p " ;;
|
||||||
|
--hostname) args="${args}-s " ;;
|
||||||
|
--quota) args="${args}-q " ;;
|
||||||
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
||||||
args="${args}${delim}${arg}${delim} ";;
|
args="${args}${delim}${arg}${delim} ";;
|
||||||
esac
|
esac
|
||||||
|
@ -59,12 +67,16 @@ done
|
||||||
eval set -- "$args"
|
eval set -- "$args"
|
||||||
|
|
||||||
# Getopt
|
# Getopt
|
||||||
while getopts "dhfne:" Option; do
|
while getopts "dhfnqe:m:p:s:" Option; do
|
||||||
case $Option in
|
case $Option in
|
||||||
h) help ;; # Help
|
h) help ;; # Help
|
||||||
e) email=$OPTARG ;; # Set email
|
e) email=$OPTARG ;; # Set email
|
||||||
f) force='yes' ;; # Force apt-get install
|
f) force='yes' ;; # Force install
|
||||||
n) noupdate='yes' ;; # Disable apt-get upgrade
|
n) noupdate='yes' ;; # Disable apt-get upgrade
|
||||||
|
m) mpass=$OPTARG ;; # MySQL pasword
|
||||||
|
p) vpass=$OPTARG ;; # Admin password
|
||||||
|
s) servername=$OPTARG ;; # Server hostname
|
||||||
|
q) quota='yes' ;; # Enable quota
|
||||||
*) help ;; # Default
|
*) help ;; # Default
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -77,7 +89,7 @@ fi
|
||||||
|
|
||||||
# Check supported version
|
# Check supported version
|
||||||
if [ -e '/etc/redhat-release' ] || [ -e '/etc/lsb-release' ]; then
|
if [ -e '/etc/redhat-release' ] || [ -e '/etc/lsb-release' ]; then
|
||||||
echo 'Error: sorry, this installer can work only on Debian 7'
|
echo 'Error: sorry, this installer works only on Debian 7'
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -216,6 +228,14 @@ if [ -z $email ]; then
|
||||||
|
|
||||||
# Check email
|
# Check email
|
||||||
read -p 'Please enter valid email address: ' email
|
read -p 'Please enter valid email address: ' email
|
||||||
|
|
||||||
|
# Define server hostname
|
||||||
|
if [ -z "$servername" ]; then
|
||||||
|
read -p "Please enter hostname [$(hostname)]: " servername
|
||||||
|
fi
|
||||||
|
if [ -z "$servername" ]; then
|
||||||
|
servername=$(hostname)
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Validate email
|
# Validate email
|
||||||
|
@ -399,7 +419,87 @@ rm -f /usr/sbin/policy-rc.d
|
||||||
# Set writable permission on tmp directory
|
# Set writable permission on tmp directory
|
||||||
chmod 777 /tmp
|
chmod 777 /tmp
|
||||||
|
|
||||||
# Enable password auth
|
# Vesta configuration
|
||||||
|
echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh
|
||||||
|
chmod 755 /etc/profile.d/vesta.sh
|
||||||
|
source /etc/profile.d/vesta.sh
|
||||||
|
echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile
|
||||||
|
echo 'export PATH' >> /root/.bash_profile
|
||||||
|
source /root/.bash_profile
|
||||||
|
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
|
||||||
|
|
||||||
|
# Directory tree
|
||||||
|
mkdir -p $VESTA/conf
|
||||||
|
mkdir -p $VESTA/log
|
||||||
|
mkdir -p $VESTA/ssl
|
||||||
|
mkdir -p $VESTA/data
|
||||||
|
mkdir -p $VESTA/data/ips
|
||||||
|
mkdir -p $VESTA/data/queue
|
||||||
|
mkdir -p $VESTA/data/users
|
||||||
|
touch $VESTA/data/queue/backup.pipe
|
||||||
|
touch $VESTA/data/queue/disk.pipe
|
||||||
|
touch $VESTA/data/queue/webstats.pipe
|
||||||
|
touch $VESTA/data/queue/restart.pipe
|
||||||
|
touch $VESTA/data/queue/traffic.pipe
|
||||||
|
chmod 750 $VESTA/conf
|
||||||
|
chmod 750 $VESTA/data/users
|
||||||
|
chmod 750 $VESTA/data/ips
|
||||||
|
chmod -R 750 $VESTA/data/queue
|
||||||
|
ln -s /usr/local/vesta/log /var/log/vesta
|
||||||
|
touch /var/log/vesta/system.log
|
||||||
|
touch /var/log/vesta/nginx-error.log
|
||||||
|
touch /var/log/vesta/auth.log
|
||||||
|
chmod 660 /var/log/vesta/*
|
||||||
|
adduser backup > /dev/null 2>&1
|
||||||
|
mkdir -p /home/backup
|
||||||
|
chown backup:backup /home/backup
|
||||||
|
ln -s /home/backup /backup
|
||||||
|
chmod a+x /backup
|
||||||
|
|
||||||
|
# vesta.conf
|
||||||
|
wget $CHOST/$VERSION/vesta.conf -O $VESTA/conf/vesta.conf
|
||||||
|
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
||||||
|
sed -i "s/clamav-daemon//g" $VESTA/conf/vesta.conf
|
||||||
|
sed -i "s/spamassassin//g" $VESTA/conf/vesta.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set server hostname
|
||||||
|
/usr/local/vesta/bin/v-change-sys-hostname $servername 2>/dev/null
|
||||||
|
|
||||||
|
# Templates
|
||||||
|
cd /usr/local/vesta/data
|
||||||
|
wget $CHOST/$VERSION/packages.tar.gz -O packages.tar.gz
|
||||||
|
tar -xzf packages.tar.gz
|
||||||
|
rm -f packages.tar.gz
|
||||||
|
cd /usr/local/vesta/data
|
||||||
|
wget $CHOST/$VERSION/templates.tar.gz -O templates.tar.gz
|
||||||
|
tar -xzf templates.tar.gz
|
||||||
|
rm -f templates.tar.gz
|
||||||
|
chmod -R 755 /usr/local/vesta/data/templates
|
||||||
|
cp templates/web/skel/public_html/index.html /var/www/
|
||||||
|
sed -i 's/%domain%/It worked!/g' /var/www/index.html
|
||||||
|
if [ "$srv_type" = 'micro' ]; then
|
||||||
|
rm -f /usr/local/vesta/data/templates/web/apache2/phpfcgid.*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generating SSL certificate
|
||||||
|
$VESTA/bin/v-generate-ssl-cert $(hostname) $email 'US' 'California' \
|
||||||
|
'San Francisco' 'Vesta Control Panel' 'IT' > /tmp/vst.pem
|
||||||
|
|
||||||
|
# Parsing merged certificate file
|
||||||
|
crt_end=$(grep -n "END CERTIFICATE-" /tmp/vst.pem |cut -f 1 -d:)
|
||||||
|
key_start=$(grep -n "BEGIN RSA" /tmp/vst.pem |cut -f 1 -d:)
|
||||||
|
key_end=$(grep -n "END RSA" /tmp/vst.pem |cut -f 1 -d:)
|
||||||
|
|
||||||
|
# Adding SSL certificate
|
||||||
|
cd /usr/local/vesta/ssl
|
||||||
|
sed -n "1,${crt_end}p" /tmp/vst.pem > certificate.crt
|
||||||
|
sed -n "$key_start,${key_end}p" /tmp/vst.pem > certificate.key
|
||||||
|
chown root:mail /usr/local/vesta/ssl/*
|
||||||
|
chmod 660 /usr/local/vesta/ssl/*
|
||||||
|
rm /tmp/vst.pem
|
||||||
|
|
||||||
|
# Enable SSH password auth
|
||||||
sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config
|
sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config
|
||||||
service ssh restart
|
service ssh restart
|
||||||
|
|
||||||
|
@ -454,9 +554,9 @@ wget $CHOST/$VERSION/apache2-status.conf \
|
||||||
wget $CHOST/$VERSION/apache2.log -O /etc/logrotate.d/apache2
|
wget $CHOST/$VERSION/apache2.log -O /etc/logrotate.d/apache2
|
||||||
rm -f /etc/apache2/conf.d/vesta.conf
|
rm -f /etc/apache2/conf.d/vesta.conf
|
||||||
echo > /etc/apache2/conf.d/vesta.conf
|
echo > /etc/apache2/conf.d/vesta.conf
|
||||||
echo "# Powever by vesta" > /etc/apache2/sites-available/default
|
echo "# Powered by vesta" > /etc/apache2/sites-available/default
|
||||||
echo "# Powever by vestas" > /etc/apache2/sites-available/default-ssl
|
echo "# Powered by vesta" > /etc/apache2/sites-available/default-ssl
|
||||||
echo "# Powever by vestas" > /etc/apache2/ports.conf
|
echo "# Powered by vesta" > /etc/apache2/ports.conf
|
||||||
touch /var/log/apache2/access.log
|
touch /var/log/apache2/access.log
|
||||||
touch /var/log/apache2/error.log
|
touch /var/log/apache2/error.log
|
||||||
mkdir -p /var/log/apache2/domains
|
mkdir -p /var/log/apache2/domains
|
||||||
|
@ -488,8 +588,12 @@ if [ "$?" -ne 0 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Generating MySQL password if it wasn't set
|
||||||
|
if [ -z "$mpass" ]; then
|
||||||
|
mpass=$(gen_pass)
|
||||||
|
fi
|
||||||
|
|
||||||
# MySQL configuration
|
# MySQL configuration
|
||||||
mpass=$(gen_pass)
|
|
||||||
wget $CHOST/$VERSION/my.cnf -O /etc/mysql/my.cnf
|
wget $CHOST/$VERSION/my.cnf -O /etc/mysql/my.cnf
|
||||||
mysql_install_db
|
mysql_install_db
|
||||||
update-rc.d mysql defaults
|
update-rc.d mysql defaults
|
||||||
|
@ -503,7 +607,7 @@ mysqladmin -u root password $mpass
|
||||||
echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf
|
echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf
|
||||||
chmod 600 /root/.my.cnf
|
chmod 600 /root/.my.cnf
|
||||||
mysql -e "DELETE FROM mysql.user WHERE User=''"
|
mysql -e "DELETE FROM mysql.user WHERE User=''"
|
||||||
mysql -e "DROP DATABASE test"
|
mysql -e "DROP DATABASE test" > /dev/null 2>&1
|
||||||
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
|
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
|
||||||
mysql -e "DELETE FROM mysql.user WHERE user='' or password='';"
|
mysql -e "DELETE FROM mysql.user WHERE user='' or password='';"
|
||||||
mysql -e "FLUSH PRIVILEGES"
|
mysql -e "FLUSH PRIVILEGES"
|
||||||
|
@ -561,12 +665,6 @@ tar -xzf dovecot-conf.d.tar.gz
|
||||||
rm -f dovecot-conf.d.tar.gz
|
rm -f dovecot-conf.d.tar.gz
|
||||||
chown -R root:root /etc/dovecot
|
chown -R root:root /etc/dovecot
|
||||||
gpasswd -a dovecot mail
|
gpasswd -a dovecot mail
|
||||||
if [ "$codename" = 'precise' ]; then
|
|
||||||
dovecot_ssl_conf="/etc/dovecot/conf.d/10-ssl.conf"
|
|
||||||
echo "ssl = yes" > $dovecot_ssl_conf
|
|
||||||
echo "ssl_cert = </etc/ssl/certs/dovecot.pem" >> $dovecot_ssl_conf
|
|
||||||
echo "ssl_key = </etc/ssl/private/dovecot.pem" >> $dovecot_ssl_conf
|
|
||||||
fi
|
|
||||||
update-rc.d dovecot defaults
|
update-rc.d dovecot defaults
|
||||||
service dovecot stop > /dev/null 2>&1
|
service dovecot stop > /dev/null 2>&1
|
||||||
service dovecot start
|
service dovecot start
|
||||||
|
@ -611,6 +709,7 @@ wget $CHOST/$VERSION/apache2-pma.conf -O /etc/phpmyadmin/apache.conf
|
||||||
wget $CHOST/$VERSION/pma.conf -O /etc/phpmyadmin/config.inc.php
|
wget $CHOST/$VERSION/pma.conf -O /etc/phpmyadmin/config.inc.php
|
||||||
ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
|
ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
|
||||||
mv -f /etc/phpmyadmin/config-db.php /etc/phpmyadmin/config-db.php_
|
mv -f /etc/phpmyadmin/config-db.php /etc/phpmyadmin/config-db.php_
|
||||||
|
chmod 777 /var/lib/phpmyadmin/tmp
|
||||||
|
|
||||||
# Roundcube configuration
|
# Roundcube configuration
|
||||||
wget $CHOST/$VERSION/apache2-webmail.conf -O /etc/roundcube/apache.conf
|
wget $CHOST/$VERSION/apache2-webmail.conf -O /etc/roundcube/apache.conf
|
||||||
|
@ -621,6 +720,7 @@ wget $CHOST/$VERSION/roundcube-driver.php -O \
|
||||||
wget $CHOST/$VERSION/roundcube-pw.conf -O \
|
wget $CHOST/$VERSION/roundcube-pw.conf -O \
|
||||||
/etc/roundcube/plugins/password/config.inc.php
|
/etc/roundcube/plugins/password/config.inc.php
|
||||||
r="$(gen_pass)"
|
r="$(gen_pass)"
|
||||||
|
mysql -e "DROP DATABASE roundcube" > /dev/null 2>&1
|
||||||
mysql -e "CREATE DATABASE roundcube"
|
mysql -e "CREATE DATABASE roundcube"
|
||||||
mysql -e "GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY '$r'"
|
mysql -e "GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY '$r'"
|
||||||
sed -i "s/%password%/$r/g" /etc/roundcube/db.inc.php
|
sed -i "s/%password%/$r/g" /etc/roundcube/db.inc.php
|
||||||
|
@ -628,72 +728,7 @@ mysql roundcube < /usr/share/dbconfig-common/data/roundcube/install/mysql
|
||||||
mkdir -p /var/log/roundcube/error
|
mkdir -p /var/log/roundcube/error
|
||||||
chmod -R 777 /var/log/roundcube
|
chmod -R 777 /var/log/roundcube
|
||||||
|
|
||||||
# Vesta configuration
|
# Deleting old admin user account if exists
|
||||||
echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh
|
|
||||||
chmod 755 /etc/profile.d/vesta.sh
|
|
||||||
source /etc/profile.d/vesta.sh
|
|
||||||
echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile
|
|
||||||
echo 'export PATH' >> /root/.bash_profile
|
|
||||||
source /root/.bash_profile
|
|
||||||
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
|
|
||||||
|
|
||||||
# Directory tree
|
|
||||||
mkdir -p $VESTA/conf
|
|
||||||
mkdir -p $VESTA/log
|
|
||||||
mkdir -p $VESTA/ssl
|
|
||||||
mkdir -p $VESTA/data
|
|
||||||
mkdir -p $VESTA/data/ips
|
|
||||||
mkdir -p $VESTA/data/queue
|
|
||||||
mkdir -p $VESTA/data/users
|
|
||||||
touch $VESTA/data/queue/backup.pipe
|
|
||||||
touch $VESTA/data/queue/disk.pipe
|
|
||||||
touch $VESTA/data/queue/webstats.pipe
|
|
||||||
touch $VESTA/data/queue/restart.pipe
|
|
||||||
touch $VESTA/data/queue/traffic.pipe
|
|
||||||
chmod 750 $VESTA/conf
|
|
||||||
chmod 750 $VESTA/data/users
|
|
||||||
chmod 750 $VESTA/data/ips
|
|
||||||
chmod -R 750 $VESTA/data/queue
|
|
||||||
ln -s /usr/local/vesta/log /var/log/vesta
|
|
||||||
touch /var/log/vesta/system.log
|
|
||||||
touch /var/log/vesta/nginx-error.log
|
|
||||||
touch /var/log/vesta/auth.log
|
|
||||||
chmod 660 /var/log/vesta/*
|
|
||||||
adduser backup > /dev/null 2>&1
|
|
||||||
mkdir -p /home/backup
|
|
||||||
chown backup:backup /home/backup
|
|
||||||
ln -s /home/backup /backup
|
|
||||||
chmod a+x /backup
|
|
||||||
|
|
||||||
# vesta.conf
|
|
||||||
wget $CHOST/$VERSION/vesta.conf -O $VESTA/conf/vesta.conf
|
|
||||||
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
|
||||||
sed -i "s/clamav-daemon//g" $VESTA/conf/vesta.conf
|
|
||||||
sed -i "s/spamassassin//g" $VESTA/conf/vesta.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Templates
|
|
||||||
cd /usr/local/vesta/data
|
|
||||||
wget $CHOST/$VERSION/packages.tar.gz -O packages.tar.gz
|
|
||||||
tar -xzf packages.tar.gz
|
|
||||||
rm -f packages.tar.gz
|
|
||||||
cd /usr/local/vesta/data
|
|
||||||
wget $CHOST/$VERSION/templates.tar.gz -O templates.tar.gz
|
|
||||||
tar -xzf templates.tar.gz
|
|
||||||
rm -f templates.tar.gz
|
|
||||||
chmod -R 755 /usr/local/vesta/data/templates
|
|
||||||
cp templates/web/skel/public_html/index.html /var/www/
|
|
||||||
sed -i 's/%domain%/It worked!/g' /var/www/index.html
|
|
||||||
if [ "$srv_type" = 'micro' ]; then
|
|
||||||
rm -f /usr/local/vesta/data/templates/web/apache2/phpfcgid.*
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Default SSL keys
|
|
||||||
cd /usr/local/vesta/ssl
|
|
||||||
wget $CHOST/$VERSION/certificate.crt -O certificate.crt
|
|
||||||
wget $CHOST/$VERSION/certificate.key -O certificate.key
|
|
||||||
|
|
||||||
# Adding admin user
|
|
||||||
if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then
|
if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then
|
||||||
chattr -i /home/admin/conf > /dev/null 2>&1
|
chattr -i /home/admin/conf > /dev/null 2>&1
|
||||||
userdel -f admin
|
userdel -f admin
|
||||||
|
@ -704,7 +739,13 @@ fi
|
||||||
if [ ! -z "$(grep ^admin: /etc/group)" ]; then
|
if [ ! -z "$(grep ^admin: /etc/group)" ]; then
|
||||||
groupdel admin > /dev/null 2>&1
|
groupdel admin > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
vpass=$(gen_pass)
|
|
||||||
|
# Generating admin password if it wasn't set
|
||||||
|
if [ -z "$vpass" ]; then
|
||||||
|
vpass=$(gen_pass)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Adding admin account
|
||||||
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
|
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Error: can't create admin user"
|
echo "Error: can't create admin user"
|
||||||
|
@ -743,7 +784,7 @@ $VESTA/bin/v-add-dns-domain admin default.domain $vst_ip
|
||||||
# Add default mail domain
|
# Add default mail domain
|
||||||
$VESTA/bin/v-add-mail-domain admin default.domain
|
$VESTA/bin/v-add-mail-domain admin default.domain
|
||||||
|
|
||||||
# Configuring crond
|
# Configuring cron jobs
|
||||||
command='sudo /usr/local/vesta/bin/v-update-sys-queue disk'
|
command='sudo /usr/local/vesta/bin/v-update-sys-queue disk'
|
||||||
$VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command"
|
$VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command"
|
||||||
command='sudo /usr/local/vesta/bin/v-update-sys-queue traffic'
|
command='sudo /usr/local/vesta/bin/v-update-sys-queue traffic'
|
||||||
|
@ -759,9 +800,14 @@ $VESTA/bin/v-add-cron-job 'admin' '20' '00' '*' '*' '*' "$command"
|
||||||
command='sudo /usr/local/vesta/bin/v-update-sys-rrd'
|
command='sudo /usr/local/vesta/bin/v-update-sys-rrd'
|
||||||
$VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command"
|
$VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command"
|
||||||
|
|
||||||
# Build inititall rrd images
|
# Building inititall rrd images
|
||||||
$VESTA/bin/v-update-sys-rrd
|
$VESTA/bin/v-update-sys-rrd
|
||||||
|
|
||||||
|
# Enable file system quota
|
||||||
|
if [ "$quota" = 'yes' ]; then
|
||||||
|
$VESTA/bin/v-add-sys-quota
|
||||||
|
fi
|
||||||
|
|
||||||
# Start system service
|
# Start system service
|
||||||
update-rc.d vesta defaults
|
update-rc.d vesta defaults
|
||||||
service vesta stop > /dev/null 2>&1
|
service vesta stop > /dev/null 2>&1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Vesta RHEL/CentOS installer v.03
|
# Vesta RHEL/CentOS installer v.04
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Variables&Functions #
|
# Variables&Functions #
|
||||||
|
@ -13,20 +13,26 @@ VERSION='0.9.8/rhel'
|
||||||
YUM_REPO='/etc/yum.repos.d/vesta.repo'
|
YUM_REPO='/etc/yum.repos.d/vesta.repo'
|
||||||
software="nginx httpd mod_ssl mod_ruid2 mod_extract_forwarded mod_fcgid
|
software="nginx httpd mod_ssl mod_ruid2 mod_extract_forwarded mod_fcgid
|
||||||
php php-bcmath php-cli php-common php-gd php-imap php-mbstring php-mcrypt
|
php php-bcmath php-cli php-common php-gd php-imap php-mbstring php-mcrypt
|
||||||
php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc
|
php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc quota e2fsprogs
|
||||||
phpMyAdmin awstats webalizer vsftpd mysql mysql-server exim dovecot clamd
|
phpMyAdmin awstats webalizer vsftpd mysql mysql-server exim dovecot clamd
|
||||||
spamassassin curl roundcubemail bind bind-utils bind-libs mc screen ftp
|
spamassassin curl roundcubemail bind bind-utils bind-libs mc screen ftp
|
||||||
libpng libjpeg libmcrypt mhash zip unzip openssl flex rssh libxml2
|
libpng libjpeg libmcrypt mhash zip unzip openssl flex rssh libxml2
|
||||||
ImageMagick sqlite pcre sudo bc jwhois mailx lsof tar telnet rsync
|
ImageMagick sqlite pcre sudo bc jwhois mailx lsof tar telnet rsync
|
||||||
rrdtool GeoIP freetype ntp openssh-clients vesta vesta-nginx vesta-php"
|
rrdtool GeoIP freetype ntp openssh-clients vesta vesta-nginx vesta-php"
|
||||||
|
|
||||||
|
# Help
|
||||||
help() {
|
help() {
|
||||||
echo "usage: $0 [OPTIONS]
|
echo "usage: $0 [OPTIONS]
|
||||||
-d, --disable-remi Disable remi
|
-d, --disable-remi Disable remi repository
|
||||||
-e, --email Define email address
|
-e, --email Set email address
|
||||||
-h, --help Print this help and exit
|
|
||||||
-f, --force Force installation
|
-f, --force Force installation
|
||||||
-n, --noupdate Do not run yum update command"
|
-h, --help Print this help and exit
|
||||||
|
-n, --noupdate Do not run yum update command
|
||||||
|
-m, --mysql-password Set MySQL password instead of generating it
|
||||||
|
-p, --password Set admin password instead of generating it
|
||||||
|
-s, --hostname Set server hostname
|
||||||
|
-q, --quota Enable File System Quota"
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,11 +56,15 @@ gen_pass() {
|
||||||
for arg; do
|
for arg; do
|
||||||
delim=""
|
delim=""
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
--help) args="${args}-h " ;;
|
--disable-remi) args="${args}-d " ;;
|
||||||
--disable-remi) args="${args}-d " ;;
|
--email) args="${args}-e " ;;
|
||||||
--force) args="${args}-f " ;;
|
--force) args="${args}-f " ;;
|
||||||
--email) args="${args}-e " ;;
|
--help) args="${args}-h " ;;
|
||||||
--noupdate) args="${args}-n " ;;
|
--noupdate) args="${args}-n " ;;
|
||||||
|
--mysql-password) args="${args}-m " ;;
|
||||||
|
--password) args="${args}-p " ;;
|
||||||
|
--hostname) args="${args}-s " ;;
|
||||||
|
--quota) args="${args}-q " ;;
|
||||||
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
||||||
args="${args}${delim}${arg}${delim} ";;
|
args="${args}${delim}${arg}${delim} ";;
|
||||||
esac
|
esac
|
||||||
|
@ -62,13 +72,17 @@ done
|
||||||
eval set -- "$args"
|
eval set -- "$args"
|
||||||
|
|
||||||
# Getopt
|
# Getopt
|
||||||
while getopts "dhfne:" Option; do
|
while getopts "dhfnqe:m:p:s:" Option; do
|
||||||
case $Option in
|
case $Option in
|
||||||
d) disable_remi='yes' ;; # Disable remi repo
|
d) disable_remi='yes' ;; # Disable remi repo
|
||||||
h) help ;; # Help
|
h) help ;; # Help
|
||||||
e) email=$OPTARG ;; # Set email
|
e) email=$OPTARG ;; # Set email
|
||||||
f) force='yes' ;; # Force install
|
f) force='yes' ;; # Force install
|
||||||
n) noupdate='yes' ;; # Disable yum update
|
n) noupdate='yes' ;; # Disable yum update
|
||||||
|
m) mpass=$OPTARG ;; # MySQL pasword
|
||||||
|
p) vpass=$OPTARG ;; # Admin password
|
||||||
|
s) servername=$OPTARG ;; # Server hostname
|
||||||
|
q) quota='yes' ;; # Enable quota
|
||||||
*) help ;; # Default
|
*) help ;; # Default
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -212,8 +226,16 @@ if [ -z $email ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check email
|
# Define email
|
||||||
read -p 'Please enter valid email address: ' email
|
read -p 'Please enter valid email address: ' email
|
||||||
|
|
||||||
|
# Define server hostname
|
||||||
|
if [ -z "$servername" ]; then
|
||||||
|
read -p "Please enter hostname [$(hostname)]: " servername
|
||||||
|
fi
|
||||||
|
if [ -z "$servername" ]; then
|
||||||
|
servername=$(hostname)
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Validate email
|
# Validate email
|
||||||
|
@ -459,6 +481,84 @@ if [ -e '/etc/selinux/config' ]; then
|
||||||
setenforce 0
|
setenforce 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Vesta configuration
|
||||||
|
echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh
|
||||||
|
chmod 755 /etc/profile.d/vesta.sh
|
||||||
|
source /etc/profile.d/vesta.sh
|
||||||
|
echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile
|
||||||
|
echo 'export PATH' >> /root/.bash_profile
|
||||||
|
source /root/.bash_profile
|
||||||
|
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
|
||||||
|
|
||||||
|
# Directory tree
|
||||||
|
mkdir -p $VESTA/conf
|
||||||
|
mkdir -p $VESTA/log
|
||||||
|
mkdir -p $VESTA/ssl
|
||||||
|
mkdir -p $VESTA/data
|
||||||
|
mkdir -p $VESTA/data/ips
|
||||||
|
mkdir -p $VESTA/data/queue
|
||||||
|
mkdir -p $VESTA/data/users
|
||||||
|
touch $VESTA/data/queue/backup.pipe
|
||||||
|
touch $VESTA/data/queue/disk.pipe
|
||||||
|
touch $VESTA/data/queue/webstats.pipe
|
||||||
|
touch $VESTA/data/queue/restart.pipe
|
||||||
|
touch $VESTA/data/queue/traffic.pipe
|
||||||
|
chmod 750 $VESTA/conf
|
||||||
|
chmod 750 $VESTA/data/users
|
||||||
|
chmod 750 $VESTA/data/ips
|
||||||
|
chmod -R 750 $VESTA/data/queue
|
||||||
|
ln -s /usr/local/vesta/log /var/log/vesta
|
||||||
|
touch /var/log/vesta/system.log
|
||||||
|
touch /var/log/vesta/nginx-error.log
|
||||||
|
touch /var/log/vesta/auth.log
|
||||||
|
chmod 660 /var/log/vesta/*
|
||||||
|
adduser backup
|
||||||
|
ln -s /home/backup /backup
|
||||||
|
chmod a+x /backup
|
||||||
|
|
||||||
|
# vesta.conf
|
||||||
|
wget $CHOST/$VERSION/vesta.conf -O $VESTA/conf/vesta.conf
|
||||||
|
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
||||||
|
sed -i "s/clamav//g" $VESTA/conf/vesta.conf
|
||||||
|
sed -i "s/spamassassin//g" $VESTA/conf/vesta.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set server hostname
|
||||||
|
/usr/local/vesta/bin/v-change-sys-hostname $servername 2>/dev/null
|
||||||
|
|
||||||
|
# Templates
|
||||||
|
cd /usr/local/vesta/data
|
||||||
|
wget $CHOST/$VERSION/packages.tar.gz -O packages.tar.gz
|
||||||
|
tar -xzf packages.tar.gz
|
||||||
|
rm -f packages.tar.gz
|
||||||
|
cd /usr/local/vesta/data
|
||||||
|
wget $CHOST/$VERSION/templates.tar.gz -O templates.tar.gz
|
||||||
|
tar -xzf templates.tar.gz
|
||||||
|
rm -f templates.tar.gz
|
||||||
|
chmod -R 755 /usr/local/vesta/data/templates
|
||||||
|
cp templates/web/skel/public_html/index.html /var/www/html/
|
||||||
|
sed -i 's/%domain%/It worked!/g' /var/www/html/index.html
|
||||||
|
if [ "$srv_type" = 'micro' ]; then
|
||||||
|
rm -f /usr/local/vesta/data/templates/web/httpd/phpfcgid.*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generating SSL certificate
|
||||||
|
$VESTA/bin/v-generate-ssl-cert $(hostname) $email 'US' 'California' \
|
||||||
|
'San Francisco' 'Vesta Control Panel' 'IT' > /tmp/vst.pem
|
||||||
|
|
||||||
|
# Parsing merged certificate file
|
||||||
|
crt_end=$(grep -n "END CERTIFICATE-" /tmp/vst.pem |cut -f 1 -d:)
|
||||||
|
key_start=$(grep -n "BEGIN RSA" /tmp/vst.pem |cut -f 1 -d:)
|
||||||
|
key_end=$(grep -n "END RSA" /tmp/vst.pem |cut -f 1 -d:)
|
||||||
|
|
||||||
|
# Adding SSL certificate
|
||||||
|
cd /usr/local/vesta/ssl
|
||||||
|
sed -n "1,${crt_end}p" /tmp/vst.pem > certificate.crt
|
||||||
|
sed -n "$key_start,${key_end}p" /tmp/vst.pem > certificate.key
|
||||||
|
chown root:mail /usr/local/vesta/ssl/*
|
||||||
|
chmod 660 /usr/local/vesta/ssl/*
|
||||||
|
rm /tmp/vst.pem
|
||||||
|
|
||||||
# Disabling iptables
|
# Disabling iptables
|
||||||
chkconfig iptables off
|
chkconfig iptables off
|
||||||
service iptables stop
|
service iptables stop
|
||||||
|
@ -536,17 +636,14 @@ if [ "$?" -ne 0 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# MySQL configuration
|
# MySQL configuration
|
||||||
mpass=$(gen_pass)
|
|
||||||
if [ "$srv_type" = 'micro' ]; then
|
if [ "$srv_type" = 'micro' ]; then
|
||||||
wget $CHOST/$VERSION/mysql-512.cnf -O /etc/my.cnf
|
wget $CHOST/$VERSION/mysql-512.cnf -O /etc/my.cnf
|
||||||
else
|
else
|
||||||
wget $CHOST/$VERSION/mysql.cnf -O /etc/my.cnf
|
wget $CHOST/$VERSION/mysql.cnf -O /etc/my.cnf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chkconfig mysqld on
|
chkconfig mysqld on
|
||||||
service mysqld start
|
service mysqld start
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
|
|
||||||
# Fix for aio on OpenVZ
|
# Fix for aio on OpenVZ
|
||||||
if [ -e "/proc/user_beancounters" ]; then
|
if [ -e "/proc/user_beancounters" ]; then
|
||||||
sed -i "s/#innodb_use_native_aio/innodb_use_native_aio/g" /etc/my.cnf
|
sed -i "s/#innodb_use_native_aio/innodb_use_native_aio/g" /etc/my.cnf
|
||||||
|
@ -559,6 +656,11 @@ if [ "$?" -ne 0 ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Generating MySQL password if it wasn't set
|
||||||
|
if [ -z "$mpass" ]; then
|
||||||
|
mpass=$(gen_pass)
|
||||||
|
fi
|
||||||
|
|
||||||
mysqladmin -u root password $mpass
|
mysqladmin -u root password $mpass
|
||||||
echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf
|
echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf
|
||||||
chmod 600 /root/.my.cnf
|
chmod 600 /root/.my.cnf
|
||||||
|
@ -674,71 +776,12 @@ r="$(gen_pass)"
|
||||||
mysql -e "CREATE DATABASE roundcube"
|
mysql -e "CREATE DATABASE roundcube"
|
||||||
mysql -e "GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY '$r'"
|
mysql -e "GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY '$r'"
|
||||||
sed -i "s/%password%/$r/g" /etc/roundcubemail/db.inc.php
|
sed -i "s/%password%/$r/g" /etc/roundcubemail/db.inc.php
|
||||||
mysql roundcube < /usr/share/doc/roundcubemail-*/SQL/mysql.initial.sql
|
if [ -e "/usr/share/roundcubemail/SQL/mysql.initial.sql" ]; then
|
||||||
|
mysql roundcube < /usr/share/roundcubemail/SQL/mysql.initial.sql
|
||||||
# Vesta configuration
|
else
|
||||||
echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh
|
mysql roundcube < /usr/share/doc/roundcubemail-*/SQL/mysql.initial.sql
|
||||||
chmod 755 /etc/profile.d/vesta.sh
|
|
||||||
source /etc/profile.d/vesta.sh
|
|
||||||
echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile
|
|
||||||
echo 'export PATH' >> /root/.bash_profile
|
|
||||||
source /root/.bash_profile
|
|
||||||
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
|
|
||||||
|
|
||||||
# Directory tree
|
|
||||||
mkdir -p $VESTA/conf
|
|
||||||
mkdir -p $VESTA/log
|
|
||||||
mkdir -p $VESTA/ssl
|
|
||||||
mkdir -p $VESTA/data
|
|
||||||
mkdir -p $VESTA/data/ips
|
|
||||||
mkdir -p $VESTA/data/queue
|
|
||||||
mkdir -p $VESTA/data/users
|
|
||||||
touch $VESTA/data/queue/backup.pipe
|
|
||||||
touch $VESTA/data/queue/disk.pipe
|
|
||||||
touch $VESTA/data/queue/webstats.pipe
|
|
||||||
touch $VESTA/data/queue/restart.pipe
|
|
||||||
touch $VESTA/data/queue/traffic.pipe
|
|
||||||
chmod 750 $VESTA/conf
|
|
||||||
chmod 750 $VESTA/data/users
|
|
||||||
chmod 750 $VESTA/data/ips
|
|
||||||
chmod -R 750 $VESTA/data/queue
|
|
||||||
ln -s /usr/local/vesta/log /var/log/vesta
|
|
||||||
touch /var/log/vesta/system.log
|
|
||||||
touch /var/log/vesta/nginx-error.log
|
|
||||||
touch /var/log/vesta/auth.log
|
|
||||||
chmod 660 /var/log/vesta/*
|
|
||||||
adduser backup
|
|
||||||
ln -s /home/backup /backup
|
|
||||||
chmod a+x /backup
|
|
||||||
|
|
||||||
# vesta.conf
|
|
||||||
wget $CHOST/$VERSION/vesta.conf -O $VESTA/conf/vesta.conf
|
|
||||||
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
|
||||||
sed -i "s/clamav//g" $VESTA/conf/vesta.conf
|
|
||||||
sed -i "s/spamassassin//g" $VESTA/conf/vesta.conf
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Templates
|
|
||||||
cd /usr/local/vesta/data
|
|
||||||
wget $CHOST/$VERSION/packages.tar.gz -O packages.tar.gz
|
|
||||||
tar -xzf packages.tar.gz
|
|
||||||
rm -f packages.tar.gz
|
|
||||||
cd /usr/local/vesta/data
|
|
||||||
wget $CHOST/$VERSION/templates.tar.gz -O templates.tar.gz
|
|
||||||
tar -xzf templates.tar.gz
|
|
||||||
rm -f templates.tar.gz
|
|
||||||
chmod -R 755 /usr/local/vesta/data/templates
|
|
||||||
cp templates/web/skel/public_html/index.html /var/www/html/
|
|
||||||
sed -i 's/%domain%/It worked!/g' /var/www/html/index.html
|
|
||||||
if [ "$srv_type" = 'micro' ]; then
|
|
||||||
rm -f /usr/local/vesta/data/templates/web/httpd/phpfcgid.*
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Default SSL keys
|
|
||||||
cd /usr/local/vesta/ssl
|
|
||||||
wget $CHOST/$VERSION/certificate.crt -O certificate.crt
|
|
||||||
wget $CHOST/$VERSION/certificate.key -O certificate.key
|
|
||||||
|
|
||||||
# Adding admin user
|
# Adding admin user
|
||||||
if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then
|
if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then
|
||||||
chattr -i /home/admin/conf > /dev/null 2>&1
|
chattr -i /home/admin/conf > /dev/null 2>&1
|
||||||
|
@ -750,7 +793,13 @@ fi
|
||||||
if [ ! -z "$(grep ^admin: /etc/group)" ] && [ "$force" = 'yes' ]; then
|
if [ ! -z "$(grep ^admin: /etc/group)" ] && [ "$force" = 'yes' ]; then
|
||||||
groupdel admin > /dev/null 2>&1
|
groupdel admin > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
vpass=$(gen_pass)
|
|
||||||
|
# Generating admin password if it wasn't set
|
||||||
|
if [ -z "$vpass" ]; then
|
||||||
|
vpass=$(gen_pass)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Adding vesta account
|
||||||
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
|
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Error: can't create admin user"
|
echo "Error: can't create admin user"
|
||||||
|
@ -759,7 +808,7 @@ fi
|
||||||
$VESTA/bin/v-change-user-shell admin bash
|
$VESTA/bin/v-change-user-shell admin bash
|
||||||
$VESTA/bin/v-change-user-language admin en
|
$VESTA/bin/v-change-user-language admin en
|
||||||
|
|
||||||
# Configure mysql host
|
# Configuring mysql host
|
||||||
$VESTA/bin/v-add-database-host mysql localhost root $mpass
|
$VESTA/bin/v-add-database-host mysql localhost root $mpass
|
||||||
$VESTA/bin/v-add-database admin default default $(gen_pass) mysql
|
$VESTA/bin/v-add-database admin default default $(gen_pass) mysql
|
||||||
|
|
||||||
|
@ -808,6 +857,11 @@ $VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command"
|
||||||
# Build inititall rrd images
|
# Build inititall rrd images
|
||||||
$VESTA/bin/v-update-sys-rrd
|
$VESTA/bin/v-update-sys-rrd
|
||||||
|
|
||||||
|
# Enable file system quota
|
||||||
|
if [ "$quota" = 'yes' ]; then
|
||||||
|
$VESTA/bin/v-add-sys-quota
|
||||||
|
fi
|
||||||
|
|
||||||
# Start system service
|
# Start system service
|
||||||
chkconfig vesta on
|
chkconfig vesta on
|
||||||
service vesta start
|
service vesta start
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Vesta Ubuntu installer v.01
|
# Vesta Ubuntu installer v.04
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Variables&Functions #
|
# Variables&Functions #
|
||||||
|
@ -14,17 +14,21 @@ software="nginx apache2 apache2-utils apache2-suexec-custom
|
||||||
libapache2-mod-ruid2 libapache2-mod-rpaf libapache2-mod-fcgid bind9 idn
|
libapache2-mod-ruid2 libapache2-mod-rpaf libapache2-mod-fcgid bind9 idn
|
||||||
mysql-server mysql-common mysql-client php5-common php5-cgi php5-mysql
|
mysql-server mysql-common mysql-client php5-common php5-cgi php5-mysql
|
||||||
php5-curl libapache2-mod-php5 vsftpd mc exim4 exim4-daemon-heavy
|
php5-curl libapache2-mod-php5 vsftpd mc exim4 exim4-daemon-heavy
|
||||||
clamav-daemon flex dovecot-imapd dovecot-pop3d phpMyAdmin awstats
|
clamav-daemon flex dovecot-imapd dovecot-pop3d phpMyAdmin awstats e2fslibs
|
||||||
webalizer jwhois rssh git spamassassin roundcube roundcube-mysql
|
webalizer jwhois rssh git spamassassin roundcube roundcube-mysql quota
|
||||||
roundcube-plugins apparmor-utils sudo bc ftp lsof ntpdate rrdtool
|
roundcube-plugins apparmor-utils sudo bc ftp lsof ntpdate rrdtool
|
||||||
dnsutils vesta vesta-nginx vesta-php"
|
dnsutils vesta vesta-nginx vesta-php"
|
||||||
|
|
||||||
help() {
|
help() {
|
||||||
echo "usage: $0 [OPTIONS]
|
echo "usage: $0 [OPTIONS]
|
||||||
-e, --email Define email address
|
-e, --email Set email address
|
||||||
-h, --help Print this help and exit
|
|
||||||
-f, --force Force installation
|
-f, --force Force installation
|
||||||
-n, --noupdate Do not run apt-get upgrade command"
|
-h, --help Print this help and exit
|
||||||
|
-n, --noupdate Do not run apt-get upgrade command
|
||||||
|
-m, --mysql-password Set MySQL password instead of generating it
|
||||||
|
-p, --password Set admin password instead of generating it
|
||||||
|
-s, --hostname Set server hostname
|
||||||
|
-q, --quota Enable File System Quota"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,10 +52,14 @@ gen_pass() {
|
||||||
for arg; do
|
for arg; do
|
||||||
delim=""
|
delim=""
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
--help) args="${args}-h " ;;
|
--email) args="${args}-e " ;;
|
||||||
--force) args="${args}-f " ;;
|
--force) args="${args}-f " ;;
|
||||||
--email) args="${args}-e " ;;
|
--help) args="${args}-h " ;;
|
||||||
--noupdate) args="${args}-n " ;;
|
--noupdate) args="${args}-n " ;;
|
||||||
|
--mysql-password) args="${args}-m " ;;
|
||||||
|
--password) args="${args}-p " ;;
|
||||||
|
--hostname) args="${args}-s " ;;
|
||||||
|
--quota) args="${args}-q " ;;
|
||||||
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
||||||
args="${args}${delim}${arg}${delim} ";;
|
args="${args}${delim}${arg}${delim} ";;
|
||||||
esac
|
esac
|
||||||
|
@ -59,12 +67,16 @@ done
|
||||||
eval set -- "$args"
|
eval set -- "$args"
|
||||||
|
|
||||||
# Getopt
|
# Getopt
|
||||||
while getopts "dhfne:" Option; do
|
while getopts "dhfnqe:m:p:s:" Option; do
|
||||||
case $Option in
|
case $Option in
|
||||||
h) help ;; # Help
|
h) help ;; # Help
|
||||||
e) email=$OPTARG ;; # Set email
|
e) email=$OPTARG ;; # Set email
|
||||||
f) force='yes' ;; # Force apt-get install
|
f) force='yes' ;; # Force install
|
||||||
n) noupdate='yes' ;; # Disable apt-get upgrade
|
n) noupdate='yes' ;; # Disable apt-get upgrade
|
||||||
|
m) mpass=$OPTARG ;; # MySQL pasword
|
||||||
|
p) vpass=$OPTARG ;; # Admin password
|
||||||
|
s) servername=$OPTARG ;; # Server hostname
|
||||||
|
q) quota='yes' ;; # Enable quota
|
||||||
*) help ;; # Default
|
*) help ;; # Default
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -77,7 +89,7 @@ fi
|
||||||
|
|
||||||
# Check supported version
|
# Check supported version
|
||||||
if [ -e '/etc/redhat-release' ]; then
|
if [ -e '/etc/redhat-release' ]; then
|
||||||
echo 'Error: sorry, this installer can work only on Debian or Ubuntu'
|
echo 'Error: sorry, this installer works only on Ubuntu'
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -89,9 +101,9 @@ else
|
||||||
fi
|
fi
|
||||||
os=$(head -n 1 /etc/issue | cut -f 1 -d ' ')
|
os=$(head -n 1 /etc/issue | cut -f 1 -d ' ')
|
||||||
release=$(head -n 1 /etc/issue | cut -f 2 -d ' ' )
|
release=$(head -n 1 /etc/issue | cut -f 2 -d ' ' )
|
||||||
codename=$(lsb_release -cs | grep "[precise|raring|saucy]")
|
codename=$(lsb_release -cs | egrep "precise|quantal|raring|saucy|trusty")
|
||||||
if [ -z "$codename" ]; then
|
if [ -z "$codename" ]; then
|
||||||
echo 'Error: only Ubuntu 12.04, 13.04 and 13.10 is supported'
|
echo "Error: Ubuntu $(lsb_release -r|awk '{print $2}') is not supported"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -214,6 +226,14 @@ if [ -z $email ]; then
|
||||||
|
|
||||||
# Check email
|
# Check email
|
||||||
read -p 'Please enter valid email address: ' email
|
read -p 'Please enter valid email address: ' email
|
||||||
|
|
||||||
|
# Define server hostname
|
||||||
|
if [ -z "$servername" ]; then
|
||||||
|
read -p "Please enter hostname [$(hostname)]: " servername
|
||||||
|
fi
|
||||||
|
if [ -z "$servername" ]; then
|
||||||
|
servername=$(hostname)
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Validate email
|
# Validate email
|
||||||
|
@ -252,9 +272,6 @@ apt=/etc/apt/sources.list.d
|
||||||
echo "deb http://nginx.org/packages/ubuntu/ $codename nginx" > $apt/nginx.list
|
echo "deb http://nginx.org/packages/ubuntu/ $codename nginx" > $apt/nginx.list
|
||||||
wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key
|
wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key
|
||||||
apt-key add /tmp/nginx_signing.key
|
apt-key add /tmp/nginx_signing.key
|
||||||
if [ $codename = 'trusty' ]; then
|
|
||||||
sed -i "s/trusty/saucy/g" $apt/nginx.list
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install vesta repo
|
# Install vesta repo
|
||||||
echo "deb http://$RHOST/$codename/ $codename vesta" > $apt/vesta.list
|
echo "deb http://$RHOST/$codename/ $codename vesta" > $apt/vesta.list
|
||||||
|
@ -400,7 +417,91 @@ rm -f /usr/sbin/policy-rc.d
|
||||||
# Set writable permission on tmp directory
|
# Set writable permission on tmp directory
|
||||||
chmod 777 /tmp
|
chmod 777 /tmp
|
||||||
|
|
||||||
# Enable password auth
|
# Vesta configuration
|
||||||
|
echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh
|
||||||
|
chmod 755 /etc/profile.d/vesta.sh
|
||||||
|
source /etc/profile.d/vesta.sh
|
||||||
|
echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile
|
||||||
|
echo 'export PATH' >> /root/.bash_profile
|
||||||
|
source /root/.bash_profile
|
||||||
|
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
|
||||||
|
|
||||||
|
# Directory tree
|
||||||
|
mkdir -p $VESTA/conf
|
||||||
|
mkdir -p $VESTA/log
|
||||||
|
mkdir -p $VESTA/ssl
|
||||||
|
mkdir -p $VESTA/data
|
||||||
|
mkdir -p $VESTA/data/ips
|
||||||
|
mkdir -p $VESTA/data/queue
|
||||||
|
mkdir -p $VESTA/data/users
|
||||||
|
touch $VESTA/data/queue/backup.pipe
|
||||||
|
touch $VESTA/data/queue/disk.pipe
|
||||||
|
touch $VESTA/data/queue/webstats.pipe
|
||||||
|
touch $VESTA/data/queue/restart.pipe
|
||||||
|
touch $VESTA/data/queue/traffic.pipe
|
||||||
|
chmod 750 $VESTA/conf
|
||||||
|
chmod 750 $VESTA/data/users
|
||||||
|
chmod 750 $VESTA/data/ips
|
||||||
|
chmod -R 750 $VESTA/data/queue
|
||||||
|
ln -s /usr/local/vesta/log /var/log/vesta
|
||||||
|
touch /var/log/vesta/system.log
|
||||||
|
touch /var/log/vesta/nginx-error.log
|
||||||
|
touch /var/log/vesta/auth.log
|
||||||
|
chmod 660 /var/log/vesta/*
|
||||||
|
adduser backup > /dev/null 2>&1
|
||||||
|
mkdir -p /home/backup
|
||||||
|
chown backup:backup /home/backup
|
||||||
|
ln -s /home/backup /backup
|
||||||
|
chmod a+x /backup
|
||||||
|
|
||||||
|
# vesta.conf
|
||||||
|
wget $CHOST/$VERSION/vesta.conf -O $VESTA/conf/vesta.conf
|
||||||
|
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
||||||
|
sed -i "s/clamav-daemon//g" $VESTA/conf/vesta.conf
|
||||||
|
sed -i "s/spamassassin//g" $VESTA/conf/vesta.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set server hostname
|
||||||
|
/usr/local/vesta/bin/v-change-sys-hostname $servername 2>/dev/null
|
||||||
|
|
||||||
|
# Templates
|
||||||
|
cd /usr/local/vesta/data
|
||||||
|
wget $CHOST/$VERSION/packages.tar.gz -O packages.tar.gz
|
||||||
|
tar -xzf packages.tar.gz
|
||||||
|
rm -f packages.tar.gz
|
||||||
|
cd /usr/local/vesta/data
|
||||||
|
wget $CHOST/$VERSION/templates.tar.gz -O templates.tar.gz
|
||||||
|
tar -xzf templates.tar.gz
|
||||||
|
rm -f templates.tar.gz
|
||||||
|
if [ "$codename" = 'saucy' ] || [ "$codename" = 'trusty' ]; then
|
||||||
|
sed -i "s/Include /IncludeOptional /g" \
|
||||||
|
$VESTA/data/templates/web/apache2/*tpl
|
||||||
|
fi
|
||||||
|
chmod -R 755 /usr/local/vesta/data/templates
|
||||||
|
cp templates/web/skel/public_html/index.html /var/www/
|
||||||
|
sed -i 's/%domain%/It worked!/g' /var/www/index.html
|
||||||
|
if [ "$srv_type" = 'micro' ]; then
|
||||||
|
rm -f /usr/local/vesta/data/templates/web/apache2/phpfcgid.*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generating SSL certificate
|
||||||
|
$VESTA/bin/v-generate-ssl-cert $(hostname) $email 'US' 'California' \
|
||||||
|
'San Francisco' 'Vesta Control Panel' 'IT' > /tmp/vst.pem
|
||||||
|
|
||||||
|
# Parsing merged certificate file
|
||||||
|
crt_end=$(grep -n "END CERTIFICATE-" /tmp/vst.pem |cut -f 1 -d:)
|
||||||
|
key_start=$(grep -n "BEGIN RSA" /tmp/vst.pem |cut -f 1 -d:)
|
||||||
|
key_end=$(grep -n "END RSA" /tmp/vst.pem |cut -f 1 -d:)
|
||||||
|
|
||||||
|
# Adding SSL certificate
|
||||||
|
cd /usr/local/vesta/ssl
|
||||||
|
sed -n "1,${crt_end}p" /tmp/vst.pem > certificate.crt
|
||||||
|
sed -n "$key_start,${key_end}p" /tmp/vst.pem > certificate.key
|
||||||
|
chown root:mail /usr/local/vesta/ssl/*
|
||||||
|
chmod 660 /usr/local/vesta/ssl/*
|
||||||
|
rm /tmp/vst.pem
|
||||||
|
|
||||||
|
# Enable SSH password auth
|
||||||
sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config
|
sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config
|
||||||
service ssh restart
|
service ssh restart
|
||||||
|
|
||||||
|
@ -456,9 +557,9 @@ fi
|
||||||
wget $CHOST/$VERSION/apache2-status.conf \
|
wget $CHOST/$VERSION/apache2-status.conf \
|
||||||
-O /etc/apache2/mods-enabled/status.conf
|
-O /etc/apache2/mods-enabled/status.conf
|
||||||
wget $CHOST/$VERSION/apache2.log -O /etc/logrotate.d/apache2
|
wget $CHOST/$VERSION/apache2.log -O /etc/logrotate.d/apache2
|
||||||
echo "# Powever by vesta" > /etc/apache2/sites-available/default
|
echo "# Powered by vesta" > /etc/apache2/sites-available/default
|
||||||
echo "# Powever by vesta" > /etc/apache2/sites-available/default-ssl
|
echo "# Powered by vesta" > /etc/apache2/sites-available/default-ssl
|
||||||
echo "# Powever by vesta" > /etc/apache2/ports.conf
|
echo "# Powered by vesta" > /etc/apache2/ports.conf
|
||||||
mkdir -p /etc/apache2/conf.d
|
mkdir -p /etc/apache2/conf.d
|
||||||
rm -f /etc/apache2/conf.d/vesta.conf
|
rm -f /etc/apache2/conf.d/vesta.conf
|
||||||
echo > /etc/apache2/conf.d/vesta.conf
|
echo > /etc/apache2/conf.d/vesta.conf
|
||||||
|
@ -491,11 +592,18 @@ if [ "$?" -ne 0 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Generating MySQL password if it wasn't set
|
||||||
|
if [ -z "$mpass" ]; then
|
||||||
|
mpass=$(gen_pass)
|
||||||
|
fi
|
||||||
|
|
||||||
# MySQL configuration
|
# MySQL configuration
|
||||||
mpass=$(gen_pass)
|
mpass=$(gen_pass)
|
||||||
wget $CHOST/$VERSION/my.cnf -O /etc/mysql/my.cnf
|
wget $CHOST/$VERSION/my.cnf -O /etc/mysql/my.cnf
|
||||||
mysql_install_db
|
mysql_install_db
|
||||||
update-rc.d mysql defaults
|
if [ "$release" != '14.04' ]; then
|
||||||
|
update-rc.d mysql defaults
|
||||||
|
fi
|
||||||
service mysql stop > /dev/null 2>&1
|
service mysql stop > /dev/null 2>&1
|
||||||
service mysql start
|
service mysql start
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
|
@ -506,7 +614,7 @@ mysqladmin -u root password $mpass
|
||||||
echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf
|
echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf
|
||||||
chmod 600 /root/.my.cnf
|
chmod 600 /root/.my.cnf
|
||||||
mysql -e "DELETE FROM mysql.user WHERE User=''"
|
mysql -e "DELETE FROM mysql.user WHERE User=''"
|
||||||
mysql -e "DROP DATABASE test"
|
mysql -e "DROP DATABASE test" > /dev/null 2>&1
|
||||||
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
|
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
|
||||||
mysql -e "DELETE FROM mysql.user WHERE user='' or password='';"
|
mysql -e "DELETE FROM mysql.user WHERE user='' or password='';"
|
||||||
mysql -e "FLUSH PRIVILEGES"
|
mysql -e "FLUSH PRIVILEGES"
|
||||||
|
@ -564,12 +672,6 @@ tar -xzf dovecot-conf.d.tar.gz
|
||||||
rm -f dovecot-conf.d.tar.gz
|
rm -f dovecot-conf.d.tar.gz
|
||||||
chown -R root:root /etc/dovecot
|
chown -R root:root /etc/dovecot
|
||||||
gpasswd -a dovecot mail
|
gpasswd -a dovecot mail
|
||||||
if [ "$codename" = 'precise' ]; then
|
|
||||||
dovecot_ssl_conf="/etc/dovecot/conf.d/10-ssl.conf"
|
|
||||||
echo "ssl = yes" > $dovecot_ssl_conf
|
|
||||||
echo "ssl_cert = </etc/ssl/certs/dovecot.pem" >> $dovecot_ssl_conf
|
|
||||||
echo "ssl_key = </etc/ssl/private/dovecot.pem" >> $dovecot_ssl_conf
|
|
||||||
fi
|
|
||||||
update-rc.d dovecot defaults
|
update-rc.d dovecot defaults
|
||||||
service dovecot stop > /dev/null 2>&1
|
service dovecot stop > /dev/null 2>&1
|
||||||
service dovecot start
|
service dovecot start
|
||||||
|
@ -630,6 +732,7 @@ wget $CHOST/$VERSION/roundcube-driver.php -O \
|
||||||
wget $CHOST/$VERSION/roundcube-pw.conf -O \
|
wget $CHOST/$VERSION/roundcube-pw.conf -O \
|
||||||
/etc/roundcube/plugins/password/config.inc.php
|
/etc/roundcube/plugins/password/config.inc.php
|
||||||
r="$(gen_pass)"
|
r="$(gen_pass)"
|
||||||
|
mysql -e "DROP DATABASE roundcube" > /dev/null 2>&1
|
||||||
mysql -e "CREATE DATABASE roundcube"
|
mysql -e "CREATE DATABASE roundcube"
|
||||||
mysql -e "GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY '$r'"
|
mysql -e "GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY '$r'"
|
||||||
sed -i "s/%password%/$r/g" /etc/roundcube/db.inc.php
|
sed -i "s/%password%/$r/g" /etc/roundcube/db.inc.php
|
||||||
|
@ -643,76 +746,7 @@ fi
|
||||||
mkdir -p /var/log/roundcube/error
|
mkdir -p /var/log/roundcube/error
|
||||||
chmod -R 777 /var/log/roundcube
|
chmod -R 777 /var/log/roundcube
|
||||||
|
|
||||||
# Vesta configuration
|
# Deleting old admin user account if exists
|
||||||
echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh
|
|
||||||
chmod 755 /etc/profile.d/vesta.sh
|
|
||||||
source /etc/profile.d/vesta.sh
|
|
||||||
echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile
|
|
||||||
echo 'export PATH' >> /root/.bash_profile
|
|
||||||
source /root/.bash_profile
|
|
||||||
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
|
|
||||||
|
|
||||||
# Directory tree
|
|
||||||
mkdir -p $VESTA/conf
|
|
||||||
mkdir -p $VESTA/log
|
|
||||||
mkdir -p $VESTA/ssl
|
|
||||||
mkdir -p $VESTA/data
|
|
||||||
mkdir -p $VESTA/data/ips
|
|
||||||
mkdir -p $VESTA/data/queue
|
|
||||||
mkdir -p $VESTA/data/users
|
|
||||||
touch $VESTA/data/queue/backup.pipe
|
|
||||||
touch $VESTA/data/queue/disk.pipe
|
|
||||||
touch $VESTA/data/queue/webstats.pipe
|
|
||||||
touch $VESTA/data/queue/restart.pipe
|
|
||||||
touch $VESTA/data/queue/traffic.pipe
|
|
||||||
chmod 750 $VESTA/conf
|
|
||||||
chmod 750 $VESTA/data/users
|
|
||||||
chmod 750 $VESTA/data/ips
|
|
||||||
chmod -R 750 $VESTA/data/queue
|
|
||||||
ln -s /usr/local/vesta/log /var/log/vesta
|
|
||||||
touch /var/log/vesta/system.log
|
|
||||||
touch /var/log/vesta/nginx-error.log
|
|
||||||
touch /var/log/vesta/auth.log
|
|
||||||
chmod 660 /var/log/vesta/*
|
|
||||||
adduser backup > /dev/null 2>&1
|
|
||||||
mkdir -p /home/backup
|
|
||||||
chown backup:backup /home/backup
|
|
||||||
ln -s /home/backup /backup
|
|
||||||
chmod a+x /backup
|
|
||||||
|
|
||||||
# vesta.conf
|
|
||||||
wget $CHOST/$VERSION/vesta.conf -O $VESTA/conf/vesta.conf
|
|
||||||
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
|
||||||
sed -i "s/clamav-daemon//g" $VESTA/conf/vesta.conf
|
|
||||||
sed -i "s/spamassassin//g" $VESTA/conf/vesta.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Templates
|
|
||||||
cd /usr/local/vesta/data
|
|
||||||
wget $CHOST/$VERSION/packages.tar.gz -O packages.tar.gz
|
|
||||||
tar -xzf packages.tar.gz
|
|
||||||
rm -f packages.tar.gz
|
|
||||||
cd /usr/local/vesta/data
|
|
||||||
wget $CHOST/$VERSION/templates.tar.gz -O templates.tar.gz
|
|
||||||
tar -xzf templates.tar.gz
|
|
||||||
rm -f templates.tar.gz
|
|
||||||
if [ "$codename" = 'saucy' ] || [ "$codename" = 'trusty' ]; then
|
|
||||||
sed -i "s/Include /IncludeOptional /g" \
|
|
||||||
$VESTA/data/templates/web/apache2/*tpl
|
|
||||||
fi
|
|
||||||
chmod -R 755 /usr/local/vesta/data/templates
|
|
||||||
cp templates/web/skel/public_html/index.html /var/www/
|
|
||||||
sed -i 's/%domain%/It worked!/g' /var/www/index.html
|
|
||||||
if [ "$srv_type" = 'micro' ]; then
|
|
||||||
rm -f /usr/local/vesta/data/templates/web/apache2/phpfcgid.*
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Default SSL keys
|
|
||||||
cd /usr/local/vesta/ssl
|
|
||||||
wget $CHOST/$VERSION/certificate.crt -O certificate.crt
|
|
||||||
wget $CHOST/$VERSION/certificate.key -O certificate.key
|
|
||||||
|
|
||||||
# Adding admin user
|
|
||||||
if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then
|
if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then
|
||||||
chattr -i /home/admin/conf > /dev/null 2>&1
|
chattr -i /home/admin/conf > /dev/null 2>&1
|
||||||
userdel -f admin
|
userdel -f admin
|
||||||
|
@ -723,7 +757,13 @@ fi
|
||||||
if [ ! -z "$(grep ^admin: /etc/group)" ]; then
|
if [ ! -z "$(grep ^admin: /etc/group)" ]; then
|
||||||
groupdel admin > /dev/null 2>&1
|
groupdel admin > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
vpass=$(gen_pass)
|
|
||||||
|
# Generating admin password if it wasn't set
|
||||||
|
if [ -z "$vpass" ]; then
|
||||||
|
vpass=$(gen_pass)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Adding admin account
|
||||||
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
|
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Error: can't create admin user"
|
echo "Error: can't create admin user"
|
||||||
|
@ -762,7 +802,7 @@ $VESTA/bin/v-add-dns-domain admin default.domain $vst_ip
|
||||||
# Add default mail domain
|
# Add default mail domain
|
||||||
$VESTA/bin/v-add-mail-domain admin default.domain
|
$VESTA/bin/v-add-mail-domain admin default.domain
|
||||||
|
|
||||||
# Configuring crond
|
# Configuring cron jobs
|
||||||
command='sudo /usr/local/vesta/bin/v-update-sys-queue disk'
|
command='sudo /usr/local/vesta/bin/v-update-sys-queue disk'
|
||||||
$VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command"
|
$VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command"
|
||||||
command='sudo /usr/local/vesta/bin/v-update-sys-queue traffic'
|
command='sudo /usr/local/vesta/bin/v-update-sys-queue traffic'
|
||||||
|
@ -778,9 +818,14 @@ $VESTA/bin/v-add-cron-job 'admin' '20' '00' '*' '*' '*' "$command"
|
||||||
command='sudo /usr/local/vesta/bin/v-update-sys-rrd'
|
command='sudo /usr/local/vesta/bin/v-update-sys-rrd'
|
||||||
$VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command"
|
$VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command"
|
||||||
|
|
||||||
# Build inititall rrd images
|
# Building inititall rrd images
|
||||||
$VESTA/bin/v-update-sys-rrd
|
$VESTA/bin/v-update-sys-rrd
|
||||||
|
|
||||||
|
# Enable file system quota
|
||||||
|
if [ "$quota" = 'yes' ]; then
|
||||||
|
$VESTA/bin/v-add-sys-quota
|
||||||
|
fi
|
||||||
|
|
||||||
# Start system service
|
# Start system service
|
||||||
update-rc.d vesta defaults
|
update-rc.d vesta defaults
|
||||||
service vesta stop > /dev/null 2>&1
|
service vesta stop > /dev/null 2>&1
|
||||||
|
|
|
@ -15,4 +15,9 @@ if [ -x "/usr/local/vesta/upd/fix_vesta_ssl_permissions.sh" ]; then
|
||||||
/usr/local/vesta/upd/fix_vesta_ssl_permissions.sh
|
/usr/local/vesta/upd/fix_vesta_ssl_permissions.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Run MySQL autostart fixed
|
||||||
|
if [ -x "/usr/local/vesta/upd/fix_mysql_startup.sh" ]; then
|
||||||
|
/usr/local/vesta/upd/fix_mysql_startup.sh
|
||||||
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Name: vesta
|
Name: vesta
|
||||||
Version: 0.9.8
|
Version: 0.9.8
|
||||||
Release: 8
|
Release: 9
|
||||||
Summary: Vesta Control Panel
|
Summary: Vesta Control Panel
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
License: GPL
|
License: GPL
|
||||||
|
@ -40,7 +40,7 @@ if [ $1 -ge 2 ]; then
|
||||||
if [ -e /usr/local/vesta/upd/add_fwd_only.sh ]; then
|
if [ -e /usr/local/vesta/upd/add_fwd_only.sh ]; then
|
||||||
/usr/local/vesta/upd/add_fwd_only.sh
|
/usr/local/vesta/upd/add_fwd_only.sh
|
||||||
fi
|
fi
|
||||||
if [ -e /usr/local/vesta/fix_vesta_ssl_permissions.sh ]; then
|
if [ -e /usr/local/vesta/upd/fix_vesta_ssl_permissions.sh ]; then
|
||||||
/usr/local/vesta/upd/fix_vesta_ssl_permissions.sh
|
/usr/local/vesta/upd/fix_vesta_ssl_permissions.sh
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
11
upd/fix_mysql_startup.sh
Executable file
11
upd/fix_mysql_startup.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Fix MySQL autostart for Ubuntu 14.04
|
||||||
|
if [ -e "/etc/issue" ]; then
|
||||||
|
release=$(head -n 1 /etc/issue | cut -f 2 -d ' ' )
|
||||||
|
if [ "$release" = '14.04' ]; then
|
||||||
|
update-rc.d mysql disable
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit
|
|
@ -25,9 +25,11 @@ $v_ftp_email = $panel[$user]['CONTACT'];
|
||||||
if (empty($_POST['v_proxy'])) $v_adv = 'yes';
|
if (empty($_POST['v_proxy'])) $v_adv = 'yes';
|
||||||
if (!empty($_POST['v_ftp'])) $v_adv = 'yes';
|
if (!empty($_POST['v_ftp'])) $v_adv = 'yes';
|
||||||
|
|
||||||
$v_proxy_ext = 'jpg, jpeg, gif, png, ico, svg, css, zip, tgz, gz, rar, bz2, exe, pdf, ';
|
$v_proxy_ext = 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf,';
|
||||||
$v_proxy_ext .= 'doc, xls, ppt, txt, odt, ods, odp, odf, tar, bmp, rtf, js, mp3, avi, ';
|
$v_proxy_ext .= 'otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, ';
|
||||||
$v_proxy_ext .= 'mpeg, flv, html, htm';
|
$v_proxy_ext .= 'odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, ';
|
||||||
|
$v_proxy_ext .= 'bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, ';
|
||||||
|
$v_proxy_ext .= 'mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf';
|
||||||
if ($_POST['v_proxy_ext'] != $v_proxy_ext) $v_adv = 'yes';
|
if ($_POST['v_proxy_ext'] != $v_proxy_ext) $v_adv = 'yes';
|
||||||
|
|
||||||
// Protect input
|
// Protect input
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
body {
|
body {
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
background-color: #e5e5e5;
|
background-color: #e1e8e8;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border: 0;
|
border: 0;
|
||||||
|
@ -27,7 +27,7 @@ td {
|
||||||
.top {
|
.top {
|
||||||
width: 1000px;
|
width: 1000px;
|
||||||
position: fixed; background: #fff;
|
position: fixed; background: #fff;
|
||||||
border-bottom: 1px solid #e5e5e5;
|
border-bottom: 1px solid #e1e8e8;
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-menu {
|
.top-menu {
|
||||||
|
@ -52,7 +52,7 @@ td {
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-link:active{
|
.top-link:active{
|
||||||
color: #2361a1;
|
color: #333;
|
||||||
background-color: #f1f1f1;
|
background-color: #f1f1f1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ td {
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
padding: 0 20px 2px;
|
padding: 0 20px 2px;
|
||||||
color: #333;
|
color: #333;
|
||||||
background-color: #f1f1f1;
|
background-color: #f0f0f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-selected-link:hover {
|
.top-selected-link:hover {
|
||||||
|
@ -125,7 +125,7 @@ td {
|
||||||
height: 111px;
|
height: 111px;
|
||||||
width: 167px;
|
width: 167px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border-bottom: 1px solid #e5e5e5;
|
border-bottom: 1px solid #e1e8e8;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-lnk {
|
.nav-lnk {
|
||||||
|
@ -145,7 +145,7 @@ td {
|
||||||
width: 119px;
|
width: 119px;
|
||||||
float:left;
|
float:left;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border-bottom: 1px solid #e5e5e5;
|
border-bottom: 1px solid #e1e8e8;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-block:hover {
|
.nav-block:hover {
|
||||||
|
@ -195,6 +195,7 @@ td {
|
||||||
height: 58px;
|
height: 58px;
|
||||||
line-height: 1.4em;
|
line-height: 1.4em;
|
||||||
font-size: 9pt;
|
font-size: 9pt;
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
color: #333;
|
color: #333;
|
||||||
decoration: none;
|
decoration: none;
|
||||||
}
|
}
|
||||||
|
@ -318,13 +319,13 @@ td {
|
||||||
}
|
}
|
||||||
|
|
||||||
.submenu-select-link:hover {
|
.submenu-select-link:hover {
|
||||||
text-decoration: underline;
|
color: #fff;
|
||||||
|
background-color: #f79b44;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submenu-select-link:active {
|
.submenu-select-link:active {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #f79b44;
|
background-color: #777;
|
||||||
text-decoration: underline;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.submenu-select-dropdown {
|
.submenu-select-dropdown {
|
||||||
|
@ -458,7 +459,7 @@ td {
|
||||||
|
|
||||||
.data-row:hover {
|
.data-row:hover {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: #f7f6ed;
|
background-color: #f0f0f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.data-row:active {
|
.data-row:active {
|
||||||
|
@ -571,11 +572,9 @@ td {
|
||||||
|
|
||||||
.data-count {
|
.data-count {
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
background-color: #f3f3f3;
|
color: #505050;
|
||||||
color: #555;
|
|
||||||
font-size: 8pt;
|
font-size: 8pt;
|
||||||
margin: 18px 0 0 0;
|
padding: 20px 0 20px 174px;
|
||||||
padding: 0 16px 0 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart1 {
|
.chart1 {
|
||||||
|
@ -633,7 +632,7 @@ td {
|
||||||
.counter-name {
|
.counter-name {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
vertical-align:top;
|
vertical-align:top;
|
||||||
line-height: 1.3em;
|
line-height: 1.2em;
|
||||||
font-size: 10pt;
|
font-size: 10pt;
|
||||||
color: #222;
|
color: #222;
|
||||||
padding: 2px 4px 1px 0;
|
padding: 2px 4px 1px 0;
|
||||||
|
@ -649,7 +648,7 @@ td {
|
||||||
|
|
||||||
.counter-value {
|
.counter-value {
|
||||||
vertical-align:top;
|
vertical-align:top;
|
||||||
line-height: 1.3em;
|
line-height: 1.2em;
|
||||||
font-size: 10pt;
|
font-size: 10pt;
|
||||||
color: #222;
|
color: #222;
|
||||||
padding: 2px 0 1px 2px;
|
padding: 2px 0 1px 2px;
|
||||||
|
@ -838,12 +837,12 @@ td {
|
||||||
}
|
}
|
||||||
|
|
||||||
.generate:hover {
|
.generate:hover {
|
||||||
color: #7fa1cb;
|
background-color: #f79b44;
|
||||||
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.generate:active {
|
.generate:active {
|
||||||
background-color: #f79b44;
|
background-color: #999;
|
||||||
color: #fff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.vst-advanced {
|
.vst-advanced {
|
||||||
|
@ -856,12 +855,13 @@ td {
|
||||||
}
|
}
|
||||||
|
|
||||||
.vst-advanced:hover {
|
.vst-advanced:hover {
|
||||||
color: #7fa1cb;
|
color: #fff;
|
||||||
|
background-color: #f79b44;
|
||||||
}
|
}
|
||||||
|
|
||||||
.vst-advanced:active {
|
.vst-advanced:active {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #f79b44;
|
background-color: #777;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fixed{
|
.fixed{
|
||||||
|
@ -903,19 +903,18 @@ td {
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-bottom {
|
.login-bottom {
|
||||||
color: #ebe9dc;
|
|
||||||
text-align: right;
|
text-align: right;
|
||||||
vertical-align:top;
|
vertical-align:top;
|
||||||
width: 500px;
|
width: 474px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
padding: 0 26px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.vestacp{
|
.vestacp{
|
||||||
font-size: 8pt;
|
font-size: 8pt;
|
||||||
color: #222;
|
color: #505050;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
padding: 0 8px 0 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.error {
|
.error {
|
||||||
|
|
441
web/inc/i18n/ar.php
Normal file
441
web/inc/i18n/ar.php
Normal file
|
@ -0,0 +1,441 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Vesta language file
|
||||||
|
* skid (skid@vestacp.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
$LANG['ar'] = array(
|
||||||
|
'Packages' => 'الحزم',
|
||||||
|
'IP' => 'بروتوكول إنترنت',
|
||||||
|
'Graphs' => 'رسوم بيانية',
|
||||||
|
'Statistics' => 'إحصائيات',
|
||||||
|
'Log' => 'سجل',
|
||||||
|
'Services' => 'خدمات',
|
||||||
|
'Updates' => 'تحديثات',
|
||||||
|
'Log in' => 'تسجيل الدخول',
|
||||||
|
'Log out' => 'تسجيل الخروج',
|
||||||
|
|
||||||
|
'USER' => 'المستخدم',
|
||||||
|
'WEB' => 'الشبكة',
|
||||||
|
'DNS' => 'نظام أسماء النظاقات',
|
||||||
|
'MAIL' => 'البريد',
|
||||||
|
'DB' => 'قاعدة بيانات',
|
||||||
|
'CRON' => 'مجدول الوظائف',
|
||||||
|
'BACKUP' => 'النسخ الإحتياطية',
|
||||||
|
|
||||||
|
'Add User' => 'إضافة مستخدم',
|
||||||
|
'Add Domain' => 'إضافة نطاق',
|
||||||
|
'Add Web Domain' => 'إضافة نطاق شبكة',
|
||||||
|
'Add DNS Domain' => 'تسجيل نطاق في النظام',
|
||||||
|
'Add DNS Record' => 'إضافة سجل للنظام',
|
||||||
|
'Add Mail Domain' => 'إضافة نطاق بريدي',
|
||||||
|
'Add Mail Account' => 'إضافة حساب بريدي',
|
||||||
|
'Add Database' => 'إضافة قاعدة بيانات',
|
||||||
|
'Add Cron Job' => 'إضافة وظيفة مجدولة',
|
||||||
|
'Create Backup' => 'إنشاء نسخة احتياطية',
|
||||||
|
'Configure' => 'تهيئة',
|
||||||
|
'Restore All' => 'استرجاع الكل',
|
||||||
|
'Add Package' => 'إضافة رزمة',
|
||||||
|
'Add IP' => 'إضافة بروتوكول إنترنت',
|
||||||
|
'Search' => 'بحث',
|
||||||
|
'Overall Statistics' => 'إحصائيات عامة',
|
||||||
|
'Daily' => 'يومي',
|
||||||
|
'Weekly' => 'أسبوعي',
|
||||||
|
'Monthly' => 'شهري',
|
||||||
|
'Yearly' => 'سنوي',
|
||||||
|
'Add' => 'إضافة',
|
||||||
|
'Back' => 'رجوع',
|
||||||
|
'Save' => 'حفظ',
|
||||||
|
'Submit' => 'تسليم',
|
||||||
|
|
||||||
|
'toggle all' => 'تبديل الجميع',
|
||||||
|
'apply to selected' => 'تطبيق على ما تم اختياره',
|
||||||
|
'rebuild' => 'إعادة إنشاء',
|
||||||
|
'rebuild web' => 'إعادة إنشاء الشبكة',
|
||||||
|
'rebuild dns' => 'إعادة إنشاء نظام أسماء النطاقات',
|
||||||
|
'rebuild mail' => 'إعادة إنشاء البريد',
|
||||||
|
'rebuild db' => 'إعادة إنشاء قاعدة البيانات',
|
||||||
|
'rebuild cron' => 'إعادة إنشاء مجدول الوظائف',
|
||||||
|
'update counters' => 'تحديث العدادات',
|
||||||
|
'suspend' => 'تعليق',
|
||||||
|
'unsuspend' => 'إلغاء التعليق',
|
||||||
|
'delete' => 'حذف',
|
||||||
|
'show per user' => 'عرض حسب المستخدم',
|
||||||
|
'login as' => 'تسجيل الدخول ك',
|
||||||
|
'logout' => 'تسجيل الخروج',
|
||||||
|
'edit' => 'تعديل',
|
||||||
|
'open webstats' => 'فتح احصائيات الشبكة',
|
||||||
|
'view logs' => 'عرض السجلات',
|
||||||
|
'list records' => 'عرض السجلات',
|
||||||
|
'add record' => 'إضافة سجل',
|
||||||
|
'list accounts' => 'عرض الحسابات',
|
||||||
|
'add account' => 'إضافة حساب',
|
||||||
|
'open webmail' => 'فتح شبكة البريد',
|
||||||
|
'open %s' => 'فتح %s',
|
||||||
|
'download' => 'تحميل',
|
||||||
|
'restore' => 'استرجاع',
|
||||||
|
'configure restore settings' => 'تهيئة إعدادات الاسترجاع',
|
||||||
|
'stop' => 'إيقاف',
|
||||||
|
'start' => 'بدء',
|
||||||
|
'restart' => 'إعادة تشغيل',
|
||||||
|
'update' => 'تحديث',
|
||||||
|
'generate' => 'تكوين',
|
||||||
|
'Generate CSR' => 'تكوين طلب توقيع شهادة',
|
||||||
|
'reread IP' => 'إعادة قراءة بروتوكول الإنترنت',
|
||||||
|
'enable autoupdate' => 'تمكين التحديث التلقائي',
|
||||||
|
'disable autoupdate' => 'تعطيل التحديث التلقائي',
|
||||||
|
|
||||||
|
'Adding User' => 'جاري إضافة مستخدم',
|
||||||
|
'Editing User' => 'جاري تعديل المستخدم',
|
||||||
|
'Adding Domain' => 'جاري إضافة نطاق',
|
||||||
|
'Editing Domain' => 'جاري تعديل النطاق',
|
||||||
|
'Adding DNS Domain' => 'جاري إضافة نطاق للنظام',
|
||||||
|
'Editing DNS Domain' => 'جاري تعديل النطاق بالنظام',
|
||||||
|
'Adding DNS Record' => 'جاري إضافة سجل للنظام',
|
||||||
|
'Editing DNS Record' => 'جاري تعديل السحجل بالنظام',
|
||||||
|
'Adding Mail Domain' => 'جاري إضافة نطاق بريدي',
|
||||||
|
'Editing Mail Domain' => 'جاري تعديل النظاق البريدي',
|
||||||
|
'Adding Mail Account' => 'جاري إضافة حساب بريدي',
|
||||||
|
'Editing Mail Account' => 'جاري تعديل الحساب البريدي',
|
||||||
|
'Adding database' => 'جاري إضافة قاعدة بيانات',
|
||||||
|
'Editing Cron Job' => 'جاري تعديل وظيفة مجدولة',
|
||||||
|
'Adding Cron Job' => 'جاري إضافة وظيفة مجدولة',
|
||||||
|
'Editing Database' => 'جاري تعديل قاعدة البيانات',
|
||||||
|
'Adding Package' => 'جاري إضافة رزمة',
|
||||||
|
'Editing Package' => 'جاري تعديل الرزمة',
|
||||||
|
'Adding IP address' => 'جاري إضافة عنوان بروتوكول إنترنت',
|
||||||
|
'Editing IP Address' => 'جاري تعديل عنوان بروتوكول إنترنت',
|
||||||
|
'Editing Backup Exclusions' => 'جاري تعديل استثناءات النسخة الاحتياطية',
|
||||||
|
'Generating CSR' => 'جاري إنشاء طلب توقيع شهادة',
|
||||||
|
'Listing' => 'قائمة',
|
||||||
|
'Search Results' => 'نتائج البحث',
|
||||||
|
|
||||||
|
'active' => 'نشط',
|
||||||
|
'spnd' => 'معلق',
|
||||||
|
'suspended' => 'معلق',
|
||||||
|
'running' => 'يعمل',
|
||||||
|
'stopped' => 'متوقف',
|
||||||
|
'outdated' => 'نسخة قديمة',
|
||||||
|
'updated' => 'محدث',
|
||||||
|
|
||||||
|
'yes' => 'نعم',
|
||||||
|
'no' => 'لا',
|
||||||
|
'none' => 'لا شيء',
|
||||||
|
'pb' => 'pb',
|
||||||
|
'tb' => 'tb',
|
||||||
|
'gb' => 'gb',
|
||||||
|
'mb' => 'mb',
|
||||||
|
'minute' => 'دقيقة',
|
||||||
|
'hour' => 'ساعة',
|
||||||
|
'day' => 'يوم',
|
||||||
|
'days' => 'أيام',
|
||||||
|
'hours' => 'ساعات',
|
||||||
|
'minutes' => 'دقائق',
|
||||||
|
'month' => 'شهر',
|
||||||
|
'package' => 'رزمة',
|
||||||
|
'Bandwidth' => 'عرض النطاق',
|
||||||
|
'Disk' => 'إسطوانة',
|
||||||
|
'Web' => 'شبكة',
|
||||||
|
'Mail' => 'بريد',
|
||||||
|
'Databases' => 'قواعد بيانات',
|
||||||
|
'User Directories' => 'مجلدات المستخدم',
|
||||||
|
'Template' => 'نموذج',
|
||||||
|
'Web Template' => 'أباتشي نموذج',
|
||||||
|
'Proxy Template' => 'Nginx نموذج',
|
||||||
|
'DNS Template' => 'نظام أسماء النطاقات نموذج',
|
||||||
|
'Web Domains' => 'نطاقات الشبكة',
|
||||||
|
'SSL Domains' => 'نطاقات آمنة',
|
||||||
|
'Web Aliases' => 'اختصارات الشبكة',
|
||||||
|
'per domain' => 'لكل نطاق',
|
||||||
|
'DNS domains' => 'نطاقات النظام',
|
||||||
|
'DNS domains' => 'نطاقات النظام',
|
||||||
|
'DNS records' => 'سجلات النظام' ,
|
||||||
|
'Name Servers' => 'خوادم الأسماء',
|
||||||
|
'Mail Domains' => 'نطاقات البريد',
|
||||||
|
'Mail Accounts' => 'حسابات البريد',
|
||||||
|
'Cron Jobs' => 'الوظائق المجدولة',
|
||||||
|
'SSH Access' => 'وصول بعيد آمن',
|
||||||
|
'IP Addresses' => 'عنوان بروتوكول انترنت',
|
||||||
|
'Backups' => 'نسخ احتياطية',
|
||||||
|
'Backup System' => 'نظام النسخ الاحتياطي',
|
||||||
|
'backup exclusions' => 'استثناءات النسخ الاحتياطي',
|
||||||
|
'template' => 'نموذج',
|
||||||
|
'SSL Support' => 'دعم طبقة المقبض الآمن',
|
||||||
|
'SSL Home Directory' => 'المجلد الرئيسي لطبقة المقبض الآمن',
|
||||||
|
'Proxy Support' => 'Nginx دعم',
|
||||||
|
'Proxy Extensions' => 'Nginx إمتدادات',
|
||||||
|
'Web Statistics' => 'إحصائيات الشبكة',
|
||||||
|
'Additional FTP Account' => 'حساب بروتوكول نقل الملفات إضافي',
|
||||||
|
'SOA' => 'هيكلية الخدمات الموجهة',
|
||||||
|
'TTL' => 'الوقت المتبقي للخروج',
|
||||||
|
'Expire' => 'تنقضي',
|
||||||
|
'Records' => 'سجلات',
|
||||||
|
'Catchall email' => 'حصل كل البريد',
|
||||||
|
'AntiVirus Support' => 'دعم مضاد الفيروسات',
|
||||||
|
'AntiSpam Support' => 'دعم مضاد البريد المزعج',
|
||||||
|
'DKIM Support' => 'دعم مفاتيح النطاقات',
|
||||||
|
'Accounts' => 'حسابات',
|
||||||
|
'Quota' => 'حصة',
|
||||||
|
'Autoreply' => 'الرد الآلي',
|
||||||
|
'Forward to' => 'إعادة توجيه ل',
|
||||||
|
'Do not store forwarded mail' => 'لا تحتفظ بنسخة من البريد المعاد توجيهه',
|
||||||
|
'database' => 'قاعدة بيانات',
|
||||||
|
'User' => 'مستخدم',
|
||||||
|
'Host' => 'مضيف',
|
||||||
|
'Charset' => 'حزمة نص',
|
||||||
|
'Min' => 'دقيقة',
|
||||||
|
'Hour' => 'ساعة',
|
||||||
|
'Day' => 'يوم',
|
||||||
|
'Month' => 'شهر',
|
||||||
|
'Day of week' => 'اليوم في الإسبوع',
|
||||||
|
'local' => 'محلي',
|
||||||
|
'Run Time' => 'وقت التشغيل',
|
||||||
|
'Backup Size' => 'حجم النسخة الاحتياطية',
|
||||||
|
'SYS' => 'نظام',
|
||||||
|
'Domains' => 'نطاقات',
|
||||||
|
'Status' => 'حالة',
|
||||||
|
'shared' => 'مشارك',
|
||||||
|
'dedicated' => 'موجه',
|
||||||
|
'Owner' => 'مالك',
|
||||||
|
'Users' => 'مستخدمين',
|
||||||
|
'Load Average' => 'متوسط التحميل',
|
||||||
|
'Memory Usage' => 'استخدام الذاكرة',
|
||||||
|
'HTTPD Usage' => 'استخدام نظام بروتوكول نقل النص التشعبي',
|
||||||
|
'NGINX Usage' => 'NGINX استخدام',
|
||||||
|
'MySQL Usage on localhost' => 'استخدام قاعدة بيانات MySql على المضيف المحلي',
|
||||||
|
'PostgreSQL Usage on localhost' => 'PostgreSQL استخدام قاعدة بيانات على المضيف المحلي',
|
||||||
|
'Bandwidth Usage eth0' => 'eth0 استخدام سعة النطاق على منفذ',
|
||||||
|
'FTP Usage' => 'استخدام بروتوكول نقل الملفات',
|
||||||
|
'SSH Usage' => 'استخدام الوصول البعيد الآمن',
|
||||||
|
'reverse proxy' => 'الوكيل العكسي',
|
||||||
|
'web server' => 'خادم الشبكة',
|
||||||
|
'dns server' => 'خادم نظام أسماء النطاقات',
|
||||||
|
'mail server' => 'خادم البريد',
|
||||||
|
'pop/imap server' => 'pop/imap خادم',
|
||||||
|
'email antivirus' => 'مضاد فيروسات البريد',
|
||||||
|
'email antispam' => 'مضاد البريد المزعج',
|
||||||
|
'database server' => 'خادم قاعدة البيانات',
|
||||||
|
'ftp server' => 'خادم بروتوكول نقل الملفات',
|
||||||
|
'job scheduler' => 'مجدول الوظائف',
|
||||||
|
'CPU' => 'وحدة المعالجة المركزية',
|
||||||
|
'Memory' => 'الذاكرة',
|
||||||
|
'Uptime' => 'وقت التشغيل',
|
||||||
|
'core package' => 'الرزمة الأساسية',
|
||||||
|
'php interpreter' => 'php مترجم',
|
||||||
|
'internal web server' => 'خادم الشبكة الداخلي',
|
||||||
|
'Version' => 'إصدار',
|
||||||
|
'Release' => 'نسخة',
|
||||||
|
'Architecture' => 'هيكلية',
|
||||||
|
'Object' => 'عنصر',
|
||||||
|
'Owner' => 'مالك',
|
||||||
|
'Username' => 'اسم المستخدم',
|
||||||
|
'Password' => 'كلمة المرور',
|
||||||
|
'Email' => 'بريد',
|
||||||
|
'Package' => 'رزمة',
|
||||||
|
'Language' => 'لغة',
|
||||||
|
'First Name' => 'الإسم الأول',
|
||||||
|
'Last Name' => 'الإسم الأخير',
|
||||||
|
'Send login credentials to email address' => 'إرسال معلومات الدخول لعنوان البريد',
|
||||||
|
'Default Template' => 'نموذج افتراضي',
|
||||||
|
'Default Name Servers' => 'أسماء الخوادم الافتراضية',
|
||||||
|
'Domain' => 'نطاق',
|
||||||
|
'DNS Support' => 'دعم نظام أسماء النطاقات',
|
||||||
|
'Mail Support' => 'دعم البريد',
|
||||||
|
'Advanced options' => 'خيارات متقدمة',
|
||||||
|
'Aliases' => 'اختصارات',
|
||||||
|
'SSL Certificate' => 'شهادة طبقة مقبس آمن',
|
||||||
|
'SSL Key' => 'مفتاح طبقة المقبس الآمن',
|
||||||
|
'SSL Certificate Authority / Intermediate' => 'سلطة / متوسط شهادة طبقة المقبس الآمن ',
|
||||||
|
'SSL CSR' => 'طلب توقيع شهادة باستخدام طبقة المقبس الآمن',
|
||||||
|
'optional' => 'اختياري',
|
||||||
|
'internal' => 'داخلي',
|
||||||
|
'Statistics Authorization' => 'احصائيات الصلاحيات',
|
||||||
|
'Statistics Auth' => 'إحصائيات الصلاحيات',
|
||||||
|
'Account' => 'حساب',
|
||||||
|
'Prefix will be automaticaly added to username' => 'سيضاف بشكل آلي لأسم المستخدم %s اختصار',
|
||||||
|
'Send FTP credentials to email' => 'إرسال معلومات الاعتماد لبروتوكول نقل الملفات للبريد',
|
||||||
|
'Expiration Date' => 'تاريخ الانتهاء',
|
||||||
|
'YYYY-MM-DD' => 'YYYY-MM-DD',
|
||||||
|
'Name servers' => 'خوادم الأسماء',
|
||||||
|
'Record' => 'سجل',
|
||||||
|
'IP or Value' => 'بروتوكول إنترنت أو قيمة',
|
||||||
|
'Priority' => 'أولوية',
|
||||||
|
'Record Number' => 'عدد السجلات',
|
||||||
|
'in megabytes' => 'ب ميجا بابت',
|
||||||
|
'Message' => 'رسالة',
|
||||||
|
'use local-part' => 'استخدم جزء محلي',
|
||||||
|
'one or more email addresses' => 'عنوان بريدي واحد أو أكثر',
|
||||||
|
'Prefix will be automaticaly added to database name and database user' => 'الاختصار سيتم إضافته بشكل آلي لإسم قاعدة البيانات واسم المستخدم %s',
|
||||||
|
'Database' => 'قاعدة بيانات',
|
||||||
|
'Type' => 'نوع',
|
||||||
|
'Minute' => 'دقيقة',
|
||||||
|
'Command' => 'أمر',
|
||||||
|
'Package Name' => 'إسم الرزمة',
|
||||||
|
'Netmask' => 'قناع الشبكة',
|
||||||
|
'Interface' => 'واجهة',
|
||||||
|
'Shared' => 'مشارك',
|
||||||
|
'Assigned user' => 'المستخدم المعين',
|
||||||
|
'Assigned domain' => 'النطاق المعين',
|
||||||
|
'NAT IP association' => 'جمعية ترجمة عناوين بروتوكول الانترنت',
|
||||||
|
'shell' => 'منصب',
|
||||||
|
'web domains' => 'نطاقات شبكة',
|
||||||
|
'web aliases' => 'اسماء الشبكة المستعارة',
|
||||||
|
'dns records' => 'سجلات نظام أسماء النطاقات',
|
||||||
|
'mail domains' => 'نطاقات البريد',
|
||||||
|
'mail accounts' => 'حسابات البريد',
|
||||||
|
'accounts' => 'حسابات',
|
||||||
|
'databases' => 'قواعد بيانات',
|
||||||
|
'cron jobs' => 'وظائف مجدولة',
|
||||||
|
'backups' => 'نسخ احتياطية',
|
||||||
|
'quota' => 'حصة',
|
||||||
|
'day of week' => 'اليوم من الإسبوع',
|
||||||
|
'cmd' => 'أمر',
|
||||||
|
'users' => 'مستخدمين',
|
||||||
|
'domains' => 'نطاقات',
|
||||||
|
'aliases' => 'أسماء مستعارة',
|
||||||
|
'records' => 'سجلات',
|
||||||
|
'jobs' => 'وظائف',
|
||||||
|
'username' => 'اسم المستخدم',
|
||||||
|
'password' => 'كلمة المرور',
|
||||||
|
'type' => 'نوع',
|
||||||
|
'charset' => 'حزمة نص',
|
||||||
|
'domain' => 'نطاق',
|
||||||
|
'ip' => 'بروتوكول إنترنت',
|
||||||
|
'ip address' => 'عنوان بروتوكول إنترنت',
|
||||||
|
'IP address' => 'عنوان بروتوكول إنترنت',
|
||||||
|
'netmask' => 'قناع شبكة',
|
||||||
|
'interface' => 'واجهة',
|
||||||
|
'assigned user' => 'المستخدم المعين',
|
||||||
|
'ns1' => 'مساحة اسم 1',
|
||||||
|
'ns2' => 'مساحة اسم 2',
|
||||||
|
'user' => 'مستخدم',
|
||||||
|
'email' => 'بريد',
|
||||||
|
'first name' => 'الإسم الأول',
|
||||||
|
'last name' => 'الاسم الأخير',
|
||||||
|
'account' => 'حساب',
|
||||||
|
'ssl certificate' => 'شهادة طبقة مقبس آمن',
|
||||||
|
'ssl key' => 'مفتاح طبقة مقبس آمن',
|
||||||
|
'stats user password' => 'كلمة مرور مستخدم الإحصائيات',
|
||||||
|
'stats username' => 'مستخدم الإحصائيات',
|
||||||
|
'stats password' => 'كلمة مرور الإحصائيات',
|
||||||
|
'ftp user password' => 'كلمة مرور مستخدم بروتوكول نقل الملفات',
|
||||||
|
'ftp user' => 'مستخدم بروتوكول نقل الملفات',
|
||||||
|
'Last 70 lines of %s.%s.log' => 'آخر 70 سطر في %s.%s.log',
|
||||||
|
'Download AccessLog' => 'تحميل سجلات الوصول',
|
||||||
|
'Download ErrorLog' => 'تحميل سجلات الأخطاء',
|
||||||
|
'Country' => 'البلد',
|
||||||
|
'2 letter code' => 'كود من رسالتين',
|
||||||
|
'State / Province' => 'ولاية / مقاطعة',
|
||||||
|
'City / Locality' => 'المدينة / المنطقة',
|
||||||
|
'Organization' => 'مؤسسة',
|
||||||
|
|
||||||
|
'1 account' => '1 حساب',
|
||||||
|
'%s accounts' => 'حسابات %s',
|
||||||
|
'1 domain' => '1 نطاق',
|
||||||
|
'%s domains' => 'نطاقات %s',
|
||||||
|
'1 record' => '1 سجل',
|
||||||
|
'%s records' => 'سجلات %s',
|
||||||
|
'1 mail account' => '1 حساب بريد',
|
||||||
|
'%s mail accounts' => 'حسابات بريد %s',
|
||||||
|
'1 database' => '1 قاعدة بيانات',
|
||||||
|
'%s databases' => 'قواعد بيانات %s',
|
||||||
|
'1 cron job' => '1 وظيفة مجدولة',
|
||||||
|
'%s cron jobs' => 'وظائف مجدولة %s',
|
||||||
|
'1 archive' => '1 أرشيف',
|
||||||
|
'%s archives' => 'أرشيف %s',
|
||||||
|
'1 package' => '1 رزمة',
|
||||||
|
'%s packages' => 'رزم %s',
|
||||||
|
'1 IP address' => '1 عنوان بروتوكول إنترنت',
|
||||||
|
'%s IP addresses' => 'عناوين بروتوكول إنترنت %s',
|
||||||
|
'1 month' => '1 شهر',
|
||||||
|
'%s months' => 'أشهر %s',
|
||||||
|
'1 log record' => '1 سجل',
|
||||||
|
'%s log records' => 'سجلات %s',
|
||||||
|
'1 object' => '1 عنصر',
|
||||||
|
'%s objects' => 'عناصر %s',
|
||||||
|
'no exclusions' => 'لا استثناءات',
|
||||||
|
|
||||||
|
'USER_CREATED_OK' => 'المستخدم <a href="/edit/user/?user=%s"><b>%s</b></a> تم إنشائه بنجاح',
|
||||||
|
'WEB_DOMAIN_CREATED_OK' => 'النطاق <a href="/edit/web/?domain=%s"><b>%s</b></a>تم إنشائه بنجاح .',
|
||||||
|
'DNS_DOMAIN_CREATED_OK' => 'النطاق <a href="/list/dns/?domain=%s"><b>%s</b></a> تم إنشائه بنجاح.',
|
||||||
|
'DNS_RECORD_CREATED_OK' => 'السجل <b>%s.%s</b> تم إنشائه بنجاح.',
|
||||||
|
'MAIL_DOMAIN_CREATED_OK' => 'نطاق البريد <a href="/list/mail/?domain=%s"><b>%s</b></a> تم إنشائه بنجاح.',
|
||||||
|
'MAIL_ACCOUNT_CREATED_OK' => 'حساب البريد <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> تم إنشائه بنجاح',
|
||||||
|
'DATABASE_CREATED_OK' => 'قاعدة البيانات <a href="/edit/db/?database=%s"><b>%s</b></a> تم إنشائها بنجاح',
|
||||||
|
'CRON_CREATED_OK' => 'الوظيفة المجدولة تم إنشائها بنجاح.',
|
||||||
|
'IP_CREATED_OK' => 'عنوان بروتوكول الإنترنت <a href="/edit/ip/?ip=%s"><b>%s</b></a> تم إنشائه بنجاح.',
|
||||||
|
'PACKAGE_CREATED_OK' => 'الرزمة <a href="/edit/package/?package=%s"><b>%s</b></a> تم إنشائها بنجاح.',
|
||||||
|
'SSL_GENERATED_OK' => 'تم إنشاء الشهادة بنجاح.',
|
||||||
|
'Autoupdate has been successfully enabled' => 'تم تفيعل التحديث التلقائي بنجاح',
|
||||||
|
'Autoupdate has been successfully disabled' => 'تم تعطيل التحديث التلقائي بنجاح',
|
||||||
|
'Changes has been saved.' => 'تم حفظ التغييرات بنجاح.',
|
||||||
|
'Confirmation' => 'Confirmation',
|
||||||
|
'DELETE_USER_CONFIRMATION' => 'هل تريد فعلا حذف المستخدم %s?',
|
||||||
|
'SUSPEND_USER_CONFIRMATION' => 'هل تريد فعلا تعليق المستخدم %s?',
|
||||||
|
'UNSUSPEND_USER_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق المستخدم %s?',
|
||||||
|
'DELETE_DOMAIN_CONFIRMATION' => 'هل تريد فعلا حذف النطاق %s?',
|
||||||
|
'SUSPEND_DOMAIN_CONFIRMATION' => 'هل تريد فعلا تعليق النطاق %s?',
|
||||||
|
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق النطاق %s?',
|
||||||
|
'DELETE_RECORD_CONFIRMATION' => 'هل تريد فعلا حذف السجل %s?',
|
||||||
|
'SUSPEND_RECORD_CONFIRMATION' => 'هل تريد فعلا تعليق السجل %s?',
|
||||||
|
'UNSUSPEND_RECORD_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق السجل %s?',
|
||||||
|
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'هل تريد فعلا حذف %s?',
|
||||||
|
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'هل تريد فعلا تعليق %s?',
|
||||||
|
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق %s?',
|
||||||
|
'DELETE_DATABASE_CONFIRMATION' => 'هل تريد فعلا حذف قاعدة البيانات %s?',
|
||||||
|
'SUSPEND_DATABASE_CONFIRMATION' => 'هل تريد فعلا تعليق قاعدة البيانات %s?',
|
||||||
|
'UNSUSPEND_DATABASE_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق قاعدة البيانات %s?',
|
||||||
|
'DELETE_CRON_CONFIRMATION' => 'هل تريد فعلا حذف الوظيفة المجدولة?',
|
||||||
|
'SUSPEND_CRON_CONFIRMATION' => 'هل تريد فعلا تعليق الوظيفة المجدولة?',
|
||||||
|
'UNSUSPEND_CRON_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق الوظيفة المجدولة?',
|
||||||
|
'DELETE_BACKUP_CONFIRMATION' => 'هل تريد فعلا حذف التسخة الاحتياطية %s ?',
|
||||||
|
'DELETE_EXCLUSION_CONFIRMATION' => 'هل تريد فعلا حذف الاستثناء %s?',
|
||||||
|
'DELETE_PACKAGE_CONFIRMATION' => 'هل تريد فعلا حذف الرزمة %s?',
|
||||||
|
'DELETE_IP_CONFIRMATION' => 'هل تريد فعلا حذف عنوان بروتوكول الإنترنت %s?',
|
||||||
|
'Welcome' => 'أهلا وسهلا',
|
||||||
|
'LOGGED_IN_AS' => 'تم تسجيل الدخول ك %s',
|
||||||
|
'Error' => 'خطأ',
|
||||||
|
'Invalid username or password' => 'خطأ في اسم المستخدم أو كلمة المرور',
|
||||||
|
'Invalid username or code' => 'خطأ في اسم المستخدم أو في الكود',
|
||||||
|
'Passwords not match' => 'كلمات المرور غير متطابقة',
|
||||||
|
'Please enter valid email address.' => 'برجاء إدخال عنوان بريد إلكتروني صحيح.',
|
||||||
|
'Field "%s" can not be blank.' => 'العنصر "%s" لا يمكن أن يبقى فارغا.',
|
||||||
|
'Password is too short.' => 'كلمة المرور قصيرة جدا (على الأقل ح حروف)',
|
||||||
|
'Error code:' => 'كود الخطأ: %s',
|
||||||
|
'SERVICE_ACTION_FAILED' => '"%s" "%s" فشل',
|
||||||
|
'IP address is in use' => 'عنوان بروتوكول الإنترنت مستخدم بالفعل',
|
||||||
|
'BACKUP_SCHEDULED' =>'تم إضافة الوظيفة لطابور المهام. سيتم إرسال بريد إلكتروني لك عندما تجهز النسخة الاحتياطية للتحميل.',
|
||||||
|
'BACKUP_EXISTS' => 'يوجد عملية نسخ احتياطي تعمل حاليا. برجاء الانتظار حتى تنتهي عملية النسخ الاحتياطي.',
|
||||||
|
'RESTORE_SCHEDULED' => ' تم إضافة الوظيفة لطابور المهام. سيتم إرسال بريد إلكتروني لك عندما تجهز النسخة الاحتياطية للتحميل.',
|
||||||
|
'RESTORE_EXISTS' =>'يوجد عملية استعادة تعمل حاليا. برجاء الانتظار حتى تنتهي عملية الاستعادة قبل البدء بعملية جديدة.',
|
||||||
|
|
||||||
|
'WEB_EXCLUSIONS' => "اكتب اسم النطاق. واحد في كل سطر. لاستثناء جميع النطاقات استخدم *.. لاستثناء جميع مجالات النطاق استخدم الصيغة التالية: domain.com:public_html/cache:public_html/tmp",
|
||||||
|
'DNS_EXCLUSIONS' => "اكتب اسم النطاق, واحد في كل سطر. لاستثناء جميع النطاقات استخدم *",
|
||||||
|
'MAIL_EXCLUSIONS' => "اكتب اسم النطاق, واحد في كل سطر. لاستثناء جميع النطاقات استخدم *. لاستثناء حسابات معينة استخدم الصيغة: domain.com:info:support:postmaster",
|
||||||
|
'DB_EXCLUSIONS' => "اكتب اسم قاعدة البيانات بالكامل, واحدة في كل سطر. لاستثناء جميع قواعد البيانات استخدم *",
|
||||||
|
'CRON_EXCLUSIONS' => "لاستثناء جميع الوظائف المجدولة استخدم *",
|
||||||
|
'USER_EXCLUSIONS' => "اكتب اسم المجلد, واحد في كل سطر. لاستثناء جميع المجلدات استخدم *",
|
||||||
|
|
||||||
|
'Welcome to Vesta Control Panel' => 'Vesta أهلا بكم في لوحة تحكم',
|
||||||
|
'MAIL_FROM' => 'Vesta لوحة تحكم <noreply@%s>',
|
||||||
|
'GREETINGS_GORDON_FREEMAN' => "مرحبا, %s %s,\n",
|
||||||
|
'GREETINGS' => "مرحبا,\n",
|
||||||
|
'ACCOUNT_READY' => "تم انشاء حسابك بنجاح وهو جاهز للاستخدام.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||||
|
|
||||||
|
'FTP login credentials' => 'معلومات اعتماد الدخول لبروتوكول نقل الملفات',
|
||||||
|
'FTP_ACCOUNT_READY' => "تم إنشاء حساب بروتوكول نقل الملفات وهو جاهز للاستخدام.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||||
|
|
||||||
|
'Database Credentials' => 'معلومات اعتماد قاعدة البيانات',
|
||||||
|
'DATABASE_READY' => "تم انشاء قاعدة البيانات بنجاح.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n",
|
||||||
|
|
||||||
|
'forgot password' => 'نسيت كلمة المرور',
|
||||||
|
'Confirm' => 'تأكيد',
|
||||||
|
'New Password' => 'كلمة مرور جديدة',
|
||||||
|
'Confirm Password' => 'تأكيد كلمة المرور',
|
||||||
|
'Reset' => 'إعادة تعيين',
|
||||||
|
'Reset Code' => 'إعادة تعيين الكود',
|
||||||
|
'RESET_NOTICE' => '',
|
||||||
|
'RESET_CODE_SENT' => 'لقد تم إرسال كود إعادة تعيين كلمة المرور لعنوان بريدك الإلكتروني<br>',
|
||||||
|
'MAIL_RESET_SUBJECT' => 'تم إعادة تعيين كلمة المرور %s',
|
||||||
|
'PASSWORD_RESET_REQUEST' => "لإعادة تعيين كلمة مرور لوحة التحكم , برجاء اتباع الرابط التالي link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, بامكانك أيضا اتباع الرابط التالي https://%s/reset/?action=code&user=%s وادخال كود إعادة التعيين التالي code:\n%s\n\n إذا لم تطلب إعادة تعيين كلمة المرور, برجاء تجاهل هذه الرسالة وتقبل اعتذارنا.\n\n--\nVesta Control Panel\n",
|
||||||
|
);
|
443
web/inc/i18n/hu.php
Normal file
443
web/inc/i18n/hu.php
Normal file
|
@ -0,0 +1,443 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Vesta hungarian language file
|
||||||
|
* Készítette: Kovács Ákos - (kovacsakos1991@gmail.com)
|
||||||
|
* www.kovacsakos.info
|
||||||
|
* 2014.06.18.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$LANG['hu'] = array(
|
||||||
|
'Packages' => 'Csomagok',
|
||||||
|
'IP' => 'IP',
|
||||||
|
'Graphs' => 'Grafikonok',
|
||||||
|
'Statistics' => 'Statisztikák',
|
||||||
|
'Log' => 'Log',
|
||||||
|
'Services' => 'Szolgáltatások',
|
||||||
|
'Updates' => 'Frissítések',
|
||||||
|
'Log in' => 'Belépés',
|
||||||
|
'Log out' => 'Kilépés',
|
||||||
|
|
||||||
|
'USER' => 'FELHASZNÁLÓ',
|
||||||
|
'WEB' => 'WEB',
|
||||||
|
'DNS' => 'DNS',
|
||||||
|
'MAIL' => 'MAIL',
|
||||||
|
'DB' => 'ADATBÁZIS',
|
||||||
|
'CRON' => 'CRON',
|
||||||
|
'BACKUP' => 'MENTÉS',
|
||||||
|
|
||||||
|
'Add User' => 'Új felhasználó',
|
||||||
|
'Add Domain' => 'Új domain',
|
||||||
|
'Add Web Domain' => 'Új Web Domain',
|
||||||
|
'Add DNS Domain' => 'Új DNS Domain',
|
||||||
|
'Add DNS Record' => 'Új DNS Record',
|
||||||
|
'Add Mail Domain' => 'Új Mail Domain',
|
||||||
|
'Add Mail Account' => 'Új Mail fiók',
|
||||||
|
'Add Database' => 'Új adatbázis',
|
||||||
|
'Add Cron Job' => 'Új Cron Job',
|
||||||
|
'Create Backup' => 'Mentés készítése',
|
||||||
|
'Configure' => 'Beállítás',
|
||||||
|
'Restore All' => 'Összes visszaállítása',
|
||||||
|
'Add Package' => 'Csomag hozzáadása',
|
||||||
|
'Add IP' => 'Új IP',
|
||||||
|
'Search' => 'Keresés',
|
||||||
|
'Overall Statistics' => 'Átfogó statisztikák',
|
||||||
|
'Daily' => 'Napi',
|
||||||
|
'Weekly' => 'Heti',
|
||||||
|
'Monthly' => 'Havi',
|
||||||
|
'Yearly' => 'Éves',
|
||||||
|
'Add' => 'Hozzáadás',
|
||||||
|
'Back' => 'Vissza',
|
||||||
|
'Save' => 'Mentés',
|
||||||
|
'Submit' => 'OK',
|
||||||
|
|
||||||
|
'toggle all' => 'összes kinyit/bezár',
|
||||||
|
'apply to selected' => 'alkalmazás a kiválasztottakra',
|
||||||
|
'rebuild' => 'újratelepít',
|
||||||
|
'rebuild web' => 'web újraépítés',
|
||||||
|
'rebuild dns' => 'dns újraépítés',
|
||||||
|
'rebuild mail' => 'mail újraépítés',
|
||||||
|
'rebuild db' => 'adatbázis újraépítés',
|
||||||
|
'rebuild cron' => 'cron újraépítés',
|
||||||
|
'update counters' => 'számlálók frissítése',
|
||||||
|
'suspend' => 'felfüggeszt',
|
||||||
|
'unsuspend' => 'újraaktivál',
|
||||||
|
'delete' => 'törlés',
|
||||||
|
'show per user' => 'felhasználónként listáz',
|
||||||
|
'login as' => 'bejelentkezés, mint',
|
||||||
|
'logout' => 'kilépés',
|
||||||
|
'edit' => 'szerkesztés',
|
||||||
|
'open webstats' => 'statisztikák megnyitása',
|
||||||
|
'view logs' => 'logok megnyitása',
|
||||||
|
'list records' => '%s record listázása',
|
||||||
|
'add record' => 'rekord hozzáadása',
|
||||||
|
'list accounts' => '%s fiók listázása',
|
||||||
|
'add account' => 'fiók hozzáadása',
|
||||||
|
'open webmail' => 'webmail megnyitása',
|
||||||
|
'open %s' => '%s megnyitása',
|
||||||
|
'download' => 'letöltés',
|
||||||
|
'restore' => 'visszaállítás',
|
||||||
|
'configure restore settings' => 'visszaállítási beállítások konfigurálása',
|
||||||
|
'stop' => 'stop',
|
||||||
|
'start' => 'start',
|
||||||
|
'restart' => 'újraindítás',
|
||||||
|
'update' => 'frissítés',
|
||||||
|
'generate' => 'létrehoz',
|
||||||
|
'Generate CSR' => 'CSR generálás',
|
||||||
|
'reread IP' => 'IP újraolvasása',
|
||||||
|
'enable autoupdate' => 'automatikus frissítés engedélyezése',
|
||||||
|
'disable autoupdate' => 'automatikus frissítés tiltása',
|
||||||
|
|
||||||
|
'Adding User' => 'Felhasználó hozzáadása',
|
||||||
|
'Editing User' => 'Felhasználó szerkesztése',
|
||||||
|
'Adding Domain' => 'Domain hozzáadása',
|
||||||
|
'Editing Domain' => 'Domain szerkesztése',
|
||||||
|
'Adding DNS Domain' => 'DNS Domain hozzáadása',
|
||||||
|
'Editing DNS Domain' => 'DNS Domain szerkesztése',
|
||||||
|
'Adding DNS Record' => 'DNS Rekord hozzáadása',
|
||||||
|
'Editing DNS Record' => 'DNS Record szerkesztése',
|
||||||
|
'Adding Mail Domain' => 'Mail Domain hozzáadása',
|
||||||
|
'Editing Mail Domain' => 'Mail Domain szerkesztése',
|
||||||
|
'Adding Mail Account' => 'Mail Fiók hozzáadása',
|
||||||
|
'Editing Mail Account' => 'Mail Fiók szerkesztése',
|
||||||
|
'Adding database' => 'Adatbázis hozzáadása',
|
||||||
|
'Editing Cron Job' => 'Cron Job szerkesztése',
|
||||||
|
'Adding Cron Job' => 'Cron Job hozzáadása',
|
||||||
|
'Editing Database' => 'Adatbázis szerkesztése',
|
||||||
|
'Adding Package' => 'Csomag hozzáadása',
|
||||||
|
'Editing Package' => 'Csomag szerkesztése',
|
||||||
|
'Adding IP address' => 'IP cím hozzáadása',
|
||||||
|
'Editing IP Address' => 'IP cím szerkesztése',
|
||||||
|
'Editing Backup Exclusions' => 'Mentési kivételek szerkesztése',
|
||||||
|
'Generating CSR' => 'CSR generálása',
|
||||||
|
'Listing' => 'Listázás',
|
||||||
|
'Search Results' => 'Keresési eredmények',
|
||||||
|
|
||||||
|
'active' => 'aktív',
|
||||||
|
'spnd' => 'felfüggesztett',
|
||||||
|
'suspended' => 'felfüggesztett',
|
||||||
|
'running' => 'fut',
|
||||||
|
'stopped' => 'megállított',
|
||||||
|
'outdated' => 'elavult',
|
||||||
|
'updated' => 'frissített',
|
||||||
|
|
||||||
|
'yes' => 'igen',
|
||||||
|
'no' => 'nem',
|
||||||
|
'none' => 'egyik sem',
|
||||||
|
'pb' => 'pb',
|
||||||
|
'tb' => 'tb',
|
||||||
|
'gb' => 'gb',
|
||||||
|
'mb' => 'mb',
|
||||||
|
'minute' => 'perc',
|
||||||
|
'hour' => 'óra',
|
||||||
|
'day' => 'nap',
|
||||||
|
'days' => 'nap',
|
||||||
|
'hours' => 'óra',
|
||||||
|
'minutes' => 'perc',
|
||||||
|
'month' => 'hónap',
|
||||||
|
'package' => 'csomag',
|
||||||
|
'Bandwidth' => 'Sávszélesség',
|
||||||
|
'Disk' => 'Lemezterület',
|
||||||
|
'Web' => 'Web',
|
||||||
|
'Mail' => 'Mail',
|
||||||
|
'Databases' => 'Adatbázis',
|
||||||
|
'User Directories' => 'Felhasználói könyvtárak',
|
||||||
|
'Template' => 'Sablon',
|
||||||
|
'Web Template' => 'Apache sablon,
|
||||||
|
'Proxy Template' => 'Nginx sablon',
|
||||||
|
'DNS Template' => 'DNS sablon',
|
||||||
|
'Web Domains' => 'Web Domainek',
|
||||||
|
'SSL Domains' => 'SSL Domainek',
|
||||||
|
'Web Aliases' => 'Web Alias',
|
||||||
|
'per domain' => 'domainenként',
|
||||||
|
'DNS domains' => 'DNS Domainek',
|
||||||
|
'DNS domains' => 'DNS Domainek',
|
||||||
|
'DNS records' => 'DNS recordok' ,
|
||||||
|
'Name Servers' => 'Name Serverek',
|
||||||
|
'Mail Domains' => 'Mail Domainek',
|
||||||
|
'Mail Accounts' => 'Mail Fiókok',
|
||||||
|
'Cron Jobs' => 'Cron Jobs',
|
||||||
|
'SSH Access' => 'SSH hozzáférés',
|
||||||
|
'IP Addresses' => 'IP Címek',
|
||||||
|
'Backups' => 'Mentések',
|
||||||
|
'Backup System' => 'Mentési rendszer',
|
||||||
|
'backup exclusions' => 'kihagyás a mentésből',
|
||||||
|
'template' => 'sablon',
|
||||||
|
'SSL Support' => 'SSL támogatás',
|
||||||
|
'SSL Home Directory' => 'SSL kezdőlap',
|
||||||
|
'Proxy Support' => 'Nginx támogatás',
|
||||||
|
'Proxy Extensions' => 'Nginx kiterjesztések',
|
||||||
|
'Web Statistics' => 'Web statisztikák',
|
||||||
|
'Additional FTP Account' => 'Hozzáadott FTP',
|
||||||
|
'SOA' => 'SOA',
|
||||||
|
'TTL' => 'TTL',
|
||||||
|
'Expire' => 'Lejár',
|
||||||
|
'Records' => 'Rekordok',
|
||||||
|
'Catchall email' => 'Catchall email',
|
||||||
|
'AntiVirus Support' => 'AntiVirus támogatás',
|
||||||
|
'AntiSpam Support' => 'AntiSpam támogatás',
|
||||||
|
'DKIM Support' => 'DKIM támogatás',
|
||||||
|
'Accounts' => 'Fiókok',
|
||||||
|
'Quota' => 'Kvóta',
|
||||||
|
'Autoreply' => 'Automatikus válasz',
|
||||||
|
'Forward to' => 'Továbbítás',
|
||||||
|
'Do not store forwarded mail' => 'Továbbított e-mailek mentésének tiltása',
|
||||||
|
'database' => 'adatbázis',
|
||||||
|
'User' => 'Felhasználó',
|
||||||
|
'Host' => 'Hoszt',
|
||||||
|
'Charset' => 'Karakterkódolás',
|
||||||
|
'Min' => 'Perc',
|
||||||
|
'Hour' => 'Óra',
|
||||||
|
'Day' => 'Nap',
|
||||||
|
'Month' => 'Hónap',
|
||||||
|
'Day of week' => 'A hét napja',
|
||||||
|
'local' => 'helyi',
|
||||||
|
'Run Time' => 'Futási idő',
|
||||||
|
'Backup Size' => 'Mentés mérete',
|
||||||
|
'SYS' => 'SYS',
|
||||||
|
'Domains' => 'Domainek',
|
||||||
|
'Status' => 'Státusz',
|
||||||
|
'shared' => 'megosztott',
|
||||||
|
'dedicated' => 'dedikált',
|
||||||
|
'Owner' => 'Tulajdonos',
|
||||||
|
'Users' => 'Felhasználók',
|
||||||
|
'Load Average' => 'Load átlag',
|
||||||
|
'Memory Usage' => 'Memória használat',
|
||||||
|
'HTTPD Usage' => 'HTTPD használat',
|
||||||
|
'NGINX Usage' => 'NGINX használat',
|
||||||
|
'MySQL Usage on localhost' => 'MySQL használat a localhoston',
|
||||||
|
'PostgreSQL Usage on localhost' => 'PostgreSQL használat a localhoston',
|
||||||
|
'Bandwidth Usage eth0' => 'eth0 sávszélesség használat',
|
||||||
|
'FTP Usage' => 'FTP használat',
|
||||||
|
'SSH Usage' => 'SSH használat',
|
||||||
|
'reverse proxy' => 'fordított proxy',
|
||||||
|
'web server' => 'web szerver',
|
||||||
|
'dns server' => 'dns szerver',
|
||||||
|
'mail server' => 'mail szerver',
|
||||||
|
'pop/imap server' => 'pop/imap szerver',
|
||||||
|
'email antivirus' => 'email antivirus',
|
||||||
|
'email antispam' => 'email antispam',
|
||||||
|
'database server' => 'adatbázis szerver',
|
||||||
|
'ftp server' => 'ftp szerver',
|
||||||
|
'job scheduler' => 'job ütemező',
|
||||||
|
'CPU' => 'CPU',
|
||||||
|
'Memory' => 'Memória',
|
||||||
|
'Uptime' => 'Futási idő',
|
||||||
|
'core package' => 'alapcsomag',
|
||||||
|
'php interpreter' => 'php értelmező',
|
||||||
|
'internal web server' => 'külső web szerver',
|
||||||
|
'Version' => 'Verzió',
|
||||||
|
'Release' => 'Kiadás',
|
||||||
|
'Architecture' => 'Architektúra',
|
||||||
|
'Object' => 'Objektum',
|
||||||
|
'Owner' => 'Tulajdonos',
|
||||||
|
'Username' => 'Felhasználónév',
|
||||||
|
'Password' => 'Jelszó',
|
||||||
|
'Email' => 'Email',
|
||||||
|
'Package' => 'Csomag',
|
||||||
|
'Language' => 'Nyelv',
|
||||||
|
'First Name' => 'Keresztnév',
|
||||||
|
'Last Name' => 'Vezetéknév',
|
||||||
|
'Send login credentials to email address' => 'Belépési adatok küldése e-mailben',
|
||||||
|
'Default Template' => 'Alapértelmezett sablon',
|
||||||
|
'Default Name Servers' => 'Alapértelmezett névszerverek',
|
||||||
|
'Domain' => 'Domain',
|
||||||
|
'DNS Support' => 'DNS támogatás',
|
||||||
|
'Mail Support' => 'Mail támogatás',
|
||||||
|
'Advanced options' => 'Haladó beállítások',
|
||||||
|
'Aliases' => 'Aliaszok',
|
||||||
|
'SSL Certificate' => 'SSL igazolás',
|
||||||
|
'SSL Key' => 'SSL kulcs',
|
||||||
|
'SSL Certificate Authority / Intermediate' => 'SSL igazolás engedélyezése',
|
||||||
|
'SSL CSR' => 'SSL CSR',
|
||||||
|
'optional' => 'opcionális',
|
||||||
|
'internal' => 'belső',
|
||||||
|
'Statistics Authorization' => 'Statisztika engedélyezése',
|
||||||
|
'Statistics Auth' => 'Statisztika engedélyezése',
|
||||||
|
'Account' => 'Fiók',
|
||||||
|
'Prefix will be automaticaly added to username' => 'A(z) %s előtag automatikusan hozzáadásra kerül a felhasználónévhez.',
|
||||||
|
'Send FTP credentials to email' => 'FTP adatok küldése e-mailben',
|
||||||
|
'Expiration Date' => 'Lejárati dárum',
|
||||||
|
'YYYY-MM-DD' => 'ÉÉÉÉ-HH-NN',
|
||||||
|
'Name servers' => 'Névszerverek',
|
||||||
|
'Record' => 'Rekord',
|
||||||
|
'IP or Value' => 'IP avgy érték',
|
||||||
|
'Priority' => 'Prioritás',
|
||||||
|
'Record Number' => 'Rekord száma',
|
||||||
|
'in megabytes' => 'megabájtokban',
|
||||||
|
'Message' => 'üzenet',
|
||||||
|
'use local-part' => 'helyi rész használata',
|
||||||
|
'one or more email addresses' => 'egy vagy több e-mail cím',
|
||||||
|
'Prefix will be automaticaly added to database name and database user' => 'A(z) %s előtag automatikusan hozzáadásra kerül az adatbázis felhasználónévhez',
|
||||||
|
'Database' => 'Adatbázis',
|
||||||
|
'Type' => 'Típus',
|
||||||
|
'Minute' => 'Perc',
|
||||||
|
'Command' => 'Parancs',
|
||||||
|
'Package Name' => 'Csomagnév',
|
||||||
|
'Netmask' => 'Netmask',
|
||||||
|
'Interface' => 'Interfész',
|
||||||
|
'Shared' => 'Megosztott',
|
||||||
|
'Assigned user' => 'Hozzárendelt felhasználó',
|
||||||
|
'Assigned domain' => 'Hozzárendelt domain',
|
||||||
|
'NAT IP association' => 'NAT IP hozzárendelés',
|
||||||
|
'shell' => 'rendszerhéj',
|
||||||
|
'web domains' => 'web domainek',
|
||||||
|
'web aliases' => 'web aliaszok',
|
||||||
|
'dns records' => 'dns rekordok',
|
||||||
|
'mail domains' => 'mail domainek',
|
||||||
|
'mail accounts' => 'mail fiókok',
|
||||||
|
'accounts' => 'fiókok',
|
||||||
|
'databases' => 'adatbázisok',
|
||||||
|
'cron jobs' => 'cron jobs',
|
||||||
|
'backups' => 'mentések',
|
||||||
|
'quota' => 'kvóta',
|
||||||
|
'day of week' => 'a hét napja',
|
||||||
|
'cmd' => 'cmd',
|
||||||
|
'users' => 'felhasználók',
|
||||||
|
'domains' => 'domainek',
|
||||||
|
'aliases' => 'aliaszok',
|
||||||
|
'records' => 'rekordok',
|
||||||
|
'jobs' => 'jobs',
|
||||||
|
'username' => 'felhasználónév',
|
||||||
|
'password' => 'jelszó',
|
||||||
|
'type' => 'típus',
|
||||||
|
'charset' => 'karakterkódolás',
|
||||||
|
'domain' => 'domain',
|
||||||
|
'ip' => 'ip',
|
||||||
|
'ip address' => 'ip cím',
|
||||||
|
'IP address' => 'IP cím',
|
||||||
|
'netmask' => 'netmaszk',
|
||||||
|
'interface' => 'interfész',
|
||||||
|
'assigned user' => 'hozzárendelt felhasználó',
|
||||||
|
'ns1' => 'ns1',
|
||||||
|
'ns2' => 'ns2',
|
||||||
|
'user' => 'felhasználó',
|
||||||
|
'email' => 'email',
|
||||||
|
'first name' => 'vezetéknév',
|
||||||
|
'last name' => 'keresztnév',
|
||||||
|
'account' => 'fiók',
|
||||||
|
'ssl certificate' => 'ssl hitelesítés',
|
||||||
|
'ssl key' => 'ssl kulcs',
|
||||||
|
'stats user password' => 'stats user password',
|
||||||
|
'stats username' => 'stats username',
|
||||||
|
'stats password' => 'stats password',
|
||||||
|
'ftp user password' => 'ftp felhasználónév',
|
||||||
|
'ftp user' => 'ftp felhasználó',
|
||||||
|
'Last 70 lines of %s.%s.log' => 'A %s.%s.log utolsó 70 sora',
|
||||||
|
'Download AccessLog' => 'AccessLog letöltése',
|
||||||
|
'Download ErrorLog' => 'ErrorLog letöltése',
|
||||||
|
'Country' => 'Ország',
|
||||||
|
'2 letter code' => '2 Irányítószám',
|
||||||
|
'State / Province' => 'Megye',
|
||||||
|
'City / Locality' => 'Város',
|
||||||
|
'Organization' => 'Szervezet',
|
||||||
|
|
||||||
|
'1 account' => '1 fiók',
|
||||||
|
'%s accounts' => '%s fiók',
|
||||||
|
'1 domain' => '1 domain',
|
||||||
|
'%s domains' => '%s domainek',
|
||||||
|
'1 record' => '1 rekord',
|
||||||
|
'%s records' => '%s recordok',
|
||||||
|
'1 mail account' => '1 mail fiók',
|
||||||
|
'%s mail accounts' => '%s mail fiókok',
|
||||||
|
'1 database' => '1 adatbázis',
|
||||||
|
'%s databases' => '%s adatbázis',
|
||||||
|
'1 cron job' => '1 cron job',
|
||||||
|
'%s cron jobs' => '%s cron job',
|
||||||
|
'1 archive' => '1 archívum',
|
||||||
|
'%s archives' => '%s archívum',
|
||||||
|
'1 package' => '1 csomag',
|
||||||
|
'%s packages' => '%s csomag',
|
||||||
|
'1 IP address' => '1 IP cím',
|
||||||
|
'%s IP addresses' => '%s IP cím',
|
||||||
|
'1 month' => '1 hónap',
|
||||||
|
'%s months' => '%s hónap',
|
||||||
|
'1 log record' => '1 log rekord',
|
||||||
|
'%s log records' => '%s log rekord',
|
||||||
|
'1 object' => '1 objektum',
|
||||||
|
'%s objects' => '%s objektum',
|
||||||
|
'no exclusions' => 'nincs kihagyás',
|
||||||
|
|
||||||
|
'USER_CREATED_OK' => '<a href="/edit/user/?user=%s"><b>%s</b></a> felhasználó sikeresen létrehozva.',
|
||||||
|
'WEB_DOMAIN_CREATED_OK' => '<a href="/edit/web/?domain=%s"><b>%s</b></a> domain sikeresen létrehozva.',
|
||||||
|
'DNS_DOMAIN_CREATED_OK' => '<a href="/list/dns/?domain=%s"><b>%s</b></a> DNS domain sikeresen létrehozva.',
|
||||||
|
'DNS_RECORD_CREATED_OK' => '<b>%s.%s</b> rekord sikeresen létrehozva.',
|
||||||
|
'MAIL_DOMAIN_CREATED_OK' => '<a href="/list/mail/?domain=%s"><b>%s</b></a> ail domain sikeresen létrehozva.',
|
||||||
|
'MAIL_ACCOUNT_CREATED_OK' => '<a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> mail fiók sikeresen létrehozva.',
|
||||||
|
'DATABASE_CREATED_OK' => '<a href="/edit/db/?database=%s"><b>%s</b></a> adatbázis sikeresen létrehozva.',
|
||||||
|
'CRON_CREATED_OK' => 'Cron job sikeresen létrehozva.',
|
||||||
|
'IP_CREATED_OK' => '<a href="/edit/ip/?ip=%s"><b>%s</b></a> IP cím sikeresen létrehozva.',
|
||||||
|
'PACKAGE_CREATED_OK' => 'A(z) <a href="/edit/package/?package=%s"><b>%s</b></a> csomag sikeresen létrehozva.',
|
||||||
|
'SSL_GENERATED_OK' => 'A tanúsítvány sikeresen létrehozva.',
|
||||||
|
'Autoupdate has been successfully enabled' => 'Az automatikus frissítés bekapcsolva.',
|
||||||
|
'Autoupdate has been successfully disabled' => 'Az automatikus frissítés kikapcsolva.',
|
||||||
|
'Changes has been saved.' => 'A módosítások sikeresen mentésre kerültek.',
|
||||||
|
'Confirmation' => 'Megerősítés',
|
||||||
|
'DELETE_USER_CONFIRMATION' => 'Biztos, hogy törölni szeretnéd %s felhasználót?',
|
||||||
|
'SUSPEND_USER_CONFIRMATION' => 'Biztos, hogy felfüggeszted %s felhasználót?',
|
||||||
|
'UNSUSPEND_USER_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni %s felhasználót?',
|
||||||
|
'DELETE_DOMAIN_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s domaint?',
|
||||||
|
'SUSPEND_DOMAIN_CONFIRMATION' => 'Biztos, hogy felfüggeszted a(z) %s domaint?',
|
||||||
|
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s domaint?',
|
||||||
|
'DELETE_RECORD_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s rekordot?',
|
||||||
|
'SUSPEND_RECORD_CONFIRMATION' => 'Biztos, hogy felfüggeszted a(z) %s rekordot?',
|
||||||
|
'UNSUSPEND_RECORD_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s rekordot?',
|
||||||
|
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s -t?',
|
||||||
|
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Biztos, hogy felfüggeszted a(z) %s -t?',
|
||||||
|
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s -t?',
|
||||||
|
'DELETE_DATABASE_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s adatbázist?',
|
||||||
|
'SUSPEND_DATABASE_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s adatbázist?',
|
||||||
|
'UNSUSPEND_DATABASE_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s adatbázist?',
|
||||||
|
'DELETE_CRON_CONFIRMATION' => 'Biztos, hogy törlöd a cron job-ot?',
|
||||||
|
'SUSPEND_CRON_CONFIRMATION' => 'Biztos, hogy felfüggeszted a cron job-ot?',
|
||||||
|
'UNSUSPEND_CRON_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a cron job-ot?',
|
||||||
|
'DELETE_BACKUP_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s mentést?',
|
||||||
|
'DELETE_EXCLUSION_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s kivételt?',
|
||||||
|
'DELETE_PACKAGE_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s csomagot?',
|
||||||
|
'DELETE_IP_CONFIRMATION' => 'Biztos, hogy törlöd a(z) IP címet?',
|
||||||
|
'Welcome' => 'Üdvözöljük',
|
||||||
|
'LOGGED_IN_AS' => 'Belépve, mint %s',
|
||||||
|
'Error' => 'Hiba',
|
||||||
|
'Invalid username or password' => 'Hibás felhasználónév vagy jelszó',
|
||||||
|
'Invalid username or code' => 'Hibás felhasználónév vagy kód
|
||||||
|
'Passwords not match' => 'A jelszavak nem egyeznek meg',
|
||||||
|
'Please enter valid email address.' => 'Kérlek valós e-mail címet adj meg!',
|
||||||
|
'Field "%s" can not be blank.' => 'A(z) "%s" mező nem lehet üres.',
|
||||||
|
'Password is too short.' => 'A jelszó túl rövid.(minimum 6 karakter)',
|
||||||
|
'Error code:' => 'Hibakód: %s',
|
||||||
|
'SERVICE_ACTION_FAILED' => 'A(z) "%s" "%s" meghiúsult',
|
||||||
|
'IP address is in use' => 'Az IP cím használatban van.',
|
||||||
|
'BACKUP_SCHEDULED' => 'A feladat végrehajtás alatt. A mentés elkészültéről e-mail értesítést fogunk küldeni.',
|
||||||
|
'BACKUP_EXISTS' => 'Egy mentés már folyamatban van. Kérlek várj, míg elkészül.',
|
||||||
|
'RESTORE_SCHEDULED' => 'A feladat a végrehajtási sorba került. A mentés elkészültéről e-mail értesítést fogunk küldeni.',
|
||||||
|
'RESTORE_EXISTS' => 'Egy visszaállítás már folyamatban van. Kérlek várj, míg elkészül.',
|
||||||
|
|
||||||
|
'WEB_EXCLUSIONS' => "Írd be a domain nevet, soronként egyet. Az összes kihagyásához használj "*" -ot. Adott könyvtár kihagyásához használd a következő formátumot: domain.com:public_html/cache:public_html/tmp",
|
||||||
|
'DNS_EXCLUSIONS' => "Írd be a domain nevet, soronként egyet. Az összes kihagyásához használj "*" -ot.",
|
||||||
|
'MAIL_EXCLUSIONS' => "Írd be a domain nevet, soronként egyet. Az összes domain kihagyásához használj "*" -ot. Adott fiók kihagyásához használd a következő formátumot: domain.com:info:support:postmaster",
|
||||||
|
'DB_EXCLUSIONS' => "Írd be az adatbázis teljes nevét, soronként egyet. Az összes adatbázis kihagyásához használj "*" -ot",
|
||||||
|
'CRON_EXCLUSIONS' => "Az összes job kihagyásához használj "*" -ot.",
|
||||||
|
'USER_EXCLUSIONS' => "Írd be a könyvtár nevét, soronként egyet. Az összes kihagyásához használj "*" -ot.",
|
||||||
|
|
||||||
|
'Welcome to Vesta Control Panel' => 'Üdv, a Kezelőfelület!',
|
||||||
|
'MAIL_FROM' => 'Kezelőfelület <noreply@%s>',
|
||||||
|
'GREETINGS_GORDON_FREEMAN' => "Üdv, %s %s,\n",
|
||||||
|
'GREETINGS' => "Üdv,\n",
|
||||||
|
'ACCOUNT_READY' => "A fiókod létrejött és készen áll a használatra.\n\nhttps://%s/login/\nFelhasználónév: %s\nJelszó: %s\n\n--\nKezelőfelület\n",
|
||||||
|
|
||||||
|
'FTP login credentials' => 'FTP belépési adatok',
|
||||||
|
'FTP_ACCOUNT_READY' => "Az FTP felhasználó létrejött és készen áll a használatra.\n\nKiszolgáló: %s\nFelhasználónév: %s_%s\nJelszó: %s\n\n--\nKezelőfelület\n",
|
||||||
|
|
||||||
|
'Database Credentials' => 'Adatbázis adatok',
|
||||||
|
'DATABASE_READY' => "Az adatbázis létrejött és készen áll a használatra.\n\nAdatbázis: %s\nFelhasználónév: %s\nJelszó: %s\n%s\n\n--\nKezelőfelület\n",
|
||||||
|
|
||||||
|
'forgot password' => 'elfelejtett jelszó',
|
||||||
|
'Confirm' => 'Megerősít',
|
||||||
|
'New Password' => 'Új jelszó',
|
||||||
|
'Confirm Password' => 'Jelszó megerősítése',
|
||||||
|
'Reset' => 'Visszaállít',
|
||||||
|
'Reset Code' => 'Kód újragenerálása',
|
||||||
|
'RESET_NOTICE' => '',
|
||||||
|
'RESET_CODE_SENT' => 'A jelszó visszaállításhoz szükséges kód elküldésre került az e-mail címedre<br>',
|
||||||
|
'MAIL_RESET_SUBJECT' => 'Jelszó újragenerálás %s -kor',
|
||||||
|
'PASSWORD_RESET_REQUEST' => "A panel jelszavad visszaállításához kattints a következő linkre:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, vagy használd a következőt https://%s/reset/?action=code&user=%s és írd be a kódot:\n%s\n\nHa nem Te kérted a visszaállítást, kérlek hagyd figyelmen kívül ezt a levelet.\n\n--\nKezelőfelület\n",
|
||||||
|
);
|
|
@ -151,12 +151,12 @@ function humanize_time($usage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function humanize_usage($usage) {
|
function humanize_usage($usage) {
|
||||||
if ( $usage > 1000 ) {
|
if ( $usage > 1024 ) {
|
||||||
$usage = $usage / 1000;
|
$usage = $usage / 1024;
|
||||||
if ( $usage > 1000 ) {
|
if ( $usage > 1024 ) {
|
||||||
$usage = $usage / 1000 ;
|
$usage = $usage / 1024 ;
|
||||||
if ( $usage > 1000 ) {
|
if ( $usage > 1024 ) {
|
||||||
$usage = $usage / 1000 ;
|
$usage = $usage / 1024 ;
|
||||||
$usage = number_format($usage, 2);
|
$usage = number_format($usage, 2);
|
||||||
$usage = $usage."".__('pb');
|
$usage = $usage."".__('pb');
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -163,7 +163,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<textarea size="20" class="vst-textinput" name="v_proxy_ext"><?php if (!empty($v_proxy_ext)) { echo $v_proxy_ext;} else { echo 'jpg, jpeg, gif, png, ico, svg, css, zip, tgz, gz, rar, bz2, exe, pdf, doc, xls, ppt, txt, odt, ods, odp, odf, tar, bmp, rtf, js, mp3, avi, mpeg, flv, html, htm'; } ?></textarea>
|
<textarea size="20" class="vst-textinput" name="v_proxy_ext"><?php if (!empty($v_proxy_ext)) { echo $v_proxy_ext;} else { echo 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf, otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf'; } ?></textarea>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -135,19 +135,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 archive');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s archives',$i);
|
||||||
echo __('1 archive');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s archives',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -264,4 +264,3 @@
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -81,13 +81,7 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
...
|
||||||
<td width="174px"></td>
|
</div>
|
||||||
<td>
|
|
||||||
...
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -138,19 +138,13 @@
|
||||||
</table>
|
</table>
|
||||||
</from>
|
</from>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 cron job');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s cron jobs',$i);
|
||||||
echo __('1 cron job');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s cron jobs',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -159,18 +159,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 database');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s databases',$i);
|
||||||
echo __('1 database');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s databases',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -144,18 +144,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 domain');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s domains',$i);
|
||||||
echo __('1 domain');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s domains',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -88,19 +88,13 @@
|
||||||
?>
|
?>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px">
|
if ( $i == 1) {
|
||||||
</td>
|
echo __('1 record');
|
||||||
<td>
|
} else {
|
||||||
<?php
|
echo __('%s records',$i);
|
||||||
if ( $i == 1) {
|
}
|
||||||
echo __('1 record');
|
?>
|
||||||
} else {
|
</div>
|
||||||
echo __('%s records',$i);
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -135,18 +135,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 IP address');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s IP addresses',$i);
|
||||||
echo __('1 IP address');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s IP addresses',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -46,18 +46,13 @@
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('one log record');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s log records',$i);
|
||||||
echo __('one log record');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s log records',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -170,18 +170,13 @@
|
||||||
?>
|
?>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 domain');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s domains',$i);
|
||||||
echo __('1 domain');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s domains',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -142,18 +142,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 mail account');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s mail accounts',$i);
|
||||||
echo __('1 mail account');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s mail accounts',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -159,18 +159,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 package');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s packages',$i);
|
||||||
echo __('1 package');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s packages',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -193,18 +193,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1){
|
||||||
<td>
|
echo __('1 object');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1){
|
echo __('%s objects',$i);
|
||||||
echo __('1 object');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s objects',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -194,19 +194,13 @@
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 month');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s months',$i);
|
||||||
echo __('1 month');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s months',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -249,18 +249,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px">
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 account');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s accounts',$i);
|
||||||
echo __('1 account');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s accounts',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -209,18 +209,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px">
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 domain');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s domains',$i);
|
||||||
echo __('1 domain');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s domains',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -22,7 +22,12 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 12px 0 0 2px;">
|
<td style="padding: 12px 0 0 2px;">
|
||||||
<?php print __('Password');?> <a tabindex="5" class="generate" href="/reset/" style="font-size: 8pt; letter-spacing: 0.1em; padding: 0 0 0 14px;"><?php print __('forgot password');?></a>
|
<?php print __('Password');?>
|
||||||
|
<span style="padding:0 0 0 14px;">
|
||||||
|
<a tabindex="5" class="generate" href="/reset/" style="font-size: 8pt; letter-spacing: 0.1em;">
|
||||||
|
<?php print __('forgot password');?>
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -45,10 +50,10 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan=2>
|
<td colspan=2>
|
||||||
<table class="login-bottom">
|
<div class="login-bottom">
|
||||||
<tr><td>.<?php if (isset($ERROR)) echo $ERROR ?></td></tr>
|
<div style="height:20px"><?php if (isset($ERROR)) echo $ERROR ?></div>
|
||||||
<tr><td> <a tabindex="6" class="vestacp" href="http://vestacp.com" >vestacp.com</a></td></tr>
|
<a class="vestacp" href="http://vestacp.com" >vestacp.com</a>
|
||||||
</table>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<a href="/"><img border=0 src="/images/logo.png" width="124px" height="46px" alt="Vesta Control Panel" /></a>
|
<a href="/"><img border=0 src="/images/logo.png" width="124px" height="46px" alt="Vesta Control Panel" /></a>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding: 10px 0 0 0;">
|
<td style="padding: 10px 0 0 0;">
|
||||||
<form method="post" action="/reset/" >
|
<form method="post" action="/reset/">
|
||||||
<table class="login-box">
|
<table class="login-box">
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 12px 0 0 2px;">
|
<td style="padding: 12px 0 0 2px;">
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 20px 0 12px 0;">
|
<td style="padding: 20px 0 12px 0;">
|
||||||
<input tabindex="2" type="submit" value="<?php print __('Submit');?>" class="button">
|
<input tabindex="2" type="submit" value="<?php print __('Submit');?>" class="button">
|
||||||
|
<input type="button" class="button" value="<?php print __('Back');?>" onclick="location.href='/login/'">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -36,10 +37,10 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan=2>
|
<td colspan=2>
|
||||||
<table class="login-bottom">
|
<div class="login-bottom">
|
||||||
<tr><td>.<?php if (isset($ERROR)) echo $ERROR ?></td></tr>
|
<div style="height:20px"><?php if (isset($ERROR)) echo $ERROR ?></div>
|
||||||
<tr><td><a tabindex="6" class="vestacp" href="http://vestacp.com" >vestacp.com</a></td></tr>
|
<a class="vestacp" href="http://vestacp.com" >vestacp.com</a>
|
||||||
</table>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 12px 0 0 2px;"><?php print __('Reset Code');?></td>
|
<td style="padding: 12px 0 0 2px;" colspan=2><?php print __('Reset Code');?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 20px 0 12px 0;">
|
<td style="padding: 20px 0 12px 0;">
|
||||||
<input tabindex="2" type="submit" value="<?php print __('Confirm');?>" class="button">
|
<input tabindex="2" type="submit" value="<?php print __('Confirm');?>" class="button">
|
||||||
|
<input type="button" class="button" value="<?php print __('Back');?>" onclick="location.href='/reset/'">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -36,10 +37,10 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan=2>
|
<td colspan=2>
|
||||||
<table class="login-bottom">
|
<div class="login-bottom">
|
||||||
<tr><td>.<?php if (isset($ERROR)) echo $ERROR ?></td></tr>
|
<div style="height:20px"><?php if (isset($ERROR)) echo $ERROR ?></div>
|
||||||
<tr><td><a tabindex="6" class="vestacp" href="http://vestacp.com" >vestacp.com</a></td></tr>
|
<a class="vestacp" href="http://vestacp.com" >vestacp.com</a>
|
||||||
</table>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
<td>
|
<td>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 0 10 0 42; height: 280px; width: 170px;">
|
<td style="padding: 0 10px 0 42px; height: 280px; width: 170px;">
|
||||||
<a href="/"><img border=0 src="/images/logo.png" width="124px" height="46px" alt="Vesta Control Panel" /></a>
|
<a href="/"><img border=0 src="/images/logo.png" width="124px" height="46px" alt="Vesta Control Panel" /></a>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding: 20px 0 0 0;">
|
<td style="padding: 10px 0 0 0;">
|
||||||
<form method="post">
|
<form method="post">
|
||||||
<table class="login-box">
|
<table class="login-box">
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -34,12 +34,9 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td height="28px">
|
<td style="padding: 20px 0 12px 0;">
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="padding: 0 0 12px 0;">
|
|
||||||
<input tabindex="3" type="submit" value="<?php print __('Reset');?>" class="button">
|
<input tabindex="3" type="submit" value="<?php print __('Reset');?>" class="button">
|
||||||
|
<input type="button" class="button" value="<?php print __('Back');?>" onclick="location.href='/login/'">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -48,10 +45,10 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan=2>
|
<td colspan=2>
|
||||||
<table class="login-bottom">
|
<div class="login-bottom">
|
||||||
<tr><td>.<?php if (isset($ERROR)) echo $ERROR ?></td></tr>
|
<div style="height:20px"><?php if (isset($ERROR)) echo $ERROR ?></div>
|
||||||
<tr><td> <a tabindex="6" class="vestacp" href="http://vestacp.com" >vestacp.com</a></td></tr>
|
<a class="vestacp" href="http://vestacp.com" >vestacp.com</a>
|
||||||
</table>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -134,7 +134,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<textarea size="20" class="vst-textinput" name="v_proxy_ext"><?php if (!empty($v_proxy_ext)) { echo $v_proxy_ext;} else { echo 'jpg, jpeg, gif, png, ico, svg, css, zip, tgz, gz, rar, bz2, exe, pdf, doc, xls, ppt, txt, odt, ods, odp, odf, tar, bmp, rtf, js, mp3, avi, mpeg, flv, html, htm'; } ?></textarea>
|
<textarea size="20" class="vst-textinput" name="v_proxy_ext"><?php if (!empty($v_proxy_ext)) { echo $v_proxy_ext;} else { echo 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf, otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf'; } ?></textarea>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -126,19 +126,13 @@
|
||||||
</table>
|
</table>
|
||||||
</from>
|
</from>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 cron job');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s cron jobs',$i);
|
||||||
echo __('1 cron job');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s cron jobs',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -147,18 +147,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 database');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s databases',$i);
|
||||||
echo __('1 database');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s databases',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -132,18 +132,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 domain');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s domains',$i);
|
||||||
echo __('1 domain');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s domains',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -86,19 +86,14 @@
|
||||||
?>
|
?>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<table class="data-count">
|
|
||||||
<tr>
|
<div class="data-count">
|
||||||
<td width="174px">
|
<?php
|
||||||
</td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 record');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s records',$i);
|
||||||
echo __('1 record');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s records',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -158,18 +158,14 @@
|
||||||
?>
|
?>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<table class="data-count">
|
|
||||||
<tr>
|
<div class="data-count">
|
||||||
<td width="174px"></td>
|
<?php
|
||||||
<td>
|
if ( $i == 1) {
|
||||||
<?php
|
echo __('1 domain');
|
||||||
if ( $i == 1) {
|
} else {
|
||||||
echo __('1 domain');
|
echo __('%s domains',$i);
|
||||||
} else {
|
}
|
||||||
echo __('%s domains',$i);
|
?>
|
||||||
}
|
</div>
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -130,18 +130,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 mail account');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s mail accounts',$i);
|
||||||
echo __('1 mail account');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s mail accounts',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -170,18 +170,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1){
|
||||||
<td>
|
echo __('1 object');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1){
|
echo __('%s objects',$i);
|
||||||
echo __('1 object');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s objects',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -179,19 +179,13 @@
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px"></td>
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 month');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s months',$i);
|
||||||
echo __('1 month');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s months',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -174,18 +174,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px">
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 account');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s accounts',$i);
|
||||||
echo __('1 account');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s accounts',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -197,18 +197,13 @@
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table class="data-count">
|
<div class="data-count">
|
||||||
<tr>
|
<?php
|
||||||
<td width="174px">
|
if ( $i == 1) {
|
||||||
<td>
|
echo __('1 domain');
|
||||||
<?php
|
} else {
|
||||||
if ( $i == 1) {
|
echo __('%s domains',$i);
|
||||||
echo __('1 domain');
|
}
|
||||||
} else {
|
?>
|
||||||
echo __('%s domains',$i);
|
</div>
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue