diff --git a/bin/v-add-dns-domain b/bin/v-add-dns-domain index 09d5b571..f43891a6 100755 --- a/bin/v-add-dns-domain +++ b/bin/v-add-dns-domain @@ -15,15 +15,8 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | sed -e 's/\.*$//g' -e 's/^\.*//g') -if [[ "$domain" =~ [[:upper:]] ]]; then - domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]') -fi -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi +domain=$2 +domain_idn=$2 ip=$3 ns1=$4 ns2=$5 @@ -40,6 +33,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -56,37 +53,35 @@ template=$(get_user_value '$DNS_TEMPLATE') is_dns_template_valid $template if [ ! -z "$ns1" ]; then - ns1=$(echo $4 | sed -e 's/\.*$//g' -e 's/^\.*//g') + ns1=$(echo $4 |sed -e 's/\.*$//g' -e 's/^\.*//g') is_format_valid 'ns1' fi if [ ! -z "$ns2" ]; then - ns2=$(echo $5 | sed -e 's/\.*$//g' -e 's/^\.*//g') + ns2=$(echo $5 |sed -e 's/\.*$//g' -e 's/^\.*//g') is_format_valid 'ns2' fi - if [ ! -z "$ns3" ]; then - ns3=$(echo $6 | sed -e 's/\.*$//g' -e 's/^\.*//g') + ns3=$(echo $6 |sed -e 's/\.*$//g' -e 's/^\.*//g') is_format_valid 'ns3' fi if [ ! -z "$ns4" ]; then - ns4=$(echo $7 | sed -e 's/\.*$//g' -e 's/^\.*//g') + ns4=$(echo $7 |sed -e 's/\.*$//g' -e 's/^\.*//g') is_format_valid 'ns4' fi if [ ! -z "$ns5" ]; then - ns5=$(echo $8 | sed -e 's/\.*$//g' -e 's/^\.*//g') + ns5=$(echo $8 |sed -e 's/\.*$//g' -e 's/^\.*//g') is_format_valid 'ns5' fi if [ ! -z "$ns6" ]; then - ns6=$(echo $9 | sed -e 's/\.*$//g' -e 's/^\.*//g') + ns6=$(echo $9 |sed -e 's/\.*$//g' -e 's/^\.*//g') is_format_valid 'ns6' fi if [ ! -z "$ns7" ]; then - ns7=$(echo ${10} | sed -e 's/\.*$//g' -e 's/^\.*//g') + ns7=$(echo ${10} |sed -e 's/\.*$//g' -e 's/^\.*//g') is_format_valid 'ns7' fi - if [ ! -z "$ns8" ]; then - ns8=$(echo ${11} | sed -e 's/\.*$//g' -e 's/^\.*//g') + ns8=$(echo ${11} |sed -e 's/\.*$//g' -e 's/^\.*//g') is_format_valid 'ns8' fi @@ -203,10 +198,8 @@ increase_user_value "$user" '$U_DNS_DOMAINS' increase_user_value "$user" '$U_DNS_RECORDS' "$records" # Restart named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "DNS restart failed" -fi +$BIN/v-restart-dns $restart +check_result $? "DNS restart failed" # Logging log_history "added dns domain $domain" diff --git a/bin/v-add-dns-record b/bin/v-add-dns-record index b785973c..9a5aaaf2 100755 --- a/bin/v-add-dns-record +++ b/bin/v-add-dns-record @@ -26,11 +26,6 @@ if [ -z "$priority" ]; then priority=10 fi -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi - # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh @@ -44,7 +39,7 @@ fi # Add trailing dot at the end of NS/CNAME/MX/PTR/SRV record if [[ $rtype =~ NS|CNAME|MX|PTR|SRV ]]; then trailing_dot=$(echo $dvalue | grep "\.$") - if [ -z $trailing_dot ]; then + if [ -z "$trailing_dot" ]; then dvalue="$dvalue." fi fi @@ -55,6 +50,10 @@ if [[ "$dvalue" =~ [\;[:space:]] ]]; then dvalue='"'"$dvalue"'"' fi +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -110,6 +109,16 @@ if [ ! -z "$DNS_CLUSTER" ]; then fi fi +# remove trailing dot at the end of NS/CNAME/MX/PTR/SRV record + +if [[ $rtype =~ NS|CNAME|MX|PTR|SRV ]]; then + trailing_dot2=$(echo $record | grep "\.$") + if [ ! -z $trailing_dot2 ]; then + record=$(echo "${record::-1}") + fi +fi + + #----------------------------------------------------------# # Vesta # @@ -121,10 +130,8 @@ update_object_value 'dns' 'DOMAIN' "$domain" '$RECORDS' "$records" increase_user_value "$user" '$U_DNS_RECORDS' # Restart named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? $E_RESTART 'dns failed to restart' -fi +$BIN/v-restart-dns $restart +check_result $? $E_RESTART 'dns failed to restart' # Logging log_history "added $rtype dns record $record for $domain" diff --git a/bin/v-add-domain b/bin/v-add-domain index 49b105be..e383481a 100755 --- a/bin/v-add-domain +++ b/bin/v-add-domain @@ -64,16 +64,14 @@ if [ ! -z "$MAIL_SYSTEM" ]; then fi # Restarting services -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "can't restart web" > /dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "can't restart proxy" > /dev/null - fi - $BIN/v-restart-dns - check_result $? "can't restart dns" > /dev/null -fi +$BIN/v-restart-web $restart +check_result $? "can't restart web" > /dev/null + +$BIN/v-restart-proxy $restart +check_result $? "can't restart proxy" > /dev/null + +$BIN/v-restart-dns $restart +check_result $? "can't restart dns" > /dev/null #----------------------------------------------------------# diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index 9b900b71..602c3c24 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -51,6 +51,7 @@ get_domain_values 'web' # Registering LetsEncrypt user account $BIN/v-add-letsencrypt-user $user if [ "$?" -ne 0 ]; then + touch $VESTA/data/queue/letsencrypt.pipe sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe send_notice "LETSENCRYPT" "Account registration failed" check_result $E_CONNECT "LE account registration" >/dev/null @@ -65,6 +66,7 @@ i=1 for alias in $(echo $domain,$aliases |tr ',' '\n' |sort -u); do $BIN/v-check-letsencrypt-domain $user $alias if [ "$?" -ne 0 ]; then + touch $VESTA/data/queue/letsencrypt.pipe sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe send_notice "LETSENCRYPT" "$alias validation failed" check_result $E_INVALID "LE domain validation" >/dev/null @@ -72,6 +74,7 @@ for alias in $(echo $domain,$aliases |tr ',' '\n' |sort -u); do # Checking LE limits per account if [ "$i" -gt 100 ]; then + touch $VESTA/data/queue/letsencrypt.pipe sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe send_notice 'LETSENCRYPT' 'Limit of domains per account is reached' check_result $E_LIMIT "LE can't sign more than 100 domains" @@ -86,6 +89,7 @@ ssl_dir=$($BIN/v-generate-ssl-cert "$domain" "$email" "US" "California" \ # Signing CSR crt=$($BIN/v-sign-letsencrypt-csr $user $domain $ssl_dir) if [ "$?" -ne 0 ]; then + touch $VESTA/data/queue/letsencrypt.pipe sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe send_notice "LETSENCRYPT" "$alias validation failed" check_result "$E_INVALID" "LE $domain validation" @@ -107,6 +111,7 @@ fi $BIN/v-delete-web-domain-ssl $user $domain >/dev/null 2>&1 $BIN/v-add-web-domain-ssl $user $domain $ssl_dir if [ "$?" -ne '0' ]; then + touch $VESTA/data/queue/letsencrypt.pipe sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe send_notice 'LETSENCRYPT' "$domain certificate installation failed" check_result $? "SSL install" >/dev/null @@ -141,6 +146,7 @@ fi send_notice 'LETSENCRYPT' "$domain SSL has been installed successfully" # Deleteing task from queue +touch $VESTA/data/queue/letsencrypt.pipe sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe # Logging diff --git a/bin/v-add-mail-account b/bin/v-add-mail-account index 586871a4..44925680 100755 --- a/bin/v-add-mail-account +++ b/bin/v-add-mail-account @@ -11,10 +11,8 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") -account=$(echo $3 | tr '[:upper:]' '[:lower:]') +domain=$2 +account=$3 password=$4; HIDE=4 quota=${5-unlimited} @@ -23,6 +21,11 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +if [[ "$account" =~ [[:upper:]] ]]; then + account=$(echo "$account" |tr '[:upper:]' '[:lower:]') +fi + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-mail-account-alias b/bin/v-add-mail-account-alias index 004e6e4d..03ecaec9 100755 --- a/bin/v-add-mail-account-alias +++ b/bin/v-add-mail-account-alias @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 malias=$4 @@ -22,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-mail-account-autoreply b/bin/v-add-mail-account-autoreply index 88070f7c..f8c8f62b 100755 --- a/bin/v-add-mail-account-autoreply +++ b/bin/v-add-mail-account-autoreply @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 autoreply=$4 @@ -29,6 +27,10 @@ else MAIL_USER=exim fi +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-mail-account-forward b/bin/v-add-mail-account-forward index 1a990a31..6be94b22 100755 --- a/bin/v-add-mail-account-forward +++ b/bin/v-add-mail-account-forward @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 forward=$4 @@ -22,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-mail-account-fwd-only b/bin/v-add-mail-account-fwd-only index 277776ba..02704cfb 100755 --- a/bin/v-add-mail-account-fwd-only +++ b/bin/v-add-mail-account-fwd-only @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 # Includes @@ -28,6 +26,10 @@ else MAIL_USER=exim fi +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-mail-domain b/bin/v-add-mail-domain index eedc02d9..2676e750 100755 --- a/bin/v-add-mail-domain +++ b/bin/v-add-mail-domain @@ -11,15 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | sed -e 's/\.*$//g' -e 's/^\.*//g') -if [[ "$domain" =~ [[:upper:]] ]]; then - domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]') -fi -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi +domain=$2 antispam=${3-yes} antivirus=${4-yes} dkim=${5-yes} @@ -37,6 +29,10 @@ else MAIL_USER=exim fi +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -123,10 +119,10 @@ if [ ! -z "$DNS_SYSTEM" ] && [ "$dkim" = 'yes' ]; then p=$(cat $USER_DATA/mail/$domain.pub|grep -v ' KEY---'|tr -d '\n') record='_domainkey' policy="\"t=y; o=~;\"" - $BIN/v-add-dns-record $user $domain $record TXT "$policy" + $BIN/v-add-dns-record $user $domain $record TXT "$policy" '' '' 'no' record='mail._domainkey' - selector="\"k=rsa\; p=$p\"" + selector="\"v=DKIM1\; k=rsa\; p=$p\"" $BIN/v-add-dns-record $user $domain $record TXT "$selector" fi fi diff --git a/bin/v-add-mail-domain-antispam b/bin/v-add-mail-domain-antispam index 916f1540..4ca81f94 100755 --- a/bin/v-add-mail-domain-antispam +++ b/bin/v-add-mail-domain-antispam @@ -11,15 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-mail-domain-antivirus b/bin/v-add-mail-domain-antivirus index d18857cb..c0acd82d 100755 --- a/bin/v-add-mail-domain-antivirus +++ b/bin/v-add-mail-domain-antivirus @@ -11,15 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-mail-domain-catchall b/bin/v-add-mail-domain-catchall index 91dc0354..f827449f 100755 --- a/bin/v-add-mail-domain-catchall +++ b/bin/v-add-mail-domain-catchall @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 email="$3" # Includes @@ -21,6 +19,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-mail-domain-dkim b/bin/v-add-mail-domain-dkim index 4a71870c..307fe9b5 100755 --- a/bin/v-add-mail-domain-dkim +++ b/bin/v-add-mail-domain-dkim @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 dkim_size=${3-1024} # Includes @@ -28,6 +26,10 @@ else MAIL_USER=exim fi +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -63,12 +65,12 @@ fi # Adding dns records if [ ! -z "$DNS_SYSTEM" ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then p=$(cat $USER_DATA/mail/$domain.pub |grep -v ' KEY---' |tr -d '\n') - record="_domainkey.$domain_idn" + record="_domainkey" policy="\"t=y; o=~;\"" - $BIN/v-add-dns-record $user $domain $record TXT "$policy" + $BIN/v-add-dns-record $user $domain $record TXT "$policy" '' '' 'no' - record="mail._domainkey.$domain_idn" - selector="\"k=rsa\; p=$p\"" + record="mail._domainkey" + selector="\"v=DKIM1\; k=rsa\; p=$p\"" $BIN/v-add-dns-record $user $domain $record TXT "$selector" fi @@ -79,7 +81,7 @@ fi # Adding dkim in config update_object_value 'mail' 'DOMAIN' "$domain" '$DKIM' 'yes' -increase_user_value "$user" '$U_MAIL_DKMI' +increase_user_value "$user" '$U_MAIL_DKIM' # Logging log_history "enabled DKIM support for $domain" diff --git a/bin/v-add-sys-sftp-jail b/bin/v-add-sys-sftp-jail index 7953f151..7d5c4035 100755 --- a/bin/v-add-sys-sftp-jail +++ b/bin/v-add-sys-sftp-jail @@ -45,6 +45,7 @@ fi # Enabling jailed sftp if [ -z "$sftp_i" ]; then + echo " " >> $config echo "Subsystem sftp internal-sftp" >> $config echo "Match Group sftp-only" >> $config echo "ChrootDirectory /chroot/%u" >> $config diff --git a/bin/v-add-web-domain b/bin/v-add-web-domain index 6313674f..62619a42 100755 --- a/bin/v-add-web-domain +++ b/bin/v-add-web-domain @@ -18,37 +18,23 @@ # Argument definition user=$1 domain=$2 +domain_idn=$2 ip=$3 restart=$4 # will be moved to the end soon aliases=$5 proxy_ext=$6 -# Additional argument formatting -if [[ "$domain" =~ [[:upper:]] ]]; then - domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]') -fi -if [[ "$domain" =~ ^www\..* ]]; then - domain=$(echo "$domain" |sed -e "s/^www.//") -fi -if [[ "$domain" =~ .*\.$ ]]; then - domain=$(echo "$domain" |sed -e "s/\.$//") -fi -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi -if [ ! -z "$aliases" ] && [ "$aliases" != 'none' ]; then - aliases=$(echo $aliases |tr '[:upper:]' '[:lower:]' |tr ',' '\n') - aliases=$(echo "$aliases" |sed -e "s/\.$//" |sort -u |grep -v www.$domain) - aliases=$(echo "$aliases" |sed -e "/^$/d" |tr '\n' ',' |sed -e "s/,$//") -fi - # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn +format_aliases + #----------------------------------------------------------# # Verifications # @@ -178,10 +164,8 @@ $BIN/v-restart-web $restart check_result $? "Web restart failed" >/dev/null # Restarting proxy server -if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy $restart - check_result $? "Proxy restart failed" >/dev/null -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "added web domain $domain" diff --git a/bin/v-add-web-domain-alias b/bin/v-add-web-domain-alias index 59e077ca..932e1ffa 100755 --- a/bin/v-add-web-domain-alias +++ b/bin/v-add-web-domain-alias @@ -12,13 +12,8 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") -dom_alias=$(idn -t --quiet -u "$3" ) -dom_alias=$(echo $dom_alias | sed -e 's/\.*$//g' -e 's/^\.*//g') -dom_alias=$(echo $dom_alias | tr '[:upper:]' '[:lower:]') -dom_alias_idn=$(idn -t --quiet -a "$dom_alias" ) +domain=$2 +aliases=$3 restart="$4" # Includes @@ -27,6 +22,11 @@ source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn +format_aliases + #----------------------------------------------------------# # Verifications # @@ -39,7 +39,7 @@ is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_object_valid 'web' 'DOMAIN' "$domain" is_object_unsuspended 'web' 'DOMAIN' "$domain" -is_domain_new 'web' "$dom_alias" +is_domain_new 'web' "$aliases" is_package_full 'WEB_ALIASES' @@ -53,9 +53,9 @@ get_domain_values 'web' # Preparing domain values for the template substitution local_ip=$(get_real_ip $IP) if [ -z "$ALIAS" ]; then - ALIAS="$dom_alias" + ALIAS="$aliases" else - ALIAS="$ALIAS,$dom_alias" + ALIAS="$ALIAS,$aliases" fi prepare_web_domain_values @@ -87,17 +87,15 @@ update_object_value 'web' 'DOMAIN' "$domain" '$ALIAS' "$ALIAS" increase_user_value "$user" '$U_WEB_ALIASES' # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +# Restarting proxy server +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null -log_history "added $dom_alias as alias for $domain" + +log_history "added $aliases for $domain" log_event "$OK" "$ARGUMENTS" exit diff --git a/bin/v-add-web-domain-backend b/bin/v-add-web-domain-backend index 301b10d6..1c415bb3 100755 --- a/bin/v-add-web-domain-backend +++ b/bin/v-add-web-domain-backend @@ -67,10 +67,8 @@ cat $WEBTPL/$WEB_BACKEND/$template.tpl |\ #----------------------------------------------------------# # Restart backend server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web-backend - check_result $? "Web backend restart failed" >/dev/null -fi +$BIN/v-restart-web-backend $restart +check_result $? "Web backend restart failed" >/dev/null # Logging log_history "added $WEB_BACKEND backend configuration for $domain" diff --git a/bin/v-add-web-domain-ftp b/bin/v-add-web-domain-ftp index 67afc644..1c118706 100755 --- a/bin/v-add-web-domain-ftp +++ b/bin/v-add-web-domain-ftp @@ -11,8 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ftp_user=${1}_${3} password=$4; HIDE=4 ftp_path=$5 @@ -22,6 +21,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-web-domain-proxy b/bin/v-add-web-domain-proxy index ff6a12fa..9bd42746 100755 --- a/bin/v-add-web-domain-proxy +++ b/bin/v-add-web-domain-proxy @@ -72,10 +72,8 @@ update_object_value 'web' 'DOMAIN' "$domain" '$PROXY' "$template" update_object_value 'web' 'DOMAIN' "$domain" '$PROXY_EXT' "$extentions" # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null log_history "enabled proxy support for $domain" log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-add-web-domain-ssl b/bin/v-add-web-domain-ssl index fa8de5c6..4f1e83c0 100755 --- a/bin/v-add-web-domain-ssl +++ b/bin/v-add-web-domain-ssl @@ -16,18 +16,35 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ssl_dir=$3 ssl_home=${4-same} restart="$5" +# Additional argument formatting +if [[ "$domain" =~ [[:upper:]] ]]; then + domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]') +fi +if [[ "$domain" =~ ^www\..* ]]; then + domain=$(echo "$domain" |sed -e "s/^www.//") +fi +if [[ "$domain" =~ .*\.$ ]]; then + domain=$(echo "$domain" |sed -e "s/\.$//") +fi + +domain=$(idn -t --quiet -u "$domain" ) +domain_idn=$(idn -t --quiet -a "$domain") + # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -97,15 +114,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$SSL_HOME' "$SSL_HOME" update_object_value 'web' 'DOMAIN' "$domain" '$SSL' "yes" # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "enabled ssl support for $domain" diff --git a/bin/v-add-web-domain-stats b/bin/v-add-web-domain-stats index deec1646..60caf0c1 100755 --- a/bin/v-add-web-domain-stats +++ b/bin/v-add-web-domain-stats @@ -15,8 +15,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 type=$3 # Includes @@ -24,6 +23,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-backup-user b/bin/v-backup-user index 98995e9f..786941a9 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -137,7 +137,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then mkdir -p $tmpdir/web/$domain/vesta # Get domain variables - domain_idn=$(idn -t --quiet -a "$domain") + format_domain_idn get_domain_values 'web' # Backup web.conf @@ -286,7 +286,7 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then echo -e "$(date "+%F %T") $domain" |tee -a $BACKUP/$user.log mkdir -p $tmpdir/mail/$domain/conf mkdir -p $tmpdir/mail/$domain/vesta - domain_idn=$(idn -t --quiet -a "$domain") + format_domain_idn # Backup exim config if [[ "$MAIL_SYSTEM" =~ exim ]]; then diff --git a/bin/v-change-dns-domain-exp b/bin/v-change-dns-domain-exp index ec11acc9..e5b0c6a9 100755 --- a/bin/v-change-dns-domain-exp +++ b/bin/v-change-dns-domain-exp @@ -12,14 +12,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 exp=$3 # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-change-dns-domain-ip b/bin/v-change-dns-domain-ip index 47e01f42..fca3ecb7 100755 --- a/bin/v-change-dns-domain-ip +++ b/bin/v-change-dns-domain-ip @@ -11,8 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ip=$3 restart=$4 @@ -21,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -71,10 +74,8 @@ fi #----------------------------------------------------------# # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "DNS restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "DNS restart failed" >/dev/null # Logging log_history "changed dns ip for $domain to $ip" diff --git a/bin/v-change-dns-domain-soa b/bin/v-change-dns-domain-soa index 553bcfc9..e235a639 100755 --- a/bin/v-change-dns-domain-soa +++ b/bin/v-change-dns-domain-soa @@ -12,8 +12,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 soa=$(echo $3 | sed -e 's/\.*$//g' -e 's/^\.*//g') restart=$4 @@ -22,6 +21,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -65,10 +68,8 @@ fi #----------------------------------------------------------# # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "DNS restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "DNS restart failed" >/dev/null # Logging log_history "changed soa record for $domain to $soa" diff --git a/bin/v-change-dns-domain-tpl b/bin/v-change-dns-domain-tpl index 8af190f5..63c71e41 100755 --- a/bin/v-change-dns-domain-tpl +++ b/bin/v-change-dns-domain-tpl @@ -13,20 +13,19 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) +domain=$2 template=$3 restart=$4 -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi - # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -121,10 +120,8 @@ update_object_value 'dns' 'DOMAIN' "$domain" '$TPL' "$template" update_object_value 'dns' 'DOMAIN' "$domain" '$RECORDS' "$records" # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "DNS restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "DNS restart failed" >/dev/null # Logging log_history "changed dns template for $domain to $template" '' 'admin' diff --git a/bin/v-change-dns-domain-ttl b/bin/v-change-dns-domain-ttl index 0e85391f..131b7930 100755 --- a/bin/v-change-dns-domain-ttl +++ b/bin/v-change-dns-domain-ttl @@ -11,8 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ttl=$3 restart=$4 @@ -21,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -64,10 +67,8 @@ fi #----------------------------------------------------------# # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "DNS restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "DNS restart failed" >/dev/null # Logging log_history "changed TTL for $domain to $ttl" diff --git a/bin/v-change-dns-record b/bin/v-change-dns-record index 505a8a1f..612ffc6c 100755 --- a/bin/v-change-dns-record +++ b/bin/v-change-dns-record @@ -11,22 +11,21 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) +domain=$2 id=$3 dvalue=$(idn -t --quiet -u "$4" ) priority=$5 restart=$6 -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi - # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -105,10 +104,8 @@ fi #----------------------------------------------------------# # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "DNS restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "DNS restart failed" >/dev/null # Logging log_history "changed dns record on $domain to $dvalue" diff --git a/bin/v-change-dns-record-id b/bin/v-change-dns-record-id index 4c321b0f..5dbcf299 100755 --- a/bin/v-change-dns-record-id +++ b/bin/v-change-dns-record-id @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 id=$3 newid=$4 restart=$5 @@ -23,6 +21,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -71,10 +73,8 @@ fi #----------------------------------------------------------# # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "DNS restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "DNS restart failed" >/dev/null # Logging log_history "changed dns record id on $domain" diff --git a/bin/v-change-domain-owner b/bin/v-change-domain-owner index 7a0f265b..8f267307 100755 --- a/bin/v-change-domain-owner +++ b/bin/v-change-domain-owner @@ -148,6 +148,18 @@ if [ ! -z "$mail_data" ]; then $BIN/v-unsuspend-mail-domain $user $domain no >> /dev/null 2>&1 $BIN/v-rebuild-mail-domains $owner no $BIN/v-rebuild-mail-domains $user + + # Checking exim username for later chowning + exim_user="exim"; + check_exim_username=$(grep -c '^Debian-exim:' /etc/passwd) + if [ "$check_exim_username" -eq 1 ]; then + exim_user="Debian-exim" + fi + # Chowning mail conf files to exim user + if [ -d "$HOMEDIR/$user/conf/mail/$domain" ]; then + find $HOMEDIR/$user/conf/mail/$domain -user root \ + -exec chown $exim_user {} \; + fi fi # Update counters diff --git a/bin/v-change-mail-account-password b/bin/v-change-mail-account-password index da6b788c..0540ac7b 100755 --- a/bin/v-change-mail-account-password +++ b/bin/v-change-mail-account-password @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 password=$4; HIDE=4 @@ -22,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-change-mail-account-quota b/bin/v-change-mail-account-quota index 0d4f8d53..edbbabab 100755 --- a/bin/v-change-mail-account-quota +++ b/bin/v-change-mail-account-quota @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 quota=$4 @@ -22,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-change-mail-domain-catchall b/bin/v-change-mail-domain-catchall index 25e0caaa..022dbf1d 100755 --- a/bin/v-change-mail-domain-catchall +++ b/bin/v-change-mail-domain-catchall @@ -11,16 +11,18 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") -email="$3" +domain=$2 +email=$3 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -53,7 +55,6 @@ fi # Change catchall in config update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' "$email" - # Logging log_history "changed catchall email for $domain to $email" log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-change-sys-ip-nat b/bin/v-change-sys-ip-nat index 8f681555..58232212 100755 --- a/bin/v-change-sys-ip-nat +++ b/bin/v-change-sys-ip-nat @@ -73,10 +73,8 @@ fi #----------------------------------------------------------# # Restart ftp server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-ftp - check_result $? "FTP restart failed" >/dev/null -fi +$BIN/v-restart-ftp $restart +check_result $? "FTP restart failed" >/dev/null # Logging log_history "changed associated nat address on $ip to $nat_ip" '' 'admin' diff --git a/bin/v-change-user-package b/bin/v-change-user-package index bb0b21d8..d0de98db 100755 --- a/bin/v-change-user-package +++ b/bin/v-change-user-package @@ -43,7 +43,7 @@ is_package_avalable() { check_result $E_LIMIT "Package doesn't cover WEB_DOMAIN usage" fi fi - if [ "$DNS_DOMAINS" ! = 'unlimited' ]; then + if [ "$DNS_DOMAINS" != 'unlimited' ]; then if [ "$DNS_DOMAINS" -lt "$U_DNS_DOMAINS" ]; then check_result $E_LIMIT "Package doesn't cover DNS_DOMAIN usage" fi diff --git a/bin/v-change-web-domain-backend-tpl b/bin/v-change-web-domain-backend-tpl index 67044d6d..36a15000 100755 --- a/bin/v-change-web-domain-backend-tpl +++ b/bin/v-change-web-domain-backend-tpl @@ -11,11 +11,9 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 template=$3 -restart="$4" - +restart=$4 # Includes source $VESTA/func/main.sh @@ -23,6 +21,10 @@ source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -143,13 +145,11 @@ fi # Restarting web -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - $BIN/v-restart-web-backend - check_result $? "Web backend restart failed" >/dev/null -fi +$BIN/v-restart-web-backend $restart +check_result $? "Web backend restart failed" >/dev/null # Logging log_history "changed backend template for $domain to $template" diff --git a/bin/v-change-web-domain-ftp-password b/bin/v-change-web-domain-ftp-password index 1eabe0ef..c41fdde7 100755 --- a/bin/v-change-web-domain-ftp-password +++ b/bin/v-change-web-domain-ftp-password @@ -11,8 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ftp_user=$3 password=$4; HIDE=4 @@ -21,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-change-web-domain-ftp-path b/bin/v-change-web-domain-ftp-path index 6ac0b7df..8cfefade 100755 --- a/bin/v-change-web-domain-ftp-path +++ b/bin/v-change-web-domain-ftp-path @@ -11,8 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ftp_user=$3 ftp_path=$4 @@ -21,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-change-web-domain-ip b/bin/v-change-web-domain-ip index b3e19432..05fde851 100755 --- a/bin/v-change-web-domain-ip +++ b/bin/v-change-web-domain-ip @@ -21,6 +21,10 @@ source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -44,12 +48,6 @@ is_ip_valid "$ip" "$user" get_domain_values 'web' old=$(get_real_ip $IP) new=$ip -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -else - domain_idn=$domain -fi - # Replacing vhost replace_web_config "$WEB_SYSTEM" "$TPL.tpl" @@ -78,15 +76,11 @@ decrease_ip_value "$old" update_object_value 'web' 'DOMAIN' "$domain" '$IP' "$3" # Restart web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "WEB restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "WEB restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "changed web domain $domain ip to $3" diff --git a/bin/v-change-web-domain-name b/bin/v-change-web-domain-name index 316c6a12..51215393 100755 --- a/bin/v-change-web-domain-name +++ b/bin/v-change-web-domain-name @@ -15,17 +15,16 @@ domain=$2 new_domain=$3 restart=$4 -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi - # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-change-web-domain-proxy-tpl b/bin/v-change-web-domain-proxy-tpl index cb51169b..c2be52f1 100755 --- a/bin/v-change-web-domain-proxy-tpl +++ b/bin/v-change-web-domain-proxy-tpl @@ -11,21 +11,23 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 template=$3 default_extentions="jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,\ exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,html,htm" extentions=${4-$default_extentions} restart="$5" - # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -75,10 +77,8 @@ update_object_value 'web' 'DOMAIN' "$domain" '$PROXY' "$PROXY" update_object_value 'web' 'DOMAIN' "$domain" '$PROXY_EXT' "$extentions" # Restarting proxy -if [ "$restart" != 'no' ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "changed proxy template for $domain to $template" diff --git a/bin/v-change-web-domain-sslcert b/bin/v-change-web-domain-sslcert index 67c1e0eb..444510c7 100755 --- a/bin/v-change-web-domain-sslcert +++ b/bin/v-change-web-domain-sslcert @@ -12,8 +12,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ssl_dir=$3 restart=$4 @@ -22,6 +21,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -71,15 +74,11 @@ fi #----------------------------------------------------------# # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "changed ssl certificate for $domain" diff --git a/bin/v-change-web-domain-sslhome b/bin/v-change-web-domain-sslhome index c5764629..f9768e32 100755 --- a/bin/v-change-web-domain-sslhome +++ b/bin/v-change-web-domain-sslhome @@ -7,8 +7,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ssl_home=$3 restart=$4 @@ -17,6 +16,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -67,15 +70,11 @@ fi update_object_value 'web' 'DOMAIN' "$domain" '$SSL_HOME' "$SSL_HOME" # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "changed ssl home for $domain to $ssl_home" diff --git a/bin/v-change-web-domain-stats b/bin/v-change-web-domain-stats index fcd661ff..afaa7fe7 100755 --- a/bin/v-change-web-domain-stats +++ b/bin/v-change-web-domain-stats @@ -12,8 +12,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 type=$3 # Includes @@ -21,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-change-web-domain-tpl b/bin/v-change-web-domain-tpl index 93635230..ef88e7a4 100755 --- a/bin/v-change-web-domain-tpl +++ b/bin/v-change-web-domain-tpl @@ -12,8 +12,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 template=$3 restart=$4 @@ -23,6 +22,10 @@ source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -68,10 +71,8 @@ fi update_object_value 'web' 'DOMAIN' "$domain" '$TPL' "$template" # Restarting web -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null -fi +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null # Logging log_history "changed web domain template for $domain to $template" '' 'admin' diff --git a/bin/v-check-letsencrypt-domain b/bin/v-check-letsencrypt-domain index e46c7ea2..64c70516 100755 --- a/bin/v-check-letsencrypt-domain +++ b/bin/v-check-letsencrypt-domain @@ -97,7 +97,10 @@ if [ "$WEB_SYSTEM" = 'nginx' ] || [ "$PROXY_SYSTEM" = 'nginx' ]; then fi else acme="$HOMEDIR/$user/web/$r_domain/public_html/.well-known/acme-challenge" - echo "$token" > $acme/$token.$thumb + if [ ! -d "$acme" ]; then + mkdir -p $acme + fi + echo "$token.$thumb" > $acme/$token chown -R $user:$user $HOMEDIR/$user/web/$r_domain/public_html/.well-known fi diff --git a/bin/v-delete-dns-domain b/bin/v-delete-dns-domain index 5281a10a..c82b0c00 100755 --- a/bin/v-delete-dns-domain +++ b/bin/v-delete-dns-domain @@ -72,10 +72,8 @@ decrease_user_value "$user" '$U_DNS_DOMAINS' decrease_user_value "$user" '$U_DNS_RECORDS' "$records" # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns $restart - check_result $? "Bind restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "Bind restart failed" >/dev/null # Logging log_history "deleted dns domain $domain" diff --git a/bin/v-delete-dns-domains b/bin/v-delete-dns-domains index f74b4e14..a98b3140 100755 --- a/bin/v-delete-dns-domains +++ b/bin/v-delete-dns-domains @@ -43,10 +43,8 @@ done #----------------------------------------------------------# # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "Bind restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "Bind restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-delete-dns-domains-src b/bin/v-delete-dns-domains-src index 6f1958c6..85a6c147 100755 --- a/bin/v-delete-dns-domains-src +++ b/bin/v-delete-dns-domains-src @@ -44,10 +44,8 @@ done #----------------------------------------------------------# # Restart named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "Bind restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "Bind restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-delete-dns-on-web-alias b/bin/v-delete-dns-on-web-alias index 74cc49f4..b74fc900 100755 --- a/bin/v-delete-dns-on-web-alias +++ b/bin/v-delete-dns-on-web-alias @@ -11,11 +11,10 @@ # Argument definition user=$1 -domain=$(echo $2 | sed -e 's/\.*$//g' -e 's/^\.*//g') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 dom_alias=$(idn -t --quiet -u "$3" ) -dom_alias=$(echo $dom_alias | sed -e 's/\.*$//g' -e 's/^\.*//g') -dom_alias=$(echo $dom_alias | tr '[:upper:]' '[:lower:]') +dom_alias=$(echo $dom_alias |sed -e 's/\.*$//g' -e 's/^\.*//g') +dom_alias=$(echo $dom_alias |tr '[:upper:]' '[:lower:]') dom_alias_idn=$(idn -t --quiet -a "$dom_alias" ) restart="$4" @@ -24,6 +23,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -63,7 +66,7 @@ else fi if [ ! -z "$rec" ]; then eval "$rec" - $BIN/v-delete-dns-record $user "$root" "$ID" + $BIN/v-delete-dns-record $user "$root" "$ID" $restart fi fi fi diff --git a/bin/v-delete-dns-record b/bin/v-delete-dns-record index 1c713d01..16bb2b46 100755 --- a/bin/v-delete-dns-record +++ b/bin/v-delete-dns-record @@ -11,8 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 id=$3 restart=$4 @@ -21,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -70,10 +73,8 @@ update_object_value 'dns' 'DOMAIN' "$domain" '$RECORDS' "$records" decrease_user_value "$user" '$U_DNS_RECORDS' # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "Bind restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "Bind restart failed" >/dev/null # Logging log_history "deleted dns record $id on $domain" diff --git a/bin/v-delete-domain b/bin/v-delete-domain index a315d3a8..b6294679 100755 --- a/bin/v-delete-domain +++ b/bin/v-delete-domain @@ -69,16 +69,14 @@ if [ -z "$domain_found" ]; then fi # Restarting services -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "can't restart web" > /dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "can't restart proxy" > /dev/null - fi - $BIN/v-restart-dns - check_result $? "can't restart dns" > /dev/null -fi +$BIN/v-restart-web $restart +check_result $? "can't restart web" > /dev/null + +$BIN/v-restart-proxy $restart +check_result $? "can't restart proxy" > /dev/null + +$BIN/v-restart-dns $restart +check_result $? "can't restart dns" > /dev/null #----------------------------------------------------------# diff --git a/bin/v-delete-mail-account b/bin/v-delete-mail-account index a16829a6..ffc22114 100755 --- a/bin/v-delete-mail-account +++ b/bin/v-delete-mail-account @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 # Includes @@ -21,6 +19,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-mail-account-alias b/bin/v-delete-mail-account-alias index 470fa859..230d0113 100755 --- a/bin/v-delete-mail-account-alias +++ b/bin/v-delete-mail-account-alias @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 malias=$4 @@ -22,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-mail-account-autoreply b/bin/v-delete-mail-account-autoreply index 67e79d89..2169190a 100755 --- a/bin/v-delete-mail-account-autoreply +++ b/bin/v-delete-mail-account-autoreply @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 malias=$4 @@ -22,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-mail-account-forward b/bin/v-delete-mail-account-forward index ff289e35..c690e9a4 100755 --- a/bin/v-delete-mail-account-forward +++ b/bin/v-delete-mail-account-forward @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 forward=$4 @@ -22,6 +20,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -38,9 +40,7 @@ is_object_valid "mail/$domain" 'ACCOUNT' "$account" is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account" fwd=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$FWD') if [ -z "$(echo $fwd | grep -w $forward)" ]; then - echo "Error: forward $forward doesn't exist" - log_event "$E_NOTEXIST $ARGUMENTS" - exit $E_NOTEXIST + check_result $E_NOTEXIST "forward $forward doesn't exist" fi diff --git a/bin/v-delete-mail-account-fwd-only b/bin/v-delete-mail-account-fwd-only index dbc9a727..f5147f9b 100755 --- a/bin/v-delete-mail-account-fwd-only +++ b/bin/v-delete-mail-account-fwd-only @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 # Includes @@ -21,6 +19,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-mail-domain b/bin/v-delete-mail-domain index 4833e656..f128d752 100755 --- a/bin/v-delete-mail-domain +++ b/bin/v-delete-mail-domain @@ -12,14 +12,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-mail-domain-antispam b/bin/v-delete-mail-domain-antispam index 8ba2cfd0..35568434 100755 --- a/bin/v-delete-mail-domain-antispam +++ b/bin/v-delete-mail-domain-antispam @@ -11,15 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-mail-domain-antivirus b/bin/v-delete-mail-domain-antivirus index baea4575..e176a755 100755 --- a/bin/v-delete-mail-domain-antivirus +++ b/bin/v-delete-mail-domain-antivirus @@ -11,15 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-mail-domain-catchall b/bin/v-delete-mail-domain-catchall index 549c5523..f5a7ddf8 100755 --- a/bin/v-delete-mail-domain-catchall +++ b/bin/v-delete-mail-domain-catchall @@ -11,15 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-mail-domain-dkim b/bin/v-delete-mail-domain-dkim index e8e57cf4..f11e48d4 100755 --- a/bin/v-delete-mail-domain-dkim +++ b/bin/v-delete-mail-domain-dkim @@ -61,7 +61,7 @@ fi # Updatoing config update_object_value 'mail' 'DOMAIN' "$domain" '$DKIM' 'no' -decrease_user_value "$user" '$U_MAIL_DKMI' +decrease_user_value "$user" '$U_MAIL_DKIM' # Logging log_history "disabled DKIM support on $domain" diff --git a/bin/v-delete-web-domain b/bin/v-delete-web-domain index 878ea472..6ef7280b 100755 --- a/bin/v-delete-web-domain +++ b/bin/v-delete-web-domain @@ -23,6 +23,10 @@ source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -48,10 +52,6 @@ fi # Parsing domain values get_domain_values 'web' -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi local_ip=$(get_real_ip $IP) # Deleting domain from web.conf @@ -121,16 +121,12 @@ if [ ! -z "$ALIAS" ]; then fi # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - # Restartinh proxy server - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +# Restartinh proxy server +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "deleted web domain $domain" diff --git a/bin/v-delete-web-domain-alias b/bin/v-delete-web-domain-alias index 2a218061..45bef00b 100755 --- a/bin/v-delete-web-domain-alias +++ b/bin/v-delete-web-domain-alias @@ -81,15 +81,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$ALIAS' "$ALIAS" decrease_user_value "$user" '$U_WEB_ALIASES' # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "deleted alias $dom_alias on $domain" diff --git a/bin/v-delete-web-domain-backend b/bin/v-delete-web-domain-backend index 4b9b24ba..5b548096 100755 --- a/bin/v-delete-web-domain-backend +++ b/bin/v-delete-web-domain-backend @@ -11,14 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -66,10 +69,8 @@ rm -f $pool/$backend_type.conf #----------------------------------------------------------# # Restarting backend server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web-backend - check_result $? "Backend restart failed" >/dev/null -fi +$BIN/v-restart-web-backend $restart +check_result $? "Backend restart failed" >/dev/null # Logging log_history "deleting backend support for $domain" diff --git a/bin/v-delete-web-domain-ftp b/bin/v-delete-web-domain-ftp index b53440c4..08130584 100755 --- a/bin/v-delete-web-domain-ftp +++ b/bin/v-delete-web-domain-ftp @@ -11,8 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ftp_user=$3 # Includes @@ -20,6 +19,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-web-domain-proxy b/bin/v-delete-web-domain-proxy index 558f67f4..215506cb 100755 --- a/bin/v-delete-web-domain-proxy +++ b/bin/v-delete-web-domain-proxy @@ -11,8 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 restart=$3 # Includes @@ -20,6 +19,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -58,10 +61,8 @@ update_object_value 'web' 'DOMAIN' "$domain" '$PROXY' '' update_object_value 'web' 'DOMAIN' "$domain" '$PROXY_EXT' '' # Restart proxy server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "disabled proxy support for $domain" diff --git a/bin/v-delete-web-domain-ssl b/bin/v-delete-web-domain-ssl index d5f0e35b..131feb23 100755 --- a/bin/v-delete-web-domain-ssl +++ b/bin/v-delete-web-domain-ssl @@ -11,8 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 restart=$3 # Includes @@ -20,6 +19,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -71,15 +74,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$SSL' 'no' decrease_user_value "$user" '$U_WEB_SSL' # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "disabled ssl support for $domain" diff --git a/bin/v-delete-web-domain-stats b/bin/v-delete-web-domain-stats index 34c35f56..00566999 100755 --- a/bin/v-delete-web-domain-stats +++ b/bin/v-delete-web-domain-stats @@ -12,14 +12,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-delete-web-domains b/bin/v-delete-web-domains index 1406abb9..8822ab0a 100755 --- a/bin/v-delete-web-domains +++ b/bin/v-delete-web-domains @@ -43,15 +43,11 @@ done #----------------------------------------------------------# # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-get-dns-domain-value b/bin/v-get-dns-domain-value index 1786e900..ec77df2f 100755 --- a/bin/v-get-dns-domain-value +++ b/bin/v-get-dns-domain-value @@ -11,13 +11,16 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 key=$(echo "$3"| tr '[:lower:]' '[:upper:]' | sed "s/^/$/") # Includes source $VESTA/func/main.sh +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-get-mail-account-value b/bin/v-get-mail-account-value index 556c61ce..f011875c 100755 --- a/bin/v-get-mail-account-value +++ b/bin/v-get-mail-account-value @@ -11,14 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 key=$(echo "$4"| tr '[:lower:]' '[:upper:]' | sed "s/^/$/") # Includes source $VESTA/func/main.sh +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-get-mail-domain-value b/bin/v-get-mail-domain-value index 616df282..e7ad584a 100755 --- a/bin/v-get-mail-domain-value +++ b/bin/v-get-mail-domain-value @@ -11,13 +11,16 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 key=$(echo "$3"| tr '[:lower:]' '[:upper:]' | sed "s/^/$/") # Includes source $VESTA/func/main.sh +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-insert-dns-domain b/bin/v-insert-dns-domain index 0a83c205..b767b576 100755 --- a/bin/v-insert-dns-domain +++ b/bin/v-insert-dns-domain @@ -74,10 +74,8 @@ chmod 660 $USER_DATA/dns.conf #----------------------------------------------------------# # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns $restart - check_result $? "Bind restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "Bind restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-insert-dns-record b/bin/v-insert-dns-record index 90205f61..1afdd520 100755 --- a/bin/v-insert-dns-record +++ b/bin/v-insert-dns-record @@ -45,10 +45,8 @@ echo "$data" >> $USER_DATA/dns/$domain.conf #----------------------------------------------------------# # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns $restart - check_result $? "Bind restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "Bind restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-insert-dns-records b/bin/v-insert-dns-records index 3ce767f8..52c72c66 100755 --- a/bin/v-insert-dns-records +++ b/bin/v-insert-dns-records @@ -48,10 +48,8 @@ fi #----------------------------------------------------------# # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "Bind restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "Bind restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-rebuild-cron-jobs b/bin/v-rebuild-cron-jobs index 5acc830d..40192b63 100755 --- a/bin/v-rebuild-cron-jobs +++ b/bin/v-rebuild-cron-jobs @@ -41,10 +41,8 @@ sync_cron_jobs #----------------------------------------------------------# # Restarting crond -if [ "$restart" != 'no' ]; then - $BIN/v-restart-cron - check_result $? "Cron restart failed" >/dev/null -fi +$BIN/v-restart-cron $restart +check_result $? "Cron restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-rebuild-dns-domain b/bin/v-rebuild-dns-domain index 2aa34f6f..53639268 100755 --- a/bin/v-rebuild-dns-domain +++ b/bin/v-rebuild-dns-domain @@ -82,10 +82,8 @@ update_user_value "$user" '$U_DNS_RECORDS' "$user_records" update_user_value "$user" '$SUSPENDED_DNS' "$suspended_dns" # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns "$restart" - check_result $? "Bind restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "Bind restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-rebuild-dns-domains b/bin/v-rebuild-dns-domains index 4bb537ab..0b03e819 100755 --- a/bin/v-rebuild-dns-domains +++ b/bin/v-rebuild-dns-domains @@ -83,10 +83,8 @@ update_user_value "$user" '$U_DNS_RECORDS' "$user_records" update_user_value "$user" '$SUSPENDED_DNS' "$suspended_dns" # Restarting named -if [ "$restart" != 'no' ]; then - $BIN/v-restart-dns - check_result $? "Bind restart failed" >/dev/null -fi +$BIN/v-restart-dns $restart +check_result $? "Bind restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-rebuild-web-domains b/bin/v-rebuild-web-domains index 5ba9ef48..fafcf602 100755 --- a/bin/v-rebuild-web-domains +++ b/bin/v-rebuild-web-domains @@ -75,15 +75,11 @@ done $BIN/v-update-user-counters $user # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-restore-user b/bin/v-restore-user index f2d4408c..fa93482e 100755 --- a/bin/v-restore-user +++ b/bin/v-restore-user @@ -517,6 +517,13 @@ if [ "$mail" != 'no' ] && [ ! -z "$MAIL_SYSTEM" ]; then domains=$(echo "$backup_domains" |egrep -f $tmpdir/selected.txt) fi + # Checking exim username for later chowning + exim_user="exim"; + check_exim_username=$(grep -c '^Debian-exim:' /etc/passwd) + if [ "$check_exim_username" -eq 1 ]; then + exim_user="Debian-exim" + fi + # Restoring dns domain for domain in $domains; do echo -e "$(date "+%F %T") $domain" |tee -a $tmpdir/restore.log @@ -579,6 +586,11 @@ if [ "$mail" != 'no' ] && [ ! -z "$MAIL_SYSTEM" ]; then -exec chown -h $user:mail {} \; fi fi + + # Chowning mail conf files to exim user + find $HOMEDIR/$user/conf/mail/$domain_idn -user root \ + -exec chown $exim_user {} \; + done fi diff --git a/bin/v-suspend-cron-job b/bin/v-suspend-cron-job index 499c0772..43074ef1 100755 --- a/bin/v-suspend-cron-job +++ b/bin/v-suspend-cron-job @@ -47,10 +47,8 @@ sync_cron_jobs #----------------------------------------------------------# # Restarting crond -if [ "$restart" != 'no' ]; then - $BIN/v-restart-cron - check_result $? "Cron restart failed" >/dev/null -fi +$BIN/v-restart-cron $restart +check_result $? "Cron restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-suspend-cron-jobs b/bin/v-suspend-cron-jobs index 935347ad..8b3f4ad8 100755 --- a/bin/v-suspend-cron-jobs +++ b/bin/v-suspend-cron-jobs @@ -42,10 +42,8 @@ done #----------------------------------------------------------# # Restarting crond -if [ "$restart" != 'no' ]; then - $BIN/v-restart-cron - check_result $? "Cron restart failed" >/dev/null -fi +$BIN/v-restart-cron $restart +check_result $? "Cron restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-suspend-dns-domain b/bin/v-suspend-dns-domain index ebe45e3a..d016b786 100755 --- a/bin/v-suspend-dns-domain +++ b/bin/v-suspend-dns-domain @@ -11,14 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 restart="$3" # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-suspend-dns-record b/bin/v-suspend-dns-record index 0e9afa37..4de9ae40 100755 --- a/bin/v-suspend-dns-record +++ b/bin/v-suspend-dns-record @@ -11,20 +11,19 @@ # Argument definition user=$1 -domain="$2" +domain=$2 id=$3 -restart="$4" - -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi +restart=$4 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-suspend-domain b/bin/v-suspend-domain index 6f017534..74e17f19 100755 --- a/bin/v-suspend-domain +++ b/bin/v-suspend-domain @@ -71,16 +71,14 @@ if [ -z "$domain_found" ]; then fi # Restarting services -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "can't restart web" > /dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "can't restart proxy" > /dev/null - fi - $BIN/v-restart-dns - check_result $? "can't restart dns" > /dev/null -fi +$BIN/v-restart-web $restat +check_result $? "can't restart web" > /dev/null + +$BIN/v-restart-proxy $restart +check_result $? "can't restart proxy" > /dev/null + +$BIN/v-restart-dns $restart +check_result $? "can't restart dns" > /dev/null #----------------------------------------------------------# diff --git a/bin/v-suspend-mail-account b/bin/v-suspend-mail-account index ba11c8e0..803594eb 100755 --- a/bin/v-suspend-mail-account +++ b/bin/v-suspend-mail-account @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 # Includes @@ -21,6 +19,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-suspend-mail-accounts b/bin/v-suspend-mail-accounts index a62069cf..bd282ca6 100755 --- a/bin/v-suspend-mail-accounts +++ b/bin/v-suspend-mail-accounts @@ -11,14 +11,15 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-suspend-mail-domain b/bin/v-suspend-mail-domain index afdc1f3d..66fe8152 100755 --- a/bin/v-suspend-mail-domain +++ b/bin/v-suspend-mail-domain @@ -11,15 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-suspend-user b/bin/v-suspend-user index 6d049056..6276ce5a 100755 --- a/bin/v-suspend-user +++ b/bin/v-suspend-user @@ -74,16 +74,14 @@ fi #----------------------------------------------------------# # Restarting system services -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - $BIN/v-restart-dns - check_result $? "DNS restart failed" >/dev/null +$BIN/v-restart-dns $restart +check_result $? "DNS restart failed" >/dev/null - $BIN/v-restart-cron - check_result $? "Cron restart failed" >/dev/null -fi +$BIN/v-restart-cron $restart +check_result $? "Cron restart failed" >/dev/null # Changing suspend value update_user_value "$user" '$SUSPENDED' 'yes' diff --git a/bin/v-suspend-web-domain b/bin/v-suspend-web-domain index c3179604..15dbe9c4 100755 --- a/bin/v-suspend-web-domain +++ b/bin/v-suspend-web-domain @@ -13,8 +13,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 restart=$3 # Includes @@ -23,6 +22,10 @@ source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -76,15 +79,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$SUSPENDED' 'yes' increase_user_value "$user" '$SUSPENDED_WEB' # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-suspend-web-domains b/bin/v-suspend-web-domains index be480390..de8b178d 100755 --- a/bin/v-suspend-web-domains +++ b/bin/v-suspend-web-domains @@ -43,15 +43,11 @@ done #----------------------------------------------------------# # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-unsuspend-cron-job b/bin/v-unsuspend-cron-job index 108ddf90..0e40a6ec 100755 --- a/bin/v-unsuspend-cron-job +++ b/bin/v-unsuspend-cron-job @@ -47,10 +47,8 @@ sync_cron_jobs #----------------------------------------------------------# # Restarting crond -if [ "$restart" != 'no' ]; then - $BIN/v-restart-cron - check_result $? "Cron restart failed" >/dev/null -fi +$BIN/v-restart-cron $restart +check_result $? "Cron restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-unsuspend-cron-jobs b/bin/v-unsuspend-cron-jobs index bc4cfc4e..2f2d740e 100755 --- a/bin/v-unsuspend-cron-jobs +++ b/bin/v-unsuspend-cron-jobs @@ -42,10 +42,8 @@ done #----------------------------------------------------------# # Restarting crond -if [ "$restart" != 'no' ]; then - $BIN/v-restart-cron - check_result $? "Cron restart failed" >/dev/null -fi +$BIN/v-restart-cron $restart +check_result $? "Cron restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-unsuspend-dns-domain b/bin/v-unsuspend-dns-domain index 49a54091..e845b6a8 100755 --- a/bin/v-unsuspend-dns-domain +++ b/bin/v-unsuspend-dns-domain @@ -11,14 +11,16 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") -restart="$3" +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-unsuspend-dns-record b/bin/v-unsuspend-dns-record index 35b2d7b4..c84e7744 100755 --- a/bin/v-unsuspend-dns-record +++ b/bin/v-unsuspend-dns-record @@ -13,18 +13,17 @@ user=$1 domain=$2 id=$3 -restart="$4" - -domain_idn="$domain" -if [[ "$domain" = *[![:ascii:]]* ]]; then - domain_idn=$(idn -t --quiet -a $domain) -fi +restart=$4 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-unsuspend-domain b/bin/v-unsuspend-domain index 294b485c..a0a3b459 100755 --- a/bin/v-unsuspend-domain +++ b/bin/v-unsuspend-domain @@ -70,16 +70,14 @@ if [ -z "$domain_found" ]; then fi # Restarting services -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "can't restart web" > /dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "can't restart proxy" > /dev/null - fi - $BIN/v-restart-dns - check_result $? "can't restart dns" > /dev/null -fi +$BIN/v-restart-web $restart +check_result $? "can't restart web" > /dev/null + +$BIN/v-restart-proxy $restart +check_result $? "can't restart proxy" > /dev/null + +$BIN/v-restart-dns $restart +check_result $? "can't restart dns" > /dev/null #----------------------------------------------------------# diff --git a/bin/v-unsuspend-mail-account b/bin/v-unsuspend-mail-account index 0137f865..2e9a887f 100755 --- a/bin/v-unsuspend-mail-account +++ b/bin/v-unsuspend-mail-account @@ -11,9 +11,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 account=$3 # Includes @@ -21,6 +19,10 @@ source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-unsuspend-mail-accounts b/bin/v-unsuspend-mail-accounts index 5ad6285d..2c651b2c 100755 --- a/bin/v-unsuspend-mail-accounts +++ b/bin/v-unsuspend-mail-accounts @@ -11,14 +11,16 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-unsuspend-mail-domain b/bin/v-unsuspend-mail-domain index ad9df12e..9c688d6f 100755 --- a/bin/v-unsuspend-mail-domain +++ b/bin/v-unsuspend-mail-domain @@ -11,15 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-unsuspend-user b/bin/v-unsuspend-user index 1d3feecd..17c6683d 100755 --- a/bin/v-unsuspend-user +++ b/bin/v-unsuspend-user @@ -77,16 +77,14 @@ update_user_value "$user" '$SUSPENDED' 'no' decrease_user_value 'admin' '$SUSPENDED_USERS' # Restarting system services -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - $BIN/v-restart-dns - check_result $? "DNS restart failed" >/dev/null +$BIN/v-restart-dns $restart +check_result $? "DNS restart failed" >/dev/null - $BIN/v-restart-cron - check_result $? "Cron restart failed" >/dev/null -fi +$BIN/v-restart-cron $restart +check_result $? "Cron restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-unsuspend-web-domain b/bin/v-unsuspend-web-domain index 3b21248e..b47b67f4 100755 --- a/bin/v-unsuspend-web-domain +++ b/bin/v-unsuspend-web-domain @@ -11,9 +11,8 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") -restart="$3" +domain=$2 +restart=$3 # Includes source $VESTA/func/main.sh @@ -21,6 +20,10 @@ source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -74,15 +77,11 @@ update_object_value 'web' 'DOMAIN' "$domain" '$SUSPENDED' 'no' decrease_user_value "$user" '$SUSPENDED_WEB' # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-unsuspend-web-domains b/bin/v-unsuspend-web-domains index b9f4d1e4..2d2676d0 100755 --- a/bin/v-unsuspend-web-domains +++ b/bin/v-unsuspend-web-domains @@ -44,15 +44,11 @@ done #----------------------------------------------------------# # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_event "$OK" "$ARGUMENTS" diff --git a/bin/v-update-mail-domain-disk b/bin/v-update-mail-domain-disk index 68d58a61..a1b6b3f4 100755 --- a/bin/v-update-mail-domain-disk +++ b/bin/v-update-mail-domain-disk @@ -11,14 +11,16 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-update-sys-ip b/bin/v-update-sys-ip index c2e6b2be..c7d4c982 100755 --- a/bin/v-update-sys-ip +++ b/bin/v-update-sys-ip @@ -100,7 +100,7 @@ for ip in $ip_list; do check_ifconfig=$(/sbin/ifconfig |grep "$ip") if [ ! -e "$VESTA/data/ips/$ip" ] && [ ! -z "$check_ifconfig" ]; then interface=$(/sbin/ip addr |grep $ip |awk '{print $NF}') - interface=$(echo $interface |cut -f 1 -d :) + interface=$(echo "$interface" |cut -f 1 -d : |head -n 1) netmask=$(/sbin/ip addr |grep $ip |cut -f 2 -d / |cut -f 1 -d \ ) netmask=$(convert_cidr $netmask) $BIN/v-add-sys-ip $ip $netmask $interface diff --git a/bin/v-update-web-domain-disk b/bin/v-update-web-domain-disk index 5317b3f0..252fac3c 100755 --- a/bin/v-update-web-domain-disk +++ b/bin/v-update-web-domain-disk @@ -11,14 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-update-web-domain-ssl b/bin/v-update-web-domain-ssl index 6dffc281..8a3381a9 100755 --- a/bin/v-update-web-domain-ssl +++ b/bin/v-update-web-domain-ssl @@ -14,10 +14,9 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 ssl_dir=$3 -restart="$4" +restart=$4 # Includes source $VESTA/func/main.sh @@ -25,6 +24,10 @@ source $VESTA/func/domain.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # @@ -74,15 +77,11 @@ fi #----------------------------------------------------------# # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "Web restart failed" >/dev/null +$BIN/v-restart-web $restart +check_result $? "Web restart failed" >/dev/null - if [ ! -z "$PROXY_SYSTEM" ]; then - $BIN/v-restart-proxy - check_result $? "Proxy restart failed" >/dev/null - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "Proxy restart failed" >/dev/null # Logging log_history "update ssl certificate for $domain" diff --git a/bin/v-update-web-domain-stat b/bin/v-update-web-domain-stat index 56dfc93a..24eba8cf 100755 --- a/bin/v-update-web-domain-stat +++ b/bin/v-update-web-domain-stat @@ -11,14 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-update-web-domain-traff b/bin/v-update-web-domain-traff index fda546cc..299bafd2 100755 --- a/bin/v-update-web-domain-traff +++ b/bin/v-update-web-domain-traff @@ -11,14 +11,17 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf +# Additional argument formatting +format_domain +format_domain_idn + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-update-web-templates b/bin/v-update-web-templates index a526e0d4..3196c8b4 100755 --- a/bin/v-update-web-templates +++ b/bin/v-update-web-templates @@ -65,19 +65,13 @@ done #----------------------------------------------------------# # Restarting web server -if [ "$restart" != 'no' ]; then - $BIN/v-restart-web - check_result $? "restart" >/dev/null 2>&1 +$BIN/v-restart-web $restart +check_result $? "restart" >/dev/null 2>&1 - if [ ! -z "$PROXY_SYSTTEM" ]; then - $BIN/v-restart-proxy - check_result $? "restart" >/dev/null 2>&1 - fi +$BIN/v-restart-proxy $restart +check_result $? "restart" >/dev/null 2>&1 - if [ ! -z "$WEB_BACKEND" ]; then - $BIN/v-restart-proxy - check_result $? "restart" >/dev/null 2>&1 - fi -fi +$BIN/v-restart-proxy $restart +check_result $? "restart" >/dev/null 2>&1 exit diff --git a/func/main.sh b/func/main.sh index 99fb90b2..b1761fd8 100644 --- a/func/main.sh +++ b/func/main.sh @@ -843,3 +843,37 @@ is_format_valid() { fi done } + +# Domain argument formatting +format_domain() { + if [[ "$domain" = *[![:ascii:]]* ]]; then + if [[ "$domain" =~ [[:upper:]] ]]; then + domain=$(echo "$domain" |sed 's/[[:upper:]].*/\L&/') + fi + else + if [[ "$domain" =~ [[:upper:]] ]]; then + domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]') + fi + fi + if [[ "$domain" =~ ^www\..* ]]; then + domain=$(echo "$domain" |sed -e "s/^www.//") + fi + if [[ "$domain" =~ .*\.$ ]]; then + domain=$(echo "$domain" |sed -e "s/\.$//") + fi +} + +format_domain_idn() { + if [[ "$domain_idn" = *[![:ascii:]]* ]]; then + domain_idn=$(idn -t --quiet -a $domain_idn) + fi +} + +format_aliases() { + if [ ! -z "$aliases" ] && [ "$aliases" != 'none' ]; then + aliases=$(echo $aliases |tr '[:upper:]' '[:lower:]' |tr ',' '\n') + aliases=$(echo "$aliases" |sed -e "s/\.$//" |sort -u) + aliases=$(echo "$aliases" |grep -v www.$domain |sed -e "/^$/d") + aliases=$(echo "$aliases" |tr '\n' ',' |sed -e "s/,$//") + fi +} diff --git a/install/debian/8/roundcube/vesta.php b/install/debian/8/roundcube/vesta.php index 3261f656..b3dd167f 100644 --- a/install/debian/8/roundcube/vesta.php +++ b/install/debian/8/roundcube/vesta.php @@ -46,6 +46,7 @@ class rcube_vesta_password { $context = stream_context_create(); $result = stream_context_set_option($context, 'ssl', 'verify_peer', false); + $result = stream_context_set_option($context, 'ssl', 'verify_peer_name', false); $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); diff --git a/install/rhel/6/roundcube/vesta.php b/install/rhel/6/roundcube/vesta.php index 4a8783e6..fee26078 100644 --- a/install/rhel/6/roundcube/vesta.php +++ b/install/rhel/6/roundcube/vesta.php @@ -48,6 +48,7 @@ class rcube_vesta_password $context = stream_context_create(); $result = stream_context_set_option($context, 'ssl', 'verify_peer', false); + result = stream_context_set_option($context, 'ssl', 'verify_peer_name', false); $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); diff --git a/install/rhel/7/roundcube/vesta.php b/install/rhel/7/roundcube/vesta.php index 4a8783e6..1e9523a5 100644 --- a/install/rhel/7/roundcube/vesta.php +++ b/install/rhel/7/roundcube/vesta.php @@ -48,6 +48,7 @@ class rcube_vesta_password $context = stream_context_create(); $result = stream_context_set_option($context, 'ssl', 'verify_peer', false); + $result = stream_context_set_option($context, 'ssl', 'verify_peer_name', false); $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); diff --git a/install/ubuntu/16.04/roundcube/vesta.php b/install/ubuntu/16.04/roundcube/vesta.php index 8fb202a4..99e1d4bc 100644 --- a/install/ubuntu/16.04/roundcube/vesta.php +++ b/install/ubuntu/16.04/roundcube/vesta.php @@ -40,7 +40,16 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $errno = ""; + $errstr = ""; + $context = stream_context_create(); + $result = stream_context_set_option($context, 'ssl', 'verify_peer', false); + $result = stream_context_set_option($context, 'ssl', 'verify_peer_name', false); + $result = stream_context_set_option($context, 'ssl', 'verify_host', false); + $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); + + $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/16.10/apache2/apache2.conf b/install/ubuntu/16.10/apache2/apache2.conf new file mode 100644 index 00000000..22178011 --- /dev/null +++ b/install/ubuntu/16.10/apache2/apache2.conf @@ -0,0 +1,86 @@ +# It is split into several files forming the configuration hierarchy outlined +# below, all located in the /etc/apache2/ directory: +# +# /etc/apache2/ +# |-- apache2.conf +# | `-- ports.conf +# |-- mods-enabled +# | |-- *.load +# | `-- *.conf +# |-- conf.d +# | `-- * + +# Global configuration +PidFile ${APACHE_PID_FILE} +Timeout 30 +KeepAlive Off +MaxKeepAliveRequests 100 +KeepAliveTimeout 10 + + + StartServers 8 + MinSpareServers 5 + MaxSpareServers 20 + ServerLimit 256 + MaxClients 200 + MaxRequestsPerChild 4000 + + + + StartServers 2 + MinSpareThreads 25 + MaxSpareThreads 75 + ThreadLimit 64 + ThreadsPerChild 25 + MaxClients 200 + MaxRequestsPerChild 4000 + + + + StartServers 2 + MinSpareThreads 25 + MaxSpareThreads 75 + ThreadLimit 64 + ThreadsPerChild 25 + MaxClients 200 + MaxRequestsPerChild 4000 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} +#User www-data +#Group www-data + +AccessFileName .htaccess + + + Order allow,deny + Deny from all + Satisfy all + + +DefaultType None +HostnameLookups Off + +ErrorLog ${APACHE_LOG_DIR}/error.log +LogLevel warn + +# Include module configuration: +Include mods-enabled/*.load +Include mods-enabled/*.conf + +# Include list of ports to listen on and which to use for name based vhosts +Include ports.conf + +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent +LogFormat "%b" bytes + +Include conf.d/ + +# Include the virtual host configurations: +#Include sites-enabled/ diff --git a/install/ubuntu/16.10/apache2/status.conf b/install/ubuntu/16.10/apache2/status.conf new file mode 100644 index 00000000..da9d9633 --- /dev/null +++ b/install/ubuntu/16.10/apache2/status.conf @@ -0,0 +1,8 @@ +Listen 127.0.0.1:8081 + + SetHandler server-status + Order deny,allow + Deny from all + Allow from 127.0.0.1 + Allow from all + diff --git a/install/ubuntu/16.10/bind/named.conf b/install/ubuntu/16.10/bind/named.conf new file mode 100644 index 00000000..ed6ece88 --- /dev/null +++ b/install/ubuntu/16.10/bind/named.conf @@ -0,0 +1,12 @@ +// This is the primary configuration file for the BIND DNS server named. +// +// Please read /usr/share/doc/bind9/README.Debian.gz for information on the +// structure of BIND configuration files in Debian, *BEFORE* you customize +// this configuration file. +// +// If you are just adding zones, please do that in /etc/bind/named.conf.local + +include "/etc/bind/named.conf.options"; +include "/etc/bind/named.conf.local"; +include "/etc/bind/named.conf.default-zones"; + diff --git a/install/ubuntu/16.10/clamav/clamd.conf b/install/ubuntu/16.10/clamav/clamd.conf new file mode 100644 index 00000000..4e04356e --- /dev/null +++ b/install/ubuntu/16.10/clamav/clamd.conf @@ -0,0 +1,61 @@ +#Automatically Generated by clamav-base postinst +#To reconfigure clamd run #dpkg-reconfigure clamav-base +#Please read /usr/share/doc/clamav-base/README.Debian.gz for details +LocalSocket /var/run/clamav/clamd.ctl +FixStaleSocket true +LocalSocketGroup clamav +LocalSocketMode 666 +# TemporaryDirectory is not set to its default /tmp here to make overriding +# the default with environment variables TMPDIR/TMP/TEMP possible +User clamav +# AllowSupplementaryGroups true +ScanMail true +ScanArchive true +ArchiveBlockEncrypted false +MaxDirectoryRecursion 15 +FollowDirectorySymlinks false +FollowFileSymlinks false +ReadTimeout 180 +MaxThreads 12 +MaxConnectionQueueLength 15 +LogSyslog false +LogFacility LOG_LOCAL6 +LogClean false +LogVerbose true +PidFile /var/run/clamav/clamd.pid +DatabaseDirectory /var/lib/clamav +SelfCheck 3600 +Foreground false +Debug false +ScanPE true +ScanOLE2 true +ScanHTML true +DetectBrokenExecutables false +ExitOnOOM false +LeaveTemporaryFiles false +AlgorithmicDetection true +ScanELF true +IdleTimeout 30 +PhishingSignatures true +PhishingScanURLs true +PhishingAlwaysBlockSSLMismatch false +PhishingAlwaysBlockCloak false +DetectPUA false +ScanPartialMessages false +HeuristicScanPrecedence false +StructuredDataDetection false +CommandReadTimeout 5 +SendBufTimeout 200 +MaxQueue 100 +ExtendedDetectionInfo true +OLE2BlockMacros false +StreamMaxLength 25M +LogFile /var/log/clamav/clamav.log +LogTime true +LogFileUnlock false +LogFileMaxSize 0 +Bytecode true +BytecodeSecurity TrustSigned +BytecodeTimeout 60000 +OfficialDatabaseOnly false +CrossFilesystems true diff --git a/install/ubuntu/16.10/deb_signing.key b/install/ubuntu/16.10/deb_signing.key new file mode 100644 index 00000000..2ad2db8b --- /dev/null +++ b/install/ubuntu/16.10/deb_signing.key @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +mQENBFJIGbEBCAC8SHOOFo7iDTbnC2GhNZ+uBGCh226Dn1QPoFZNFM/DNakHZ6rD +G3wzr8++eKz4fJual/VLllE2N9XDPuxbozb3LLkcyY1WzJqtIXbXhFGQ/SuIeT+x +QY90XU6t2Ckze2c+zUniAWmJ8GSyVmXOoc9JxAQ1u47wvGXLzrjWXc8u8PNRYXuf +fZplTL+dFu9P0d6lP8FGsV+r9wXvvazpRTz3+H8PKrGCYT55ZQIEdG9Jgamylto2 +oVPFXkwGML+TLw6oeCIBuz2y2vtivphW4MJ3ifQjDj7k3n+DTIxfDFs8lB6VRhhY +2nMHCrcZC6U2mhmXmr6O4s1fu6irBVx05ejPABEBAAG0IFNlcmdoZXkgUm9kaW4g +PHNraWRAdmVzdGFjcC5jb20+iQE4BBMBAgAiBQJSSBmxAhsDBgsJCAcDAgYVCAIJ +CgsEFgIDAQIeAQIXgAAKCRBCxbITCh93FPdqB/93GjV9g+wBfeZYLHQK9MDU2wBb +VloYOJJae6IvYKYQVAJayD3PbHdpxrF8s9e23vdnmb9jKu6jX6oV54EIyqP2HPiN +QYc8wcea+eSHerznBixCtoQh8mtdWGFeN71zU/ig7L5qlOVF/EmxDVZTFUeivFxh +IV6qyBnktQKktE45585yKZyyLtfGoXA54DGK69OtJFh+wdkKEMmUXocMl7wUrxW6 +Cx2CuKeEXEgvwu8mRHQi3S3T9XP456qWEn5dWyMVcP660IzEuZfSJApZusNK7zG3 +WMy0/EuX7xHNY3mcNxTOUN1LsO7iHnhHD9+iKWJo9parGkMZzc92MpjDK/g7uQEN +BFJIGbEBCAC7k5QEA9WQM7E3ceNaeLMrA9lXfuzaNCcySq7ONdVAa5PxzbSKdHvz +QFoL1VFqBTYQ038lbil1XqnoM0zvIfAI3LcpS8sq92El/vPxp6jZh2Ari9Uw7x95 +k2cZMgI67g+zQMGdjVRA155nFQRCgg000xU4F7JA6+WsuLlVUmccsDv7YWJExMtC +YPxiuz5DFu8RALnw4Ckts+dbwsrcvUHhkm9b6RAsdCKjjRpUZjLgdltjH83gUVvt +i1YmdjjsVpt95dtsaG+ad852g/Rk8EdxNMkjPF6HLA67CLADP9wYaj80yPcPtylS +ycvPtcclVeHkFBRVM8xZpQd4iD19MWI1ABEBAAGJAR8EGAECAAkFAlJIGbECGwwA +CgkQQsWyEwofdxQ7tQgAhB0FwTs7L8Qr63DHC2yAnXVxgtTAY1/36CccNXVculyR ++EkLcwahms9AKhz7eQb+Mud+5vH0GRohLp2npgO38CjVUfIP5d+Y6dsthmrkF6p8 +XdV1dVK9vWX+i/YZSw/Mded30Cq4P2Yhq9EaemMT0rtli8lz2NnkZ9dFJZk1lzJC +CZmRpbjSNWqRU4f7qyh21lYk/OC/0XE8fh8CaO23TZ+6gBionoCztwb7NyC9OArN +qYlNnbmh9iNqdblykPS3bkjf34n2xyMgnIehNrM89tk8PY4UfNPhgT1TMD9W3Svq +ynNZvLuF/FIDwDeC1qcfjGbfDn9fXO/lMIIRooQYKQ== +=J2HJ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/install/ubuntu/16.10/dovecot/conf.d/10-auth.conf b/install/ubuntu/16.10/dovecot/conf.d/10-auth.conf new file mode 100644 index 00000000..dfcc8311 --- /dev/null +++ b/install/ubuntu/16.10/dovecot/conf.d/10-auth.conf @@ -0,0 +1,4 @@ +disable_plaintext_auth = no +auth_verbose = yes +auth_mechanisms = plain login +!include auth-passwdfile.conf.ext diff --git a/install/ubuntu/16.10/dovecot/conf.d/10-logging.conf b/install/ubuntu/16.10/dovecot/conf.d/10-logging.conf new file mode 100644 index 00000000..a5f207d5 --- /dev/null +++ b/install/ubuntu/16.10/dovecot/conf.d/10-logging.conf @@ -0,0 +1 @@ +log_path = /var/log/dovecot.log diff --git a/install/ubuntu/16.10/dovecot/conf.d/10-mail.conf b/install/ubuntu/16.10/dovecot/conf.d/10-mail.conf new file mode 100644 index 00000000..55313419 --- /dev/null +++ b/install/ubuntu/16.10/dovecot/conf.d/10-mail.conf @@ -0,0 +1,4 @@ +mail_privileged_group = mail +mail_access_groups = mail +mail_location = maildir:%h/mail/%d/%n +pop3_uidl_format = %08Xu%08Xv diff --git a/install/ubuntu/16.10/dovecot/conf.d/10-master.conf b/install/ubuntu/16.10/dovecot/conf.d/10-master.conf new file mode 100644 index 00000000..a75a9aaa --- /dev/null +++ b/install/ubuntu/16.10/dovecot/conf.d/10-master.conf @@ -0,0 +1,29 @@ +service imap-login { + inet_listener imap { + } + inet_listener imaps { + } +} + +service pop3-login { + inet_listener pop3 { + } + inet_listener pop3s { + } +} + + +service imap { +} + +service pop3 { +} + +service auth { + unix_listener auth-client { + group = mail + mode = 0660 + user = dovecot + } + user = dovecot +} diff --git a/install/ubuntu/16.10/dovecot/conf.d/10-ssl.conf b/install/ubuntu/16.10/dovecot/conf.d/10-ssl.conf new file mode 100644 index 00000000..24cbf3e2 --- /dev/null +++ b/install/ubuntu/16.10/dovecot/conf.d/10-ssl.conf @@ -0,0 +1,5 @@ +ssl = yes +ssl_protocols = !SSLv2 !SSLv3 + +ssl_cert = = 2.1.4) : %v.%u + # Dovecot v0.99.x : %v.%u + # tpop3d : %Mf + # + # Note that Outlook 2003 seems to have problems with %v.%u format which was + # Dovecot's default, so if you're building a new server it would be a good + # idea to change this. %08Xu%08Xv should be pretty fail-safe. + # + #pop3_uidl_format = %08Xu%08Xv + + # Permanently save UIDLs sent to POP3 clients, so pop3_uidl_format changes + # won't change those UIDLs. Currently this works only with Maildir. + #pop3_save_uidl = no + + # What to do about duplicate UIDLs if they exist? + # allow: Show duplicates to clients. + # rename: Append a temporary -2, -3, etc. counter after the UIDL. + #pop3_uidl_duplicates = allow + + # POP3 logout format string: + # %i - total number of bytes read from client + # %o - total number of bytes sent to client + # %t - number of TOP commands + # %p - number of bytes sent to client as a result of TOP command + # %r - number of RETR commands + # %b - number of bytes sent to client as a result of RETR command + # %d - number of deleted messages + # %m - number of messages (before deletion) + # %s - mailbox size in bytes (before deletion) + # %u - old/new UIDL hash. may help finding out if UIDLs changed unexpectedly + #pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s + + # Maximum number of POP3 connections allowed for a user from each IP address. + # NOTE: The username is compared case-sensitively. + #mail_max_userip_connections = 10 + + # Space separated list of plugins to load (default is global mail_plugins). + #mail_plugins = $mail_plugins + + # Workarounds for various client bugs: + # outlook-no-nuls: + # Outlook and Outlook Express hang if mails contain NUL characters. + # This setting replaces them with 0x80 character. + # oe-ns-eoh: + # Outlook Express and Netscape Mail breaks if end of headers-line is + # missing. This option simply sends it if it's missing. + # The list is space-separated. + #pop3_client_workarounds = +} diff --git a/install/ubuntu/16.10/dovecot/conf.d/auth-passwdfile.conf.ext b/install/ubuntu/16.10/dovecot/conf.d/auth-passwdfile.conf.ext new file mode 100644 index 00000000..75e6e115 --- /dev/null +++ b/install/ubuntu/16.10/dovecot/conf.d/auth-passwdfile.conf.ext @@ -0,0 +1,9 @@ +passdb { + driver = passwd-file + args = scheme=MD5-CRYPT username_format=%n /etc/exim4/domains/%d/passwd +} + +userdb { + driver = passwd-file + args = username_format=%n /etc/exim4/domains/%d/passwd +} diff --git a/install/ubuntu/16.10/dovecot/dovecot.conf b/install/ubuntu/16.10/dovecot/dovecot.conf new file mode 100644 index 00000000..311a3351 --- /dev/null +++ b/install/ubuntu/16.10/dovecot/dovecot.conf @@ -0,0 +1,24 @@ +protocols = imap pop3 +listen = *, :: +base_dir = /var/run/dovecot/ +!include conf.d/*.conf + +namespace { + type = private + separator = / + prefix = + inbox = yes + + mailbox Sent { + auto = subscribe + special_use = \Sent + } + mailbox Drafts { + auto = subscribe + special_use = \Drafts + } + mailbox Trash { + auto = subscribe + special_use = \Trash + } +} diff --git a/install/ubuntu/16.10/exim/dnsbl.conf b/install/ubuntu/16.10/exim/dnsbl.conf new file mode 100644 index 00000000..5166b255 --- /dev/null +++ b/install/ubuntu/16.10/exim/dnsbl.conf @@ -0,0 +1,2 @@ +bl.spamcop.net +zen.spamhaus.org diff --git a/install/ubuntu/16.10/exim/exim4.conf.template b/install/ubuntu/16.10/exim/exim4.conf.template new file mode 100644 index 00000000..d5cf0c7e --- /dev/null +++ b/install/ubuntu/16.10/exim/exim4.conf.template @@ -0,0 +1,382 @@ +###################################################################### +# # +# Exim configuration file for Vesta Control Panel # +# # +###################################################################### + +#SPAMASSASSIN = yes +#SPAM_SCORE = 50 +#CLAMD = yes + +add_environment = <; PATH=/bin:/usr/bin +keep_environment = +disable_ipv6 = true + +domainlist local_domains = dsearch;/etc/exim4/domains/ +domainlist relay_to_domains = dsearch;/etc/exim4/domains/ +hostlist relay_from_hosts = 127.0.0.1 +hostlist whitelist = net-iplsearch;/etc/exim4/white-blocks.conf +hostlist spammers = net-iplsearch;/etc/exim4/spam-blocks.conf +no_local_from_check +untrusted_set_sender = * +acl_smtp_connect = acl_check_spammers +acl_smtp_mail = acl_check_mail +acl_smtp_rcpt = acl_check_rcpt +acl_smtp_data = acl_check_data +acl_smtp_mime = acl_check_mime + +.ifdef SPAMASSASSIN +spamd_address = 127.0.0.1 783 +.endif + +.ifdef CLAMD +av_scanner = clamd: /var/run/clamav/clamd.ctl +.endif + +tls_advertise_hosts = * +tls_certificate = /usr/local/vesta/ssl/certificate.crt +tls_privatekey = /usr/local/vesta/ssl/certificate.key + +daemon_smtp_ports = 25 : 465 : 587 : 2525 +tls_on_connect_ports = 465 +never_users = root +host_lookup = * +rfc1413_hosts = * +rfc1413_query_timeout = 5s +ignore_bounce_errors_after = 2d +timeout_frozen_after = 7d + +DKIM_DOMAIN = ${lc:${domain:$h_from:}} +DKIM_FILE = /etc/exim4/domains/${lc:${domain:$h_from:}}/dkim.pem +DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}} + + + +###################################################################### +# ACL CONFIGURATION # +# Specifies access control lists for incoming SMTP mail # +###################################################################### +begin acl + +acl_check_spammers: + accept hosts = +whitelist + + drop message = Your host in blacklist on this server. + log_message = Host in blacklist + hosts = +spammers + + accept + + +acl_check_mail: + deny condition = ${if eq{$sender_helo_name}{}} + message = HELO required before MAIL + + drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid + condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}} + condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}} + delay = 45s + + drop condition = ${if isip{$sender_helo_name}} + message = Access denied - Invalid HELO name (See RFC2821 4.1.3) + + drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} + message = $interface_address is _my_ address + + accept + + +acl_check_rcpt: + accept hosts = : + + deny message = Restricted characters in address + domains = +local_domains + local_parts = ^[.] : ^.*[@%!/|] + + deny message = Restricted characters in address + domains = !+local_domains + local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./ + + require verify = sender + + accept hosts = +relay_from_hosts + control = submission + + accept authenticated = * + control = submission/domain= + + deny message = Rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text + hosts = !+whitelist + dnslists = ${readfile {/etc/exim4/dnsbl.conf}{:}} + + require message = relay not permitted + domains = +local_domains : +relay_to_domains + + deny message = smtp auth requried + sender_domains = +local_domains + !authenticated = * + + require verify = recipient + +.ifdef CLAMD + warn set acl_m0 = no + + warn condition = ${if exists {/etc/exim4/domains/$domain/antivirus}{yes}{no}} + set acl_m0 = yes +.endif + +.ifdef SPAMASSASSIN + warn set acl_m1 = no + + warn condition = ${if exists {/etc/exim4/domains/$domain/antispam}{yes}{no}} + set acl_m1 = yes +.endif + + accept + + +acl_check_data: +.ifdef CLAMD + deny message = Message contains a virus ($malware_name) and has been rejected + malware = * + condition = ${if eq{$acl_m0}{yes}{yes}{no}} +.endif + +.ifdef SPAMASSASSIN + warn !authenticated = * + hosts = !+relay_from_hosts + condition = ${if < {$message_size}{100K}} + condition = ${if eq{$acl_m1}{yes}{yes}{no}} + spam = nobody:true/defer_ok + add_header = X-Spam-Score: $spam_score_int + add_header = X-Spam-Bar: $spam_bar + add_header = X-Spam-Report: $spam_report + set acl_m2 = $spam_score_int + + warn condition = ${if !eq{$acl_m2}{} {yes}{no}} + condition = ${if >{$acl_m2}{SPAM_SCORE} {yes}{no}} + add_header = X-Spam-Status: Yes + message = SpamAssassin detected spam (from $sender_address to $recipients). +.endif + + accept + + +acl_check_mime: + deny message = Blacklisted file extension detected + condition = ${if match {${lc:$mime_filename}}{\N(\.ade|\.adp|\.bat|\.chm|\.cmd|\.com|\.cpl|\.exe|\.hta|\.ins|\.isp|\.jse|\.lib|\.lnk|\.mde|\.msc|\.msp|\.mst|\.pif|\.scr|\.sct|\.shb|\.sys|\.vb|\.vbe|\.vbs|\.vxd|\.wsc|\.wsf|\.wsh)$\N}{1}{0}} + + accept + + + +###################################################################### +# AUTHENTICATION CONFIGURATION # +###################################################################### +begin authenticators + +dovecot_plain: + driver = dovecot + public_name = PLAIN + server_socket = /var/run/dovecot/auth-client + server_set_id = $auth1 + +dovecot_login: + driver = dovecot + public_name = LOGIN + server_socket = /var/run/dovecot/auth-client + server_set_id = $auth1 + + + +###################################################################### +# ROUTERS CONFIGURATION # +# Specifies how addresses are handled # +###################################################################### +begin routers + +#smarthost: +# driver = manualroute +# domains = ! +local_domains +# transport = remote_smtp +# route_list = * smartrelay.vestacp.com +# no_more +# no_verify + +dnslookup: + driver = dnslookup + domains = !+local_domains + transport = remote_smtp + no_more + +userforward: + driver = redirect + check_local_user + file = $home/.forward + allow_filter + no_verify + no_expn + check_ancestor + file_transport = address_file + pipe_transport = address_pipe + reply_transport = address_reply + +procmail: + driver = accept + check_local_user + require_files = ${local_part}:+${home}/.procmailrc:/usr/bin/procmail + transport = procmail + no_verify + +autoreplay: + driver = accept + require_files = /etc/exim4/domains/$domain/autoreply.${local_part}.msg + condition = ${if exists{/etc/exim4/domains/$domain/autoreply.${local_part}.msg}{yes}{no}} + retry_use_local_part + transport = userautoreply + unseen + +aliases: + driver = redirect + headers_add = X-redirected: yes + data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}}}} + require_files = /etc/exim4/domains/$domain/aliases + redirect_router = dnslookup + pipe_transport = address_pipe + unseen + +localuser_fwd_only: + driver = accept + transport = devnull + condition = ${if exists{/etc/exim4/domains/$domain/fwd_only}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/fwd_only}{true}{false}}}} + +localuser_spam: + driver = accept + transport = local_spam_delivery + condition = ${if eq {${if match{$h_X-Spam-Status:}{\N^Yes\N}{yes}{no}}} {${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}{yes}{no_such_user}}}} + +localuser: + driver = accept + transport = local_delivery + condition = ${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}{true}{false}} + +catchall: + driver = redirect + headers_add = X-redirected: yes + require_files = /etc/exim4/domains/$domain/aliases + data = ${extract{1}{:}{${lookup{*@$domain}lsearch{/etc/exim4/domains/$domain/aliases}}}} + file_transport = local_delivery + redirect_router = dnslookup + +terminate_alias: + driver = accept + transport = devnull + condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}{true}{false}} + + + +###################################################################### +# TRANSPORTS CONFIGURATION # +###################################################################### +begin transports + +remote_smtp: + driver = smtp + #helo_data = $sender_address_domain + dkim_domain = DKIM_DOMAIN + dkim_selector = mail + dkim_private_key = DKIM_PRIVATE_KEY + dkim_canon = relaxed + dkim_strict = 0 + +procmail: + driver = pipe + command = "/usr/bin/procmail -d $local_part" + return_path_add + delivery_date_add + envelope_to_add + user = $local_part + initgroups + return_output + +local_delivery: + driver = appendfile + maildir_format + maildir_use_size_file + user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}} + group = mail + create_directory + directory_mode = 770 + mode = 660 + use_lockfile = no + delivery_date_add + envelope_to_add + return_path_add + directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part" + quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}M + quota_warn_threshold = 75% + +local_spam_delivery: + driver = appendfile + maildir_format + maildir_use_size_file + user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}} + group = mail + create_directory + directory_mode = 770 + mode = 660 + use_lockfile = no + delivery_date_add + envelope_to_add + return_path_add + directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part/.Spam" + quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}M + quota_directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part" + quota_warn_threshold = 75% + +address_pipe: + driver = pipe + return_output + +address_file: + driver = appendfile + delivery_date_add + envelope_to_add + return_path_add + +address_reply: + driver = autoreply + +userautoreply: + driver = autoreply + file = /etc/exim4/domains/$domain/autoreply.${local_part}.msg + from = "${local_part}@${domain}" + headers = Content-Type: text/plain; charset=utf-8;\nContent-Transfer-Encoding: 8bit + subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}" + to = "${sender_address}" + +devnull: + driver = appendfile + file = /dev/null + + + +###################################################################### +# RETRY CONFIGURATION # +###################################################################### +begin retry + +# Address or Domain Error Retries +# ----------------- ----- ------- +* * F,2h,15m; G,16h,1h,1.5; F,4d,6h + + + +###################################################################### +# REWRITE CONFIGURATION # +###################################################################### +begin rewrite + + + +###################################################################### diff --git a/install/ubuntu/16.10/exim/spam-blocks.conf b/install/ubuntu/16.10/exim/spam-blocks.conf new file mode 100644 index 00000000..e69de29b diff --git a/install/ubuntu/16.10/fail2ban/action.d/vesta.conf b/install/ubuntu/16.10/fail2ban/action.d/vesta.conf new file mode 100644 index 00000000..0edfc349 --- /dev/null +++ b/install/ubuntu/16.10/fail2ban/action.d/vesta.conf @@ -0,0 +1,9 @@ +# Fail2Ban configuration file for vesta + +[Definition] + +actionstart = /usr/local/vesta/bin/v-add-firewall-chain +actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' +actionban = /usr/local/vesta/bin/v-add-firewall-ban +actionunban = /usr/local/vesta/bin/v-delete-firewall-ban diff --git a/install/ubuntu/16.10/fail2ban/filter.d/vesta.conf b/install/ubuntu/16.10/fail2ban/filter.d/vesta.conf new file mode 100644 index 00000000..69670a56 --- /dev/null +++ b/install/ubuntu/16.10/fail2ban/filter.d/vesta.conf @@ -0,0 +1,10 @@ +# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# + +[INCLUDES] +before = common.conf + +[Definition] +failregex = .* failed to login +ignoreregex = + diff --git a/install/ubuntu/16.10/fail2ban/jail.local b/install/ubuntu/16.10/fail2ban/jail.local new file mode 100644 index 00000000..eccea068 --- /dev/null +++ b/install/ubuntu/16.10/fail2ban/jail.local @@ -0,0 +1,39 @@ +[ssh-iptables] +enabled = true +filter = sshd +action = vesta[name=SSH] +logpath = /var/log/auth.log +maxretry = 5 + +[vsftpd-iptables] +enabled = false +filter = vsftpd +action = vesta[name=FTP] +logpath = /var/log/vsftpd.log +maxretry = 5 + +[exim-iptables] +enabled = true +filter = exim +action = vesta[name=MAIL] +logpath = /var/log/exim4/mainlog + +[dovecot-iptables] +enabled = true +filter = dovecot +action = vesta[name=MAIL] +logpath = /var/log/dovecot.log + +[mysqld-iptables] +enabled = false +filter = mysqld-auth +action = vesta[name=DB] +logpath = /var/log/mysql.log +maxretry = 5 + +[vesta-iptables] +enabled = true +filter = vesta +action = vesta[name=VESTA] +logpath = /var/log/vesta/auth.log +maxretry = 5 diff --git a/install/ubuntu/16.10/firewall/ports.conf b/install/ubuntu/16.10/firewall/ports.conf new file mode 100644 index 00000000..b730d012 --- /dev/null +++ b/install/ubuntu/16.10/firewall/ports.conf @@ -0,0 +1,17 @@ +PROTOCOL='TCP' PORT='20' +PROTOCOL='TCP' PORT='21' +PROTOCOL='TCP' PORT='22' +PROTOCOL='TCP' PORT='25' +PROTOCOL='TCP' PORT='53' +PROTOCOL='UDP' PORT='53' +PROTOCOL='TCP' PORT='80' +PROTOCOL='TCP' PORT='443' +PROTOCOL='TCP' PORT='110' +PROTOCOL='UDP' PORT='123' +PROTOCOL='TCP' PORT='143' +PROTOCOL='TCP' PORT='3306' +PROTOCOL='TCP' PORT='5432' +PROTOCOL='TCP' PORT='8080' +PROTOCOL='TCP' PORT='8433' +PROTOCOL='TCP' PORT='8083' +PROTOCOL='TCP' PORT='12000:12100' diff --git a/install/ubuntu/16.10/firewall/rules.conf b/install/ubuntu/16.10/firewall/rules.conf new file mode 100644 index 00000000..fba98e1e --- /dev/null +++ b/install/ubuntu/16.10/firewall/rules.conf @@ -0,0 +1,11 @@ +RULE='1' ACTION='ACCEPT' PROTOCOL='ICMP' PORT='0' IP='0.0.0.0/0' COMMENT='PING' SUSPENDED='no' TIME='17:13:48' DATE='2014-09-16' +RULE='2' ACTION='ACCEPT' PROTOCOL='TCP' PORT='8083' IP='0.0.0.0/0' COMMENT='VESTA' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='3' ACTION='ACCEPT' PROTOCOL='TCP' PORT='3306,5432' IP='0.0.0.0/0' COMMENT='DB' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='4' ACTION='ACCEPT' PROTOCOL='TCP' PORT='143,993' IP='0.0.0.0/0' COMMENT='IMAP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='5' ACTION='ACCEPT' PROTOCOL='TCP' PORT='110,995' IP='0.0.0.0/0' COMMENT='POP3' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='6' ACTION='ACCEPT' PROTOCOL='TCP' PORT='25,465,587,2525' IP='0.0.0.0/0' COMMENT='SMTP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='7' ACTION='ACCEPT' PROTOCOL='TCP' PORT='53' IP='0.0.0.0/0' COMMENT='DNS' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='8' ACTION='ACCEPT' PROTOCOL='UDP' PORT='53' IP='0.0.0.0/0' COMMENT='DNS' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='9' ACTION='ACCEPT' PROTOCOL='TCP' PORT='21,12000-12100' IP='0.0.0.0/0' COMMENT='FTP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='10' ACTION='ACCEPT' PROTOCOL='TCP' PORT='80,443' IP='0.0.0.0/0' COMMENT='WEB' SUSPENDED='no' TIME='17:04:27' DATE='2014-09-24' +RULE='11' ACTION='ACCEPT' PROTOCOL='TCP' PORT='22' IP='0.0.0.0/0' COMMENT='SSH' SUSPENDED='no' TIME='17:14:41' DATE='2014-09-16' diff --git a/install/ubuntu/16.10/logrotate/apache2 b/install/ubuntu/16.10/logrotate/apache2 new file mode 100644 index 00000000..27629d0d --- /dev/null +++ b/install/ubuntu/16.10/logrotate/apache2 @@ -0,0 +1,19 @@ +/var/log/apache2/*.log /var/log/apache2/domains/*log { + weekly + missingok + rotate 52 + compress + delaycompress + notifempty + create 640 root adm + sharedscripts + postrotate + /etc/init.d/apache2 reload > /dev/null || true + [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` + endscript + prerotate + if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ + run-parts /etc/logrotate.d/httpd-prerotate; \ + fi; \ + endscript +} diff --git a/install/ubuntu/16.10/logrotate/dovecot b/install/ubuntu/16.10/logrotate/dovecot new file mode 100644 index 00000000..ac4fd6e9 --- /dev/null +++ b/install/ubuntu/16.10/logrotate/dovecot @@ -0,0 +1,12 @@ +/var/log/dovecot*.log { + weekly + rotate 4 + missingok + notifempty + compress + delaycompress + sharedscripts + postrotate + doveadm log reopen + endscript +} diff --git a/install/ubuntu/16.10/logrotate/nginx b/install/ubuntu/16.10/logrotate/nginx new file mode 100644 index 00000000..d667f213 --- /dev/null +++ b/install/ubuntu/16.10/logrotate/nginx @@ -0,0 +1,13 @@ +/var/log/nginx/*log /var/log/nginx/domains/*log { + daily + missingok + rotate 52 + compress + delaycompress + notifempty + create 640 nginx adm + sharedscripts + postrotate + [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` + endscript +} diff --git a/install/ubuntu/16.10/logrotate/vesta b/install/ubuntu/16.10/logrotate/vesta new file mode 100644 index 00000000..027a3439 --- /dev/null +++ b/install/ubuntu/16.10/logrotate/vesta @@ -0,0 +1,7 @@ +/usr/local/vesta/log/*.log { + missingok + notifempty + size 30k + yearly + create 0600 root root +} diff --git a/install/ubuntu/16.10/mysql/my-large.cnf b/install/ubuntu/16.10/mysql/my-large.cnf new file mode 100644 index 00000000..7201377c --- /dev/null +++ b/install/ubuntu/16.10/mysql/my-large.cnf @@ -0,0 +1,41 @@ +[client] +port=3306 +socket=/var/run/mysqld/mysqld.sock + +[mysqld_safe] +socket=/var/run/mysqld/mysqld.sock + +[mysqld] +user=mysql +pid-file=/var/run/mysqld/mysqld.pid +socket=/var/run/mysqld/mysqld.sock +port=3306 +basedir=/usr +datadir=/var/lib/mysql +tmpdir=/tmp +lc-messages-dir=/usr/share/mysql +log_error=/var/log/mysql/error.log + +symbolic-links=0 + +skip-external-locking +key_buffer_size = 256M +max_allowed_packet = 32M +table_open_cache = 256 +sort_buffer_size = 1M +read_buffer_size = 1M +read_rnd_buffer_size = 4M +myisam_sort_buffer_size = 64M +thread_cache_size = 8 +query_cache_size= 16M + +#innodb_use_native_aio = 0 +innodb_file_per_table + +max_connections=200 +max_user_connections=50 +wait_timeout=10 +interactive_timeout=50 +long_query_time=5 + +!includedir /etc/mysql/conf.d/ diff --git a/install/ubuntu/16.10/mysql/my-medium.cnf b/install/ubuntu/16.10/mysql/my-medium.cnf new file mode 100644 index 00000000..1c10ab9a --- /dev/null +++ b/install/ubuntu/16.10/mysql/my-medium.cnf @@ -0,0 +1,40 @@ +[client] +port=3306 +socket=/var/run/mysqld/mysqld.sock + +[mysqld_safe] +socket=/var/run/mysqld/mysqld.sock + +[mysqld] +user=mysql +pid-file=/var/run/mysqld/mysqld.pid +socket=/var/run/mysqld/mysqld.sock +port=3306 +basedir=/usr +datadir=/var/lib/mysql +tmpdir=/tmp +lc-messages-dir=/usr/share/mysql +log_error=/var/log/mysql/error.log + +symbolic-links=0 + +skip-external-locking +key_buffer_size = 16M +max_allowed_packet = 16M +table_open_cache = 64 +sort_buffer_size = 512K +net_buffer_length = 8K +read_buffer_size = 256K +read_rnd_buffer_size = 512K +myisam_sort_buffer_size = 8M + +#innodb_use_native_aio = 0 +innodb_file_per_table + +max_connections=70 +max_user_connections=30 +wait_timeout=10 +interactive_timeout=50 +long_query_time=5 + +!includedir /etc/mysql/conf.d/ diff --git a/install/ubuntu/16.10/mysql/my-small.cnf b/install/ubuntu/16.10/mysql/my-small.cnf new file mode 100644 index 00000000..26a80478 --- /dev/null +++ b/install/ubuntu/16.10/mysql/my-small.cnf @@ -0,0 +1,40 @@ +[client] +port=3306 +socket=/var/run/mysqld/mysqld.sock + +[mysqld_safe] +socket=/var/run/mysqld/mysqld.sock + +[mysqld] +user=mysql +pid-file=/var/run/mysqld/mysqld.pid +socket=/var/run/mysqld/mysqld.sock +port=3306 +basedir=/usr +datadir=/var/lib/mysql +tmpdir=/tmp +lc-messages-dir=/usr/share/mysql +log_error=/var/log/mysql/error.log + +symbolic-links=0 + +skip-external-locking +key_buffer_size = 16K +max_allowed_packet = 1M +table_open_cache = 4 +sort_buffer_size = 64K +read_buffer_size = 256K +read_rnd_buffer_size = 256K +net_buffer_length = 2K +thread_stack = 240K + +#innodb_use_native_aio = 0 +innodb_file_per_table + +max_connections=30 +max_user_connections=20 +wait_timeout=10 +interactive_timeout=50 +long_query_time=5 + +!includedir /etc/mysql/conf.d/ diff --git a/install/ubuntu/16.10/nginx/nginx.conf b/install/ubuntu/16.10/nginx/nginx.conf new file mode 100644 index 00000000..1932d171 --- /dev/null +++ b/install/ubuntu/16.10/nginx/nginx.conf @@ -0,0 +1,134 @@ +# Server globals +user www-data; +worker_processes auto; +worker_rlimit_nofile 65535; +error_log /var/log/nginx/error.log crit; +pid /var/run/nginx.pid; + + +# Worker config +events { + worker_connections 1024; + use epoll; + multi_accept on; +} + + +http { + # Main settings + sendfile on; + tcp_nopush on; + tcp_nodelay on; + client_header_timeout 1m; + client_body_timeout 1m; + client_header_buffer_size 2k; + client_body_buffer_size 256k; + client_max_body_size 256m; + large_client_header_buffers 4 8k; + send_timeout 30; + keepalive_timeout 60 60; + reset_timedout_connection on; + server_tokens off; + server_name_in_redirect off; + server_names_hash_max_size 512; + server_names_hash_bucket_size 512; + + + # Log format + log_format main '$remote_addr - $remote_user [$time_local] $request ' + '"$status" $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + log_format bytes '$body_bytes_sent'; + #access_log /var/log/nginx/access.log main; + access_log off; + + + # Mime settings + include /etc/nginx/mime.types; + default_type application/octet-stream; + + + # Compression + gzip on; + gzip_comp_level 9; + gzip_min_length 512; + gzip_buffers 8 64k; + gzip_types text/plain text/css text/javascript text/js text/xml application/json application/javascript application/x-javascript application/xml application/xml+rss application/x-font-ttf image/svg+xml font/opentype; + gzip_proxied any; + gzip_disable "MSIE [1-6]\."; + + # Proxy settings + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass_header Set-Cookie; + proxy_connect_timeout 90; + proxy_send_timeout 90; + proxy_read_timeout 90; + proxy_buffers 32 4k; + + + # Cloudflare https://www.cloudflare.com/ips + set_real_ip_from 199.27.128.0/21; + set_real_ip_from 173.245.48.0/20; + set_real_ip_from 103.21.244.0/22; + set_real_ip_from 103.22.200.0/22; + set_real_ip_from 103.31.4.0/22; + set_real_ip_from 141.101.64.0/18; + set_real_ip_from 108.162.192.0/18; + set_real_ip_from 190.93.240.0/20; + set_real_ip_from 188.114.96.0/20; + set_real_ip_from 197.234.240.0/22; + set_real_ip_from 198.41.128.0/17; + set_real_ip_from 162.158.0.0/15; + set_real_ip_from 104.16.0.0/12; + set_real_ip_from 172.64.0.0/13; + #set_real_ip_from 2400:cb00::/32; + #set_real_ip_from 2606:4700::/32; + #set_real_ip_from 2803:f800::/32; + #set_real_ip_from 2405:b500::/32; + #set_real_ip_from 2405:8100::/32; + real_ip_header CF-Connecting-IP; + + + # SSL PCI Compliance + ssl_session_cache shared:SSL:10m; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; + + + # Error pages + error_page 403 /error/403.html; + error_page 404 /error/404.html; + error_page 502 503 504 /error/50x.html; + + + # Cache settings + proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=1024m; + proxy_cache_key "$host$request_uri $cookie_user"; + proxy_temp_path /var/cache/nginx/temp; + proxy_ignore_headers Expires Cache-Control; + proxy_cache_use_stale error timeout invalid_header http_502; + proxy_cache_valid any 1d; + + + # Cache bypass + map $http_cookie $no_cache { + default 0; + ~SESS 1; + ~wordpress_logged_in 1; + } + + + # File cache settings + open_file_cache max=10000 inactive=30s; + open_file_cache_valid 60s; + open_file_cache_min_uses 2; + open_file_cache_errors off; + + + # Wildcard include + include /etc/nginx/conf.d/*.conf; +} diff --git a/install/ubuntu/16.10/nginx/phpmyadmin.inc b/install/ubuntu/16.10/nginx/phpmyadmin.inc new file mode 100644 index 00000000..1feb8546 --- /dev/null +++ b/install/ubuntu/16.10/nginx/phpmyadmin.inc @@ -0,0 +1,18 @@ +location /phpmyadmin { + alias /usr/share/phpmyadmin/; + + location ~ /(libraries|setup) { + return 404; + } + + location ~ ^/phpmyadmin/(.*\.php)$ { + alias /usr/share/phpmyadmin/$1; + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $request_filename; + } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } +} diff --git a/install/ubuntu/16.10/nginx/phppgadmin.inc b/install/ubuntu/16.10/nginx/phppgadmin.inc new file mode 100644 index 00000000..cd1e5806 --- /dev/null +++ b/install/ubuntu/16.10/nginx/phppgadmin.inc @@ -0,0 +1,11 @@ +location /phppgadmin { + alias /usr/share/phppgadmin/; + + location ~ ^/phppgadmin/(.*\.php)$ { + alias /usr/share/phppgadmin/$1; + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $request_filename; + } +} diff --git a/install/ubuntu/16.10/nginx/status.conf b/install/ubuntu/16.10/nginx/status.conf new file mode 100644 index 00000000..c0bcd069 --- /dev/null +++ b/install/ubuntu/16.10/nginx/status.conf @@ -0,0 +1,9 @@ +server { + listen 127.0.0.1:8084 default; + server_name _; + server_name_in_redirect off; + location / { + stub_status on; + access_log off; + } +} diff --git a/install/ubuntu/16.10/nginx/webmail.inc b/install/ubuntu/16.10/nginx/webmail.inc new file mode 100644 index 00000000..ad66895b --- /dev/null +++ b/install/ubuntu/16.10/nginx/webmail.inc @@ -0,0 +1,15 @@ +location /webmail { + alias /var/lib/roundcube/; + + location ~ /(config|temp|logs) { + return 404; + } + + location ~ ^/webmail/(.*\.php)$ { + alias /var/lib/roundcube/$1; + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $request_filename; + } +} diff --git a/install/ubuntu/16.10/packages/default.pkg b/install/ubuntu/16.10/packages/default.pkg new file mode 100644 index 00000000..f4a37554 --- /dev/null +++ b/install/ubuntu/16.10/packages/default.pkg @@ -0,0 +1,18 @@ +WEB_TEMPLATE='default' +PROXY_TEMPLATE='default' +DNS_TEMPLATE='default' +WEB_DOMAINS='100' +WEB_ALIASES='100' +DNS_DOMAINS='100' +DNS_RECORDS='100' +MAIL_DOMAINS='100' +MAIL_ACCOUNTS='100' +DATABASES='100' +CRON_JOBS='100' +DISK_QUOTA='unlimited' +BANDWIDTH='100000' +NS='ns1.localhost.ltd,ns2.localhost.ltd' +SHELL='nologin' +BACKUPS='3' +TIME='11:46:50' +DATE='2012-09-26' diff --git a/install/ubuntu/16.10/packages/gainsboro.pkg b/install/ubuntu/16.10/packages/gainsboro.pkg new file mode 100644 index 00000000..c3df5025 --- /dev/null +++ b/install/ubuntu/16.10/packages/gainsboro.pkg @@ -0,0 +1,18 @@ +WEB_TEMPLATE='default' +PROXY_TEMPLATE='default' +DNS_TEMPLATE='default' +WEB_DOMAINS='10' +WEB_ALIASES='10' +DNS_DOMAINS='10' +DNS_RECORDS='10' +MAIL_DOMAINS='10' +MAIL_ACCOUNTS='10' +DATABASES='10' +CRON_JOBS='10' +DISK_QUOTA='10000' +BANDWIDTH='10000' +NS='ns1.localhost.ltd,ns2.localhost.ltd' +SHELL='nologin' +BACKUPS='1' +TIME='11:31:30' +DATE='2012-07-26' diff --git a/install/ubuntu/16.10/packages/palegreen.pkg b/install/ubuntu/16.10/packages/palegreen.pkg new file mode 100644 index 00000000..d08930f7 --- /dev/null +++ b/install/ubuntu/16.10/packages/palegreen.pkg @@ -0,0 +1,18 @@ +WEB_TEMPLATE='hosting' +PROXY_TEMPLATE='hosting' +DNS_TEMPLATE='default' +WEB_DOMAINS='50' +WEB_ALIASES='50' +DNS_DOMAINS='50' +DNS_RECORDS='50' +MAIL_DOMAINS='50' +MAIL_ACCOUNTS='50' +DATABASES='50' +CRON_JOBS='50' +DISK_QUOTA='50000' +BANDWIDTH='50000' +NS='ns1.localhost.ltd,ns2.localhost.ltd' +SHELL='nologin' +BACKUPS='5' +TIME='07:49:47' +DATE='2013-06-10' diff --git a/install/ubuntu/16.10/packages/slategrey.pkg b/install/ubuntu/16.10/packages/slategrey.pkg new file mode 100644 index 00000000..15a17dcd --- /dev/null +++ b/install/ubuntu/16.10/packages/slategrey.pkg @@ -0,0 +1,18 @@ +WEB_TEMPLATE='default' +PROXY_TEMPLATE='default' +DNS_TEMPLATE='default' +WEB_DOMAINS='100' +WEB_ALIASES='100' +DNS_DOMAINS='100' +DNS_RECORDS='100' +MAIL_DOMAINS='100' +MAIL_ACCOUNTS='100' +DATABASES='100' +CRON_JOBS='100' +DISK_QUOTA='10000' +BANDWIDTH='100000' +NS='ns1.localhost.ltd,ns2.localhost.ltd' +SHELL='nologin' +BACKUPS='3' +TIME='12:39:13' +DATE='2012-09-20' diff --git a/install/ubuntu/16.10/pga/config.inc.php b/install/ubuntu/16.10/pga/config.inc.php new file mode 100644 index 00000000..1eec9776 --- /dev/null +++ b/install/ubuntu/16.10/pga/config.inc.php @@ -0,0 +1,159 @@ + diff --git a/install/ubuntu/16.10/pga/phppgadmin.conf b/install/ubuntu/16.10/pga/phppgadmin.conf new file mode 100644 index 00000000..f39247d6 --- /dev/null +++ b/install/ubuntu/16.10/pga/phppgadmin.conf @@ -0,0 +1,31 @@ +Alias /phppgadmin /usr/share/phppgadmin + + + +DirectoryIndex index.php +AllowOverride None + +order deny,allow +deny from all +allow from 127.0.0.0/255.0.0.0 ::1/128 +allow from all + + + php_flag magic_quotes_gpc Off + php_flag track_vars On + php_value include_path . + + + + + AddType application/x-httpd-php .php + Action application/x-httpd-php /cgi-bin/php + + + AddType application/x-httpd-php .php + Action application/x-httpd-php /cgi-bin/php + + + + + diff --git a/install/ubuntu/16.10/php-fpm/www.conf b/install/ubuntu/16.10/php-fpm/www.conf new file mode 100644 index 00000000..d046bcee --- /dev/null +++ b/install/ubuntu/16.10/php-fpm/www.conf @@ -0,0 +1,10 @@ +[www] +listen = 127.0.0.1:9000 +listen.allowed_clients = 127.0.0.1 +user = www-data +group = www-data +pm = dynamic +pm.max_children = 50 +pm.start_servers = 5 +pm.min_spare_servers = 3 +pm.max_spare_servers = 35 diff --git a/install/ubuntu/16.10/pma/apache.conf b/install/ubuntu/16.10/pma/apache.conf new file mode 100644 index 00000000..4da6ce84 --- /dev/null +++ b/install/ubuntu/16.10/pma/apache.conf @@ -0,0 +1,42 @@ +# phpMyAdmin default Apache configuration + +Alias /phpmyadmin /usr/share/phpmyadmin + + + Options FollowSymLinks + DirectoryIndex index.php + + + AddType application/x-httpd-php .php + + php_flag magic_quotes_gpc Off + php_flag track_vars On + php_flag register_globals Off + php_admin_flag allow_url_fopen Off + php_value include_path . + php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp + php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext:/usr/share/javascript/ + + + + +# Authorize for setup + + + AuthType Basic + AuthName "phpMyAdmin Setup" + AuthUserFile /etc/phpmyadmin/htpasswd.setup + + Require valid-user + + +# Disallow web access to directories that don't need it + + Order Deny,Allow + Deny from All + + + Order Deny,Allow + Deny from All + + diff --git a/install/ubuntu/16.10/pma/config.inc.php b/install/ubuntu/16.10/pma/config.inc.php new file mode 100644 index 00000000..a643a065 --- /dev/null +++ b/install/ubuntu/16.10/pma/config.inc.php @@ -0,0 +1,146 @@ + + VRootEngine on + VRootAlias /etc/security/pam_env.conf etc/security/pam_env.conf + + +AuthPAMConfig proftpd +AuthOrder mod_auth_pam.c* mod_auth_unix.c +UseReverseDNS off +User proftpd +Group nogroup +MaxInstances 20 +UseSendfile off +LogFormat default "%h %l %u %t \"%r\" %s %b" +LogFormat auth "%v [%P] %h %t \"%r\" %s" +ListOptions -a +RequireValidShell off +PassivePorts 12000 12100 + + + Umask 002 + IdentLookups off + AllowOverwrite yes + + AllowAll + + diff --git a/install/ubuntu/16.10/roundcube/apache.conf b/install/ubuntu/16.10/roundcube/apache.conf new file mode 100644 index 00000000..a0c87bcc --- /dev/null +++ b/install/ubuntu/16.10/roundcube/apache.conf @@ -0,0 +1,40 @@ +Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/ +Alias /roundcube /var/lib/roundcube +Alias /webmail /var/lib/roundcube + +# Access to tinymce files + + Options Indexes MultiViews FollowSymLinks + AllowOverride None + Order allow,deny + allow from all + + + + Options +FollowSymLinks + # This is needed to parse /var/lib/roundcube/.htaccess. See its + # content before setting AllowOverride to None. + AllowOverride All + order allow,deny + allow from all + + +# Protecting basic directories: + + Options -FollowSymLinks + AllowOverride None + + + + Options -FollowSymLinks + AllowOverride None + Order allow,deny + Deny from all + + + + Options -FollowSymLinks + AllowOverride None + Order allow,deny + Deny from all + diff --git a/install/ubuntu/16.10/roundcube/config.inc.php b/install/ubuntu/16.10/roundcube/config.inc.php new file mode 100644 index 00000000..0c82b1bc --- /dev/null +++ b/install/ubuntu/16.10/roundcube/config.inc.php @@ -0,0 +1,33 @@ + diff --git a/install/ubuntu/16.10/roundcube/main.inc.php b/install/ubuntu/16.10/roundcube/main.inc.php new file mode 100644 index 00000000..44b19793 --- /dev/null +++ b/install/ubuntu/16.10/roundcube/main.inc.php @@ -0,0 +1,850 @@ +/sendmail or to syslog +$rcmail_config['smtp_log'] = true; + +// Log successful logins to /userlogins or to syslog +$rcmail_config['log_logins'] = false; + +// Log session authentication errors to /session or to syslog +$rcmail_config['log_session'] = false; + +// Log SQL queries to /sql or to syslog +$rcmail_config['sql_debug'] = false; + +// Log IMAP conversation to /imap or to syslog +$rcmail_config['imap_debug'] = false; + +// Log LDAP conversation to /ldap or to syslog +$rcmail_config['ldap_debug'] = false; + +// Log SMTP conversation to /smtp or to syslog +$rcmail_config['smtp_debug'] = false; + +// ---------------------------------- +// IMAP +// ---------------------------------- + +// the mail host chosen to perform the log-in +// leave blank to show a textbox at login, give a list of hosts +// to display a pulldown menu or set one host as string. +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// Supported replacement variables: +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %s - domain name after the '@' from e-mail address provided at login screen +// For example %n = mail.domain.tld, %d = domain.tld +$rcmail_config['default_host'] = 'localhost'; + +// TCP port used for IMAP connections +$rcmail_config['default_port'] = 143; + +// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use +// best server supported one) +$rcmail_config['imap_auth_type'] = null; + +// If you know your imap's folder delimiter, you can specify it here. +// Otherwise it will be determined automatically +$rcmail_config['imap_delimiter'] = null; + +// If IMAP server doesn't support NAMESPACE extension, but you're +// using shared folders or personal root folder is non-empty, you'll need to +// set these options. All can be strings or arrays of strings. +// Folders need to be ended with directory separator, e.g. "INBOX." +// (special directory "~" is an exception to this rule) +// These can be used also to overwrite server's namespaces +$rcmail_config['imap_ns_personal'] = null; +$rcmail_config['imap_ns_other'] = null; +$rcmail_config['imap_ns_shared'] = null; + +// By default IMAP capabilities are readed after connection to IMAP server +// In some cases, e.g. when using IMAP proxy, there's a need to refresh the list +// after login. Set to True if you've got this case. +$rcmail_config['imap_force_caps'] = false; + +// By default list of subscribed folders is determined using LIST-EXTENDED +// extension if available. Some servers (dovecot 1.x) returns wrong results +// for shared namespaces in this case. http://trac.roundcube.net/ticket/1486225 +// Enable this option to force LSUB command usage instead. +$rcmail_config['imap_force_lsub'] = false; + +// Some server configurations (e.g. Courier) doesn't list folders in all namespaces +// Enable this option to force listing of folders in all namespaces +$rcmail_config['imap_force_ns'] = false; + +// IMAP connection timeout, in seconds. Default: 0 (no limit) +$rcmail_config['imap_timeout'] = 0; + +// Optional IMAP authentication identifier to be used as authorization proxy +$rcmail_config['imap_auth_cid'] = null; + +// Optional IMAP authentication password to be used for imap_auth_cid +$rcmail_config['imap_auth_pw'] = null; + +// Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache'. +$rcmail_config['imap_cache'] = null; + +// Enables messages cache. Only 'db' cache is supported. +$rcmail_config['messages_cache'] = false; + + +// ---------------------------------- +// SMTP +// ---------------------------------- + +// SMTP server host (for sending mails). +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// If left blank, the PHP mail() function is used +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld +$rcmail_config['smtp_server'] = ''; + +// SMTP port (default is 25; use 587 for STARTTLS or 465 for the +// deprecated SSL over SMTP (aka SMTPS)) +$rcmail_config['smtp_port'] = 25; + +// SMTP username (if required) if you use %u as the username Roundcube +// will use the current username for login +$rcmail_config['smtp_user'] = ''; + +// SMTP password (if required) if you use %p as the password Roundcube +// will use the current user's password for login +$rcmail_config['smtp_pass'] = ''; + +// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use +// best server supported one) +$rcmail_config['smtp_auth_type'] = ''; + +// Optional SMTP authentication identifier to be used as authorization proxy +$rcmail_config['smtp_auth_cid'] = null; + +// Optional SMTP authentication password to be used for smtp_auth_cid +$rcmail_config['smtp_auth_pw'] = null; + +// SMTP HELO host +// Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages +// Leave this blank and you will get the server variable 'server_name' or +// localhost if that isn't defined. +$rcmail_config['smtp_helo_host'] = ''; + +// SMTP connection timeout, in seconds. Default: 0 (no limit) +$rcmail_config['smtp_timeout'] = 0; + +// ---------------------------------- +// SYSTEM +// ---------------------------------- +include_once("/etc/roundcube/debian-db-roundcube.php"); + + +// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA. +// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING! +$rcmail_config['enable_installer'] = false; + +// provide an URL where a user can get support for this Roundcube installation +// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE! +$rcmail_config['support_url'] = ''; + +// replace Roundcube logo with this image +// specify an URL relative to the document root of this Roundcube installation +$rcmail_config['skin_logo'] = null; + +// automatically create a new Roundcube user when log-in the first time. +// a new user will be created once the IMAP login succeeds. +// set to false if only registered users can use this service +$rcmail_config['auto_create_user'] = true; + +// use this folder to store log files (must be writeable for apache user) +// This is used by the 'file' log driver. +$rcmail_config['log_dir'] = '/var/log/roundcubemail/'; + +// use this folder to store temp files (must be writeable for apache user) +$rcmail_config['temp_dir'] = '/tmp'; + +// lifetime of message cache +// possible units: s, m, h, d, w +$rcmail_config['message_cache_lifetime'] = '10d'; + +// enforce connections over https +// with this option enabled, all non-secure connections will be redirected. +// set the port for the ssl connection as value of this option if it differs from the default 443 +$rcmail_config['force_https'] = false; + +// tell PHP that it should work as under secure connection +// even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set) +// e.g. when you're running Roundcube behind a https proxy +// this option is mutually exclusive to 'force_https' and only either one of them should be set to true. +$rcmail_config['use_https'] = false; + +// Allow browser-autocompletion on login form. +// 0 - disabled, 1 - username and host only, 2 - username, host, password +$rcmail_config['login_autocomplete'] = 0; + +// Forces conversion of logins to lower case. +// 0 - disabled, 1 - only domain part, 2 - domain and local part. +// If users authentication is not case-sensitive this must be enabled. +// After enabling it all user records need to be updated, e.g. with query: +// UPDATE users SET username = LOWER(username); +$rcmail_config['login_lc'] = 0; + +// Includes should be interpreted as PHP files +$rcmail_config['skin_include_php'] = false; + +// display software version on login screen +$rcmail_config['display_version'] = false; + +// Session lifetime in minutes +// must be greater than 'keep_alive'/60 +$rcmail_config['session_lifetime'] = 10; + +// session domain: .example.org +$rcmail_config['session_domain'] = ''; + +// session name. Default: 'roundcube_sessid' +$rcmail_config['session_name'] = null; + +// Backend to use for session storage. Can either be 'db' (default) or 'memcache' +// If set to memcache, a list of servers need to be specified in 'memcache_hosts' +// Make sure the Memcache extension (http://pecl.php.net/package/memcache) version >= 2.0.0 is installed +$rcmail_config['session_storage'] = 'db'; + +// Use these hosts for accessing memcached +// Define any number of hosts in the form of hostname:port or unix:///path/to/sock.file +$rcmail_config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock' ); + +// check client IP in session athorization +$rcmail_config['ip_check'] = false; + +// check referer of incoming requests +$rcmail_config['referer_check'] = false; + +// X-Frame-Options HTTP header value sent to prevent from Clickjacking. +// Possible values: sameorigin|deny. Set to false in order to disable sending them +$rcmail_config['x_frame_options'] = 'sameorigin'; + +// this key is used to encrypt the users imap password which is stored +// in the session record (and the client cookie if remember password is enabled). +// please provide a string of exactly 24 chars. +$rcmail_config['des_key'] = 'vtIOjLZo9kffJoqzpSbm5r1r'; + +// Automatically add this domain to user names for login +// Only for IMAP servers that require full e-mail addresses for login +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld +$rcmail_config['username_domain'] = ''; + +// This domain will be used to form e-mail addresses of new users +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld +$rcmail_config['mail_domain'] = ''; + +// Password charset. +// Use it if your authentication backend doesn't support UTF-8. +// Defaults to ISO-8859-1 for backward compatibility +$rcmail_config['password_charset'] = 'ISO-8859-1'; + +// How many seconds must pass between emails sent by a user +$rcmail_config['sendmail_delay'] = 0; + +// Maximum number of recipients per message. Default: 0 (no limit) +$rcmail_config['max_recipients'] = 0; + +// Maximum allowednumber of members of an address group. Default: 0 (no limit) +// If 'max_recipients' is set this value should be less or equal +$rcmail_config['max_group_members'] = 0; + +// add this user-agent to message headers when sending +$rcmail_config['useragent'] = 'Roundcube Webmail/'.RCMAIL_VERSION; + +// use this name to compose page titles +$rcmail_config['product_name'] = 'Roundcube Webmail'; + +// try to load host-specific configuration +// see http://trac.roundcube.net/wiki/Howto_Config for more details +$rcmail_config['include_host_config'] = false; + +// path to a text file which will be added to each sent message +// paths are relative to the Roundcube root folder +$rcmail_config['generic_message_footer'] = ''; + +// path to a text file which will be added to each sent HTML message +// paths are relative to the Roundcube root folder +$rcmail_config['generic_message_footer_html'] = ''; + +// add a received header to outgoing mails containing the creators IP and hostname +$rcmail_config['http_received_header'] = false; + +// Whether or not to encrypt the IP address and the host name +// these could, in some circles, be considered as sensitive information; +// however, for the administrator, these could be invaluable help +// when tracking down issues. +$rcmail_config['http_received_header_encrypt'] = false; + +// This string is used as a delimiter for message headers when sending +// a message via mail() function. Leave empty for auto-detection +$rcmail_config['mail_header_delimiter'] = NULL; + +// number of chars allowed for line when wrapping text. +// text wrapping is done when composing/sending messages +$rcmail_config['line_length'] = 72; + +// send plaintext messages as format=flowed +$rcmail_config['send_format_flowed'] = true; + +// don't allow these settings to be overriden by the user +$rcmail_config['dont_override'] = array(); + +// Set identities access level: +// 0 - many identities with possibility to edit all params +// 1 - many identities with possibility to edit all params but not email address +// 2 - one identity with possibility to edit all params +// 3 - one identity with possibility to edit all params but not email address +$rcmail_config['identities_level'] = 0; + +// Mimetypes supported by the browser. +// attachments of these types will open in a preview window +// either a comma-separated list or an array: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf' +$rcmail_config['client_mimetypes'] = null; # null == default + +// mime magic database +$rcmail_config['mime_magic'] = null; + +// path to imagemagick identify binary +$rcmail_config['im_identify_path'] = null; + +// path to imagemagick convert binary +$rcmail_config['im_convert_path'] = null; + +// maximum size of uploaded contact photos in pixel +$rcmail_config['contact_photo_size'] = 160; + +// Enable DNS checking for e-mail address validation +$rcmail_config['email_dns_check'] = false; + +// ---------------------------------- +// PLUGINS +// ---------------------------------- + +// List of active plugins (in plugins/ directory) +$rcmail_config['plugins'] = array('password'); + +// ---------------------------------- +// USER INTERFACE +// ---------------------------------- + +// default messages sort column. Use empty value for default server's sorting, +// or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc' +$rcmail_config['message_sort_col'] = ''; + +// default messages sort order +$rcmail_config['message_sort_order'] = 'DESC'; + +// These cols are shown in the message list. Available cols are: +// subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, 'priority' +$rcmail_config['list_cols'] = array('subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment'); + +// the default locale setting (leave empty for auto-detection) +// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR +$rcmail_config['language'] = null; + +// use this format for date display (date or strftime format) +$rcmail_config['date_format'] = 'Y-m-d'; + +// give this choice of date formats to the user to select from +$rcmail_config['date_formats'] = array('Y-m-d', 'd-m-Y', 'Y/m/d', 'm/d/Y', 'd/m/Y', 'd.m.Y', 'j.n.Y'); + +// use this format for time display (date or strftime format) +$rcmail_config['time_format'] = 'H:i'; + +// give this choice of time formats to the user to select from +$rcmail_config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A'); + +// use this format for short date display (derived from date_format and time_format) +$rcmail_config['date_short'] = 'D H:i'; + +// use this format for detailed date/time formatting (derived from date_format and time_format) +$rcmail_config['date_long'] = 'Y-m-d H:i'; + +// store draft message is this mailbox +// leave blank if draft messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['drafts_mbox'] = 'Drafts'; + +// store spam messages in this mailbox +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['junk_mbox'] = 'Spam'; + +// store sent message is this mailbox +// leave blank if sent messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['sent_mbox'] = 'Sent'; + +// move messages to this folder when deleting them +// leave blank if they should be deleted directly +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['trash_mbox'] = 'Trash'; + +// display these folders separately in the mailbox list. +// these folders will also be displayed with localized names +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['default_folders'] = array('INBOX', 'Drafts', 'Sent', 'Spam', 'Trash'); +$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Spam', 'Trash'); + +// automatically create the above listed default folders on first login +$rcmail_config['create_default_folders'] = true; + +// protect the default folders from renames, deletes, and subscription changes +$rcmail_config['protect_default_folders'] = true; + +// if in your system 0 quota means no limit set this option to true +$rcmail_config['quota_zero_as_unlimited'] = true; + +// Make use of the built-in spell checker. It is based on GoogieSpell. +// Since Google only accepts connections over https your PHP installatation +// requires to be compiled with Open SSL support +$rcmail_config['enable_spellcheck'] = true; + +// Enables spellchecker exceptions dictionary. +// Setting it to 'shared' will make the dictionary shared by all users. +$rcmail_config['spellcheck_dictionary'] = false; + +// Set the spell checking engine. 'googie' is the default. 'pspell' is also available, +// but requires the Pspell extensions. When using Nox Spell Server, also set 'googie' here. +$rcmail_config['spellcheck_engine'] = 'googie'; + +// For a locally installed Nox Spell Server, please specify the URI to call it. +// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72 +// Leave empty to use the Google spell checking service, what means +// that the message content will be sent to Google in order to check spelling +$rcmail_config['spellcheck_uri'] = ''; + +// These languages can be selected for spell checking. +// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch'); +// Leave empty for default set of available language. +$rcmail_config['spellcheck_languages'] = NULL; + +// Makes that words with all letters capitalized will be ignored (e.g. GOOGLE) +$rcmail_config['spellcheck_ignore_caps'] = false; + +// Makes that words with numbers will be ignored (e.g. g00gle) +$rcmail_config['spellcheck_ignore_nums'] = false; + +// Makes that words with symbols will be ignored (e.g. g@@gle) +$rcmail_config['spellcheck_ignore_syms'] = false; + +// Use this char/string to separate recipients when composing a new message +$rcmail_config['recipients_separator'] = ','; + +// don't let users set pagesize to more than this value if set +$rcmail_config['max_pagesize'] = 200; + +// Minimal value of user's 'keep_alive' setting (in seconds) +// Must be less than 'session_lifetime' +$rcmail_config['min_keep_alive'] = 60; + +// Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option. +// By default refresh time is set to 1 second. You can set this value to true +// or any integer value indicating number of seconds. +$rcmail_config['upload_progress'] = false; + +// Specifies for how many seconds the Undo button will be available +// after object delete action. Currently used with supporting address book sources. +// Setting it to 0, disables the feature. +$rcmail_config['undo_timeout'] = 0; + +// ---------------------------------- +// ADDRESSBOOK SETTINGS +// ---------------------------------- + +// This indicates which type of address book to use. Possible choises: +// 'sql' (default) and 'ldap'. +// If set to 'ldap' then it will look at using the first writable LDAP +// address book as the primary address book and it will not display the +// SQL address book in the 'Address Book' view. +$rcmail_config['address_book_type'] = 'sql'; + +// In order to enable public ldap search, configure an array like the Verisign +// example further below. if you would like to test, simply uncomment the example. +// Array key must contain only safe characters, ie. a-zA-Z0-9_ +$rcmail_config['ldap_public'] = array(); + +// If you are going to use LDAP for individual address books, you will need to +// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it. +// +// The recommended directory structure for LDAP is to store all the address book entries +// under the users main entry, e.g.: +// +// o=root +// ou=people +// uid=user@domain +// mail=contact@contactdomain +// +// So the base_dn would be uid=%fu,ou=people,o=root +// The bind_dn would be the same as based_dn or some super user login. +/* + * example config for Verisign directory + * +$rcmail_config['ldap_public']['Verisign'] = array( + 'name' => 'Verisign.com', + // Replacement variables supported in host names: + // %h - user's IMAP hostname + // %n - http hostname ($_SERVER['SERVER_NAME']) + // %d - domain (http hostname without the first part) + // %z - IMAP domain (IMAP hostname without the first part) + // For example %n = mail.domain.tld, %d = domain.tld + 'hosts' => array('directory.verisign.com'), + 'port' => 389, + 'use_tls' => false, + 'ldap_version' => 3, // using LDAPv3 + 'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login. + // %fu - The full username provided, assumes the username is an email + // address, uses the username_domain value if not an email address. + // %u - The username prior to the '@'. + // %d - The domain name after the '@'. + // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" + // %dn - DN found by ldap search when search_filter/search_base_dn are used + 'base_dn' => '', + 'bind_dn' => '', + 'bind_pass' => '', + // It's possible to bind for an individual address book + // The login name is used to search for the DN to bind with + 'search_base_dn' => '', + 'search_filter' => '', // e.g. '(&(objectClass=posixAccount)(uid=%u))' + // DN and password to bind as before searching for bind DN, if anonymous search is not allowed + 'search_bind_dn' => '', + 'search_bind_pw' => '', + // Default for %dn variable if search doesn't return DN value + 'search_dn_default' => '', + // Optional authentication identifier to be used as SASL authorization proxy + // bind_dn need to be empty + 'auth_cid' => '', + // SASL authentication method (for proxy auth), e.g. DIGEST-MD5 + 'auth_method' => '', + // Indicates if the addressbook shall be hidden from the list. + // With this option enabled you can still search/view contacts. + 'hidden' => false, + // Indicates if the addressbook shall not list contacts but only allows searching. + 'searchonly' => false, + // Indicates if we can write to the LDAP directory or not. + // If writable is true then these fields need to be populated: + // LDAP_Object_Classes, required_fields, LDAP_rdn + 'writable' => false, + // To create a new contact these are the object classes to specify + // (or any other classes you wish to use). + 'LDAP_Object_Classes' => array('top', 'inetOrgPerson'), + // The RDN field that is used for new entries, this field needs + // to be one of the search_fields, the base of base_dn is appended + // to the RDN to insert into the LDAP directory. + 'LDAP_rdn' => 'cn', + // The required fields needed to build a new contact as required by + // the object classes (can include additional fields not required by the object classes). + 'required_fields' => array('cn', 'sn', 'mail'), + 'search_fields' => array('mail', 'cn'), // fields to search in + // mapping of contact fields to directory attributes + // for every attribute one can specify the number of values (limit) allowed. + // default is 1, a wildcard * means unlimited + 'fieldmap' => array( + // Roundcube => LDAP:limit + 'name' => 'cn', + 'surname' => 'sn', + 'firstname' => 'givenName', + 'title' => 'title', + 'email' => 'mail:*', + 'phone:home' => 'homePhone', + 'phone:work' => 'telephoneNumber', + 'phone:mobile' => 'mobile', + 'phone:pager' => 'pager', + 'street' => 'street', + 'zipcode' => 'postalCode', + 'region' => 'st', + 'locality' => 'l', +// if you uncomment country, you need to modify 'sub_fields' above +// 'country' => 'c', + 'department' => 'departmentNumber', + 'notes' => 'description', +// these currently don't work: +// 'phone:workfax' => 'facsimileTelephoneNumber', +// 'photo' => 'jpegPhoto', +// 'organization' => 'o', +// 'manager' => 'manager', +// 'assistant' => 'secretary', + ), + // Map of contact sub-objects (attribute name => objectClass(es)), e.g. 'c' => 'country' + 'sub_fields' => array(), + 'sort' => 'cn', // The field to sort the listing by. + 'scope' => 'sub', // search mode: sub|base|list + 'filter' => '(objectClass=inetOrgPerson)', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act + 'fuzzy_search' => true, // server allows wildcard search + 'vlv' => false, // Enable Virtual List View to more efficiently fetch paginated data (if server supports it) + 'numsub_filter' => '(objectClass=organizationalUnit)', // with VLV, we also use numSubOrdinates to query the total number of records. Set this filter to get all numSubOrdinates attributes for counting + 'sizelimit' => '0', // Enables you to limit the count of entries fetched. Setting this to 0 means no limit. + 'timelimit' => '0', // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. + 'referrals' => true|false, // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups + + // definition for contact groups (uncomment if no groups are supported) + // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above) + // if the groups base_dn is empty, the contact base_dn is used for the groups as well + // -> in this case, assure that groups and contacts are separated due to the concernig filters! + 'groups' => array( + 'base_dn' => '', + 'scope' => 'sub', // search mode: sub|base|list + 'filter' => '(objectClass=groupOfNames)', + 'object_classes' => array("top", "groupOfNames"), + 'member_attr' => 'member', // name of the member attribute, e.g. uniqueMember + 'name_attr' => 'cn', // attribute to be used as group name + ), +); +*/ + +// An ordered array of the ids of the addressbooks that should be searched +// when populating address autocomplete fields server-side. ex: array('sql','Verisign'); +$rcmail_config['autocomplete_addressbooks'] = array('sql'); + +// The minimum number of characters required to be typed in an autocomplete field +// before address books will be searched. Most useful for LDAP directories that +// may need to do lengthy results building given overly-broad searches +$rcmail_config['autocomplete_min_length'] = 1; + +// Number of parallel autocomplete requests. +// If there's more than one address book, n parallel (async) requests will be created, +// where each request will search in one address book. By default (0), all address +// books are searched in one request. +$rcmail_config['autocomplete_threads'] = 0; + +// Max. numer of entries in autocomplete popup. Default: 15. +$rcmail_config['autocomplete_max'] = 15; + +// show address fields in this order +// available placeholders: {street}, {locality}, {zipcode}, {country}, {region} +$rcmail_config['address_template'] = '{street}
{locality} {zipcode}
{country} {region}'; + +// Matching mode for addressbook search (including autocompletion) +// 0 - partial (*abc*), default +// 1 - strict (abc) +// 2 - prefix (abc*) +// Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode +$rcmail_config['addressbook_search_mode'] = 0; + +// ---------------------------------- +// USER PREFERENCES +// ---------------------------------- + +// Use this charset as fallback for message decoding +//$rcmail_config['default_charset'] = 'ISO-8859-1'; +$rcmail_config['default_charset'] = 'UTF-8'; + +// skin name: folder from skins/ +$rcmail_config['skin'] = 'larry'; + +// show up to X items in messages list view +$rcmail_config['mail_pagesize'] = 50; + +// show up to X items in contacts list view +$rcmail_config['addressbook_pagesize'] = 50; + +// sort contacts by this col (preferably either one of name, firstname, surname) +$rcmail_config['addressbook_sort_col'] = 'surname'; + +// the way how contact names are displayed in the list +// 0: display name +// 1: (prefix) firstname middlename surname (suffix) +// 2: (prefix) surname firstname middlename (suffix) +// 3: (prefix) surname, firstname middlename (suffix) +$rcmail_config['addressbook_name_listing'] = 0; + +// use this timezone to display date/time +// valid timezone identifers are listed here: php.net/manual/en/timezones.php +// 'auto' will use the browser's timezone settings +$rcmail_config['timezone'] = 'auto'; + +// prefer displaying HTML messages +$rcmail_config['prefer_html'] = true; + +// display remote inline images +// 0 - Never, always ask +// 1 - Ask if sender is not in address book +// 2 - Always show inline images +$rcmail_config['show_images'] = 0; + +// compose html formatted messages by default +// 0 - never, 1 - always, 2 - on reply to HTML message only +$rcmail_config['htmleditor'] = 0; + +// show pretty dates as standard +$rcmail_config['prettydate'] = true; + +// save compose message every 30 seconds +$rcmail_config['draft_autosave'] = 30; + +// default setting if preview pane is enabled +$rcmail_config['preview_pane'] = false; + +// Mark as read when viewed in preview pane (delay in seconds) +// Set to -1 if messages in preview pane should not be marked as read +$rcmail_config['preview_pane_mark_read'] = 0; + +// Clear Trash on logout +$rcmail_config['logout_purge'] = false; + +// Compact INBOX on logout +$rcmail_config['logout_expunge'] = false; + +// Display attached images below the message body +$rcmail_config['inline_images'] = true; + +// Encoding of long/non-ascii attachment names: +// 0 - Full RFC 2231 compatible +// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default) +// 2 - Full 2047 compatible +$rcmail_config['mime_param_folding'] = 1; + +// Set true if deleted messages should not be displayed +// This will make the application run slower +$rcmail_config['skip_deleted'] = false; + +// Set true to Mark deleted messages as read as well as deleted +// False means that a message's read status is not affected by marking it as deleted +$rcmail_config['read_when_deleted'] = true; + +// Set to true to never delete messages immediately +// Use 'Purge' to remove messages marked as deleted +$rcmail_config['flag_for_deletion'] = false; + +// Default interval for keep-alive/check-recent requests (in seconds) +// Must be greater than or equal to 'min_keep_alive' and less than 'session_lifetime' +$rcmail_config['keep_alive'] = 60; + +// If true all folders will be checked for recent messages +$rcmail_config['check_all_folders'] = false; + +// If true, after message delete/move, the next message will be displayed +$rcmail_config['display_next'] = false; + +// 0 - Do not expand threads +// 1 - Expand all threads automatically +// 2 - Expand only threads with unread messages +$rcmail_config['autoexpand_threads'] = 0; + +// When replying place cursor above original message (top posting) +$rcmail_config['top_posting'] = false; + +// When replying strip original signature from message +$rcmail_config['strip_existing_sig'] = true; + +// Show signature: +// 0 - Never +// 1 - Always +// 2 - New messages only +// 3 - Forwards and Replies only +$rcmail_config['show_sig'] = 1; + +// When replying or forwarding place sender's signature above existing message +$rcmail_config['sig_above'] = false; + +// Use MIME encoding (quoted-printable) for 8bit characters in message body +$rcmail_config['force_7bit'] = false; + +// Defaults of the search field configuration. +// The array can contain a per-folder list of header fields which should be considered when searching +// The entry with key '*' stands for all folders which do not have a specific list set. +// Please note that folder names should to be in sync with $rcmail_config['default_folders'] +$rcmail_config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1)); + +// Defaults of the addressbook search field configuration. +$rcmail_config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1); + +// 'Delete always' +// This setting reflects if mail should be always deleted +// when moving to Trash fails. This is necessary in some setups +// when user is over quota and Trash is included in the quota. +$rcmail_config['delete_always'] = false; + +// Directly delete messages in Junk instead of moving to Trash +$rcmail_config['delete_junk'] = true; + +// Behavior if a received message requests a message delivery notification (read receipt) +// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask) +// 3 = send automatically if sender is in addressbook, otherwise ask the user +// 4 = send automatically if sender is in addressbook, otherwise ignore +$rcmail_config['mdn_requests'] = 0; + +// Return receipt checkbox default state +$rcmail_config['mdn_default'] = 0; + +// Delivery Status Notification checkbox default state +$rcmail_config['dsn_default'] = 0; + +// Place replies in the folder of the message being replied to +$rcmail_config['reply_same_folder'] = false; + +// Sets default mode of Forward feature to "forward as attachment" +$rcmail_config['forward_attachment'] = false; + +// Defines address book (internal index) to which new contacts will be added +// By default it is the first writeable addressbook. +// Note: Use '0' for built-in address book. +$rcmail_config['default_addressbook'] = null; + +// Enables spell checking before sending a message. +$rcmail_config['spellcheck_before_send'] = false; + +// Skip alternative email addresses in autocompletion (show one address per contact) +$rcmail_config['autocomplete_single'] = false; + +// Default font for composed HTML message. +// Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New, +// Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana +$rcmail_config['default_font'] = ''; + +// end of config file diff --git a/install/ubuntu/16.10/roundcube/vesta.php b/install/ubuntu/16.10/roundcube/vesta.php new file mode 100644 index 00000000..99e1d4bc --- /dev/null +++ b/install/ubuntu/16.10/roundcube/vesta.php @@ -0,0 +1,71 @@ + + */ + + function password_save($curpass, $passwd) + { + $rcmail = rcmail::get_instance(); + $vesta_host = $rcmail->config->get('password_vesta_host'); + + if (empty($vesta_host)) + { + $vesta_host = 'localhost'; + } + + $vesta_port = $rcmail->config->get('password_vesta_port'); + if (empty($vesta_port)) + { + $vesta_port = '8083'; + } + + $postvars = array( + 'email' => $_SESSION['username'], + 'password' => $curpass, + 'new' => $passwd + ); + + $postdata = http_build_query($postvars); + + $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; + $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'User-Agent: PHP Script' . PHP_EOL; + $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; + $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; + $send .= 'Connection: close' . PHP_EOL; + $send .= PHP_EOL; + $send .= $postdata . PHP_EOL . PHP_EOL; + + //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $errno = ""; + $errstr = ""; + $context = stream_context_create(); + $result = stream_context_set_option($context, 'ssl', 'verify_peer', false); + $result = stream_context_set_option($context, 'ssl', 'verify_peer_name', false); + $result = stream_context_set_option($context, 'ssl', 'verify_host', false); + $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); + + $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + fputs($fp, $send); + $result = fread($fp, 2048); + fclose($fp); + + $fp = fopen("/tmp/roundcube.log", 'w'); + fwrite($fp, "test ok"); + fwrite($fp, "\n"); + fclose($fp); + + + if(strpos($result, 'ok') && !strpos($result, 'error')) + { + return PASSWORD_SUCCESS; + } + else { + return PASSWORD_ERROR; + } + + } diff --git a/install/ubuntu/16.10/sudo/admin b/install/ubuntu/16.10/sudo/admin new file mode 100644 index 00000000..4226bdd4 --- /dev/null +++ b/install/ubuntu/16.10/sudo/admin @@ -0,0 +1,8 @@ +# Created by vesta installer +Defaults env_keep="VESTA" +Defaults:admin !syslog +Defaults:admin !requiretty +Defaults:root !requiretty + +admin ALL=(ALL) ALL +admin ALL=NOPASSWD:/usr/local/vesta/bin/* diff --git a/install/ubuntu/16.10/templates/dns/child-ns.tpl b/install/ubuntu/16.10/templates/dns/child-ns.tpl new file mode 100755 index 00000000..f0695773 --- /dev/null +++ b/install/ubuntu/16.10/templates/dns/child-ns.tpl @@ -0,0 +1,12 @@ +ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='ns1.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='ns2.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='3' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='4' RECORD='ns1' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='5' RECORD='ns2' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='6' RECORD='mail' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='7' RECORD='www' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='8' RECORD='pop' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='9' RECORD='ftp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='10' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='mail.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='11' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% ?all"' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='12' RECORD='_dmarc' TYPE='TXT' PRIORITY='' VALUE='"v=DMARC1; p=none"' SUSPENDED='no' TIME='%time%' DATE='%date%' diff --git a/install/ubuntu/16.10/templates/dns/default.tpl b/install/ubuntu/16.10/templates/dns/default.tpl new file mode 100755 index 00000000..d02cfc03 --- /dev/null +++ b/install/ubuntu/16.10/templates/dns/default.tpl @@ -0,0 +1,16 @@ +ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns1%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns2%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='3' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns3%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='4' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns4%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='5' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns5%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='6' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns6%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='7' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns7%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='8' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns8%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='9' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='10' RECORD='mail' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='11' RECORD='www' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='12' RECORD='pop' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='13' RECORD='ftp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='14' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='mail.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='15' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% ?all"' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='16' RECORD='_dmarc' TYPE='TXT' PRIORITY='' VALUE='"v=DMARC1; p=none"' SUSPENDED='no' TIME='%time%' DATE='%date%' diff --git a/install/ubuntu/16.10/templates/dns/gmail.tpl b/install/ubuntu/16.10/templates/dns/gmail.tpl new file mode 100755 index 00000000..950cfa45 --- /dev/null +++ b/install/ubuntu/16.10/templates/dns/gmail.tpl @@ -0,0 +1,14 @@ +ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns1%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns2%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='3' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='4' RECORD='ftp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='5' RECORD='localhost' TYPE='A' PRIORITY='' VALUE='127.0.0.1' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='6' RECORD='mail' TYPE='CNAME' PRIORITY='' VALUE='ghs.google.com.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='7' RECORD='pop' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='8' RECORD='www' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='9' RECORD='@' TYPE='MX' PRIORITY='1' VALUE='ASPMX.L.GOOGLE.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='10' RECORD='@' TYPE='MX' PRIORITY='5' VALUE='ALT1.ASPMX.L.GOOGLE.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='11' RECORD='@' TYPE='MX' PRIORITY='5' VALUE='ALT2.ASPMX.L.GOOGLE.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='12' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='ASPMX2.GOOGLEMAIL.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='13' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='ASPMX3.GOOGLEMAIL.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='14' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% ?all"' SUSPENDED='no' TIME='%time%' DATE='%date%' diff --git a/install/ubuntu/16.10/templates/web/apache2/basedir.stpl b/install/ubuntu/16.10/templates/web/apache2/basedir.stpl new file mode 100644 index 00000000..d978d4c4 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/basedir.stpl @@ -0,0 +1,44 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + php_admin_value open_basedir %docroot%:%home%/%user%/tmp + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@%domain_idn%" + + + AllowOverride All + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% + + + RMode config + RUidGid %user% %group% + RGroups www-data + + + AssignUserID %user% %group% + + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/apache2/basedir.tpl b/install/ubuntu/16.10/templates/web/apache2/basedir.tpl new file mode 100644 index 00000000..96c94a1b --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/basedir.tpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + Options +Includes -Indexes +ExecCGI + php_admin_value open_basedir %docroot%:%home%/%user%/tmp + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@%domain_idn%" + + + AllowOverride All + + + + RMode config + RUidGid %user% %group% + RGroups www-data + + + AssignUserID %user% %group% + + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/apache2/default.stpl b/install/ubuntu/16.10/templates/web/apache2/default.stpl new file mode 100644 index 00000000..a7faa721 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/default.stpl @@ -0,0 +1,43 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + php_admin_value open_basedir %docroot%:%home%/%user%/tmp + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + + + AllowOverride All + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% + + + RMode config + RUidGid %user% %group% + RGroups www-data + + + AssignUserID %user% %group% + + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/apache2/default.tpl b/install/ubuntu/16.10/templates/web/apache2/default.tpl new file mode 100644 index 00000000..3a227015 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/default.tpl @@ -0,0 +1,37 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + Options +Includes -Indexes +ExecCGI + php_admin_value open_basedir %docroot%:%home%/%user%/tmp + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + + + AllowOverride All + + + + RMode config + RUidGid %user% %group% + RGroups www-data + + + AssignUserID %user% %group% + + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/apache2/hosting.stpl b/install/ubuntu/16.10/templates/web/apache2/hosting.stpl new file mode 100644 index 00000000..8892072b --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/hosting.stpl @@ -0,0 +1,49 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + php_admin_value upload_max_filesize 10M + php_admin_value max_execution_time 20 + php_admin_value post_max_size 8M + php_admin_value memory_limit 32M + php_admin_flag mysql.allow_persistent off + php_admin_flag safe_mode off + php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@%domain_idn%" + php_admin_value open_basedir %docroot%:%home%/%user%/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpMyAdmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcubemail:/etc/roundcube:/var/lib/roundcube + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + + + AllowOverride All + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% + + RMode config + RUidGid %user% %group% + RGroups www-data + + + AssignUserID %user% %group% + + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/apache2/hosting.tpl b/install/ubuntu/16.10/templates/web/apache2/hosting.tpl new file mode 100644 index 00000000..1eb26910 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/hosting.tpl @@ -0,0 +1,43 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + Options +Includes -Indexes +ExecCGI + php_admin_value upload_max_filesize 10M + php_admin_value max_execution_time 20 + php_admin_value post_max_size 8M + php_admin_value memory_limit 32M + php_admin_flag mysql.allow_persistent off + php_admin_flag safe_mode off + php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@%domain_idn%" + php_admin_value open_basedir %docroot%:%home%/%user%/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpMyAdmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcubemail:/etc/roundcube:/var/lib/roundcube + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + + + AllowOverride All + + + RMode config + RUidGid %user% %group% + RGroups www-data + + + AssignUserID %user% %group% + + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/apache2/phpcgi.sh b/install/ubuntu/16.10/templates/web/apache2/phpcgi.sh new file mode 100755 index 00000000..6565e103 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/phpcgi.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# Adding php wrapper +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini' +wrapper_file="$home_dir/$user/web/$domain/cgi-bin/php" + +echo "$wrapper_script" > $wrapper_file +chown $user:$user $wrapper_file +chmod -f 751 $wrapper_file + +exit 0 diff --git a/install/ubuntu/16.10/templates/web/apache2/phpcgi.stpl b/install/ubuntu/16.10/templates/web/apache2/phpcgi.stpl new file mode 100644 index 00000000..731355bc --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/phpcgi.stpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + SSLRequireSSL + AllowOverride All + Options +Includes -Indexes +ExecCGI + php_admin_value open_basedir %docroot%:%home%/%user%/tmp + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + Action phpcgi-script /cgi-bin/php + + SetHandler phpcgi-script + + + + AllowOverride All + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/apache2/phpcgi.tpl b/install/ubuntu/16.10/templates/web/apache2/phpcgi.tpl new file mode 100644 index 00000000..c6796d29 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/phpcgi.tpl @@ -0,0 +1,31 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + Options +Includes -Indexes +ExecCGI + php_admin_value open_basedir %docroot%:%home%/%user%/tmp + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + Action phpcgi-script /cgi-bin/php + + SetHandler phpcgi-script + + + + AllowOverride All + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/apache2/phpfcgid.sh b/install/ubuntu/16.10/templates/web/apache2/phpfcgid.sh new file mode 100755 index 00000000..e8058249 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/phpfcgid.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# Adding php wrapper +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +wrapper_script="#!/bin/sh +PHPRC=/usr/local/lib +export PHPRC +export PHP_FCGI_MAX_REQUESTS=1000 +export PHP_FCGI_CHILDREN=20 +exec /usr/bin/php-cgi +" +wrapper_file="$home_dir/$user/web/$domain/cgi-bin/fcgi-starter" + +echo "$wrapper_script" > $wrapper_file +chown $user:$user $wrapper_file +chmod -f 751 $wrapper_file + +exit 0 diff --git a/install/ubuntu/16.10/templates/web/apache2/phpfcgid.stpl b/install/ubuntu/16.10/templates/web/apache2/phpfcgid.stpl new file mode 100644 index 00000000..156c8a91 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/phpfcgid.stpl @@ -0,0 +1,39 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + SSLRequireSSL + AllowOverride All + Options +Includes -Indexes +ExecCGI + php_admin_value open_basedir %docroot%:%home%/%user%/tmp + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + + SetHandler fcgid-script + + FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php + + + AllowOverride All + + php_admin_value open_basedir none + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/apache2/phpfcgid.tpl b/install/ubuntu/16.10/templates/web/apache2/phpfcgid.tpl new file mode 100644 index 00000000..a4c01269 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/apache2/phpfcgid.tpl @@ -0,0 +1,31 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + Options +Includes -Indexes +ExecCGI + php_admin_value open_basedir %docroot%:%home%/%user%/tmp + php_admin_value upload_tmp_dir %home%/%user%/tmp + php_admin_value session.save_path %home%/%user%/tmp + + SetHandler fcgid-script + + FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php + + + AllowOverride All + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/install/ubuntu/16.10/templates/web/awstats/awstats.tpl b/install/ubuntu/16.10/templates/web/awstats/awstats.tpl new file mode 100755 index 00000000..9a92e0fd --- /dev/null +++ b/install/ubuntu/16.10/templates/web/awstats/awstats.tpl @@ -0,0 +1,133 @@ +LogFile="/var/log/%web_system%/domains/%domain%.log" +LogType=W +LogFormat=1 +LogSeparator=" " +SiteDomain="%domain_idn%" +HostAliases="%alias_idn%" +DirData="%home%/%user%/web/%domain%/stats" +DirCgi="/vstats" +DirIcons="/vstats/icon" +AllowToUpdateStatsFromBrowser=0 +AllowFullYearView=2 +EnableLockForUpdate=1 +DNSStaticCacheFile="dnscache.txt" +DNSLastUpdateCacheFile="dnscachelastupdate.txt" +SkipDNSLookupFor="" +AllowAccessFromWebToAuthenticatedUsersOnly=0 +AllowAccessFromWebToFollowingAuthenticatedUsers="" +AllowAccessFromWebToFollowingIPAddresses="" +CreateDirDataIfNotExists=0 +BuildHistoryFormat=text +BuildReportFormat=html +SaveDatabaseFilesWithPermissionsForEveryone=0 +PurgeLogFile=0 +ArchiveLogRecords=0 +KeepBackupOfHistoricFiles=1 +DefaultFile="index.php index.html" +SkipHosts="127.0.0.1 +SkipUserAgents="" +SkipFiles="" +SkipReferrersBlackList="" +OnlyHosts="" +OnlyUserAgents="" +OnlyUsers="" +OnlyFiles="" +NotPageList="css js class gif jpg jpeg png bmp ico rss xml swf" +ValidHTTPCodes="200 304" +ValidSMTPCodes="1 250" +AuthenticatedUsersNotCaseSensitive=0 +URLNotCaseSensitive=0 +URLWithAnchor=0 +URLQuerySeparators="?;" +URLWithQuery=0 +URLWithQueryWithOnlyFollowingParameters="" +URLWithQueryWithoutFollowingParameters="" +URLReferrerWithQuery=0 +WarningMessages=1 +ErrorMessages="" +DebugMessages=0 +NbOfLinesForCorruptedLog=50 +WrapperScript="" +DecodeUA=0 +MiscTrackerUrl="/js/awstats_misc_tracker.js" +UseFramesWhenCGI=1 +DetailedReportsOnNewWindows=1 +Expires=3600 +MaxRowsInHTMLOutput=1000 +Lang="auto" +DirLang="./lang" +ShowMenu=1 +ShowSummary=UVPHB +ShowMonthStats=UVPHB +ShowDaysOfMonthStats=VPHB +ShowDaysOfWeekStats=PHB +ShowHoursStats=PHB +ShowDomainsStats=PHB +ShowHostsStats=PHBL +ShowAuthenticatedUsers=0 +ShowRobotsStats=HBL +ShowWormsStats=0 +ShowEMailSenders=0 +ShowEMailReceivers=0 +ShowSessionsStats=1 +ShowPagesStats=PBEX +ShowFileTypesStats=HB +ShowFileSizesStats=0 +ShowDownloadsStats=HB +ShowOSStats=1 +ShowBrowsersStats=1 +ShowScreenSizeStats=0 +ShowOriginStats=PH +ShowKeyphrasesStats=1 +ShowKeywordsStats=1 +ShowMiscStats=a +ShowHTTPErrorsStats=1 +ShowSMTPErrorsStats=0 +ShowClusterStats=0 +AddDataArrayMonthStats=1 +AddDataArrayShowDaysOfMonthStats=1 +AddDataArrayShowDaysOfWeekStats=1 +AddDataArrayShowHoursStats=1 +IncludeInternalLinksInOriginSection=0 +MaxNbOfDomain = 10 +MinHitDomain = 1 +MaxNbOfHostsShown = 10 +MinHitHost = 1 +MaxNbOfLoginShown = 10 +MinHitLogin = 1 +MaxNbOfRobotShown = 10 +MinHitRobot = 1 +MaxNbOfDownloadsShown = 10 +MinHitDownloads = 1 +MaxNbOfPageShown = 10 +MinHitFile = 1 +MaxNbOfOsShown = 10 +MinHitOs = 1 +MaxNbOfBrowsersShown = 10 +MinHitBrowser = 1 +MaxNbOfScreenSizesShown = 5 +MinHitScreenSize = 1 +MaxNbOfWindowSizesShown = 5 +MinHitWindowSize = 1 +MaxNbOfRefererShown = 10 +MinHitRefer = 1 +MaxNbOfKeyphrasesShown = 10 +MinHitKeyphrase = 1 +MaxNbOfKeywordsShown = 10 +MinHitKeyword = 1 +MaxNbOfEMailsShown = 20 +MinHitEMail = 1 +FirstDayOfWeek=0 +ShowFlagLinks="" +ShowLinksOnUrl=1 +UseHTTPSLinkForUrl="" +MaxLengthOfShownURL=64 +HTMLHeadSection="" +HTMLEndSection="" +MetaRobot=0 +Logo="awstats_logo6.png" +LogoLink="http://awstats.sourceforge.net" +BarWidth = 260 +BarHeight = 90 +StyleSheet="" +ExtraTrackedRowsLimit=500 diff --git a/install/ubuntu/16.10/templates/web/awstats/index.tpl b/install/ubuntu/16.10/templates/web/awstats/index.tpl new file mode 100755 index 00000000..9df9bb5c --- /dev/null +++ b/install/ubuntu/16.10/templates/web/awstats/index.tpl @@ -0,0 +1,10 @@ + + + + Awstats log analyzer + + + + + + diff --git a/install/ubuntu/16.10/templates/web/awstats/nav.tpl b/install/ubuntu/16.10/templates/web/awstats/nav.tpl new file mode 100755 index 00000000..f29bed68 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/awstats/nav.tpl @@ -0,0 +1,23 @@ + + + Awstats navigation + + + + + + + + +
vesta
+ +
+
+ + diff --git a/install/ubuntu/16.10/templates/web/nginx/caching.sh b/install/ubuntu/16.10/templates/web/nginx/caching.sh new file mode 100755 index 00000000..6eb9126d --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/caching.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +user=$1 +domain=$2 +ip=$3 +home=$4 +docroot=$5 + +str="proxy_cache_path /var/cache/nginx/$domain levels=2" +str="$str keys_zone=$domain:10m inactive=60m max_size=512m;" +echo "$str" >> /etc/nginx/conf.d/01_caching_pool.conf + diff --git a/install/ubuntu/16.10/templates/web/nginx/caching.stpl b/install/ubuntu/16.10/templates/web/nginx/caching.stpl new file mode 100755 index 00000000..ca6cffe3 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/caching.stpl @@ -0,0 +1,44 @@ +server { + listen %ip%:%proxy_ssl_port%; + server_name %domain_idn% %alias_idn%; + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + + proxy_cache cache; + proxy_cache_valid 15m; + proxy_cache_valid 404 1m; + proxy_no_cache $no_cache; + proxy_cache_bypass $no_cache; + proxy_cache_bypass $cookie_session $http_x_update; + + location ~* ^.+\.(%proxy_extentions%)$ { + proxy_cache off; + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/caching.tpl b/install/ubuntu/16.10/templates/web/nginx/caching.tpl new file mode 100755 index 00000000..36761b65 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/caching.tpl @@ -0,0 +1,41 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + + proxy_cache cache; + proxy_cache_valid 15m; + proxy_cache_valid 404 1m; + proxy_no_cache $no_cache; + proxy_cache_bypass $no_cache; + proxy_cache_bypass $cookie_session $http_x_update; + + location ~* ^.+\.(%proxy_extentions%)$ { + proxy_cache off; + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/default.stpl b/install/ubuntu/16.10/templates/web/nginx/default.stpl new file mode 100755 index 00000000..fa538060 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/default.stpl @@ -0,0 +1,36 @@ +server { + listen %ip%:%proxy_ssl_port%; + server_name %domain_idn% %alias_idn%; + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} + diff --git a/install/ubuntu/16.10/templates/web/nginx/default.tpl b/install/ubuntu/16.10/templates/web/nginx/default.tpl new file mode 100755 index 00000000..4d5c774b --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/default.tpl @@ -0,0 +1,33 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} + diff --git a/install/ubuntu/16.10/templates/web/nginx/hosting.sh b/install/ubuntu/16.10/templates/web/nginx/hosting.sh new file mode 100755 index 00000000..eeed37ef --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/hosting.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# Changing public_html permission +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +chmod 755 $docroot + +exit 0 diff --git a/install/ubuntu/16.10/templates/web/nginx/hosting.stpl b/install/ubuntu/16.10/templates/web/nginx/hosting.stpl new file mode 100755 index 00000000..d778d633 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/hosting.stpl @@ -0,0 +1,38 @@ +server { + listen %ip%:%proxy_ssl_port%; + server_name %domain_idn% %alias_idn%; + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} + diff --git a/install/ubuntu/16.10/templates/web/nginx/hosting.tpl b/install/ubuntu/16.10/templates/web/nginx/hosting.tpl new file mode 100755 index 00000000..15961c95 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/hosting.tpl @@ -0,0 +1,35 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} + diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/cms_made_simple.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/cms_made_simple.stpl new file mode 100644 index 00000000..b19fdeaa --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/cms_made_simple.stpl @@ -0,0 +1,56 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ /index.php?page=$request_uri; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/cms_made_simple.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/cms_made_simple.tpl new file mode 100644 index 00000000..06353a47 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/cms_made_simple.tpl @@ -0,0 +1,52 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + try_files $uri $uri/ /index.php?page=$request_uri; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter2.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter2.stpl new file mode 100644 index 00000000..b1491edf --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter2.stpl @@ -0,0 +1,61 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location = /index.php { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME /var/www/html/ci$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location ~ \.php$ { + return 444; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter2.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter2.tpl new file mode 100644 index 00000000..1ed1e649 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter2.tpl @@ -0,0 +1,57 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location = /index.php { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME /var/www/html/ci$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location ~ \.php$ { + return 444; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter3.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter3.stpl new file mode 100644 index 00000000..8723a0e7 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter3.stpl @@ -0,0 +1,56 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter3.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter3.tpl new file mode 100644 index 00000000..d5281dc9 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/codeigniter3.tpl @@ -0,0 +1,52 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/datalife_engine.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/datalife_engine.stpl new file mode 100644 index 00000000..9e7720bf --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/datalife_engine.stpl @@ -0,0 +1,127 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + rewrite "^/page/([0-9]+)(/?)$" /index.php?cstart=$1 last; + + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$" /engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 last; + + rewrite "^/([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 last; + rewrite "^/([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 last; + rewrite "^/([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 last; + rewrite "^/([^.]+)/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&seourl=$3&seocat=$1 last; + + rewrite "^/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 last; + rewrite "^/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&news_page=$1&seourl=$3 last; + rewrite "^/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$1&newsid=$2&seourl=$3 last; + rewrite "^/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$1&seourl=$2 last; + + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2&day=$3 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&day=$3&cstart=$4 last; + + rewrite "^/([0-9]{4})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2 last; + rewrite "^/([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&cstart=$3 last; + + rewrite "^/([0-9]{4})(/?)+$" /index.php?year=$1 last; + rewrite "^/([0-9]{4})/page/([0-9]+)(/?)+$" /index.php?year=$1&cstart=$2 last; + + rewrite "^/tags/([^/]*)(/?)+$" /index.php?do=tags&tag=$1 last; + rewrite "^/tags/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=tags&tag=$1&cstart=$2 last; + + rewrite "^/xfsearch/([^/]*)(/?)+$" /index.php?do=xfsearch&xf=$1 last; + rewrite "^/xfsearch/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=xfsearch&xf=$1&cstart=$2 last; + + rewrite "^/user/([^/]*)/rss.xml$" /engine/rss.php?subaction=allnews&user=$1 last; + rewrite "^/user/([^/]*)(/?)+$" /index.php?subaction=userinfo&user=$1 last; + rewrite "^/user/([^/]*)/page/([0-9]+)(/?)+$" /index.php?subaction=userinfo&user=$1&cstart=$2 last; + rewrite "^/user/([^/]*)/news(/?)+$" /index.php?subaction=allnews&user=$1 last; + rewrite "^/user/([^/]*)/news/page/([0-9]+)(/?)+$" /index.php?subaction=allnews&user=$1&cstart=$2 last; + rewrite "^/user/([^/]*)/news/rss.xml(/?)+$" /engine/rss.php?subaction=allnews&user=$1 last; + + rewrite "^/lastnews(/?)+$" /index.php?do=lastnews last; + rewrite "^/lastnews/page/([0-9]+)(/?)+$" /index.php?do=lastnews&cstart=$1 last; + + rewrite "^/catalog/([^/]*)/rss.xml$" /engine/rss.php?catalog=$1 last; + rewrite "^/catalog/([^/]*)(/?)+$" /index.php?catalog=$1 last; + rewrite "^/catalog/([^/]*)/page/([0-9]+)(/?)+$" /index.php?catalog=$1&cstart=$2 last; + + rewrite "^/newposts(/?)+$" /index.php?subaction=newposts last; + rewrite "^/newposts/page/([0-9]+)(/?)+$" /index.php?subaction=newposts&cstart=$1 last; + + rewrite "^/favorites(/?)+$" /index.php?do=favorites last; + rewrite "^/favorites/page/([0-9]+)(/?)+$" /index.php?do=favorites&cstart=$1 last; + + rewrite "^/rules.html$" /index.php?do=rules last; + rewrite "^/statistics.html$" /index.php?do=stats last; + rewrite "^/addnews.html$" /index.php?do=addnews last; + rewrite "^/rss.xml$" /engine/rss.php last; + rewrite "^/sitemap.xml$" /uploads/sitemap.xml last; + + if (!-d $request_filename) { + rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last; + rewrite "^/([^.]+)/?$" /index.php?do=cat&category=$1 last; + } + + if (!-f $request_filename) { + rewrite "^/([^.]+)/rss.xml$" /engine/rss.php?do=cat&category=$1 last; + rewrite "^/page,([0-9]+),([^/]+).html$" /index.php?do=static&page=$2&news_page=$1 last; + rewrite "^/print:([^/]+).html$" /engine/print.php?do=static&page=$1 last; + } + + if (!-f $request_filename) { + rewrite "^/([^/]+).html$" /index.php?do=static&page=$1 last; + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/datalife_engine.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/datalife_engine.tpl new file mode 100644 index 00000000..d09b587e --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/datalife_engine.tpl @@ -0,0 +1,123 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + rewrite "^/page/([0-9]+)(/?)$" /index.php?cstart=$1 last; + + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$" /engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 last; + + rewrite "^/([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 last; + rewrite "^/([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 last; + rewrite "^/([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 last; + rewrite "^/([^.]+)/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&seourl=$3&seocat=$1 last; + + rewrite "^/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 last; + rewrite "^/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&news_page=$1&seourl=$3 last; + rewrite "^/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$1&newsid=$2&seourl=$3 last; + rewrite "^/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$1&seourl=$2 last; + + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2&day=$3 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&day=$3&cstart=$4 last; + + rewrite "^/([0-9]{4})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2 last; + rewrite "^/([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&cstart=$3 last; + + rewrite "^/([0-9]{4})(/?)+$" /index.php?year=$1 last; + rewrite "^/([0-9]{4})/page/([0-9]+)(/?)+$" /index.php?year=$1&cstart=$2 last; + + rewrite "^/tags/([^/]*)(/?)+$" /index.php?do=tags&tag=$1 last; + rewrite "^/tags/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=tags&tag=$1&cstart=$2 last; + + rewrite "^/xfsearch/([^/]*)(/?)+$" /index.php?do=xfsearch&xf=$1 last; + rewrite "^/xfsearch/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=xfsearch&xf=$1&cstart=$2 last; + + rewrite "^/user/([^/]*)/rss.xml$" /engine/rss.php?subaction=allnews&user=$1 last; + rewrite "^/user/([^/]*)(/?)+$" /index.php?subaction=userinfo&user=$1 last; + rewrite "^/user/([^/]*)/page/([0-9]+)(/?)+$" /index.php?subaction=userinfo&user=$1&cstart=$2 last; + rewrite "^/user/([^/]*)/news(/?)+$" /index.php?subaction=allnews&user=$1 last; + rewrite "^/user/([^/]*)/news/page/([0-9]+)(/?)+$" /index.php?subaction=allnews&user=$1&cstart=$2 last; + rewrite "^/user/([^/]*)/news/rss.xml(/?)+$" /engine/rss.php?subaction=allnews&user=$1 last; + + rewrite "^/lastnews(/?)+$" /index.php?do=lastnews last; + rewrite "^/lastnews/page/([0-9]+)(/?)+$" /index.php?do=lastnews&cstart=$1 last; + + rewrite "^/catalog/([^/]*)/rss.xml$" /engine/rss.php?catalog=$1 last; + rewrite "^/catalog/([^/]*)(/?)+$" /index.php?catalog=$1 last; + rewrite "^/catalog/([^/]*)/page/([0-9]+)(/?)+$" /index.php?catalog=$1&cstart=$2 last; + + rewrite "^/newposts(/?)+$" /index.php?subaction=newposts last; + rewrite "^/newposts/page/([0-9]+)(/?)+$" /index.php?subaction=newposts&cstart=$1 last; + + rewrite "^/favorites(/?)+$" /index.php?do=favorites last; + rewrite "^/favorites/page/([0-9]+)(/?)+$" /index.php?do=favorites&cstart=$1 last; + + rewrite "^/rules.html$" /index.php?do=rules last; + rewrite "^/statistics.html$" /index.php?do=stats last; + rewrite "^/addnews.html$" /index.php?do=addnews last; + rewrite "^/rss.xml$" /engine/rss.php last; + rewrite "^/sitemap.xml$" /uploads/sitemap.xml last; + + if (!-d $request_filename) { + rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last; + rewrite "^/([^.]+)/?$" /index.php?do=cat&category=$1 last; + } + + if (!-f $request_filename) { + rewrite "^/([^.]+)/rss.xml$" /engine/rss.php?do=cat&category=$1 last; + rewrite "^/page,([0-9]+),([^/]+).html$" /index.php?do=static&page=$2&news_page=$1 last; + rewrite "^/print:([^/]+).html$" /engine/print.php?do=static&page=$1 last; + } + + if (!-f $request_filename) { + rewrite "^/([^/]+).html$" /index.php?do=static&page=$1 last; + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/default.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/default.stpl new file mode 100644 index 00000000..7fade11b --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/default.stpl @@ -0,0 +1,55 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/default.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/default.tpl new file mode 100644 index 00000000..dbd38c07 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/default.tpl @@ -0,0 +1,51 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/dokuwiki.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/dokuwiki.stpl new file mode 100644 index 00000000..f0669d6f --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/dokuwiki.stpl @@ -0,0 +1,72 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + index doku.php; + try_files $uri $uri/ @dokuwiki; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location ~ ^/lib.*\.(gif|png|ico|jpg)$ { + expires 30d; + } + + location ^~ /conf/ { return 403; } + location ^~ /data/ { return 403; } + + location @dokuwiki { + rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; + rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; + rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; + rewrite ^/(.*) /doku.php?id=$1 last; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/dokuwiki.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/dokuwiki.tpl new file mode 100644 index 00000000..ba854768 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/dokuwiki.tpl @@ -0,0 +1,67 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + index doku.php; + try_files $uri $uri/ @dokuwiki; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location ~ ^/lib.*\.(gif|png|ico|jpg)$ { + expires 30d; + } + + location ^~ /conf/ { return 403; } + location ^~ /data/ { return 403; } + location @dokuwiki { + rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; + rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; + rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; + rewrite ^/(.*) /doku.php?id=$1 last; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal6.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal6.stpl new file mode 100644 index 00000000..13c17ecb --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal6.stpl @@ -0,0 +1,101 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + try_files $uri @rewrite; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + location @rewrite { + # For Drupal 6 and bwlow: + # Some modules enforce no slash (/) at the end of the URL + # Else this rewrite block wouldn't be needed (GlobalRedirect) + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal6.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal6.tpl new file mode 100644 index 00000000..55dde013 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal6.tpl @@ -0,0 +1,98 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + # Very rarely should these ever be accessed outside of your lan + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + try_files $uri @rewrite; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + location @rewrite { + # For Drupal 6 and bwlow: + # Some modules enforce no slash (/) at the end of the URL + # Else this rewrite block wouldn't be needed (GlobalRedirect) + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal7.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal7.stpl new file mode 100644 index 00000000..6e8d89fa --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal7.stpl @@ -0,0 +1,101 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + try_files $uri @rewrite; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + location @rewrite { + # You have 2 options here + # For D7 and above: + # Clean URLs are handled in drupal_environment_initialize(). + rewrite ^ /index.php; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal7.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal7.tpl new file mode 100644 index 00000000..c5d737ea --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal7.tpl @@ -0,0 +1,98 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + # Very rarely should these ever be accessed outside of your lan + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + try_files $uri @rewrite; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + location @rewrite { + # You have 2 options here + # For D7 and above: + # Clean URLs are handled in drupal_environment_initialize(). + rewrite ^ /index.php; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal8.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal8.stpl new file mode 100644 index 00000000..902f6fdb --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal8.stpl @@ -0,0 +1,102 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + try_files $uri @rewrite; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$)|^/update.php { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + location @rewrite { + # You have 2 options here + # For D7 and above: + # Clean URLs are handled in drupal_environment_initialize(). + rewrite ^ /index.php; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal8.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal8.tpl new file mode 100644 index 00000000..2100f934 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/drupal8.tpl @@ -0,0 +1,99 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + # Very rarely should these ever be accessed outside of your lan + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + try_files $uri @rewrite; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$)|^/update.php { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + location @rewrite { + # You have 2 options here + # For D7 and above: + # Clean URLs are handled in drupal_environment_initialize(). + rewrite ^ /index.php; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/joomla.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/joomla.stpl new file mode 100644 index 00000000..6105b2c3 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/joomla.stpl @@ -0,0 +1,63 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ /index.php?$args; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + # deny running scripts inside writable directories + location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ { + return 403; + error_page 403 /403_error.html; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/joomla.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/joomla.tpl new file mode 100644 index 00000000..9d46116a --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/joomla.tpl @@ -0,0 +1,59 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + try_files $uri $uri/ /index.php?$args; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + # deny running scripts inside writable directories + location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ { + return 403; + error_page 403 /403_error.html; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/modx.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/modx.stpl new file mode 100644 index 00000000..54fab2b1 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/modx.stpl @@ -0,0 +1,69 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; +# if you need to rewrite www to non-www uncomment bellow +# if ($host != '%domain%' ) { +# rewrite ^/(.*)$ https://%domain%/$1 permanent; +# } + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ @rewrite; + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + } + location @rewrite { + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/modx.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/modx.tpl new file mode 100644 index 00000000..b3c3e350 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/modx.tpl @@ -0,0 +1,65 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; +# if you need to rewrite www to non-www uncomment bellow +# if ($host != '%domain%' ) { +# rewrite ^/(.*)$ http://%domain%/$1 permanent; +# } + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ @rewrite; + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + } + location @rewrite { + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/moodle.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/moodle.stpl new file mode 100644 index 00000000..7f16b0dd --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/moodle.stpl @@ -0,0 +1,90 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/moodle.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/moodle.tpl new file mode 100644 index 00000000..49ea2869 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/moodle.tpl @@ -0,0 +1,87 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + # Very rarely should these ever be accessed outside of your lan + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/no-php.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/no-php.stpl new file mode 100644 index 00000000..f49a4a5b --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/no-php.stpl @@ -0,0 +1,47 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + types { + text/html html htm shtml php php5; + } + + location / { + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/no-php.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/no-php.tpl new file mode 100644 index 00000000..3e796d1e --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/no-php.tpl @@ -0,0 +1,43 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + types { + text/html html htm shtml php php5; + } + + location / { + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/owncloud.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/owncloud.stpl new file mode 100644 index 00000000..8cf16b07 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/owncloud.stpl @@ -0,0 +1,85 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; + rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; + rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; + + error_page 403 = /core/templates/403.php; + error_page 404 = /core/templates/404.php; + + location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){ + deny all; + } + + location / { + # The following 2 rules are only needed with webfinger + rewrite ^/.well-known/host-meta /public.php?service=host-meta last; + rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; + rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; + rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; + rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; + try_files $uri $uri/ /index.php; + + location ~ \.php(?:$|/) { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + #fastcgi_param HTTPS on; + fastcgi_pass %backend_lsnr%; + } + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + # Some basic cache-control for static files to be sent to the browser + add_header Pragma public; + add_header Cache-Control "public, must-revalidate, proxy-revalidate"; + } + + #error_page 403 /error/404.html; + #error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/owncloud.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/owncloud.tpl new file mode 100644 index 00000000..e33332e0 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/owncloud.tpl @@ -0,0 +1,86 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; + rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; + rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; + + error_page 403 = /core/templates/403.php; + error_page 404 = /core/templates/404.php; + + location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){ + deny all; + } + + location / { + # The following 2 rules are only needed with webfinger + rewrite ^/.well-known/host-meta /public.php?service=host-meta last; + rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; + rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; + rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; + rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; + try_files $uri $uri/ /index.php; + + location ~ \.php(?:$|/) { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + #fastcgi_param HTTPS on; + fastcgi_pass %backend_lsnr%; + } + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + # Some basic cache-control for static files to be sent to the browser + add_header Pragma public; + add_header Cache-Control "public, must-revalidate, proxy-revalidate"; + } + + #error_page 403 /error/404.html; + #error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/piwik.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/piwik.stpl new file mode 100644 index 00000000..877db95a --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/piwik.stpl @@ -0,0 +1,73 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + try_files /favicon.ico =204; + } + + location / { + try_files $uri /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + valid_referers none blocked %domain_idn% %alias_idn%; + if ($invalid_referer) { + return 444; + } + expires max; + } + + location ~* ^/(?:index|piwik)\.php$ { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + } + + # Any other attempt to access PHP files returns a 404. + location ~* ^.+\.php$ { + return 404; + } + + # Return a 404 for all text files. + location ~* ^/(?:README|LICENSE[^.]*|LEGALNOTICE)(?:\.txt)*$ { + return 404; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/piwik.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/piwik.tpl new file mode 100644 index 00000000..253fe87b --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/piwik.tpl @@ -0,0 +1,69 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + try_files /favicon.ico =204; + } + + location / { + try_files $uri /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + valid_referers none blocked %domain_idn% %alias_idn%; + if ($invalid_referer) { + return 444; + } + expires max; + } + + location ~* ^/(?:index|piwik)\.php$ { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + } + + # Any other attempt to access PHP files returns a 404. + location ~* ^.+\.php$ { + return 404; + } + + # Return a 404 for all text files. + location ~* ^/(?:README|LICENSE[^.]*|LEGALNOTICE)(?:\.txt)*$ { + return 404; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.stpl new file mode 100644 index 00000000..2e5d9c8d --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -0,0 +1,66 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location /installer { + try_files $uri $uri/ /installer/index.php; + } + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location = /robots.txt { access_log off; log_not_found off; } + location = /favicon.ico { access_log off; log_not_found off; } + location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ ~$ { access_log off; log_not_found off; deny all; } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.tpl new file mode 100644 index 00000000..4b2ec788 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.tpl @@ -0,0 +1,62 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location /installer { + try_files $uri $uri/ /installer/index.php; + } + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location = /robots.txt { access_log off; log_not_found off; } + location = /favicon.ico { access_log off; log_not_found off; } + location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ ~$ { access_log off; log_not_found off; deny all; } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress.stpl new file mode 100644 index 00000000..a43dbe82 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress.stpl @@ -0,0 +1,55 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress.tpl new file mode 100644 index 00000000..dbd38c07 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress.tpl @@ -0,0 +1,51 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress2.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress2.stpl new file mode 100644 index 00000000..80fd787a --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress2.stpl @@ -0,0 +1,67 @@ +server { + listen %ip%:%web_ssl_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ /index.php?$args; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress2.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress2.tpl new file mode 100644 index 00000000..54e1c755 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/wordpress2.tpl @@ -0,0 +1,63 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ /index.php?$args; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/16.10/templates/web/nginx/proxy_ip.tpl b/install/ubuntu/16.10/templates/web/nginx/proxy_ip.tpl new file mode 100755 index 00000000..ae195617 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/nginx/proxy_ip.tpl @@ -0,0 +1,9 @@ +server { + listen %ip%:%proxy_port% default; + server_name _; + #access_log /var/log/nginx/%ip%.log main; + location / { + proxy_pass http://%ip%:%web_port%; + } +} + diff --git a/install/ubuntu/16.10/templates/web/php-fpm/default.tpl b/install/ubuntu/16.10/templates/web/php-fpm/default.tpl new file mode 100644 index 00000000..44ccf7a4 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/php-fpm/default.tpl @@ -0,0 +1,18 @@ +[%backend%] +listen = 127.0.0.1:%backend_port% +listen.allowed_clients = 127.0.0.1 + +user = %user% +group = %user% + +pm = dynamic +pm.max_children = 50 +pm.start_servers = 3 +pm.min_spare_servers = 2 +pm.max_spare_servers = 10 + +env[HOSTNAME] = $HOSTNAME +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /tmp +env[TMPDIR] = /tmp +env[TEMP] = /tmp diff --git a/install/ubuntu/16.10/templates/web/php-fpm/no-php.tpl b/install/ubuntu/16.10/templates/web/php-fpm/no-php.tpl new file mode 100644 index 00000000..e677f3e9 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/php-fpm/no-php.tpl @@ -0,0 +1,13 @@ +;[%backend%] +;user = %user% +;group = %user% +;listen = /dev/null + +;listen.owner = %user% +;listen.group = nginx + +;pm = dynamic +;pm.max_children = 50 +;pm.start_servers = 3 +;pm.min_spare_servers = 2 +;pm.max_spare_servers = 10 diff --git a/install/ubuntu/16.10/templates/web/php-fpm/socket.tpl b/install/ubuntu/16.10/templates/web/php-fpm/socket.tpl new file mode 100644 index 00000000..f2dfbe8d --- /dev/null +++ b/install/ubuntu/16.10/templates/web/php-fpm/socket.tpl @@ -0,0 +1,21 @@ +[%backend%] +listen = /var/run/php/%backend%.sock +listen.allowed_clients = 127.0.0.1 + +user = %user% +group = %user% + +listen.owner = %user% +listen.group = www-data + +pm = dynamic +pm.max_children = 50 +pm.start_servers = 3 +pm.min_spare_servers = 2 +pm.max_spare_servers = 10 + +env[HOSTNAME] = $HOSTNAME +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /tmp +env[TMPDIR] = /tmp +env[TEMP] = /tmp diff --git a/install/ubuntu/16.10/templates/web/skel/document_errors/403.html b/install/ubuntu/16.10/templates/web/skel/document_errors/403.html new file mode 100755 index 00000000..9c3f6baa --- /dev/null +++ b/install/ubuntu/16.10/templates/web/skel/document_errors/403.html @@ -0,0 +1,29 @@ + + + 403 — Forbidden + + + + + + +

%domain%

+ +

403

+

Forbidden

+
+ Unfortunately, you do not have permission to view this +
+ + + diff --git a/install/ubuntu/16.10/templates/web/skel/document_errors/404.html b/install/ubuntu/16.10/templates/web/skel/document_errors/404.html new file mode 100755 index 00000000..2cee7708 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/skel/document_errors/404.html @@ -0,0 +1,28 @@ + + + 404 — Not Found + + + + + + +

%domain%

+

404

+

Page Not Found

+
+ It seems that the page you were trying to reach does not exist anymore, or maybe it has just moved. + You can start again from the home or go back to previous page. +
+ + diff --git a/install/ubuntu/16.10/templates/web/skel/document_errors/50x.html b/install/ubuntu/16.10/templates/web/skel/document_errors/50x.html new file mode 100755 index 00000000..85ba648b --- /dev/null +++ b/install/ubuntu/16.10/templates/web/skel/document_errors/50x.html @@ -0,0 +1,29 @@ + + + 500 — Internal Sever Error + + + + + + +

%domain%

+ +

500

+

Internal Server Error

+
+ Sorry, something went wrong :( +
+ + + diff --git a/install/ubuntu/16.10/templates/web/skel/public_html/index.html b/install/ubuntu/16.10/templates/web/skel/public_html/index.html new file mode 100755 index 00000000..4f5bb724 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/skel/public_html/index.html @@ -0,0 +1,26 @@ + + + %domain% — Coming Soon + + + + + + +

%domain%

+ + + + + diff --git a/install/ubuntu/16.10/templates/web/skel/public_html/robots.txt b/install/ubuntu/16.10/templates/web/skel/public_html/robots.txt new file mode 100755 index 00000000..00ee83dc --- /dev/null +++ b/install/ubuntu/16.10/templates/web/skel/public_html/robots.txt @@ -0,0 +1,3 @@ +# vestacp autogenerated robots.txt +User-agent: * +Crawl-delay: 10 diff --git a/install/ubuntu/16.10/templates/web/skel/public_shtml/index.html b/install/ubuntu/16.10/templates/web/skel/public_shtml/index.html new file mode 100755 index 00000000..4f5bb724 --- /dev/null +++ b/install/ubuntu/16.10/templates/web/skel/public_shtml/index.html @@ -0,0 +1,26 @@ + + + %domain% — Coming Soon + + + + + + +

%domain%

+ + + + + diff --git a/install/ubuntu/16.10/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/16.10/templates/web/skel/public_shtml/robots.txt new file mode 100755 index 00000000..00ee83dc --- /dev/null +++ b/install/ubuntu/16.10/templates/web/skel/public_shtml/robots.txt @@ -0,0 +1,3 @@ +# vestacp autogenerated robots.txt +User-agent: * +Crawl-delay: 10 diff --git a/install/ubuntu/16.10/templates/web/suspend/.htaccess b/install/ubuntu/16.10/templates/web/suspend/.htaccess new file mode 100755 index 00000000..5a6df83f --- /dev/null +++ b/install/ubuntu/16.10/templates/web/suspend/.htaccess @@ -0,0 +1,2 @@ +ErrorDocument 403 /index.html +ErrorDocument 404 /index.html diff --git a/install/ubuntu/16.10/templates/web/suspend/index.html b/install/ubuntu/16.10/templates/web/suspend/index.html new file mode 100755 index 00000000..f2d04e1f --- /dev/null +++ b/install/ubuntu/16.10/templates/web/suspend/index.html @@ -0,0 +1,25 @@ + + + Website Suspended + + + + + +

SUSPENDED

+

This website has been suspended.

+
+ Please contact the technical support department. +
+ + diff --git a/install/ubuntu/16.10/templates/web/webalizer/webalizer.tpl b/install/ubuntu/16.10/templates/web/webalizer/webalizer.tpl new file mode 100755 index 00000000..068adcfb --- /dev/null +++ b/install/ubuntu/16.10/templates/web/webalizer/webalizer.tpl @@ -0,0 +1,110 @@ +HostName %domain_idn% +LogFile /var/log/%web_system%/domains/%domain%.log +OutputDir %home%/%user%/web/%domain%/stats +HistoryName %home%/%user%/web/%domain%/stats/%domain%.hist +Incremental yes +IncrementalName %home%/%user%/web/%domain%/stats/%domain%.current +PageType htm* +PageType cgi +PageType php +PageType shtml +DNSCache /var/lib/webalizer/dns_cache.db +DNSChildren 10 +Quiet yes +FoldSeqErr yes +IndexAlias index.php +HideURL *.gif +HideURL *.GIF +HideURL *.jpg +HideURL *.JPG +HideURL *.png +HideURL *.PNG +HideURL *.ra +SearchEngine abcsearch. terms= +SearchEngine alexa. q= +SearchEngine alltheweb. q= +SearchEngine alltheweb. query= +SearchEngine alot. q= +SearchEngine altavista. q= +SearchEngine aolsearch. query= +SearchEngine aport.ru r= +SearchEngine ask. q= +SearchEngine atlas.cz q= +SearchEngine bbc. q= +SearchEngine bing. q= +SearchEngine blingo. q= +SearchEngine blogs.yandex.ru text= +SearchEngine btopenworld query= +SearchEngine buscador.ya.com q= +SearchEngine busca. q= +SearchEngine business. query= +SearchEngine centrum.cz q= +SearchEngine chiff. q= +SearchEngine clusty. query= +SearchEngine comcast. q= +SearchEngine crawler. q= +SearchEngine cuil. q= +SearchEngine dmoz. search= +SearchEngine dogpile.com q= +SearchEngine dpxml qkw= +SearchEngine eureka. searchword= +SearchEngine euroseek. string= +SearchEngine exalead. q= +SearchEngine excite search= +SearchEngine ezilon. q= +SearchEngine fastbrowsersearch. q= +SearchEngine feedster.com q= +SearchEngine fireball.de q= +SearchEngine fireball. keyword= +SearchEngine freeserve. q= +SearchEngine gigablast. q= +SearchEngine gogo.ru q= +SearchEngine go.mail.ru q= +SearchEngine google. q= +SearchEngine hakia. q= +SearchEngine hotbot. query= +SearchEngine infoseek. qt= +SearchEngine iwon searchfor= +SearchEngine ixquick.com query= +SearchEngine joeant. keywords= +SearchEngine jyxo.cz s= +SearchEngine looksmart. key= +SearchEngine lycos. query= +SearchEngine mamma. q= +SearchEngine metacrawler q= +SearchEngine msn. MT= +SearchEngine msxml qkw= +SearchEngine mysearch. searchfor= +SearchEngine mywebsearch. searchfor= +SearchEngine netscape. q= +SearchEngine nigma.ru q= +SearchEngine northernlight. qr= +SearchEngine ntlworld. q= +SearchEngine orange. q= +SearchEngine overture. Keywords= +SearchEngine punto.ru text= +SearchEngine rambler. keyword= +SearchEngine search.aol. q= +SearchEngine search.babylon. q= +SearchEngine search.centrum. phrase= +SearchEngine search.conduit. q= +SearchEngine search.earthlink q= +SearchEngine search.icq. q= +SearchEngine search.live.com q= +SearchEngine search.rambler.ru words= +SearchEngine search.winamp. q= +SearchEngine searchy. q= +SearchEngine seznam.cz w= +SearchEngine snap. query= +SearchEngine teoma. q= +SearchEngine teradex.com q= +SearchEngine ukplus key= +SearchEngine verizon. q= +SearchEngine virginmedia. q= +SearchEngine voila. rdata= +SearchEngine webcrawler searchText= +SearchEngine web.search.naver. query= +SearchEngine wisenut q= +SearchEngine yahoo. p= +SearchEngine yandex. text= +SearchEngine yodao. q= diff --git a/install/ubuntu/16.10/vsftpd/vsftpd.conf b/install/ubuntu/16.10/vsftpd/vsftpd.conf new file mode 100644 index 00000000..034b016d --- /dev/null +++ b/install/ubuntu/16.10/vsftpd/vsftpd.conf @@ -0,0 +1,27 @@ +anonymous_enable=NO +local_enable=YES +write_enable=YES +local_umask=022 +anon_umask=022 +anon_upload_enable=NO +dirmessage_enable=YES +xferlog_enable=YES +connect_from_port_20=YES +xferlog_std_format=YES +dual_log_enable=YES +chroot_local_user=YES +listen=YES +pam_service_name=vsftpd +userlist_enable=NO +tcp_wrappers=YES +force_dot_files=YES +ascii_upload_enable=YES +ascii_download_enable=YES +allow_writeable_chroot=YES +seccomp_sandbox=NO +pasv_enable=YES +pasv_min_port=12000 +pasv_max_port=12100 +max_per_ip=10 +max_clients=100 +use_localtime=YES diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 25973e94..f0080ba3 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -29,7 +29,7 @@ if [ "$release" -eq 8 ]; then mysql-client postgresql postgresql-contrib phppgadmin phpMyAdmin mc flex whois rssh git idn zip sudo bc ftp lsof ntpdate rrdtool quota e2fslibs bsdutils e2fsprogs curl imagemagick fail2ban dnsutils - bsdmainutils cron vesta vesta-nginx vesta-php expect libmail-dkim-perl" + bsdmainutils cron vesta vesta-nginx vesta-php expect libmail-dkim-perl unrar" else software="nginx apache2 apache2-utils apache2.2-common apache2-suexec-custom libapache2-mod-ruid2 @@ -41,7 +41,7 @@ else mysql-client postgresql postgresql-contrib phppgadmin phpMyAdmin mc flex whois rssh git idn zip sudo bc ftp lsof ntpdate rrdtool quota e2fslibs bsdutils e2fsprogs curl imagemagick fail2ban dnsutils - bsdmainutils cron vesta vesta-nginx vesta-php expect" + bsdmainutils cron vesta vesta-nginx vesta-php expect unrar" fi # Defining help function @@ -613,8 +613,9 @@ rm -f /etc/cron.d/awstats # Set directory color echo 'LS_COLORS="$LS_COLORS:di=00;33"' >> /etc/profile -# Register /sbin/nologin +# Register /sbin/nologin and /usr/sbin/nologin echo "/sbin/nologin" >> /etc/shells +echo "/usr/sbin/nologin" >> /etc/shells # NTP Synchronization echo '#!/bin/sh' > /etc/cron.daily/ntpdate diff --git a/install/vst-install-rhel.sh b/install/vst-install-rhel.sh index 88bca352..7b8e4d85 100755 --- a/install/vst-install-rhel.sh +++ b/install/vst-install-rhel.sh @@ -27,7 +27,8 @@ if [ "$release" -eq 7 ]; then postgresql postgresql-server postgresql-contrib phpPgAdmin e2fsprogs openssh-clients ImageMagick curl mc screen ftp zip unzip flex sqlite pcre sudo bc jwhois mailx lsof tar telnet rrdtool net-tools ntp GeoIP freetype - fail2ban rsyslog iptables-services which vesta vesta-nginx vesta-php expect" + fail2ban rsyslog iptables-services which vesta vesta-nginx vesta-php + vim-common expect" else software="nginx httpd mod_ssl mod_ruid2 mod_fcgid mod_extract_forwarded php php-common php-cli php-bcmath php-gd php-imap php-mbstring php-mcrypt @@ -37,7 +38,7 @@ else postgresql-server postgresql-contrib phpPgAdmin e2fsprogs openssh-clients ImageMagick curl mc screen ftp zip unzip flex sqlite pcre sudo bc jwhois mailx lsof tar telnet rrdtool net-tools ntp GeoIP freetype fail2ban - which vesta vesta-nginx vesta-php expect" + which vesta vesta-nginx vesta-php vim-common expect" fi # Defining help function diff --git a/install/vst-install-ubuntu.sh b/install/vst-install-ubuntu.sh index 6e334d28..19666573 100755 --- a/install/vst-install-ubuntu.sh +++ b/install/vst-install-ubuntu.sh @@ -1081,6 +1081,9 @@ if [ "$spamd" = 'yes' ]; then sed -i "s/ENABLED=0/ENABLED=1/" /etc/default/spamassassin service spamassassin start check_result $? "spamassassin start failed" + if [[ $(systemctl list-unit-files | grep spamassassin) =~ "disabled" ]]; then + systemctl enable spamassassin + fi fi diff --git a/web/add/web/index.php b/web/add/web/index.php index c0d6a9fa..486b5e12 100644 --- a/web/add/web/index.php +++ b/web/add/web/index.php @@ -126,7 +126,7 @@ if (!empty($_POST['ok'])) { // Add DNS domain if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) { - exec (VESTA_CMD."v-add-dns-domain ".$user." ".$v_domain." ".$v_public_ip, $output, $return_var); + exec (VESTA_CMD."v-add-dns-domain ".$user." ".$v_domain." ".$v_public_ip." '' '' '' '' '' '' '' '' 'no'", $output, $return_var); check_return_code($return_var,$output); unset($output); } diff --git a/web/inc/i18n/bg.php b/web/inc/i18n/bg.php index cb92158e..b03cf2df 100644 --- a/web/inc/i18n/bg.php +++ b/web/inc/i18n/bg.php @@ -1,733 +1,731 @@ 'Пакет', + 'Packages' => 'Пакети', 'IP' => 'IP', 'Graphs' => 'Графики', 'Statistics' => 'Статистика', 'Log' => 'Логове', 'Server' => 'Сървър', 'Services' => 'Услуги', - 'Firewall' => 'Firewall', - 'Updates' => 'Обновяване', + 'Firewall' => 'Защитна стена', + 'Updates' => 'Обновления', 'Log in' => 'Вход', 'Log out' => 'Изход', - 'USER' => 'Клиенти', - 'WEB' => 'WEB', + 'USER' => 'ПОТРЕБИТЕЛ', + 'WEB' => 'УЕБ', 'DNS' => 'DNS', - 'MAIL' => 'Мейл', - 'DB' => 'Бази Данни', + 'MAIL' => 'ПОЩА', + 'DB' => 'БАЗА ДАННИ', 'CRON' => 'CRON', - 'BACKUP' => 'Архив', + 'BACKUP' => 'РЕЗЕРВНО КОПИЕ', - 'LOGIN' => 'Вход', - 'RESET PASSWORD' => 'Забравена парола', - 'SEARCH' => 'Търси', - 'PACKAGE' => 'Пакет', + 'LOGIN' => 'ВХОД', + 'RESET PASSWORD' => 'ЗАБРАВЕНА ПАРОЛА', + 'SEARCH' => 'ТЪРСЕНЕ', + 'PACKAGE' => 'ПАКЕТ', 'RRD' => 'RRD', - 'STATS' => 'Статистика', - 'LOG' => 'Логове', - 'UPDATES' => 'Обновяване', - 'FIREWALL' => 'FIREWALL', - 'SERVER' => 'Сървър', - 'MEMORY' => 'Памет', - 'DISK' => 'Диск', - 'NETWORK' => 'Мрежа', - 'Web Log Manager' => 'Web Log Manager', - - 'no notifications' => 'no notifications', + 'STATS' => 'СТАТИСТИКА', + 'LOG' => 'ЛОГОВЕ', + 'UPDATES' => 'ОБНОВЛЕНИЯ', + 'FIREWALL' => 'ЗАЩИТНА СТЕНА', + 'SERVER' => 'СЪРВЪР', + 'MEMORY' => 'ПАМЕТ', + 'DISK' => 'ДИСК', + 'NETWORK' => 'МРЕЖА', + 'Web Log Manager' => 'МЕНИДЖЪР НА УЕБ ЛОГОВЕ', 'Add User' => 'Добави потребител', 'Add Domain' => 'Добави домейн', - 'Add Web Domain' => 'Добави домейн', - 'Add DNS Domain' => 'Добави DNS', + 'Add Web Domain' => 'Добави уеб домейн', + 'Add DNS Domain' => 'Добави DNS домейн', 'Add DNS Record' => 'Добави DNS запис', - 'Add Mail Domain' => 'Добави мейл', - 'Add Mail Account' => 'Добави мейл адрес', - 'Add Database' => 'Добави база', - 'Add Cron Job' => 'Добави задача', - 'Create Backup' => 'Направи архив', - 'Configure' => 'Конфигурация', - 'Restore All' => 'Възстанови всички', + 'Add Mail Domain' => 'Добави пощенски домейн', + 'Add Mail Account' => 'Добави пощенски акаунт', + 'Add Database' => 'Добави база данни', + 'Add Cron Job' => 'Добави Cron Job', + 'Create Backup' => 'Създай резервно копие', + 'Configure' => 'Конфигурирай', + 'Restore All' => 'Възобнови всичко', 'Add Package' => 'Добави пакет', - 'Add IP' => 'Добави IP', + 'Add IP' => 'Добави IP адрес', 'Add Rule' => 'Добави правило', - 'Ban IP Address' => 'Бан IP Address', - 'Search' => 'Търси', - 'Add one more FTP Account' => 'Добави FTP потребител', - 'Overall Statistics' => 'Статистика', - 'Daily' => 'Дневно', - 'Weekly' => 'Седмица', - 'Monthly' => 'Месец', - 'Yearly' => 'Година', + 'Ban IP Address' => 'Блокирай IP адрес', + 'Search' => 'Търсене', + 'Add one more FTP Account' => 'Добави допълнителен FTP акаунт', + 'Overall Statistics' => 'Обща статистика', + 'Daily' => 'Всеки ден', + 'Weekly' => 'Всяка седмица', + 'Monthly' => 'Всеки месец', + 'Yearly' => 'Всяка година', 'Add' => 'Добави', 'Back' => 'Назад', 'Save' => 'Запази', - 'Submit' => 'Изпрати', + 'Submit' => 'Вложи', - 'toggle all' => 'Избери всички', - 'apply to selected' => 'изпълни маркираните', - 'rebuild' => 'поправи', - 'rebuild web' => 'поправи web', - 'rebuild dns' => 'поправи dns', - 'rebuild mail' => 'поправи mail', - 'rebuild db' => 'поправи db', - 'rebuild cron' => 'поправи cron', - 'update counters' => 'оибнови брочи', - 'suspend' => 'Забрани', - 'unsuspend' => 'Разреши', - 'delete' => 'изтриване', - 'show per user' => 'покажи за всеки', - 'login as' => 'Влез като', - 'logout' => 'Изход', - 'edit' => 'Редакция', - 'open webstats' => 'отвори статистика', - 'view logs' => 'виж логовете', - 'list records' => 'list %s records', - 'add record' => 'нов запис', - 'list accounts' => 'list %s accounts', - 'add account' => 'add account', - 'open webmail' => 'open webmail', - 'list fail2ban' => 'list fail2ban', - 'open %s' => 'open %s', - 'download' => 'сваляне', - 'restore' => 'възстанови', - 'configure restore settings' => 'configure restore settings', + 'toggle all' => 'избери всичко', + 'apply to selected' => 'приложи за избраните', + 'rebuild' => 'възстанови', + 'rebuild web' => 'възстанови уеб', + 'rebuild dns' => 'възстанови dns', + 'rebuild mail' => 'възстанови поща', + 'rebuild db' => 'възстанови база данни', + 'rebuild cron' => 'възстанови cron', + 'update counters' => 'обнови броячите', + 'suspend' => 'спри', + 'unsuspend' => 'активирай', + 'delete' => 'изтрий', + 'show per user' => 'покажи за потребителя', + 'login as' => 'влез като', + 'logout' => 'излез', + 'edit' => 'редактирай', + 'open webstats' => 'отвори уеб статистика', + 'view logs' => 'прегледай логове', + 'list records' => 'покажи списък с %s записи', + 'add record' => 'добави запис', + 'list accounts' => 'покажи списък с %s акаунта', + 'add account' => 'добави акаунт', + 'open webmail' => 'oтвори уеб поща', + 'list fail2ban' => 'покажи fail2ban списък', + 'open %s' => 'отвори %s', + 'download' => 'изтегли', + 'restore' => 'възобнови', + 'configure restore settings' => 'конфигурирай настройките за възобновяване', 'stop' => 'стоп', 'start' => 'старт', 'restart' => 'рестарт', 'update' => 'обнови', - 'generate' => 'generate', - 'Generate CSR' => 'Generate CSR', - 'reread IP' => 'reread IP', - 'enable autoupdate' => 'enable autoupdate', - 'disable autoupdate' => 'disable autoupdate', - 'turn on notifications' => 'turn on notifications', - 'turn off notifications' => 'turn off notifications', - 'configure' => 'configure', + 'generate' => 'генерирай', + 'Generate CSR' => 'Генерирай CSR', + 'reread IP' => 'зареди наново IP адреса', + 'enable autoupdate' => 'позволи автоматичното обновяване', + 'disable autoupdate' => 'забрани автоматичното обновяване', + 'turn on notifications' => 'включи известията', + 'turn off notifications' => 'изключи известията', - 'Adding User' => 'Adding User', - 'Editing User' => 'Editing User', - 'Adding Domain' => 'Adding Domain', - 'Editing Domain' => 'Editing Domain', - 'Adding DNS Domain' => 'Adding DNS Domain', - 'Editing DNS Domain' => 'Editing DNS Domain', - 'Adding DNS Record' => 'Adding DNS Record', - 'Editing DNS Record' => 'Editing DNS Record', - 'Adding Mail Domain' => 'Adding Mail Domain', - 'Editing Mail Domain' => 'Editing Mail Domain', - 'Adding Mail Account' => 'Adding Mail Account', - 'Editing Mail Account' => 'Editing Mail Account', - 'Adding database' => 'Adding database', - 'Editing Cron Job' => 'Editing Cron Job', - 'Adding Cron Job' => 'Adding Cron Job', - 'Editing Database' => 'Editing Database', - 'Adding Package' => 'Adding Package', - 'Editing Package' => 'Editing Package', - 'Adding IP address' => 'Adding IP address', - 'Editing IP Address' => 'Editing IP Address', - 'Editing Backup Exclusions' => 'Editing Backup Exclusions', - 'Generating CSR' => 'Generating CSR', - 'Listing' => 'Listing', - 'Search Results' => 'Search Results', - 'Adding Firewall Rule' => 'Adding Firewall Rule', - 'Editing Firewall Rule' => 'Editing Firewall Rule', - 'Adding IP Address to Banlist' => 'Adding IP Address to Banlist', + 'Adding User' => 'Добавяне на потребител', + 'Editing User' => 'Редактиране на потребител', + 'Adding Domain' => 'Добавяне на домейн', + 'Editing Domain' => 'Редактиране на домейн', + 'Adding DNS Domain' => 'Добавяне на DNS домейн', + 'Editing DNS Domain' => 'Редактиране на DNS домейн', + 'Adding DNS Record' => 'Добавяне на DNS запис', + 'Editing DNS Record' => 'Редактиране на DNS запис', + 'Adding Mail Domain' => 'Добавяне на пощенски домейн', + 'Editing Mail Domain' => 'Редактиране на пощенски домейн', + 'Adding Mail Account' => 'Добавяне на пощенски акаунт', + 'Editing Mail Account' => 'Редактиране на пощенски акаунт', + 'Adding database' => 'Добавяне на база данни', + 'Editing Cron Job' => 'Добавяне на Cron Job', + 'Adding Cron Job' => 'Редактиране на Cron Job', + 'Editing Database' => 'Редактиране на база данни', + 'Adding Package' => 'Добавяне на пакет', + 'Editing Package' => 'Редактиране на пакет', + 'Adding IP address' => 'Добавяне на IP адрес', + 'Editing IP Address' => 'Редактиране на IP адрес', + 'Editing Backup Exclusions' => 'Редактиране на изключения от резервно копие', + 'Generating CSR' => 'Генериране на CSR', + 'Listing' => 'Показване на списък', + 'Search Results' => 'Търси резултати', + 'Adding Firewall Rule' => 'Добавяне на правило за защитната стена', + 'Editing Firewall Rule' => 'Редактиране на правилото за защитната стена', + 'Adding IP Address to Banlist' => 'Добавяне на IP адрес към черния списък', + 'active' => 'активен', + 'spnd' => 'деактивиран', + 'suspended' => 'деактивиран', + 'running' => 'работещ', + 'stopped' => 'спрян', + 'outdated' => 'неактуален', + 'updated' => 'актуален', - 'active' => 'active', - 'spnd' => 'suspended', - 'suspended' => 'suspended', - 'running' => 'running', - 'stopped' => 'stopped', - 'outdated' => 'outdated', - 'updated' => 'updated', - - 'yes' => 'yes', - 'no' => 'no', - 'none' => 'none', + 'yes' => 'да', + 'no' => 'не', + 'none' => 'няма', 'pb' => 'pb', 'tb' => 'tb', 'gb' => 'gb', 'mb' => 'mb', - 'minute' => 'minute', - 'hour' => 'hour', - 'day' => 'day', - 'days' => 'days', - 'hours' => 'hours', - 'minutes' => 'minutes', - 'month' => 'month', - 'package' => 'package', - 'Bandwidth' => 'Bandwidth', - 'Disk' => 'Disk', - 'Web' => 'Web', - 'Mail' => 'Mail', - 'Databases' => 'Databases', - 'User Directories' => 'User Directories', - 'Template' => 'Template', - 'Web Template' => 'Web Template', - 'Backend Template' => 'Backend Template', - 'Proxy Template' =>'Proxy Template', - 'DNS Template' => 'DNS Template', - 'Web Domains' => 'Web Domains', - 'SSL Domains' => 'SSL Domains', - 'Web Aliases' => 'Web Aliases', - 'per domain' => 'per domain', - 'DNS Domains' => 'DNS Domains', - 'DNS domains' => 'DNS domains', - 'DNS records' => 'DNS records', - 'Name Servers' => 'Name Servers', - 'Mail Domains' => 'Mail Domains', - 'Mail Accounts' => 'Mail Accounts', + 'minute' => 'минута', + 'hour' => 'час', + 'day' => 'ден', + 'days' => 'дни', + 'hours' => 'часове', + 'minutes' => 'минути', + 'month' => 'месец', + 'package' => 'пакет', + 'Bandwidth' => 'Трафик', + 'Disk' => 'Диск', + 'Web' => 'Уеб', + 'Mail' => 'Поща', + 'Databases' => 'Бази данни', + 'User Directories' => 'Потребителски директории', + 'Template' => 'Шаблон', + 'Web Template' => 'Уеб шаблон', + 'Backend Template' => 'Готов шаблон', + 'Proxy Template' =>'Прокси шаблон', + 'DNS Template' => 'DNS шаблон', + 'Web Domains' => 'Уеб домейни', + 'SSL Domains' => 'SSL домейни', + 'Web Aliases' => 'Уеб наименувания', + 'per domain' => 'на домейн', + 'DNS Domains' => 'DNS Домейни', + 'DNS domains' => 'DNS домейни', + 'DNS records' => 'DNS записи', + 'Name Servers' => 'Сървъри за имена', + 'Mail Domains' => 'Пощенски домейни', + 'Mail Accounts' => 'Пощенски акаунти', 'Cron Jobs' => 'Cron Jobs', - 'SSH Access' => 'SSH Access', - 'IP Address' => 'IP Address', - 'IP Addresses' => 'IP Addresses', - 'Backups' => 'Backups', - 'Backup System' => 'Backup System', - 'backup exclusions' => 'backup exclusions', - 'template' => 'template', - 'SSL Support' => 'SSL Support', - 'SSL Home Directory' => 'SSL Home', - 'Lets Encrypt Support' => 'Lets Encrypt Support', + 'SSH Access' => 'SSH достъп', + 'IP Address' => 'IP адрес', + 'IP Addresses' => 'IP адреси', + 'Backups' => 'Резервни копия', + 'Backup System' => 'Система за резервни копия', + 'backup exclusions' => 'Резервни копия - изключения', + 'template' => 'шаблон', + 'SSL Support' => 'SSL поддръжка', + 'SSL Home Directory' => 'SSL начало', + 'Lets Encrypt Support' => 'Lets Encrypt поддръжка', 'Lets Encrypt' => 'Lets Encrypt', - 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', - 'Proxy Support' => 'Proxy Support', - 'Proxy Extensions' => 'Proxy Extensions', - 'Web Statistics' => 'Web Statistics', - 'Additional FTP Account' => 'Additional FTP', - 'Path' => 'Path', + 'Proxy Support' => 'Прокси поддръжка', + 'Proxy Extensions' => 'Прокси разширения', + 'Web Statistics' => 'Уеб статистики', + 'Additional FTP Account' => 'Допълнителни FTP акаунти', + 'Path' => 'Път', 'SOA' => 'SOA', 'TTL' => 'TTL', - 'Expire' => 'Expire', - 'Records' => 'Records', - 'Serial' => 'Serial', - 'Catchall email' => 'Catchall email', - 'AntiVirus Support' => 'AntiVirus Support', - 'AntiSpam Support' => 'AntiSpam Support', - 'DKIM Support' => 'DKIM Support', - 'Accounts' => 'Accounts', - 'Quota' => 'Quota', - 'Autoreply' => 'Autoreply', - 'Forward to' => 'Forward to', - 'Do not store forwarded mail' => 'Do not store forwarded mail', - 'IMAP hostname' => 'IMAP hostname', - 'IMAP port' => 'IMAP port', - 'IMAP security' => 'IMAP security', - 'IMAP auth method' => 'IMAP auth method', - 'SMTP hostname' => 'SMTP hostname', - 'SMTP port' => 'SMTP port', - 'SMTP security' => 'SMTP security', - 'SMTP auth method' => 'SMTP auth method', + 'Expire' => 'Изтича', + 'Records' => 'Записи', + 'Serial' => 'Сериен', + 'Catchall email' => 'Универсална поща', + 'AntiVirus Support' => 'Антивирусна поддръжка', + 'AntiSpam Support' => 'Антиспам поддръжка', + 'DKIM Support' => 'DKIM поддръжка', + 'Accounts' => 'Акаунти', + 'Quota' => 'Квота', + 'Autoreply' => 'Автоматичен отговор', + 'Forward to' => 'Препрати до', + 'Do not store forwarded mail' => 'Не съхранявай препратена поща', + 'IMAP hostname' => 'IMAP име на хост', + 'IMAP port' => 'IMAP порт', + 'IMAP security' => 'IMAP защита', + 'IMAP auth method' => 'IMAP идентификация', + 'SMTP hostname' => 'SMTP име на хост', + 'SMTP port' => 'SMTP порт', + 'SMTP security' => 'SMTP защита', + 'SMTP auth method' => 'SMTP идентификация', 'STARTTLS' => 'STARTTLS', - 'Normal password' => 'Normal password', - 'database' => 'database', - 'User' => 'User', - 'Host' => 'Host', - 'Charset' => 'Charset', - 'Min' => 'Min', - 'Hour' => 'Hour', - 'Day' => 'Day', - 'Month' => 'Month', - 'Day of week' => 'Day of week', - 'local' => 'local', - 'Run Time' => 'Run Time', - 'Backup Size' => 'Backup Size', + 'Normal password' => 'Нормална парола', + 'database' => 'база данни', + 'User' => 'Потребител', + 'Host' => 'Хост', + 'Charset' => 'Символи', + 'Min' => 'Минути', + 'Hour' => 'Час', + 'Day' => 'Ден', + 'Month' => 'Месец', + 'Day of week' => 'Ден от седмицата', + 'local' => 'локално', + 'Run Time' => 'Време на изпълнение', + 'Backup Size' => 'Размер на резервното копие', 'SYS' => 'SYS', - 'Domains' => 'Domains', - 'Status' => 'Status', - 'shared' => 'shared', - 'dedicated' => 'dedicated', - 'Owner' => 'Owner', - 'Users' => 'Users', - 'Load Average' => 'Load Average', - 'Memory Usage' => 'Memory Usage', - 'APACHE2 Usage' => 'APACHE2 Usage', - 'HTTPD Usage' => 'HTTPD Usage', - 'NGINX Usage' => 'NGINX Usage', - 'MySQL Usage on localhost' => 'MySQL Usage on localhost', - 'PostgreSQL Usage on localhost' => 'PostgreSQL Usage on localhost', - 'Bandwidth Usage eth0' => 'Bandwidth Usage eth0', - 'Bandwidth Usage eth1' => 'Bandwidth Usage eth1', - 'Exim Usage' => 'Exim Usage', - 'FTP Usage' => 'FTP Usage', - 'SSH Usage' => 'SSH Usage', - 'reverse proxy' => 'reverse proxy', - 'web server' => 'web server', - 'dns server' => 'dns server', - 'mail server' => 'mail server', - 'pop/imap server' => 'pop/imap server', - 'email antivirus' => 'email antivirus', - 'email antispam' => 'email antispam', - 'database server' => 'database server', - 'ftp server' => 'ftp server', - 'job scheduler' => 'job scheduler', - 'firewall' => 'firewall', - 'brute-force monitor' => 'brute-force monitor', - 'CPU' => 'CPU', - 'Memory' => 'Memory', - 'Uptime' => 'Uptime', - 'core package' => 'core package', - 'php interpreter' => 'php interpreter', - 'internal web server' => 'internal web server', - 'Version' => 'Version', - 'Release' => 'Release', - 'Architecture' => 'Architecture', - 'Object' => 'Object', - 'Username' => 'Username', - 'Password' => 'Password', + 'Domains' => 'Домейни', + 'Status' => 'Статус', + 'shared' => 'споделен', + 'dedicated' => 'отдаден', + 'Owner' => 'Собственик', + 'Users' => 'Потребители', + 'Load Average' => 'Общи данни', + 'Memory Usage' => 'Използване на памет', + 'APACHE2 Usage' => 'Използване на APACHE2', + 'HTTPD Usage' => 'Използване на HTTPD', + 'NGINX Usage' => 'Използване на NGINX', + 'MySQL Usage on localhost' => 'Използване на MySQL на локалната машина', + 'PostgreSQL Usage on localhost' => 'Използване на PostgreSQL на локалната машина', + 'Bandwidth Usage eth0' => 'Използване на честотна лента eth0', + 'Bandwidth Usage eth1' => 'Използване на честотна лента eth1', + 'Exim Usage' => 'Използване на Exim', + 'FTP Usage' => 'Използване на FTP', + 'SSH Usage' => 'Използване на SSH', + 'reverse proxy' => 'обърни прокси', + 'web server' => 'уеб сървър', + 'dns server' => 'dns сървър', + 'mail server' => 'пощенски сървър', + 'pop/imap server' => 'pop/imap сървър', + 'email antivirus' => 'email антивирус', + 'email antispam' => 'email антиспам', + 'database server' => 'сървър на база данни', + 'ftp server' => 'ftp сървър', + 'job scheduler' => 'органайзер за работа', + 'firewall' => 'защитна стена', + 'brute-force monitor' => 'brute-force монитор', + 'CPU' => 'Процесор', + 'Memory' => 'Памет', + 'Uptime' => 'Време на работа', + 'core package' => 'пакет на ядрото', + 'php interpreter' => 'php интерпретатор', + 'internal web server' => 'вътрешен уеб сървър', + 'Version' => 'Версия', + 'Release' => 'Рилийз', + 'Architecture' => 'Архитектура', + 'Object' => 'Обект', + 'Username' => 'Потребителско име', + 'Password' => 'Парола', 'Email' => 'Email', - 'Package' => 'Package', - 'Language' => 'Language', - 'First Name' => 'First Name', - 'Last Name' => 'Last Name', - 'Send login credentials to email address' => 'Send login credentials to email address', - 'Default Template' => 'Default Template', - 'Default Name Servers' => 'Default Name Servers', - 'Domain' => 'Domain', - 'DNS Support' => 'DNS Support', - 'Mail Support' => 'Mail Support', - 'Advanced options' => 'Advanced options', - 'Basic options' => 'Basic options', - 'Aliases' => 'Aliases', - 'SSL Certificate' => 'SSL Certificate', - 'SSL Key' => 'SSL Key', - 'SSL Certificate Authority / Intermediate' => 'SSL Certificate Authority / Intermediate', + 'Package' => 'Пакет', + 'Language' => 'Език', + 'First Name' => 'Име', + 'Last Name' => 'Фамилив', + 'Send login credentials to email address' => 'Изпращай информация за вписвания на email', + 'Default Template' => 'Шаблон по подразбиране', + 'Default Name Servers' => 'Име на сървър по подразбиране', + 'Domain' => 'Домейн', + 'DNS Support' => 'DNS поддръжка', + 'Mail Support' => 'Поддръжка на поща', + 'Advanced options' => 'Разширени настройки', + 'Basic options' => 'Стандартни настройки', + 'Aliases' => 'Псевдоними', + 'SSL Certificate' => 'SSL сертификат', + 'SSL Key' => 'SSL ключ', + 'SSL Certificate Authority / Intermediate' => 'SSL сертификат / средно ниво', 'SSL CSR' => 'SSL CSR', - 'optional' => 'optional', - 'internal' => 'internal', - 'Statistics Authorization' => 'Statistics Authorization', - 'Statistics Auth' => 'Statistics Auth', - 'Account' => 'Account', - 'Prefix will be automaticaly added to username' => 'Prefix %s will be automaticaly added to username', - 'Send FTP credentials to email' => 'Send FTP credentials to email', - 'Expiration Date' => 'Expiration Date', - 'YYYY-MM-DD' => 'YYYY-MM-DD', - 'Name servers' => 'Name servers', - 'Record' => 'Record', - 'IP or Value' => 'IP or Value', - 'Priority' => 'Priority', - 'Record Number' => 'Record Number', - 'in megabytes' => 'in megabytes', - 'Message' => 'Message', - 'use local-part' => 'use local-part', - 'one or more email addresses' => 'one or more email addresses', - 'Prefix will be automaticaly added to database name and database user' => 'Prefix %s will be automaticaly added to database name and database user.', - 'Database' => 'Database', - 'Type' => 'Type', - 'Minute' => 'Minute', - 'Command' => 'Command', - 'Package Name' => 'Package Name', + 'optional' => 'незадължителен', + 'internal' => 'вътрешвн', + 'Statistics Authorization' => 'Идентификация за статистики', + 'Statistics Auth' => 'Идентификация за статистики', + 'Account' => 'Акаунт', + 'Prefix will be automaticaly added to username' => 'Префикс %s ще бъде автоматично добавен към потребителското име', + 'Send FTP credentials to email' => 'Изпращай информация относно FTP на email', + 'Expiration Date' => 'Крайна дата', + 'YYYY-MM-DD' => 'ГГГГ-ММ-ДД', + 'Name servers' => 'Сървъри с имена', + 'Record' => 'Запис', + 'IP or Value' => 'IP или стойност', + 'Priority' => 'Приоритет', + 'Record Number' => 'Запиши номер', + 'in megabytes' => 'в мегабайти', + 'Message' => 'Съобщение', + 'use local-part' => 'използвай local-part', + 'one or more email addresses' => 'един или повече email адреса', + 'Prefix will be automaticaly added to database name and database user' => 'Префикс %s ще бъде автоматично добавен към името на базата данни и потребителското име.', + 'Database' => 'База данни', + 'Type' => 'Въведи', + 'Minute' => 'Минута', + 'Command' => 'Команда', + 'Package Name' => 'Номер на пакет', 'Netmask' => 'Netmask', - 'Interface' => 'Interface', - 'Shared' => 'Shared', - 'Assigned user' => 'Assigned user', - 'Assigned domain' => 'Assigned domain', - 'NAT IP association' => 'NAT IP association', + 'Interface' => 'Интерфейс', + 'Shared' => 'Споделен', + 'Assigned user' => 'Назначен потребител', + 'Assigned domain' => 'Назначен домейн', + 'NAT IP association' => 'NAT IP асоциация', 'shell' => 'shell', - 'web domains' => 'web domains', - 'web aliases' => 'web aliases', - 'dns records' => 'dns records', - 'mail domains' => 'mail domains', - 'mail accounts' => 'mail accounts', - 'accounts' => 'accounts', - 'databases' => 'databases', + 'web domains' => 'уеб домейни', + 'web aliases' => 'уеб псевдоними', + 'dns records' => 'dns записи', + 'mail domains' => 'пощенски домейни', + 'mail accounts' => 'пощенски акаунти', + 'accounts' => 'акаунти', + 'databases' => 'бази данни', 'cron jobs' => 'cron jobs', - 'backups' => 'backups', - 'quota' => 'quota', - 'day of week' => 'day of week', + 'backups' => 'резервни копия', + 'quota' => 'квота', + 'day of week' => 'ден от седмицата', 'cmd' => 'cmd', - 'users' => 'users', - 'domains' => 'domains', - 'aliases' => 'aliases', - 'records' => 'records', - 'jobs' => 'jobs', - 'username' => 'username', - 'password' => 'password', - 'type' => 'type', - 'charset' => 'charset', - 'domain' => 'domain', + 'users' => 'потребители', + 'domains' => 'домейни', + 'aliases' => 'псевдоними', + 'records' => 'записи', + 'jobs' => 'работа', + 'username' => 'потребителско име', + 'password' => 'парола', + 'type' => 'тип', + 'charset' => 'символи', + 'domain' => 'домейн', 'ip' => 'ip', - 'ip address' => 'ip address', - 'IP address' => 'IP address', + 'ip address' => 'ip адрес', + 'IP address' => 'IP адрес', 'netmask' => 'netmask', - 'interface' => 'interface', - 'assigned user' => 'assigned user', + 'interface' => 'интерфейс', + 'assigned user' => 'назначен потребител', 'ns1' => 'ns1', 'ns2' => 'ns2', - 'user' => 'user', + 'user' => 'потребител', 'email' => 'email', - 'first name' => 'first name', - 'last name' => 'last name', - 'account' => 'account', - 'ssl certificate' => 'ssl certificate', - 'ssl key' => 'ssl key', - 'stats user password' => 'stats user password', - 'stats username' => 'stats username', - 'stats password' => 'stats password', - 'ftp user password' => 'ftp user password', - 'ftp user' => 'ftp user', - 'Last 70 lines of %s.%s.log' => 'Last 70 lines of %s.%s.log', + 'first name' => 'име', + 'last name' => 'фамилия', + 'account' => 'акаунт', + 'ssl certificate' => 'ssl сертификат', + 'ssl key' => 'ssl ключ', + 'stats user password' => 'статистика за потребителска парола', + 'stats username' => 'статистика за потребителско име', + 'stats password' => 'статистика за парола', + 'ftp user password' => 'ftp потребителска парола', + 'ftp user' => 'ftp потребител', + 'Last 70 lines of %s.%s.log' => 'Последните 70 реда от лога за %s.%', 'AccessLog' => 'AccessLog', 'ErrorLog' => 'ErrorLog', - 'Download AccessLog' => 'Download AccessLog', - 'Download ErrorLog' => 'Download ErrorLog', - 'Country' => 'Country', - '2 letter code' => '2 letter code', - 'State / Province' => 'State / Province', - 'City / Locality' => 'City / Locality', - 'Organization' => 'Organization', - 'Action' => 'Action', - 'Protocol' => 'Protocol', - 'Port' => 'Port', - 'Comment' => 'Comment', - 'Banlist' => 'Banlist', - 'ranges are acceptable' => 'ranges are acceptable', - 'CIDR format is supported' => 'CIDR format is supported', - 'ACCEPT' => 'ACCEPT', - 'DROP' => 'DROP', + 'Download AccessLog' => 'Изтегли AccessLog', + 'Download ErrorLog' => 'Изтегли ErrorLog', + 'Country' => 'Страна', + '2 letter code' => '2-буквен код', + 'State / Province' => 'Щат / Провинция', + 'City / Locality' => 'Град / Местност', + 'Organization' => 'Организация', + 'Action' => 'Начало', + 'Protocol' => 'Протокол', + 'Port' => 'Порт', + 'Comment' => 'Коментар', + 'Banlist' => 'Черен списък', + 'ranges are acceptable' => 'стойностите са приемливи', + 'CIDR format is supported' => 'CIDR форматът се поддържа', + 'ACCEPT' => 'ПРИЕМИ', + 'DROP' => 'ПУСНИ', 'TCP' => 'TCP', 'UDP' => 'UDP', 'ICMP' => 'ICMP', 'SSH' => 'SSH', 'FTP' => 'FTP', 'VESTA' => 'VESTA', - 'Add one more Name Server' => 'Add one more Name Server', + 'Add one more Name Server' => 'Добави допълнителен сървър за имена', - 'web domain' => 'web domain', - 'dns domain' => 'dns domain', - 'dns record' => 'dns record', - 'mail domain' => 'mail domain', - 'mail account' => 'mail account', + 'web domain' => 'уеб домейн', + 'dns domain' => 'dns домейн', + 'dns record' => 'dns запис', + 'mail domain' => 'пощенски домейн', + 'mail account' => 'пощенски акаунт', 'cron job' => 'cron job', 'cron' => 'cron', - 'user dir' => 'user dir', + 'user dir' => 'потребителска директория', - 'unlimited' => 'unlimited', - '1 account' => '1 account', - '%s accounts' => '%s accounts', - '1 domain' => '1 domain', - '%s domains' => '%s domains', - '1 record' => '1 record', - '%s records' => '%s records', - '1 mail account' => '1 mail account', - '%s mail accounts' => '%s mail accounts', - '1 database' => '1 database', - '%s databases' => '%s databases', + 'unlimited' => 'неограничен', + '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 cron job', '%s cron jobs' => '%s cron jobs', - '1 archive' => '1 archive', - '%s archives' => '%s archives', - '1 item' => '1 item', - '%s items' => '%s items', - '1 package' => '1 package', - '%s packages' => '%s packages', - '1 IP address' => '1 IP address', - '%s IP addresses' => '%s IP addresses', - '1 month' => '1 month', - '%s months' => '%s months', - '1 log record' => '1 log record', - '%s log records' => '%s log records', - '1 object' => '1 object', - '%s objects' => '%s objects', - 'no exclusions' => 'no exclusions', - '1 rule' => '1 rule', - '%s rules' => '%s rules', - 'There are no currently banned IP' => 'There are no currently banned IP', + '1 archive' => '1 архив', + '%s archives' => '%s архива', + '1 item' => '1 артикул', + '%s items' => '%s артикула', + '1 package' => '1 пакет', + '%s packages' => '%s пакета', + '1 IP address' => '1 IP адрес', + '%s IP addresses' => '%s IP адреса', + '1 month' => '1 месец', + '%s months' => '%s месеца', + '1 log record' => '1 log запис', + '%s log records' => '%s log записа', + '1 object' => '1 обект', + '%s objects' => '%s обекта', + 'no exclusions' => 'без изключения', + '1 rule' => '1 правило', + '%s rules' => '%s правила', + 'There are no currently banned IP' => 'Няма блокирани IP-та', - 'USER_CREATED_OK' => 'User %s has been created successfully.', - 'WEB_DOMAIN_CREATED_OK' => 'Domain %s has been created successfully.', - 'DNS_DOMAIN_CREATED_OK' => 'DNS domain %s has been created successfully.', - 'DNS_RECORD_CREATED_OK' => 'Record %s.%s has been created successfully.', - 'MAIL_DOMAIN_CREATED_OK' => 'Mail domain %s has been created successfully.', - 'MAIL_ACCOUNT_CREATED_OK' => 'Mail account %s@%s has been created successfully.', - 'DATABASE_CREATED_OK' => 'Database %s has been created successfully.', - 'CRON_CREATED_OK' => 'Cron job has been created successfully.', - 'IP_CREATED_OK' => 'IP address %s has been created successfully.', - 'PACKAGE_CREATED_OK' => 'Package %s has been created successfully.', - 'SSL_GENERATED_OK' => 'Certificate has been generated successfully.', - 'RULE_CREATED_OK' => 'Rule has been created successfully.', - 'BANLIST_CREATED_OK' => 'IP address has been banned successfully', - 'Autoupdate has been successfully enabled' => 'Autoupdate has been successfully enabled.', - 'Autoupdate has been successfully disabled' => 'Autoupdate has been successfully disabled.', - 'Cronjob email reporting has been successfully enabled' => 'Cronjob email reporting has been successfully enabled', - 'Cronjob email reporting has been successfully disabled' => 'Cronjob email reporting has been successfully disabled', - 'Changes has been saved.' => 'Changes have been saved.', - 'Confirmation' => 'Confirmation', - 'DELETE_USER_CONFIRMATION' => 'Are you sure you want to delete user %s?', - 'SUSPEND_USER_CONFIRMATION' => 'Are you sure you want to suspend user %s?', - 'UNSUSPEND_USER_CONFIRMATION' => 'Are you sure you want to unsuspend user %s?', - 'DELETE_DOMAIN_CONFIRMATION' => 'Are you sure you want to delete domain %s?', - 'SUSPEND_DOMAIN_CONFIRMATION' => 'Are you sure you want to suspend domain %s?', - 'UNSUSPEND_DOMAIN_CONFIRMATION' => 'Are you sure you want to unsuspend domain %s?', - 'DELETE_RECORD_CONFIRMATION' => 'Are you sure you want to delete record %s?', - 'SUSPEND_RECORD_CONFIRMATION' => 'Are you sure you want to suspend record %s?', - 'UNSUSPEND_RECORD_CONFIRMATION' => 'Are you sure you want to unsuspend record %s?', - 'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Are you sure you want to delete %s?', - 'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Are you sure you want to suspend %s?', - 'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Are you sure you want to unsuspend %s?', - 'DELETE_DATABASE_CONFIRMATION' => 'Are you sure you want to delete database %s?', - 'SUSPEND_DATABASE_CONFIRMATION' => 'Are you sure you want to suspend database %s?', - 'UNSUSPEND_DATABASE_CONFIRMATION' => 'Are you sure you want to unsuspend database %s?', - 'DELETE_CRON_CONFIRMATION' => 'Are you sure you want to delete cron job?', - 'SUSPEND_CRON_CONFIRMATION' => 'Are you sure you want to suspend cron job?', - 'UNSUSPEND_CRON_CONFIRMATION' => 'Are you sure you want to unsuspend cron job?', - 'DELETE_BACKUP_CONFIRMATION' => 'Are you sure you want to delete %s backup?', - 'DELETE_EXCLUSION_CONFIRMATION' => 'Are you sure you want to delete %s exclusion?', - 'DELETE_PACKAGE_CONFIRMATION' => 'Are you sure you want to delete package %s?', - 'DELETE_IP_CONFIRMATION' => 'Are you sure you want to delete IP address %s?', - 'DELETE_RULE_CONFIRMATION' => 'Are you sure you want to delete rule #%s?', - 'SUSPEND_RULE_CONFIRMATION' => 'Are you sure you want to suspend rule #%s?', - 'UNSUSPEND_RULE_CONFIRMATION' => 'Are you sure you want to unsuspend rule #%s?', - 'LEAVE_PAGE_CONFIRMATION' => 'Leave Page?', - 'RESTART_CONFIRMATION' => 'Are you sure you want to restart %s?', - 'Welcome' => 'Welcome', - 'LOGGED_IN_AS' => 'Logged in as user %s', - 'Error' => 'Error', - 'Invalid username or password' => 'Invalid username or password.', - 'Invalid username or code' => 'Invalid username or code.', - 'Passwords not match' => 'Passwords do not match.', - 'Please enter valid email address.' => 'Please enter a valid email address.', - 'Field "%s" can not be blank.' => 'Field "%s" can not be blank.', - 'Password is too short.' => 'Password is too short (minimum is 6 characters)', - 'Error code:' => 'Error code: %s', - 'SERVICE_ACTION_FAILED' => '"%s" "%s" failed', - 'IP address is in use' => 'IP address is in use', - 'BACKUP_SCHEDULED' => 'Task has been added to the queue. You will receive an email notification when your backup is ready for download.', - 'BACKUP_EXISTS' => 'An existing backup is already running. Please wait for that backup to finish.', - 'RESTORE_SCHEDULED' => 'Task has been added to the queue. You will receive an email notification when your restore has been completed.', - 'RESTORE_EXISTS' => 'An existing restoration task is already running. Please wait for it to finish before launching it again.', + 'USER_CREATED_OK' => 'Потребител %s беше създаден успешно.', + 'WEB_DOMAIN_CREATED_OK' => 'Домейн %s беше създаден успешно .', + 'DNS_DOMAIN_CREATED_OK' => 'DNS домейн %s беше създаден успешно.', + 'DNS_RECORD_CREATED_OK' => 'Запис %s.%s беше създаден успешно.', + 'MAIL_DOMAIN_CREATED_OK' => 'Пощенски домейн %s беше създаден успешно.', + 'MAIL_ACCOUNT_CREATED_OK' => 'Пощенски акаунт %s@%s беше създаден успешно.', + 'DATABASE_CREATED_OK' => 'База данни %s беше създадена успешно.', + 'CRON_CREATED_OK' => 'Cron job беше създаден успешно.', + 'IP_CREATED_OK' => 'IP адрес %s беше създаден успешно.', + 'PACKAGE_CREATED_OK' => 'Пакет %s беше създаден успешно.', + 'SSL_GENERATED_OK' => 'Сертификатът беше генериран успешно.', + 'RULE_CREATED_OK' => 'Правилото беше създадено успешно.', + 'BANLIST_CREATED_OK' => 'IP адресът беше блокиран успешно', // I'm not sure about this text + 'Autoupdate has been successfully enabled' => 'Автоматичното обновяване беше включено успешно.', + 'Autoupdate has been successfully disabled' => 'Автоматичното обновяване беше изключено успешно.', + 'Cronjob email reporting has been successfully enabled' => 'Cronjob email reporting беше включен успешно', + 'Cronjob email reporting has been successfully disabled' => 'Cronjob email reporting беше изключен успешно', + 'Changes has been saved.' => 'Промените бяха запазени.', + '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' => 'Сигурни ли сте, че искате да изтриете cron job?', + 'SUSPEND_CRON_CONFIRMATION' => 'Сигурни ли сте, че искате да блокирате cron job?', + 'UNSUSPEND_CRON_CONFIRMATION' => 'Сигурни ли сте, че искате да отблокирате cron job?', + 'DELETE_BACKUP_CONFIRMATION' => 'Сигурни ли сте, че искате да изтриете %s резервното копие?', + 'DELETE_EXCLUSION_CONFIRMATION' => 'Сигурни ли сте, че искате да изтриете %s изключението?', + 'DELETE_PACKAGE_CONFIRMATION' => 'Сигурни ли сте, че искате да изтриете пакет %s?', + 'DELETE_IP_CONFIRMATION' => 'Сигурни ли сте, че искате да изтриете IP адрес %s?', + 'DELETE_RULE_CONFIRMATION' => 'Сигурни ли сте, че искате да изтриете правило #%s?', + 'SUSPEND_RULE_CONFIRMATION' => 'Сигурни ли сте, че искате да блокирате правило #%s?', + 'UNSUSPEND_RULE_CONFIRMATION' => 'Сигурни ли сте, че искате да отблокирате правило #%s?', + 'LEAVE_PAGE_CONFIRMATION' => 'Напускане на страницата?', + 'RESTART_CONFIRMATION' => 'Сигурни ли сте, че искате да рестартирате %s?', + 'Welcome' => 'Добре дошли', + 'LOGGED_IN_AS' => 'Вписани сте като %s', + 'Error' => 'Грешка', + 'Invalid username or password' => 'Невалидно потребителско име или парола.', + 'Invalid username or code' => 'Невалидно потребителско име или код.', + 'Passwords not match' => 'Паролите не съвпадат.', + 'Please enter valid email address.' => 'Моля, въведете валиден email адрес.', + 'Field "%s" can not be blank.' => 'Поле "%s" е задължително.', + 'Password is too short.' => 'Паролата е твърде къса (минимум 6 символа)', + 'Error code:' => 'Код на грешката: %s', + 'SERVICE_ACTION_FAILED' => '"%s" "%s" отказа', + 'IP address is in use' => 'IP адресът се използва в момента', + 'BACKUP_SCHEDULED' => 'Задачата е на изчакване. Ще бъдете уведомени по email веднага щом резервното копие стане достъпно за изтегляне.', + 'BACKUP_EXISTS' => 'Друго резервно копие е в действие. Моля, изчакайте приключване.', + 'RESTORE_SCHEDULED' => 'Задачата е на изчакване. Ще бъдете уведомени по email веднага щом възстановяването приключи.', + 'RESTORE_EXISTS' => 'Друго възстановяване е в действие. Моля, изчакайте приключване преди повторно зареждане.', - 'WEB_EXCLUSIONS' => 'Type domain name, one per line. To exclude all domains use *. To exclude specific dirs use following format: domain.com:public_html/cache:public_html/tmp', - 'DNS_EXCLUSIONS' => 'Type domain name, one per line. To exclude all domains use *', - 'MAIL_EXCLUSIONS' => 'Type domain name, one per line. To exclude all domains use *. To exclude specific accounts use following format: domain.com:info:support:postmaster', - 'DB_EXCLUSIONS' => 'Type full database name, one per line. To exclude all databases use *', - 'CRON_EXCLUSIONS' => 'To exclude all jobs use *', - 'USER_EXCLUSIONS' => 'Type directory name, one per line. To exlude all dirs use *', + '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' => 'Welcome to Vesta Control Panel', - 'MAIL_FROM' => 'Vesta Control Panel ', - 'GREETINGS_GORDON_FREEMAN' => "Hello, %s %s,\n", - 'GREETINGS' => "Hello,\n", - 'ACCOUNT_READY' => "Your account has been created and is ready for use.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n", + 'Welcome to Vesta Control Panel' => 'Добре дошли във Контролния панел на Vesta', + 'MAIL_FROM' => 'Контролният панел на Vesta ', + '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 вход', + 'FTP_ACCOUNT_READY' => "FTP акаунтът ви беше създаден успешно и вече е готов за употреба.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n", - 'FTP login credentials' => 'FTP login credentials', - 'FTP_ACCOUNT_READY' => "FTP account has been created and is ready for use.\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", - 'Database Credentials' => 'Database Credentials', - 'DATABASE_READY' => "Database has been created successfully.\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' => '', // should we add something here? I don't think it's needed. + 'RESET_CODE_SENT' => 'Кодът за възстановяване на паролата беше изпратен успешно на вашия email
', + 'MAIL_RESET_SUBJECT' => 'Паролата е възстановена на %s', + 'PASSWORD_RESET_REQUEST' => "За да възстановите паролата за контролния панел, моля използвайте следния линк:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s and enter the following reset code:\n%s\n\nIf you did not request password reset, please ignore this message and accept our apologies.\n\n--\nVesta Control Panel\n", - 'forgot password' => 'forgot password', - 'Confirm' => 'Confirm', - 'New Password' => 'New Password', - 'Confirm Password' => 'Confirm Password', - 'Reset' => 'Reset', - 'Reset Code' => 'Reset Code', - 'RESET_NOTICE' => '', - 'RESET_CODE_SENT' => 'Password reset code has been sent to your email address
', - 'MAIL_RESET_SUBJECT' => 'Password Reset at %s', - 'PASSWORD_RESET_REQUEST' => "To reset your control panel password, please follow this link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s and enter the following reset code:\n%s\n\nIf you did not request password reset, please ignore this message and accept our apologies.\n\n--\nVesta Control Panel\n", + 'Jan' => 'Януари', + 'Feb' => 'Февруари', + 'Mar' => 'Март', + 'Apr' => 'Април', + 'May' => 'Май', + 'Jun' => 'Юни', + 'Jul' => 'Юли', + 'Aug' => 'Август', + 'Sep' => 'Септември', + 'Oct' => 'Октомври', + 'Nov' => 'Ноември', + 'Dec' => 'Декември', - 'Jan' => 'Jan', - 'Feb' => 'Feb', - 'Mar' => 'Mar', - 'Apr' => 'Apr', - 'May' => 'May', - 'Jun' => 'Jun', - 'Jul' => 'Jul', - 'Aug' => 'Aug', - 'Sep' => 'Sep', - 'Oct' => 'Oct', - 'Nov' => 'Nov', - 'Dec' => 'Dec', - - 'Configuring Server' => 'Configuring Server', - 'Hostname' => 'Hostname', - 'Time Zone' => 'Time Zone', - 'Default Language' => 'Default Language', - 'Proxy Server' => 'Proxy Server', - 'Web Server' => 'Web Server', - 'Backend Server' => 'Backend Server', - 'Backend Pool Mode' => 'Backend Pool Mode', - 'DNS Server' => 'DNS Server', - 'DNS Cluster' => 'DNS Cluster', - 'MAIL Server' => 'MAIL Server', - 'Antivirus' => 'Antivirus', - 'AntiSpam' => 'AntiSpam', - 'Webmail URL' => 'Webmail URL', - 'MySQL Support' => 'MySQL Support', - 'phpMyAdmin URL' => 'phpMyAdmin URL', - 'PostgreSQL Support' => 'PostgreSQL Support', - 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', - 'Current Number Of Databases' => 'Current Number Of Databases', - 'Local backup' => 'Local backup', - 'Compression level' => 'Compression level', - 'Directory' => 'Directory', - 'Remote backup' => 'Remote backup', + 'Configuring Server' => 'Конфигуриране на сървъра', + 'Hostname' => 'Име на хост', + 'Time Zone' => 'Часова зона', + 'Default Language' => 'Език по подразбиране', + 'Proxy Server' => 'Прокси сървър', + 'Web Server' => 'Уеб сървър', + 'Backend Server' => 'Бекенд сървър', + 'Backend Pool Mode' => 'Backend Pool режим', + 'DNS Server' => 'DNS сървър', + 'DNS Cluster' => 'DNS клъстър', + 'MAIL Server' => 'Пощенски сървър', + 'Antivirus' => 'Антивирус', + 'AntiSpam' => 'Антиспам', + 'Webmail URL' => 'Уебмейл адрес', + 'MySQL Support' => 'MySQL поддръжкс', + 'phpMyAdmin URL' => 'phpMyAdmin адрес', + 'PostgreSQL Support' => 'PostgreSQL поддръжка', + 'phpPgAdmin URL' => 'phpPgAdmin адрес', + 'Maximum Number Of Databases' => 'Максимален брой бази данни', + 'Current Number Of Databases' => 'Текущ брой бази данни', + 'Local backup' => 'Местно резервно копие', + 'Compression level' => 'Ниво на компресия', + 'Directory' => 'Директория', + 'Remote backup' => 'Отдалечено резервно копие', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', - 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', - 'preview' => 'preview', - 'Reseller Role' => 'Reseller Role', - 'Web Config Editor' => 'Web Config Editor', - 'Template Manager' => 'Template Manager', - 'Backup Migration Manager' => 'Backup Migration Manager', - 'FileManager' => 'FileManager', - 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', + 'FileSystem Disk Quota' => 'Квота на файловата система на диска', + 'Vesta Control Panel Plugins' => 'Допълнения за контролния панел на Vesta', + 'preview' => 'преглед', + 'Reseller Role' => 'Reseller роля', + 'Web Config Editor' => 'Web Config редактор', + 'Template Manager' => 'Мениджър на шаблони', + 'Backup Migration Manager' => 'Мениджър на преминаването към резервни копия', + 'FileManager' => 'Файлов мениджър', + 'show: CPU / MEM / NET / DISK' => 'покажи: CPU / MEM / NET / DISK', - 'sort by' => 'sort by', - 'Date' => 'Date', - 'Starred' => 'Starred', - 'Name' => 'Name', + 'sort by' => 'подреди по', + 'Date' => 'Дата', + 'Starred' => 'Използвани', + 'Name' => 'Име', - 'save to favorites' => 'save to favorites', + 'save to favorites' => 'запази в любими', - 'File Manager' => 'File Manager', - 'size' => 'size', - 'date' => 'date', - 'name' => 'name', - 'Initializing' => 'Initializing', - 'UPLOAD' => 'UPLOAD', - 'NEW FILE' => 'NEW FILE', - 'NEW DIR' => 'NEW DIR', - 'DELETE' => 'DELETE', - 'RENAME' => 'RENAME', - 'MOVE' => 'MOVE', - 'RIGHTS' => 'RIGHTS', - 'COPY' => 'COPY', - 'ARCHIVE' => 'ARCHIVE', - 'EXTRACT' => 'EXTRACT', - 'DOWNLOAD' => 'DOWNLOAD', - 'Are you sure?' => 'Are you sure?', - 'Hit' => 'Hit', - 'to reload the page' => 'to reload the page', - 'Directory name cannot be empty' => 'Directory name cannot be empty', - 'File name cannot be empty' => 'File name cannot be empty', - 'No file selected' => 'No file selected', - 'No file or folder selected' => 'No file or folder selected', - 'File type not supported' => 'File type not supported', - 'Directory download not available in current version' => 'Directory download not available in current version', - 'Directory not available' => 'Directory not available', - 'Done' => 'Done', - 'Close' => 'Close', - 'Copy' => 'Copy', - 'Cancel' => 'Cancel', - 'Rename' => 'Rename', - 'Move' => 'Move', - 'Change Rights' => 'Change Rights', - 'Delete' => 'Delete', - 'Extract' => 'Extract', - 'Create' => 'Create', - 'Compress' => 'Compress', + 'File Manager' => 'Файлов мениджър', + 'size' => 'размер', + 'date' => 'дата', + 'name' => 'име', + 'Initializing' => 'инициализиране', + 'UPLOAD' => 'КАЧИ', + 'NEW FILE' => 'НОВ ФАЙЛ', + 'NEW DIR' => 'НОВА ДИРЕКТОРИЯ', + 'DELETE' => 'ИЗТРИЙ', + 'RENAME' => 'ПРЕИМЕНУВАЙ', + 'MOVE' => 'ПРЕМЕСТИ', + 'RIGHTS' => 'ПРАВА', + 'COPY' => 'КОПИРАЙ', + 'ARCHIVE' => 'АРХИВИРАЙ', + 'EXTRACT' => 'ИЗВЛЕЧИ', + 'DOWNLOAD' => 'ИЗТЕГЛИ', + 'Are you sure?' => 'Сигурни ли сте?', // unused? + 'Hit' => 'Натисни', + 'to reload the page' => 'за да презаредите страницата', + 'Directory name cannot be empty' => 'Въведете име на директорията', + 'File name cannot be empty' => 'Въведете име на файла', + 'No file selected' => 'Не е избран файл', + 'No file or folder selected' => 'Не са избрани папка или файл', + 'File type not supported' => 'Този формат не се поддържа', + 'Directory download not available in current version' => 'Изтегляне на директория не се поддържа в тази версия', + 'Directory not available' => 'Директорията не е налична', + 'Done' => 'Готово', + 'Close' => 'Затвори', + 'Copy' => 'Копирай', + 'Cancel' => 'Отмени', + 'Rename' => 'Преименувай', + 'Move' => 'Премести', + 'Change Rights' => 'Смени правата', + 'Delete' => 'Изтрий', + 'Extract' => 'Извлечи', + 'Create' => 'Създай', + 'Compress' => 'Компресирай', 'OK' => 'OK', - 'YOU ARE COPYING' => 'YOU ARE COPYING', - 'YOU ARE REMOVING' => 'YOU ARE REMOVING', - 'Delete items' => 'Delete items', - 'Copy files' => 'Copy files', - 'Move files' => 'Move files', - 'Are you sure you want to copy' => 'Are you sure you want to copy', - 'Are you sure you want to move' => 'Are you sure you want to move', - 'Are you sure you want to delete' => 'Are you sure you want to delete', - 'into' => 'into', - 'existing files will be replaced' => 'existing files will be replaced', - 'Original name' => 'Original name', - 'File' => 'File', - 'already exists' => 'already exists', - 'Create file' => 'Create file', - 'Create directory' => 'Create directory', - 'read by owner' => 'read by owner', - 'write by owner' => 'write by owner', - 'execute/search by owner' => 'execute/search by owner', - 'read by group' => 'read by group', - 'write by group' => 'write by group', - 'execute/search by group' => 'execute/search by group', - 'read by others' => 'read by others', - 'write by others' => 'write by others', - 'execute/search by others' => 'execute/search by others', + 'YOU ARE COPYING' => 'ВИЕ КОПИРАТЕ', // unused? + 'YOU ARE REMOVING' => 'ВИЕ ПРЕМАХВАТЕ', + 'Delete items' => 'Изтрий избраните', + 'Copy files' => 'Копирай файловете', + 'Move files' => 'Премести файловете', + 'Are you sure you want to copy' => 'Сигурни ли сте, че искате да копирате', + 'Are you sure you want to move' => 'Сигурни ли сте, че искате да преместите', + 'Are you sure you want to delete' => 'Сигурни ли сте, че искате да премахнете', + 'into' => 'въведение', + 'existing files will be replaced' => 'съществуващите файлове ще бъдат заменени', + 'Original name' => 'Първоначално име', + 'File' => 'Файл', + 'already exists' => 'вече съществува', + 'Create file' => 'Създай файл', + 'Create directory' => 'Създай директория', + 'read by owner' => 'чети като собственик', + 'write by owner' => 'пиши като собственик', + 'execute/search by owner' => 'изпълни/търси като собственик', + 'read by group' => 'чети като група', + 'write by group' => 'пиши като група', + 'execute/search by group' => 'изпълни/търси като група', + 'read by others' => 'чети като други', + 'write by others' => 'пиши като други', + 'execute/search by others' => 'изпълни/търси като други', - 'Shortcuts' => 'Shortcuts', - 'Add New object' => 'Add New object', - 'Save Form' => 'Save Form', - 'Cancel saving form' => 'Cancel saving form', - 'Go to USER list' => 'Go to USER list', - 'Go to WEB list' => 'Go to WEB list', - 'Go to DNS list' => 'Go to DNS list', - 'Go to MAIL list' => 'Go to MAIL list', - 'Go to DB list' => 'Go to DB list', - 'Go to CRON list' => 'Go to CRON list', - 'Go to BACKUP list' => 'Go to BACKUP list', - 'Focus on search' => 'Focus on search', - 'Display/Close shortcuts' => 'Display/Close shortcuts', - 'Move backward through top menu' => 'Move backward through top menu', - 'Move forward through top menu' => 'Move forward through top menu', - 'Enter focused element' => 'Enter focused element', - 'Move up through elements list' => 'Move up through elements list', - 'Move down through elements list' => 'Move down through elements list', + 'Shortcuts' => 'Преки пътища', + 'Add New object' => 'Добави нов обект', + 'Save Form' => 'Запази формата', + 'Cancel saving form' => 'Отмени запазването на формата', + 'Go to USER list' => 'Отиди в USER списъка', + 'Go to WEB list' => 'Отиди в WEB списъка', + 'Go to DNS list' => 'Отиди в DNS списъка', + 'Go to MAIL list' => 'Отиди в MAIL списъка', + 'Go to DB list' => 'Отиди в DB списъка', + 'Go to CRON list' => 'Отиди в CRON списъка', + 'Go to BACKUP list' => 'Отиди в BACKUP списъка', + 'Focus on search' => 'Фокус при търсене', + 'Display/Close shortcuts' => 'Покажи/Скрий преките пътища', + 'Move backward through top menu' => 'Върни се назад в главното меню', + 'Move forward through top menu' => 'Напред към следващото меню', + 'Enter focused element' => 'Добави елемент на фокус', + 'Move up through elements list' => 'Придвижи се нагоре в списъка с елементи', + 'Move down through elements list' => 'Придвижи се надолу в списъка с елементи', - 'Upload' => 'Upload', - 'New File' => 'New File', - 'New Folder' => 'New Folder', - 'Download' => 'Download', - 'Archive' => 'Archive', - 'Save File (in text editor)' => 'Save File (in text editor)', - 'Close Popup / Cancel' => 'Close Popup / Cancel', - 'Move Cursor Up' => 'Move Cursor Up', - 'Move Cursor Down' => 'Move Cursor Down', - 'Switch to Left Tab' => 'Switch to Left Tab', - 'Switch to Right Tab' => 'Switch to Right Tab', - 'Switch Tab' => 'Switch Tab', - 'Go to the Top of the File List' => 'Go to the Top of the File List', - 'Go to the Last File' => 'Go to the Last File', - 'Open File / Enter Directory' => 'Open File / Enter Directory', - 'Edit File' => 'Edit File', - 'Go to Parent Directory' => 'Go to Parent Directory', - 'Select Current File' => 'Select Current File', - 'Select Bunch of Files' => 'Select Bunch of Files', - 'Add File to the Current Selection' => 'Add File to the Current Selection', - 'Select All Files' => 'Select All Files', - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', - - 'Licence Key' => 'Licence Key', - 'Enter License Key' => 'Enter License Key', - 'Buy Licence' => 'Buy Licence', - 'Buy Lifetime License' => 'Buy Lifetime License', - 'Disable and Cancel Licence' => 'Disable and Cancel Licence', - 'Licence Activated' => 'Licence Activated', - 'Licence Deactivated' => 'Licence Deactivated', - 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', - 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', - 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.', - - 'Minutes' => 'Minutes', - 'Hourly' => 'Hourly', - 'Run Command' => 'Run Command', - 'every month' => 'every month', - 'every odd month' => 'every odd month', - 'every even month' => 'every even month', - 'every day' => 'every day', - 'every odd day' => 'every odd day', - 'every even day' => 'every even day', - 'weekdays (5 days)' => 'weekdays (5 days)', - 'weekend (2 days)' => 'weekend (2 days)', - 'Monday' => 'Monday', - 'Tuesday' => 'Tuesday', - 'Wednesday' => 'Wednesday', - 'Thursday' => 'Thursday', - 'Friday' => 'Friday', - 'Saturday' => 'Saturday', - 'Sunday' => 'Sunday', - 'every hour' => 'every hour', - 'every two hours' => 'every two hours', - 'every minute' => 'every minute', - 'every two minutes' => 'every two minutes', - 'every' => 'every', - 'Generate' => 'Generate', + 'Upload' => 'Качи', + 'New File' => 'Нов файл', + 'New Folder' => 'Нова папка', + 'Download' => 'Изтегляне', + 'Archive' => 'Архивиране', + 'Save File (in text editor)' => 'Запази файла (в текстов редактор)', + 'Close Popup / Cancel' => 'Затвори изскачащия прозорец / Отмени', + 'Move Cursor Up' => 'Премести курсора нагоре', + 'Move Cursor Down' => 'Премести курсора надолу', + 'Switch to Left Tab' => 'Премини в левия раздел', + 'Switch to Right Tab' => 'Премини в десния раздел', + 'Switch Tab' => 'Смени раздел', + 'Go to the Top of the File List' => 'Отиди в началото на файловия списък', + 'Go to the Last File' => 'Кум последната страница', + 'Open File / Enter Directory' => 'Отвори файл / Влез в директория', + 'Edit File' => 'Редактирай файл', + 'Go to Parent Directory' => 'Към главната директория', + 'Select Current File' => 'Избери текущ файл', + 'Select Bunch of Files' => 'Избери няколко файла', + 'Add File to the Current Selection' => 'Добави файла към текущата селекция', + 'Select All Files' => 'Избери всички файлове', + 'shortcuts are inspired by magnificent GNU Midnight Commander файлов мениджър' => + 'преките пътища са вдъхновени от великолепният GNU Midnight Commander файлов мениджър', + 'Licence Key' => 'Лицензен ключ', + 'Enter License Key' => 'Въведете лицензен ключ', + 'Buy Licence' => 'Купете лиценз', + 'Buy Lifetime License' => 'Купете доживотен лиценз', + 'Disable and Cancel Licence' => 'Деактивирайте и отменете лиценз', + 'Licence Activated' => 'Лицензът е активиран', + 'Licence Deactivated' => 'Лицензът е деактивиран', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Ограничавайте потребителите от използването на SSH, давайки им достъп единствено до личните им директории.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Разглеждайте, копирайте, редактирайте, показвайте и извличайте всички уеб домейн файлове, използвайки напълно функциониращия ни файлов мениджър.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'Това е комерсиален модул, за чиито ползване е нужно да поръчате лицензионен ключ.', + 'Minutes' => 'Минути', + 'Hourly' => 'Всеки час', + 'Daily' => 'Всеки ден ', + 'Weekly' => 'Всяка седмица', + 'Monthly' => 'Всеки месец', + 'Run Command' => 'Изпълни команда', + 'every month' => 'всеки месец', + 'every odd month' => 'всеки нечетен месец', + 'every even month' => 'всеки четен месец', + 'every day' => 'всеки ден', + 'every odd day' => 'всеки нечетен ден', + 'every even day' => 'всеки четен ден', + 'weekdays (5 days)' => 'делници (5 дни)', + 'weekend (2 days)' => 'уикенд (2 дни)', + 'Monday' => 'Понеделник', + 'Tuesday' => 'Вторник', + 'Wednesday' => 'Сряда', + 'Thursday' => 'Четвъртък', + 'Friday' => 'Петък', + 'Saturday' => 'Събота', + 'Sunday' => 'Неделя', + 'every hour' => 'на всеки час', + 'every two hours' => 'на всеки два часа', + 'every minute' => 'всяка минута', + 'every two minutes' => 'всеки две минути', + 'every' => 'всеки', + 'Generate' => 'Генерирай', 'webalizer' => 'webalizer', 'awstats' => 'awstats', @@ -741,13 +739,14 @@ $LANG['bg'] = array( 'PUB_KEY' => 'PUB_KEY', 'ISSUER' => 'ISSUER', - 'Use server hostname' => 'Use server hostname', - 'Use domain hostname' => 'Use domain hostname', - 'Use STARTTLS' => 'Use STARTTLS', - 'Use SSL' => 'Use SSL', - 'No encryption' => 'No encryption', - 'Do not use encryption' => 'Do not use encryption', + 'Use server hostname' => 'Използвай сървърното хост име', + 'Use domain hostname' => 'Използвай хост името на домейн', + 'Use STARTTLS' => 'Използвай STARTTLS', + 'Use SSL' => 'Използвай SSL', + 'No encryption' => 'Без криптиране', + 'Do not use encryption' => 'Не използвай криптиране', - 'maximum characters length, including prefix' => 'maximum %s characters length, including prefix', + 'maximum characters length, including prefix' => 'максималната дължина е %s символа, включително префикса', ); + diff --git a/web/inc/i18n/el.php b/web/inc/i18n/el.php index 7d11a4e4..7af6d1ec 100644 --- a/web/inc/i18n/el.php +++ b/web/inc/i18n/el.php @@ -2,7 +2,8 @@ /** * VestaCP interface translation in Greek. * Translation by Cemendur. - * Last update: 10/03/2015 + * Last update: 2/02/2017 by ArisC + * */ $LANG['el'] = array( @@ -26,22 +27,22 @@ $LANG['el'] = array( 'CRON' => 'CRON', 'BACKUP' => 'BACKUP', - 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', + 'LOGIN' => 'ΣΥΝΔΕΣΗ', + 'RESET PASSWORD' => 'ΕΠΑΝΑΦΟΡΑ ΚΩΔΙΚΟΥ ΠΡΟΣΒΑΣΗΣ', + 'SEARCH' => 'ΑΝΑΖΗΤΗΣΗ', + 'PACKAGE' => 'ΠΑΚΕΤΑ', 'RRD' => 'RRD', - 'STATS' => 'STATS', - 'LOG' => 'LOG', - 'UPDATES' => 'UPDATES', + 'STATS' => 'ΣΤΑΤΙΣΤΙΚΑ', + 'LOG' => 'ΑΡΧΕΙΟ', + 'UPDATES' => 'ΕΝΗΜΕΡΩΣΕΙΣ', 'FIREWALL' => 'FIREWALL', 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', - 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', + 'MEMORY' => 'ΜΝΗΜΗ', + 'DISK' => 'ΔΙΣΚΟΣ', + 'NETWORK' => 'ΔΙΚΤΥΟ', 'Web Log Manager' => 'Web Log Manager', - 'no notifications' => 'no notifications', + 'no notifications' => 'Δεν υπάρχουν ειδοποιήσεις', 'Add User' => 'Προσθέστε χρήστη', 'Add Domain' => 'Προσθέστε domain', @@ -397,7 +398,7 @@ $LANG['el'] = array( 'SSH' => 'SSH', 'FTP' => 'FTP', 'VESTA' => 'VESTA', - 'Add one more Name Server' => 'Add one more Name Server', + 'Add one more Name Server' => 'Προσθέστε ένα ακόμη Name Server', 'web domain' => 'web domain', 'dns domain' => 'dns domain', @@ -409,7 +410,7 @@ $LANG['el'] = array( 'cron' => 'cron', 'user dir' => 'user dir', - 'unlimited' => 'unlimited', + 'unlimited' => 'απεριόριστα', '1 account' => '1 λογαριασμός', '%s accounts' => '%s λογαριασμοί', '1 domain' => '1 domain', @@ -534,23 +535,23 @@ $LANG['el'] = array( 'MAIL_RESET_SUBJECT' => 'Επαναφορά κωδικού πρόσβασης στο %s', 'PASSWORD_RESET_REQUEST' => "Για να επαναφέρετε τον κωδικό πρόσβασης του πίνακα ελέγχου σας, παρακαλώ ακολουθήστε το link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nΕναλλακτικά, πλοηγηθείτε στη διεύθυνση https://%s/reset/?action=code&user=%s και εισάγετε τον ακόλουθο κωδικό επαναφοράς:\n%s\n\nΕάν δεν ζητήσατε επαναφορά κωδικού πρόσβασης, παρακαλούμε αγνοείστε το παρόν μήνυμα και δεχθείτε τη συγγνώμη μας.\n\n--\nVesta Control Panel\n", - 'Jan' => 'Jan', - 'Feb' => 'Feb', - 'Mar' => 'Mar', - 'Apr' => 'Apr', - 'May' => 'May', - 'Jun' => 'Jun', - 'Jul' => 'Jul', - 'Aug' => 'Aug', - 'Sep' => 'Sep', - 'Oct' => 'Oct', - 'Nov' => 'Nov', - 'Dec' => 'Dec', + 'Jan' => 'Ιαν', + 'Feb' => 'Φεβ', + 'Mar' => 'Μαρ', + 'Apr' => 'Απρ', + 'May' => 'Μαι', + 'Jun' => 'Ιουν', + 'Jul' => 'Ιουλ', + 'Aug' => 'Αυγ', + 'Sep' => 'Σεπ', + 'Oct' => 'Οκτ', + 'Nov' => 'Νοε', + 'Dec' => 'Δεκ', - 'Configuring Server' => 'Configuring Server', + 'Configuring Server' => 'Διαμόρφωση Διακομιστή', 'Hostname' => 'Hostname', - 'Time Zone' => 'Time Zone', - 'Default Language' => 'Default Language', + 'Time Zone' => 'Ζώνη Ώρας', + 'Default Language' => 'Προεπιλεγμένη Γλώσσα', 'Proxy Server' => 'Proxy Server', 'Web Server' => 'Web Server', 'Backend Server' => 'Backend Server', @@ -565,11 +566,11 @@ $LANG['el'] = array( 'phpMyAdmin URL' => 'phpMyAdmin URL', 'PostgreSQL Support' => 'PostgreSQL Support', 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', - 'Current Number Of Databases' => 'Current Number Of Databases', + 'Maximum Number Of Databases' => 'Μέγιστος αριθμός των βάσεων δεδομένων', + 'Current Number Of Databases' => 'Τρέχων αριθμός των βάσεων δεδομένων', 'Local backup' => 'Local backup', - 'Compression level' => 'Compression level', - 'Directory' => 'Directory', + 'Compression level' => 'Επίπεδο συμπίεσης', + 'Directory' => 'Ευρετήριο', 'Remote backup' => 'Remote backup', 'ftp' => 'FTP', 'sftp' => 'SFTP', @@ -584,50 +585,50 @@ $LANG['el'] = array( 'FileManager' => 'FileManager', 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', - 'sort by' => 'sort by', - 'Date' => 'Date', + 'sort by' => 'ταξινόμηση κατά', + 'Date' => 'Ημερομηνία', 'Starred' => 'Starred', - 'Name' => 'Name', + 'Name' => 'Όνομα', - 'save to favorites' => 'save to favorites', + 'save to favorites' => 'Αποθηκεύστε στα αγαπημένα', 'File Manager' => 'File Manager', 'size' => 'size', 'date' => 'date', 'name' => 'name', - 'Initializing' => 'Initializing', + 'Initializing' => 'Αρχικοποίηση', 'UPLOAD' => 'UPLOAD', - 'NEW FILE' => 'NEW FILE', - 'NEW DIR' => 'NEW DIR', - 'DELETE' => 'DELETE', - 'RENAME' => 'RENAME', - 'MOVE' => 'MOVE', - 'RIGHTS' => 'RIGHTS', - 'COPY' => 'COPY', - 'ARCHIVE' => 'ARCHIVE', - 'EXTRACT' => 'EXTRACT', - 'DOWNLOAD' => 'DOWNLOAD', - 'Are you sure?' => 'Are you sure?', + 'NEW FILE' => 'ΝΕΟ ΑΡΧΕΙΟ', + 'NEW DIR' => 'ΝΕΟΣ ΦΑΚΕΛΟΣ', + 'DELETE' => 'ΔΙΑΓΡΑΦΗ', + 'RENAME' => 'ΜΕΤΟΝΟΜΑΣΙΑ', + 'MOVE' => 'ΜΕΤΑΚΙΝΗΣΗ', + 'RIGHTS' => 'ΔΙΚΑΙΩΜΑΤΑ', + 'COPY' => 'ΑΝΤΙΓΡΑΦΕΙ', + 'ARCHIVE' => 'ΑΡΧΕΙΟ', + 'EXTRACT' => 'ΕΞΑΓΩΓΗ', + 'DOWNLOAD' => 'ΚΑΤΕΒΑΣΤΕ', + 'Are you sure?' => 'Είσται σίγουρος/η?', 'Hit' => 'Hit', 'to reload the page' => 'to reload the page', - 'Directory name cannot be empty' => 'Directory name cannot be empty', - 'File name cannot be empty' => 'File name cannot be empty', - 'No file selected' => 'No file selected', - 'No file or folder selected' => 'No file or folder selected', - 'File type not supported' => 'File type not supported', - 'Directory download not available in current version' => 'Directory download not available in current version', - 'Directory not available' => 'Directory not available', + 'Directory name cannot be empty' => 'Το όνομα του φακέλου δεν μπορεί να είναι κενό', + 'File name cannot be empty' => 'Το όνομα αρχείου δεν μπορεί να είναι κενό', + 'No file selected' => 'Κανένα επιλεγμένο αρχείο', + 'No file or folder selected' => 'Κανένα επιλεγμένο αρχείο ή φάκελος', + 'File type not supported' => 'Ο τύπος αρχείου δεν υποστηρίζεται', + 'Directory download not available in current version' => 'Λήψη φακέλου δεν είναι διαθέσιμη στην τρέχουσα έκδοση', + 'Directory not available' => 'Ο φάκελος δεν είναι διαθέσιμος', 'Done' => 'Done', 'Close' => 'Close', - 'Copy' => 'Copy', - 'Cancel' => 'Cancel', - 'Rename' => 'Rename', - 'Move' => 'Move', - 'Change Rights' => 'Change Rights', - 'Delete' => 'Delete', - 'Extract' => 'Extract', - 'Create' => 'Create', - 'Compress' => 'Compress', + 'Copy' => 'Αντιγραφή', + 'Cancel' => 'Ματαίωση', + 'Rename' => 'Μετονομασία', + 'Move' => 'Μετακίνηση', + 'Change Rights' => 'Αλλαγή Δικαιωμάτων', + 'Delete' => 'Διαγραφή', + 'Extract' => 'Εξαγωγή', + 'Create' => 'Δημιουργία', + 'Compress' => 'Συμπιέζω', 'OK' => 'OK', 'YOU ARE COPYING' => 'YOU ARE COPYING', 'YOU ARE REMOVING' => 'YOU ARE REMOVING', @@ -641,7 +642,7 @@ $LANG['el'] = array( 'existing files will be replaced' => 'existing files will be replaced', 'Original name' => 'Original name', 'File' => 'File', - 'already exists' => 'already exists', + 'already exists' => 'υπάρχει ήδη', 'Create file' => 'Create file', 'Create directory' => 'Create directory', 'read by owner' => 'read by owner', @@ -708,29 +709,29 @@ $LANG['el'] = array( 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.', - 'Minutes' => 'Minutes', + 'Minutes' => 'Λεπτά', 'Hourly' => 'Hourly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', 'every even month' => 'every even month', - 'every day' => 'every day', + 'every day' => 'κάθε μέρα', 'every odd day' => 'every odd day', 'every even day' => 'every even day', 'weekdays (5 days)' => 'weekdays (5 days)', 'weekend (2 days)' => 'weekend (2 days)', - 'Monday' => 'Monday', - 'Tuesday' => 'Tuesday', - 'Wednesday' => 'Wednesday', - 'Thursday' => 'Thursday', - 'Friday' => 'Friday', - 'Saturday' => 'Saturday', - 'Sunday' => 'Sunday', - 'every hour' => 'every hour', - 'every two hours' => 'every two hours', - 'every minute' => 'every minute', - 'every two minutes' => 'every two minutes', - 'every' => 'every', + 'Monday' => 'Δευτέρα', + 'Tuesday' => 'Τρίτη', + 'Wednesday' => 'Τετάρτη', + 'Thursday' => 'Πέμπτη', + 'Friday' => 'Παρασκευή', + 'Saturday' => 'Σάββατο', + 'Sunday' => 'Κυριακή', + 'every hour' => 'κάθε ώρα', + 'every two hours' => 'κάθε δύο ώρες', + 'every minute' => 'κάθε λεπτό', + 'every two minutes' => 'κάθε δύο λεπτά', + 'every' => 'κάθε', 'Generate' => 'Generate', 'webalizer' => 'webalizer', diff --git a/web/inc/i18n/nl.php b/web/inc/i18n/nl.php index 3e7d3567..73623c40 100644 --- a/web/inc/i18n/nl.php +++ b/web/inc/i18n/nl.php @@ -3,6 +3,7 @@ * Vesta language file * drMacFaulty (wsanders@outlook.com, wsanders.eu) * ricardo777 (info@intio.nl, intio.nl) + * DaniWinter (mail@daniwinter.nl, daniwinter.nl) */ $LANG['nl'] = array( @@ -26,20 +27,20 @@ $LANG['nl'] = array( 'CRON' => 'Taken', 'BACKUP' => 'Back-up', - 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', + 'LOGIN' => 'INLOGGEN', + 'RESET PASSWORD' => 'WACHTWOORD RESETTEN', + 'SEARCH' => 'ZOEK', + 'PACKAGE' => 'PAKKET', 'RRD' => 'RRD', - 'STATS' => 'STATS', + 'STATS' => 'STATISTIEKEN', 'LOG' => 'LOG', 'UPDATES' => 'UPDATES', 'FIREWALL' => 'FIREWALL', 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', - 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', - 'Web Log Manager' => 'Web Log Manager', + 'MEMORY' => 'GEHEUGEN', + 'DISK' => 'SCHIJF', + 'NETWORK' => 'NETWERK', + 'Web Log Manager' => 'Web Log Beheer', 'no notifications' => 'geen notificaties', @@ -201,7 +202,7 @@ $LANG['nl'] = array( 'Proxy Extensions' => 'Proxy Extensies', 'Web Statistics' => 'Web Statistieken', 'Additional FTP Account' => 'Extra FTP Account', - 'Path' => 'Path', + 'Path' => 'Pad', 'SOA' => 'SOA', 'TTL' => 'TTL', 'Expire' => 'Loopt af', @@ -216,16 +217,16 @@ $LANG['nl'] = array( 'Autoreply' => 'Auto-antwoord', 'Forward to' => 'Doorsturen naar', 'Do not store forwarded mail' => 'Doorgestuurde e-mail niet opslaan', - 'IMAP hostname' => 'IMAP hostname', - 'IMAP port' => 'IMAP port', - 'IMAP security' => 'IMAP security', - 'IMAP auth method' => 'IMAP auth method', - 'SMTP hostname' => 'SMTP hostname', - 'SMTP port' => 'SMTP port', - 'SMTP security' => 'SMTP security', - 'SMTP auth method' => 'SMTP auth method', + 'IMAP hostname' => 'IMAP hostnaam', + 'IMAP port' => 'IMAP poort', + 'IMAP security' => 'IMAP beveiliging', + 'IMAP auth method' => 'IMAP authenticatie methode', + 'SMTP hostname' => 'SMTP hostnaam', + 'SMTP port' => 'SMTP poort', + 'SMTP security' => 'SMTP beveiliging', + 'SMTP auth method' => 'SMTP authenticatie methode', 'STARTTLS' => 'STARTTLS', - 'Normal password' => 'Normal password', + 'Normal password' => 'Normaal wachtwoord', 'database' => 'database', 'User' => 'Gebruiker', 'Host' => 'Host', @@ -307,7 +308,7 @@ $LANG['nl'] = array( 'Prefix will be automaticaly added to username' => 'Voorvoegsel %s wordt automatisch toegevoegd aan gebruikersnaam', 'Send FTP credentials to email' => 'Stuur FTP inloggegevens naar e-mailadres', 'Expiration Date' => 'Vervaldatum', - 'YYYY-MM-DD' => 'YYYY-MM-DD', + 'YYYY-MM-DD' => 'DD-MM-YYYY', 'Name servers' => 'Naamservers', 'Record' => 'Record', 'IP or Value' => 'IP of Waarde', @@ -508,8 +509,9 @@ $LANG['nl'] = array( 'DNS_EXCLUSIONS' => 'Type domeinnaam, één per lijn. Om alle domeinen uit te sluiten gebruik *', 'MAIL_EXCLUSIONS' => 'Type domeinnaam, één per lijn. Om alle domeinen uit te sluiten gebruik *. Om specifieke mappen uit te sluiten gebruik het volgende formaat: domain.com:info:support:postmaster', 'DB_EXCLUSIONS' => 'Type volledige database naam, één per lijn. Om alle databases uit te sluiten gebruik *', - 'CRON_EXCLUSIONS' => 'Om alle taken uit te sluiten gebruik *', - 'USER_EXCLUSIONS' => 'Type map naam, één per mijn. Om alle mappen uit te sluiten gebruik *', + 'CRON_EXCLUSIONS' => 'Om alle cronjobs uit te sluiten gebruik *', + 'USER_EXCLUSIONS' => 'Type mapnaam, één per mijn. Om alle mappen uit te sluiten gebruik *', + 'Welcome to Vesta Control Panel' => 'Welkom bij het Vesta Controlepaneel', 'MAIL_FROM' => 'Vesta Controlepaneel ', @@ -534,21 +536,21 @@ $LANG['nl'] = array( 'MAIL_RESET_SUBJECT' => 'Wachtwoordherstel voor %s', 'PASSWORD_RESET_REQUEST' => "Om uw wachtwoord te herstellen klikt u op de link hieronder.\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nWanneer bovenstaande link niet werkt kunt u ook naar de volgende pagina gaan https://%s/reset/?action=code&user=%s en hier uw wachtwoord herstelcode invullen:\n%s\n\nAls u geen wachtwoord herstelcode heeft aangevraagd, kunt u dit bericht negeren.\n\n--\nVesta Controlepaneel\n", - 'Jan' => 'Jan', - 'Feb' => 'Feb', - 'Mar' => 'Mar', - 'Apr' => 'Apr', - 'May' => 'May', - 'Jun' => 'Jun', - 'Jul' => 'Jul', - 'Aug' => 'Aug', - 'Sep' => 'Sep', - 'Oct' => 'Oct', - 'Nov' => 'Nov', - 'Dec' => 'Dec', + 'Jan' => 'jan', + 'Feb' => 'feb', + 'Mar' => 'mrt', + 'Apr' => 'apr', + 'May' => 'mei', + 'Jun' => 'jun', + 'Jul' => 'jul', + 'Aug' => 'aug', + 'Sep' => 'sep', + 'Oct' => 'okt', + 'Nov' => 'nov', + 'Dec' => 'dec', 'Configuring Server' => 'Server Instellen', - 'Hostname' => 'Hostname', + 'Hostname' => 'Hostnaam', 'Time Zone' => 'Tijdzone', 'Default Language' => 'Standaard Taal', 'Proxy Server' => 'Proxy Server', @@ -565,85 +567,85 @@ $LANG['nl'] = array( 'phpMyAdmin URL' => 'phpMyAdmin URL', 'PostgreSQL Support' => 'PostgreSQL Support', 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', - 'Current Number Of Databases' => 'Current Number Of Databases', + 'Maximum Number Of Databases' => 'Maximale aantal Databases', + 'Current Number Of Databases' => 'Huidige aantal Databases', 'Local backup' => 'Lokale backup', - 'Compression level' => 'Compression level', - 'Directory' => 'Directory', - 'Remote backup' => 'Afstand backup', + 'Compression level' => 'Compressie level', + 'Directory' => 'Map', + 'Remote backup' => 'Externe backup', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', - 'FileSystem Disk Quota' => 'BestandenSystem Schijf Quotum', + 'FileSystem Disk Quota' => 'Bestandssysteem Schijf Quotum', 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', 'preview' => 'Voorbeeld', - 'Reseller Role' => 'Reseller Role', + 'Reseller Role' => 'Verkoper Rol', 'Web Config Editor' => 'Web Configuratie Bewerker', 'Template Manager' => 'Voorbeeld Manager', - 'Backup Migration Manager' => 'Backup Migration Manager', + 'Backup Migration Manager' => 'Backup Migratie Manager', 'FileManager' => 'FileManager', 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', - 'sort by' => 'sort by', - 'Date' => 'Date', - 'Starred' => 'Starred', - 'Name' => 'Name', + 'sort by' => 'sorteer op', + 'Date' => 'Datum', + 'Starred' => 'Favoriet', + 'Name' => 'Naam', - 'save to favorites' => 'save to favorites', + 'save to favorites' => 'sla op als favoriet', - 'File Manager' => 'File Manager', - 'size' => 'size', - 'date' => 'date', - 'name' => 'name', - 'Initializing' => 'Initializing', + 'File Manager' => 'Bestandsbeheer', + 'size' => 'grootte', + 'date' => 'datum', + 'name' => 'naam', + 'Initializing' => 'Initialiseren', 'UPLOAD' => 'UPLOAD', - 'NEW FILE' => 'NEW FILE', - 'NEW DIR' => 'NEW DIR', - 'DELETE' => 'DELETE', - 'RENAME' => 'RENAME', - 'MOVE' => 'MOVE', - 'RIGHTS' => 'RIGHTS', - 'COPY' => 'COPY', - 'ARCHIVE' => 'ARCHIVE', - 'EXTRACT' => 'EXTRACT', + 'NEW FILE' => 'NIEUW BESTAND', + 'NEW DIR' => 'NIEUWE MAP', + 'DELETE' => 'VERWIJDER', + 'RENAME' => 'HERNOEM', + 'MOVE' => 'VERPLAATS', + 'RIGHTS' => 'RECHTEN', + 'COPY' => 'KOPIEER', + 'ARCHIVE' => 'INPAKKEN', + 'EXTRACT' => 'UITPAKKEN', 'DOWNLOAD' => 'DOWNLOAD', 'Are you sure?' => 'Ben je zeker?', 'Hit' => 'Hit', 'to reload the page' => 'om de pagina te herladen', - 'Directory name cannot be empty' => 'Directory naam kan niet leeg zijn', + 'Directory name cannot be empty' => 'Mapnaam naam kan niet leeg zijn', 'File name cannot be empty' => 'Bestandsnaam kan niet leeg zijn', 'No file selected' => 'Geen bestand geselecteerd', 'No file or folder selected' => 'Geen bestand of map geselecteerd', 'File type not supported' => 'Bestandstype niet ondersteund', - 'Directory download not available in current version' => 'Map download niet beschikbaar in de huidige versie', + 'Directory download not available in current version' => 'Het downloaden van mappen is niet beschikbaar in deze versie', 'Directory not available' => 'Map niet beschikbaar', - 'Done' => 'Done', + 'Done' => 'Klaar', 'Close' => 'Sluit', - 'Copy' => 'Kopie', + 'Copy' => 'Kopieer', 'Cancel' => 'Annuleer', 'Rename' => 'Hernoemen', 'Move' => 'Verplaatsen', - 'Change Rights' => 'Verander rechten', + 'Change Rights' => 'Rechten aanpassen', 'Delete' => 'Verwijder', - 'Extract' => 'Extract', + 'Extract' => 'Uitpakken', 'Create' => 'Aanmaken', - 'Compress' => 'Comprimeren', + 'Compress' => 'Inpakken', 'OK' => 'OK', - 'YOU ARE COPYING' => 'AAN HET KOPIEREN', - 'YOU ARE REMOVING' => 'AAN HET VERWIJDEREN', + 'YOU ARE COPYING' => 'JE BENT AAN HET KOPIËREN', + 'YOU ARE REMOVING' => 'JE BENT AAN HET VERPLAATSEN', 'Delete items' => 'Verwijder items', 'Copy files' => 'Bestanden kopiëren', 'Move files' => 'Bestanden verplaatsen', 'Are you sure you want to copy' => 'Weet u zeker dat u wilt kopiëren', 'Are you sure you want to move' => 'Weet u zeker dat u wilt verplaatsen', 'Are you sure you want to delete' => 'Weet je zeker dat je wilt verwijderen', - 'into' => 'in', + 'into' => 'naar', 'existing files will be replaced' => 'bestaande bestanden zullen worden vervangen', 'Original name' => 'Oorspronkelijke naam', 'File' => 'Bestand', 'already exists' => 'bestaat al', 'Create file' => 'Maak een bestand', - 'Create directory' => 'Maak een directory', + 'Create directory' => 'Maak een map', 'read by owner' => 'lezen door eigenaar', 'write by owner' => 'schrijven door eigenaar', 'execute/search by owner' => 'uitvoeren/zoeken door eigenaar', @@ -657,13 +659,13 @@ $LANG['nl'] = array( 'Shortcuts' => 'Snelkoppelingen', 'Add New object' => 'Voeg nieuw object toe', 'Save Form' => 'Formulier opslaan', - 'Cancel saving form' => 'Formulier opslaan annuleren', + 'Cancel saving form' => 'Annuleer opslaan', 'Go to USER list' => 'Ga naar GEBRUIKER lijst', 'Go to WEB list' => 'Ga naar WEBSITES lijst', 'Go to DNS list' => 'Ga naar DNS lijst', 'Go to MAIL list' => 'Ga naar MAIL lijst', 'Go to DB list' => 'Ga naar DATABASES lijst', - 'Go to CRON list' => 'Ga naar taken lijst', + 'Go to CRON list' => 'Ga naar CRON lijst', 'Go to BACKUP list' => 'Ga naar BACKUP lijst', 'Focus on search' => 'Focus op zoek', 'Display/Close shortcuts' => 'Toon/Sluiten snelkoppelingen', @@ -675,17 +677,17 @@ $LANG['nl'] = array( 'Upload' => 'Upload', 'New File' => 'Nieuw bestand', - 'New Folder' => 'Nieuw map', + 'New Folder' => 'Nieuwe map', 'Download' => 'Download', - 'Archive' => 'Archief', + 'Archive' => 'Inpakken', 'Save File (in text editor)' => 'Bestand opslaan (in tekst verwerker)', 'Close Popup / Cancel' => 'Sluit Popup / Annuleer', - 'Move Cursor Up' => 'Beweeg de cursor omhoog', + 'Move Cursor Up' => 'Beweeg cursor omhoog', 'Move Cursor Down' => 'Beweeg Cursor omlaag', - 'Switch to Left Tab' => 'Overschakelen naar links Tab', - 'Switch to Right Tab' => 'Overschakelen naar rechts Tab', - 'Switch Tab' => 'Overschakelen naar Tab', - 'Go to the Top of the File List' => 'Ga naar de top van de bestandenlijst', + 'Switch to Left Tab' => 'Switch naar links Tab', + 'Switch to Right Tab' => 'Switch naar rechts Tab', + 'Switch Tab' => 'Switch Tab', + 'Go to the Top of the File List' => 'Ga naar boven in de bestandenlijst', 'Go to the Last File' => 'Ga naar het laatste bestand', 'Open File / Enter Directory' => 'Bestand/Map openen', 'Edit File' => 'Wijzig bestand', @@ -695,17 +697,17 @@ $LANG['nl'] = array( 'Add File to the Current Selection' => 'Bestand toevoegen aan de huidige selectie', 'Select All Files' => 'Selecteer alle bestanden', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'snelkoppelingen zijn geïnspireerd door magnificent GNU Midnight Commander file manager', + 'snelkoppelingen zijn geïnspireerd door magnificent GNU Midnight Commander file manager', - 'Licence Key' => 'Licentiesleutel', + 'Licence Key' => 'Licentiecode', 'Enter License Key' => 'Voer de licentiecode in', - 'Buy Licence' => 'Koop Licence', + 'Buy Licence' => 'Koop Licentie', 'Buy Lifetime License' => 'Kopen Levenslange licentie', 'Disable and Cancel Licence' => 'Activeer en Annuleren licentie', - 'Licence Activated' => 'Licence geactiveerde', - 'Licence Deactivated' => 'Licence gedeactiveerd', + 'Licence Activated' => 'Licentie geactiveerde', + 'Licence Deactivated' => 'Licentie gedeactiveerd', 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Gebruikers beperken zodat zij niet SSH kunnen gebruiken en enkel hun home map kunnen gebruiken.', - 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Blader, kopiëren, bewerken, bekijken en op te halen al uw webdomein bestanden met behulp van volledig functionele File Manager.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Blader, kopieer, wijzig, bekijk, en verkrijg al je webbestanden met een volledige bestandsbeheerder.', 'This is a commercial module, you would need to purchace license key to enable it.' => 'Dit is een commerciële module, u moet een licentiesleutel kopen om het te kunnen gebruiken.', 'Minutes' => 'Minuten', @@ -753,5 +755,4 @@ $LANG['nl'] = array( 'Do not use encryption' => 'Gebruik geen encryptie', 'maximum characters length, including prefix' => 'maximaal %s karakters lang, inclusief prefix', - ); diff --git a/web/inc/i18n/pl.php b/web/inc/i18n/pl.php index 77a1a835..9f82a63b 100644 --- a/web/inc/i18n/pl.php +++ b/web/inc/i18n/pl.php @@ -2,6 +2,7 @@ /** * Plik językowy panelu Vesta * Marek Pikuła + * Michal Slepko */ $LANG['pl'] = array( @@ -707,30 +708,30 @@ $LANG['pl'] = array( 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Przeglądaj, kopiuj, edytuj i zarządzaj wszystkimi plikami należącymi do twojej domeny przy użyciu kompletnego Menedżera Plików.', 'This is a commercial module, you would need to purchace license key to enable it.' => 'To jest moduł komercyjny. Żeby go aktywować trzeba zakupić klucz licencyjny.', - 'Minutes' => 'Minutes', - 'Hourly' => 'Hourly', - 'Run Command' => 'Run Command', - 'every month' => 'every month', - 'every odd month' => 'every odd month', - 'every even month' => 'every even month', - 'every day' => 'every day', - 'every odd day' => 'every odd day', - 'every even day' => 'every even day', - 'weekdays (5 days)' => 'weekdays (5 days)', - 'weekend (2 days)' => 'weekend (2 days)', - 'Monday' => 'Monday', - 'Tuesday' => 'Tuesday', - 'Wednesday' => 'Wednesday', - 'Thursday' => 'Thursday', - 'Friday' => 'Friday', - 'Saturday' => 'Saturday', - 'Sunday' => 'Sunday', - 'every hour' => 'every hour', - 'every two hours' => 'every two hours', - 'every minute' => 'every minute', - 'every two minutes' => 'every two minutes', - 'every' => 'every', - 'Generate' => 'Generate', + 'Minutes' => 'Minuty', + 'Hourly' => 'Godziny', + 'Run Command' => 'Komenda', + 'every month' => 'co miesiąc', + 'every odd month' => 'w nieparzyste miesiące', + 'every even month' => 'w parzyste miesiące', + 'every day' => 'codziennie', + 'every odd day' => 'w dni nieparzyste', + 'every even day' => 'w dni parzyste', + 'weekdays (5 days)' => 'dni robocze (5 dni)', + 'weekend (2 days)' => 'weekend (2 dni)', + 'Monday' => 'Poniedziałek', + 'Tuesday' => 'Wtorek', + 'Wednesday' => 'Środa', + 'Thursday' => 'Czwartek', + 'Friday' => 'Piątek', + 'Saturday' => 'Sobota', + 'Sunday' => 'Niedziela', + 'every hour' => 'co godzinę', + 'every two hours' => 'co 2 godziny', + 'every minute' => 'co minutę', + 'every two minutes' => 'co 2 minuty', + 'every' => 'każdy', + 'Generate' => 'Generuj', 'webalizer' => 'webalizer', 'awstats' => 'awstats', @@ -744,13 +745,13 @@ $LANG['pl'] = array( 'PUB_KEY' => 'PUB_KEY', 'ISSUER' => 'ISSUER', - 'Use server hostname' => 'Use server hostname', - 'Use domain hostname' => 'Use domain hostname', + 'Use server hostname' => 'Użyj hostname serwera', + 'Use domain hostname' => 'Użyj domeny serwera', 'Use STARTTLS' => 'Use STARTTLS', 'Use SSL' => 'Use SSL', - 'No encryption' => 'No encryption', - 'Do not use encryption' => 'Do not use encryption', + 'No encryption' => 'Brak szyfrowania', + 'Do not use encryption' => 'Nie korzystaj z szyfrowania', - 'maximum characters length, including prefix' => 'maximum %s characters length, including prefix', + 'maximum characters length, including prefix' => 'maksymalna %s ilość znaków, łącznie z prefiksem', ); diff --git a/web/inc/i18n/pt-BR.php b/web/inc/i18n/pt-BR.php index 0ec958ac..deac82ee 100644 --- a/web/inc/i18n/pt-BR.php +++ b/web/inc/i18n/pt-BR.php @@ -40,7 +40,7 @@ $LANG['pt-BR'] = array( 'NETWORK' => 'NETWORK', 'Web Log Manager' => 'Gerenciador de Log Web', - 'no notifications' => 'no notifications', + 'no notifications' => 'sem notificações', 'Add User' => 'Adicionar Usuário', 'Add Domain' => 'Adicionar Domínio', @@ -406,7 +406,7 @@ $LANG['pt-BR'] = array( 'cron job' => 'tarefa', 'cron' => 'cron', - 'user dir' => 'user dir', + 'user dir' => 'diretório do usuário', 'unlimited' => 'ilimitado', '1 account' => '1 conta', @@ -422,9 +422,9 @@ $LANG['pt-BR'] = array( '1 cron job' => '1 tarefa', '%s cron jobs' => '%s tarefas', '1 archive' => '1 arquivo', - '%s archives' => '%s aquivos', + '%s archives' => '%s arquivos', '1 item' => '1 item', - '%s items' => '%s items', + '%s items' => '%s itens', '1 package' => '1 pacote', '%s packages' => '%s pacotes', '1 IP address' => '1 endereço IP', @@ -628,8 +628,8 @@ $LANG['pt-BR'] = array( 'Create' => 'Criar', 'Compress' => 'Comprimir', 'OK' => 'OK', - 'YOU ARE COPYING' => 'VOCE ESTA COPIANDO', - 'YOU ARE REMOVING' => 'VOCE ESTA EXCLUINDO', + 'YOU ARE COPYING' => 'VOCÊ ESTÁ COPIANDO', + 'YOU ARE REMOVING' => 'VOCÊ ESTÁ EXCLUINDO', 'Delete items' => 'Excluir itens', 'Copy files' => 'Copiar arquivos', 'Move files' => 'Mover arquivos', diff --git a/web/inc/i18n/ru.php b/web/inc/i18n/ru.php index eb984d04..da88e88c 100644 --- a/web/inc/i18n/ru.php +++ b/web/inc/i18n/ru.php @@ -3,6 +3,7 @@ * Vesta language file * ZonD80 (zond80@gmail.com) * skid (skid@vestacp.com) + * Alexandr Loskutov (alex_connor@icloud.com) */ $LANG['ru'] = array( @@ -13,7 +14,7 @@ $LANG['ru'] = array( 'Log' => 'Журнал', 'Server' => 'Сервер', 'Services' => 'Службы', - 'Firewall' => 'Фаервол', + 'Firewall' => 'Файрвол', 'Updates' => 'Обновления', 'Log in' => 'Войти', 'Log out' => 'Выйти', @@ -26,22 +27,22 @@ $LANG['ru'] = array( 'CRON' => 'CRON', 'BACKUP' => 'BACKUP', - 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', + 'LOGIN' => 'ВОЙТИ', + 'RESET PASSWORD' => 'СБРОСИТЬ ПАРОЛЬ', + 'SEARCH' => 'ПОИСК', + 'PACKAGE' => 'ПАКЕТ', 'RRD' => 'RRD', - 'STATS' => 'STATS', - 'LOG' => 'LOG', - 'UPDATES' => 'UPDATES', - 'FIREWALL' => 'FIREWALL', - 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', - 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', - 'Web Log Manager' => 'Web Log Manager', + 'STATS' => 'СТАТИСТИКА', + 'LOG' => 'ЖУРНАЛ', + 'UPDATES' => 'ОБНОВЛЕНИЯ', + 'FIREWALL' => 'ФАЙРВОЛ', + 'SERVER' => 'СЕРВЕР', + 'MEMORY' => 'ПАМЯТЬ', + 'DISK' => 'ДИСК', + 'NETWORK' => 'СЕТЬ', + 'Web Log Manager' => 'Менеджер Web журнала', - 'no notifications' => 'no notifications', + 'no notifications' => 'без оповещений', 'Add User' => 'Добавить аккаунт', 'Add Domain' => 'Добавить домен', @@ -62,10 +63,10 @@ $LANG['ru'] = array( 'Search' => 'Поиск', 'Add one more FTP Account' => 'Добавить еще один FTP аккаунт', 'Overall Statistics' => 'Сводная статистика', - 'Daily' => 'ежедневно', - 'Weekly' => 'еженедельно', - 'Monthly' => 'ежемесячно', - 'Yearly' => 'Ежегодные', + 'Daily' => 'Ежедневно', + 'Weekly' => 'Еженедельно', + 'Monthly' => 'Ежемесячно', + 'Yearly' => 'Ежегодно', 'Add' => 'Добавить', 'Back' => 'Назад', 'Save' => 'Сохранить', @@ -151,10 +152,10 @@ $LANG['ru'] = array( 'yes' => 'да', 'no' => 'нет', 'none' => 'нет', - 'pb' => 'пб', - 'tb' => 'тб', - 'gb' => 'гб', - 'mb' => 'мб', + 'pb' => 'Пб', + 'tb' => 'Тб', + 'gb' => 'Гб', + 'mb' => 'Мб', 'minute' => 'мин.', 'hour' => 'час', 'day' => 'дн.', @@ -196,12 +197,12 @@ $LANG['ru'] = array( 'SSL Home Directory' => 'Директория SSL', 'Lets Encrypt Support' => 'Поддержка Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', - 'Your certificate will be automatically issued in 5 minutes' => 'Сертификат будет автоматически создан в течении 5-ти минут', + 'Your certificate will be automatically issued in 5 minutes' => 'Сертификат будет автоматически создан в течение 5-ти минут', 'Proxy Support' => 'Поддержка Proxy', 'Proxy Extensions' => 'Обработка Proxy', 'Web Statistics' => 'Статистика сайта', 'Additional FTP Account' => 'Дополнительный ftp', - 'Path' => 'Path', + 'Path' => 'Путь', 'SOA' => 'SOA', 'TTL' => 'TTL', 'Expire' => 'Истекает', @@ -247,16 +248,16 @@ $LANG['ru'] = array( 'Users' => 'Пользователи', 'Load Average' => 'Общая нагрузка', 'Memory Usage' => 'Использование памяти', - 'APACHE2 Usage' => 'APACHE2 Usage', - 'HTTPD Usage' => 'Веб сервер', - 'NGINX Usage' => 'Proxy', - 'MySQL Usage on localhost' => 'Сервер базы данных MySQL', - 'PostgreSQL Usage on localhost' => 'Сервер базы данных PostgreSQL', + 'APACHE2 Usage' => 'Использование APACHE2', + 'HTTPD Usage' => 'Использование HTTPd', + 'NGINX Usage' => 'Использование NGINX', + 'MySQL Usage on localhost' => 'Использование локальной MySQL', + 'PostgreSQL Usage on localhost' => 'Использование локальной PostgreSQL', 'Bandwidth Usage eth0' => 'Использование cети: eth0', 'Bandwidth Usage eth1' => 'Использование cети: eth1', - 'Exim Usage' => 'Exim Usage', - 'FTP Usage' => 'FTP сервер', - 'SSH Usage' => 'SSH сервер', + 'Exim Usage' => 'Использование Exim', + 'FTP Usage' => 'Использование FTP', + 'SSH Usage' => 'Использование SSH', 'reverse proxy' => 'обратный прокси', 'web server' => 'веб сервер', 'dns server' => 'сервер имен', @@ -267,8 +268,8 @@ $LANG['ru'] = array( 'database server' => 'сервер баз данных', 'ftp server' => 'ftp сервер', 'job scheduler' => 'планировщик заданий', - 'firewall' => 'firewall', - 'brute-force monitor' => 'brute-force monitor', + 'firewall' => 'файрвол', + 'brute-force monitor' => 'brute-force монитор', 'CPU' => 'Процессор', 'Memory' => 'Память', 'Uptime' => 'Запущен', @@ -297,7 +298,7 @@ $LANG['ru'] = array( 'Aliases' => 'Алиасы', 'SSL Certificate' => 'SSL сертификат', 'SSL Key' => 'Ключ SSL сертификата', - 'SSL Certificate Authority / Intermediate' => 'Центр сертификации SSL / Intermediate', + 'SSL Certificate Authority / Intermediate' => 'Центр сертификации SSL / Промежуточный', 'SSL CSR' => 'SSL CSR запрос', 'optional' => 'опционально', 'internal' => 'внутренний', @@ -399,15 +400,15 @@ $LANG['ru'] = array( 'VESTA' => 'VESTA', 'Add one more Name Server' => 'Добавить ещё один Сервер Имён', - 'web domain' => 'web domain', - 'dns domain' => 'dns domain', - 'dns record' => 'dns record', - 'mail domain' => 'mail domain', - 'mail account' => 'mail account', - 'cron job' => 'cron job', + 'web domain' => 'web домен', + 'dns domain' => 'dns домен', + 'dns record' => 'dns запись', + 'mail domain' => 'mail домен', + 'mail account' => 'mail аккаунт', + 'cron job' => 'cron задание', 'cron' => 'cron', - 'user dir' => 'user dir', + 'user dir' => 'пользовательская папка', 'unlimited' => 'неограничено', '1 account' => ' пользователей на странице: 1', @@ -424,8 +425,8 @@ $LANG['ru'] = array( '%s cron jobs' => 'заданий на странице: %s', '1 archive' => 'архивов на странице: 1', '%s archives' => 'архивов на странице: %s', - '1 item' => '1 item', - '%s items' => '%s items', + '1 item' => '1 элемент', + '%s items' => '%s элементы', '1 package' => 'пакетов на странице: 1', '%s packages' => 'пакетов на странице: %s', '1 IP address' => 'IP адресов на странице: 1', @@ -555,29 +556,30 @@ $LANG['ru'] = array( 'Web Server' => 'Web Server', 'Backend Server' => 'Backend Server', 'Backend Pool Mode' => 'Backend Pool Mode', - 'DNS Server' => 'DNS Server', - 'DNS Cluster' => 'DNS Cluster', - 'MAIL Server' => 'MAIL Server', - 'Antivirus' => 'Antivirus', - 'AntiSpam' => 'AntiSpam', + 'DNS Server' => 'DNS Сервер', + 'DNS Cluster' => 'DNS Кластер', + 'MAIL Server' => 'MAIL Сервер', + 'Antivirus' => 'Антивирус', + 'AntiSpam' => 'АнтиСпам', 'Webmail URL' => 'Webmail URL', - 'MySQL Support' => 'MySQL Support', + 'MySQL Support' => 'Поддержка MySQL', 'phpMyAdmin URL' => 'phpMyAdmin URL', - 'PostgreSQL Support' => 'PostgreSQL Support', + 'PostgreSQL Support' => 'Поддержка PostgreSQL', 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', - 'Current Number Of Databases' => 'Current Number Of Databases', - 'Local backup' => 'Local backup', - 'Compression level' => 'Compression level', - 'Directory' => 'Directory', - 'Remote backup' => 'Remote backup', + 'Maximum Number Of Databases' => 'Максимальное количество БД', + 'Current Number Of Databases' => 'Текущее количество БД', + 'Local backup' => 'Локальный архив', + 'Compression level' => 'Уровень сжатия', + 'Directory' => 'Каталог', + 'Remote backup' => 'Удаленное архив', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', - 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Плагины', - 'preview' => 'превью', - 'Reseller Role' => 'Ресселер', + 'FileSystem Disk Quota' => 'Дисковая квота файловой системы', + 'Vesta Control Panel Plugins' => 'Плагины Vesta Control Panel', + 'preview' => 'предпросмотр', + 'Reseller Role' => 'Реселлер', + 'Reseller Role' => 'Реселлер', 'Web Config Editor' => 'Веб Редактор Конфигов', 'Template Manager' => 'Менеджер Шаблонов', 'Backup Migration Manager' => 'Менеджер Миграции Бэкапов', @@ -595,7 +597,7 @@ $LANG['ru'] = array( 'size' => 'размер', 'date' => 'дата', 'name' => 'имя', - 'Initializing' => 'В процессе', + 'Initializing' => 'Инициализация', 'UPLOAD' => 'ЗАГРУЗИТЬ', 'NEW FILE' => 'ФАЙЛ', 'NEW DIR' => 'ПАПКА', @@ -607,7 +609,7 @@ $LANG['ru'] = array( 'ARCHIVE' => 'АРХИВ', 'EXTRACT' => 'РАСПАКОВАТЬ', 'DOWNLOAD' => 'СКАЧАТЬ', - 'Are you sure?' => 'Are you sure?', + 'Are you sure?' => 'Вы уверенны?', 'Hit' => 'Нажмите', 'to reload the page' => 'чтобы перегрузить страницу', 'Directory name cannot be empty' => 'Название директории не может быть пустым', @@ -629,10 +631,10 @@ $LANG['ru'] = array( 'Create' => 'Создать', 'Compress' => 'Запаковать', 'OK' => 'OK', - 'YOU ARE COPYING' => 'YOU ARE COPYING', - 'YOU ARE REMOVING' => 'YOU ARE REMOVING', - 'Delete items' => 'Delete items', - 'Copy files' => 'Copy files', + 'YOU ARE COPYING' => 'ВЫ КОПИРУЕТЕ', + 'YOU ARE REMOVING' => 'ВЫ УДАЛЯЕТЕ', + 'Delete items' => 'Удалить элементы', + 'Copy files' => 'Копировать файлы', 'Move files' => 'Переместить файлы', 'Are you sure you want to copy' => 'Вы уверены, что хотите скопировать', 'Are you sure you want to move' => 'Вы уверены, что хотите переместить', @@ -654,7 +656,7 @@ $LANG['ru'] = array( 'write by others' => 'запись для остальных', 'execute/search by others' => 'запуск/поиск для остальных', - 'Shortcuts' => 'Shortcuts', + 'Shortcuts' => 'Сокращения', 'Add New object' => 'Перейти к Форме Добавления', 'Save Form' => 'Сохрнанить Форму', 'Cancel saving form' => 'Отменить Сохранение', @@ -704,8 +706,8 @@ $LANG['ru'] = array( 'Disable and Cancel Licence' => 'Отключить и Закрыть Лицензию', 'Licence Activated' => 'Лицензия Активирована', 'Licence Deactivated' => 'Лицензия Отключена', - 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', - 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Ограничить пользователей, так что они не могут использовать SSH и имеют доступ только к домашней папке.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Просмотр, копирование, редактирование, просмотр и использование всех файлов веб-доменов с помощью полнофункционального Файлового менеджера.', 'This is a commercial module, you would need to purchace license key to enable it.' => 'Это коммерческий модуль, чтобы включить его, вам необходимо приобрести лицензию.', 'Minutes' => 'по минутам', @@ -731,27 +733,27 @@ $LANG['ru'] = array( 'every minute' => 'каждую минуту', 'every two minutes' => 'каждые 2 минуты', 'every' => 'каждые', - 'Generate' => 'Generate', + 'Generate' => 'Генерировать', 'webalizer' => 'webalizer', 'awstats' => 'awstats', 'Vesta SSL' => 'Vesta SSL', - 'SUBJECT' => 'SUBJECT', - 'ALIASES' => 'ALIASES', - 'NOT_BEFORE' => 'NOT_BEFORE', - 'NOT_AFTER' => 'NOT_AFTER', - 'SIGNATURE' => 'SIGNATURE', - 'PUB_KEY' => 'PUB_KEY', - 'ISSUER' => 'ISSUER', + 'SUBJECT' => 'ОБЪЕКТ', + 'ALIASES' => 'АЛИАСЫ', + 'NOT_BEFORE' => 'НЕДОСТУПЕН ДО', + 'NOT_AFTER' => 'НЕДОСТУПЕН ПОСЛЕ', + 'SIGNATURE' => 'ПОДПИСЬ', + 'PUB_KEY' => 'ПУБЛИЧНЫЙ КЛЮЧ', + 'ISSUER' => 'ИЗДАТЕЛЬ', - 'Use server hostname' => 'Use server hostname', - 'Use domain hostname' => 'Use domain hostname', - 'Use STARTTLS' => 'Use STARTTLS', - 'Use SSL' => 'Use SSL', - 'No encryption' => 'No encryption', - 'Do not use encryption' => 'Do not use encryption', + 'Use server hostname' => 'Использовать серверное имя хоста', + 'Use domain hostname' => 'Использовать доменное имя хоста', + 'Use STARTTLS' => 'Использовать STARTTLS', + 'Use SSL' => 'Использовать SSL', + 'No encryption' => 'Без шифрования', + 'Do not use encryption' => 'Не использовать шифрование', - 'maximum characters length, including prefix' => 'maximum %s characters length, including prefix', + 'maximum characters length, including prefix' => 'максимальное %s количество символов, включая префикс', ); diff --git a/web/inc/i18n/ua.php b/web/inc/i18n/ua.php index 16fa107e..698f37be 100644 --- a/web/inc/i18n/ua.php +++ b/web/inc/i18n/ua.php @@ -13,7 +13,7 @@ $LANG['ua'] = array( 'Log' => 'Журнал', 'Server' => 'Сервер', 'Services' => 'Служби', - 'Firewall' => 'Брандмауер', + 'Firewall' => 'Файрвол', 'Updates' => 'Оновлення', 'Log in' => 'Увійти', 'Log out' => 'Вийти', @@ -41,7 +41,7 @@ $LANG['ua'] = array( 'NETWORK' => 'МЕРЕЖА', 'Web Log Manager' => 'Менеджер Web журналу', - 'no notifications' => 'no notifications', + 'no notifications' => 'без сповіщень', 'Add User' => 'Додати користувача', 'Add Domain' => 'Додати домен', @@ -194,14 +194,14 @@ $LANG['ua'] = array( 'template' => 'шаблон', 'SSL Support' => 'Підтримка SSL', 'SSL Home Directory' => 'Домашня тека SSL', - 'Lets Encrypt Support' => 'Lets Encrypt Support', + 'Lets Encrypt Support' => 'Підтримка Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', - 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', + 'Your certificate will be automatically issued in 5 minutes' => 'Ваш сертифікат буде автоматично виданий протягом 5-ти хвилин', 'Proxy Support' => 'Підтримка Proxy', 'Proxy Extensions' => 'Розширення Proxy', 'Web Statistics' => 'Веб статистика', 'Additional FTP Account' => 'Додатковий FTP акаунт', - 'Path' => 'Path', + 'Path' => 'Шлях', 'SOA' => 'SOA', 'TTL' => 'TTL', 'Expire' => 'Спливає', @@ -215,7 +215,7 @@ $LANG['ua'] = array( 'Quota' => 'Квота', 'Autoreply' => 'Автовідповідач', 'Forward to' => 'Перенаправлення', - 'Do not store forwarded mail' => 'Не зберігати перенаправлені письма', + 'Do not store forwarded mail' => 'Не зберігати перенаправлені листи', 'IMAP hostname' => "Ім'я IMAP хоста", 'IMAP port' => 'Порт IMAP', 'IMAP security' => 'Безпека IMAP', @@ -424,8 +424,8 @@ $LANG['ua'] = array( '%s cron jobs' => '%s завдань', '1 archive' => '1 архів', '%s archives' => '%s архівів', - '1 item' => '1 item', - '%s items' => '%s items', + '1 item' => '1 елемент', + '%s items' => '%s елементи', '1 package' => '1 пакет', '%s packages' => '%s пакет', '1 IP address' => '1 IP адреса', @@ -589,7 +589,7 @@ $LANG['ua'] = array( 'Starred' => 'Вибране', 'Name' => "Ім'я", - 'save to favorites' => 'save to favorites', + 'save to favorites' => 'зберегти до улюблених', 'File Manager' => 'Файловий менеджер', 'size' => 'розмір', @@ -737,21 +737,21 @@ $LANG['ua'] = array( 'awstats' => 'awstats', 'Vesta SSL' => 'Vesta SSL', - 'SUBJECT' => 'SUBJECT', - 'ALIASES' => 'ALIASES', - 'NOT_BEFORE' => 'NOT_BEFORE', - 'NOT_AFTER' => 'NOT_AFTER', - 'SIGNATURE' => 'SIGNATURE', - 'PUB_KEY' => 'PUB_KEY', - 'ISSUER' => 'ISSUER', + 'SUBJECT' => "ОБ'ЄКТ", + 'ALIASES' => 'АЛІАСИ', + 'NOT_BEFORE' => 'НЕДОСТУПНИЙ ДО', + 'NOT_AFTER' => 'НЕДОСТУПНИЙ ПІСЛЯ', + 'SIGNATURE' => 'ПІДПИС', + 'PUB_KEY' => 'ПУБЛІЧНИЙ КЛЮЧ', + 'ISSUER' => 'ВИДАВЕЦЬ', - 'Use server hostname' => 'Use server hostname', - 'Use domain hostname' => 'Use domain hostname', - 'Use STARTTLS' => 'Use STARTTLS', - 'Use SSL' => 'Use SSL', - 'No encryption' => 'No encryption', - 'Do not use encryption' => 'Do not use encryption', + 'Use server hostname' => "Використовувати серверне ім'я хоста", + 'Use domain hostname' => "Використовувати доменне ім'я хоста", + 'Use STARTTLS' => 'Використовувати STARTTLS', + 'Use SSL' => 'Використовувати SSL', + 'No encryption' => 'Без шифрування', + 'Do not use encryption' => 'Не використовувати шифрування', - 'maximum characters length, including prefix' => 'maximum %s characters length, including prefix', + 'maximum characters length, including prefix' => 'максимальна %s кількість символів, включаючи префікс', ); diff --git a/web/inc/main.php b/web/inc/main.php index 9eccb124..75482cd1 100644 --- a/web/inc/main.php +++ b/web/inc/main.php @@ -11,7 +11,24 @@ require_once(dirname(__FILE__).'/i18n.php'); // Saving user IPs to the session for preventing session hijacking -$user_combined_ip = $_SERVER['REMOTE_ADDR'] .'|'. $_SERVER['HTTP_CLIENT_IP'] .'|'. $_SERVER['HTTP_X_FORWARDED_FOR'] .'|'. $_SERVER['HTTP_X_FORWARDED'] .'|'. $_SERVER['HTTP_FORWARDED_FOR'] .'|'. $_SERVER['HTTP_FORWARDED']; +$user_combined_ip = $_SERVER['REMOTE_ADDR']; + +if(isset($_SERVER['HTTP_CLIENT_IP'])){ + $user_combined_ip .= '|'. $_SERVER['HTTP_CLIENT_IP']; +} +if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ + $user_combined_ip .= '|'. $_SERVER['HTTP_X_FORWARDED_FOR']; +} +if(isset($_SERVER['HTTP_FORWARDED_FOR'])){ + $user_combined_ip .= '|'. $_SERVER['HTTP_FORWARDED_FOR']; +} +if(isset($_SERVER['HTTP_X_FORWARDED'])){ + $user_combined_ip .= '|'. $_SERVER['HTTP_X_FORWARDED']; +} +if(isset($_SERVER['HTTP_FORWARDED'])){ + $user_combined_ip .= '|'. $_SERVER['HTTP_FORWARDED']; +} + if(!isset($_SESSION['user_combined_ip'])){ $_SESSION['user_combined_ip'] = $user_combined_ip; diff --git a/web/list/server/index.php b/web/list/server/index.php index c37448ae..b7150778 100644 --- a/web/list/server/index.php +++ b/web/list/server/index.php @@ -65,6 +65,7 @@ if (isset($_GET['web'])) { include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/list_server_info.html'); exec (VESTA_CMD.'v-list-sys-web-status', $output, $return_var); foreach($output as $file) { + $file=str_replace('border="0"', 'border="1"', $file); echo $file . "\n"; } echo " \n\n\n";