This commit is contained in:
anton-reutov 2014-07-13 18:36:46 +00:00
commit e4486331df
88 changed files with 2107 additions and 911 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 #

View file

@ -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

View 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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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"

View file

@ -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

View file

@ -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
View 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

View file

@ -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=$?

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 &mdash; Forbidden</title> <title>403 &mdash; 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>

View file

@ -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 &mdash; Not Found</title> <title>404 &mdash; 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>

View file

@ -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 &mdash; Internal Sever Error</title> <title>500 &mdash; 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>

View file

@ -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>

View file

@ -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 &mdash; Forbidden</title> <title>403 &mdash; 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>

View file

@ -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 &mdash; Not Found</title> <title>404 &mdash; 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>

View file

@ -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 &mdash; Internal Sever Error</title> <title>500 &mdash; 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>

View file

@ -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>

View file

@ -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

View file

@ -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

View file

@ -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 &mdash; Forbidden</title> <title>403 &mdash; 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>

View file

@ -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 &mdash; Not Found</title> <title>404 &mdash; 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>

View file

@ -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 &mdash; Internal Sever Error</title> <title>500 &mdash; 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>

View file

@ -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>

View file

@ -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

View file

@ -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

View file

@ -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,7 +732,8 @@ 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 "CREATE DATABASE roundcube" mysql -e "DROP DATABASE roundcube" > /dev/null 2>&1
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
mysql roundcube < /usr/share/dbconfig-common/data/roundcube/install/mysql mysql roundcube < /usr/share/dbconfig-common/data/roundcube/install/mysql
@ -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

View file

@ -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

View file

@ -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
View 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

View file

@ -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

View file

@ -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
View 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
View 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",
);

View file

@ -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 {

View file

@ -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>

View file

@ -324,7 +324,7 @@
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Username');?> <?php print __('Username');?>
<?php if (empty($v_ftp_user)) echo '<br><span style="font-size: 10pt; color:#777;">' . __('Prefix will be automaticaly added to username',$user."_") . '</span>' ?> <?php if (empty($v_ftp_user)) echo '<br><span style="font-size: 10pt; color:#777;">' . __('Prefix will be automaticaly added to username',$user."_") . '</span>' ?>
</td> </td>
</tr> </tr>
<tr> <tr>

View file

@ -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>

View file

@ -264,4 +264,3 @@
</form> </form>
</div> </div>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -67,4 +67,4 @@
} }
?> ?>
</table> </table>
</div> </div>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>