mirror of
https://github.com/myvesta/vesta
synced 2025-08-19 21:04:07 -07:00
Merge branch 'master' of github.com:serghey-rodin/vesta
This commit is contained in:
commit
9b7015a1c7
11 changed files with 503 additions and 198 deletions
145
bin/v-add-backup-sftp-host
Executable file
145
bin/v-add-backup-sftp-host
Executable file
|
@ -0,0 +1,145 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# info: add backup sftp host
|
||||||
|
# options: HOST USERNAME [PASSWORD] [PATH] [PORT]
|
||||||
|
#
|
||||||
|
# The function adds sftp host for system backups
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Variable&Function #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Argument defenition
|
||||||
|
sftp_host=$1
|
||||||
|
sftp_user=$2
|
||||||
|
sftp_password=${3-******}
|
||||||
|
sftp_path=${4-backup}
|
||||||
|
sftp_port=${5-22}
|
||||||
|
|
||||||
|
A3='******'
|
||||||
|
|
||||||
|
# Includes
|
||||||
|
source $VESTA/func/main.sh
|
||||||
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
|
# Replace password with ******
|
||||||
|
if [[ $A3 != '******' ]]
|
||||||
|
then
|
||||||
|
EVENT="${EVENT/$sftp_password/******}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# sftp command function
|
||||||
|
sftpc() {
|
||||||
|
expect -f "-" <<EOF "$@"
|
||||||
|
set count 0
|
||||||
|
spawn /usr/bin/sftp -o StrictHostKeyChecking=no -o Port=$sftp_port $sftp_user@$sftp_host
|
||||||
|
expect {
|
||||||
|
"password:" {
|
||||||
|
send "$sftp_password\r"
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
|
|
||||||
|
-re "Couldn't|(.*)disconnect|(.*)stalled|(.*)not found" {
|
||||||
|
set count \$argc
|
||||||
|
set output "Disconnected."
|
||||||
|
set rc $E_FTP
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
|
|
||||||
|
-re ".*denied.*(publickey|password)." {
|
||||||
|
set output "Permission denied, wrong publickey or password."
|
||||||
|
set rc $E_CONNECT
|
||||||
|
}
|
||||||
|
|
||||||
|
"sftp>" {
|
||||||
|
if {\$count < \$argc} {
|
||||||
|
set arg [lindex \$argv \$count]
|
||||||
|
send "\$arg\r"
|
||||||
|
incr count
|
||||||
|
} else {
|
||||||
|
send "exit\r"
|
||||||
|
set output "Disconnected."
|
||||||
|
if {[info exists rc] != 1} {
|
||||||
|
set rc $OK
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
|
|
||||||
|
timeout {
|
||||||
|
set output "Connection timeout."
|
||||||
|
set rc $E_CONNECT
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if {[info exists output] == 1} {
|
||||||
|
puts "\$output"
|
||||||
|
}
|
||||||
|
|
||||||
|
exit \$rc
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Verifications #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
check_expect=$(which expect)
|
||||||
|
if [[ ! -n $check_expect ]]
|
||||||
|
then
|
||||||
|
echo "Error: \"expect\" utility not found"
|
||||||
|
log_event "$E_NOTEXIST" "$EVENT"
|
||||||
|
exit $E_NOTEXIST
|
||||||
|
fi
|
||||||
|
|
||||||
|
check_args '2' "$#" "HOST USERNAME [PASSWORD] [PATH] [PORT]"
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Action #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Checking network connection and write permissions
|
||||||
|
sftmpdir="$sftp_path/vst.bK76A9SUkt"
|
||||||
|
sftpc "mkdir $sftp_path" > /dev/null 2>&1
|
||||||
|
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir"
|
||||||
|
rc=$?
|
||||||
|
if [[ "$rc" != 0 ]]
|
||||||
|
then
|
||||||
|
case $rc in
|
||||||
|
$E_CONNECT) echo "Error: can't login to sftp host";;
|
||||||
|
$E_FTP) echo "Error: can't create temp folder on the sftp host";;
|
||||||
|
esac
|
||||||
|
log_event "$rc" "$EVENT"
|
||||||
|
exit "$rc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Adding sftp backup config file
|
||||||
|
echo "HOST='$sftp_host'
|
||||||
|
USERNAME='$sftp_user'
|
||||||
|
PASSWORD='$sftp_password'
|
||||||
|
BPATH='$sftp_path'
|
||||||
|
PORT='$sftp_port'
|
||||||
|
TIME='$TIME'
|
||||||
|
DATE='$DATE'" > $VESTA/conf/sftp.backup.conf
|
||||||
|
chmod 660 $VESTA/conf/sftp.backup.conf
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Vesta #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Update vesta.conf
|
||||||
|
if [ -z "$(grep LANGUAGE $VESTA/conf/vesta.conf)" ]; then
|
||||||
|
echo "BACKUP_SYSTEM='ftp'" >> $VESTA/conf/vesta.conf
|
||||||
|
else
|
||||||
|
bckp=$(echo "$BACKUP_SYSTEM,sftp" |\
|
||||||
|
sed "s/,/\n/g"|\
|
||||||
|
sort -r -u |\
|
||||||
|
sed "/^$/d"|\
|
||||||
|
sed ':a;N;$!ba;s/\n/,/g')
|
||||||
|
sed -i "s/BACKUP_SYSTEM=.*/BACKUP_SYSTEM='$bckp'/g" $VESTA/conf/vesta.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
echo "$sftp_host/$sftp_path successfully added as backup destination"
|
||||||
|
log_event "$OK" "$EVENT"
|
||||||
|
|
||||||
|
exit
|
|
@ -692,6 +692,158 @@ ftp_backup() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# sftp command function
|
||||||
|
sftpc() {
|
||||||
|
expect -f "-" <<EOF "$@"
|
||||||
|
set timeout 60
|
||||||
|
set count 0
|
||||||
|
spawn /usr/bin/sftp -o StrictHostKeyChecking=no -o Port=$PORT $USERNAME@$HOST
|
||||||
|
expect {
|
||||||
|
"password:" {
|
||||||
|
send "$PASSWORD\r"
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
|
|
||||||
|
-re "Couldn't|(.*)disconnect|(.*)stalled|(.*)not found" {
|
||||||
|
set count \$argc
|
||||||
|
set output "Disconnected."
|
||||||
|
set rc $E_FTP
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
|
|
||||||
|
-re ".*denied.*(publickey|password)." {
|
||||||
|
set output "Permission denied, wrong publickey or password."
|
||||||
|
set rc $E_CONNECT
|
||||||
|
}
|
||||||
|
|
||||||
|
-re "\[0-9]*%" {
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
|
|
||||||
|
"sftp>" {
|
||||||
|
if {\$count < \$argc} {
|
||||||
|
set arg [lindex \$argv \$count]
|
||||||
|
send "\$arg\r"
|
||||||
|
incr count
|
||||||
|
} else {
|
||||||
|
send "exit\r"
|
||||||
|
set output "Disconnected."
|
||||||
|
if {[info exists rc] != 1} {
|
||||||
|
set rc $OK
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
|
|
||||||
|
timeout {
|
||||||
|
set output "Connection timeout."
|
||||||
|
set rc $E_CONNECT
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if {[info exists output] == 1} {
|
||||||
|
puts "\$output"
|
||||||
|
}
|
||||||
|
|
||||||
|
exit \$rc
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
sftp_backup() {
|
||||||
|
#Checking expect installation
|
||||||
|
check_expect=$(which expect)
|
||||||
|
if [[ ! -n $check_expect ]]
|
||||||
|
then
|
||||||
|
echo "Error: \"expect\" utility not found"
|
||||||
|
log_event "$E_NOTEXIST" "$EVENT"
|
||||||
|
exit $E_NOTEXIST
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checking config
|
||||||
|
if [ ! -e "$VESTA/conf/sftp.backup.conf" ]; then
|
||||||
|
sftp_conf_error="Can't open $VESTA/conf/sftp.backup.conf"
|
||||||
|
echo "$sftp_conf_error" | $send_mail -s "$subj" $email
|
||||||
|
echo "Error: $VESTA/conf/sftp.backup.conf doesn't exist"
|
||||||
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
|
log_event "$E_NOTEXIST" "$EVENT"
|
||||||
|
exit $E_NOTEXIST
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Parse config
|
||||||
|
source $VESTA/conf/sftp.backup.conf
|
||||||
|
|
||||||
|
# Set current data
|
||||||
|
DATE=$(date +%F)
|
||||||
|
TIME=$(date +%T)
|
||||||
|
|
||||||
|
# Set default port
|
||||||
|
if [ -z "$(grep 'PORT=' $VESTA/conf/sftp.backup.conf)" ]; then
|
||||||
|
PORT='22'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checking variables
|
||||||
|
if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
|
||||||
|
rm -rf $tmpdir
|
||||||
|
echo "Can't parse sftp backup configuration" |\
|
||||||
|
$send_mail -s "$subj" $email
|
||||||
|
echo "Error: Parsing error"
|
||||||
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
|
log_event "$E_PARSING" "$EVENT"
|
||||||
|
exit $E_PARSING
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Debug info
|
||||||
|
echo -e "$(date "+%F %T") Remote: $HOST/$BPATH/$user.$DATE.tar"
|
||||||
|
|
||||||
|
# Checking network connection and write permissions
|
||||||
|
echo -e "$(date "+%F %T") Checking network connection and write permissions ..."
|
||||||
|
sftmpdir="$BPATH/vst.bK76A9SUkt"
|
||||||
|
sftpc "mkdir $BPATH" > /dev/null 2>&1
|
||||||
|
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
|
||||||
|
rc=$?
|
||||||
|
if [[ "$rc" != 0 ]]
|
||||||
|
then
|
||||||
|
rm -rf $tmpdir
|
||||||
|
case $rc in
|
||||||
|
$E_CONNECT) echo "Error: can't login to sftp host" | $send_mail -s "$subj" $email;;
|
||||||
|
$E_FTP) echo "Error: can't create temp folder on the sftp host" | $send_mail -s "$subj" $email;;
|
||||||
|
esac
|
||||||
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
|
log_event "$rc" "$EVENT"
|
||||||
|
exit "$rc"
|
||||||
|
fi
|
||||||
|
echo -e "$(date "+%F %T") Connection established"
|
||||||
|
|
||||||
|
# Checking retention
|
||||||
|
echo -e "$(date "+%F %T") Checking retention ..."
|
||||||
|
backup_list=$(sftpc "cd $BPATH" "ls -l" |awk '{print $9}' |grep "^$user\.")
|
||||||
|
backups_count=$(echo "$backup_list" | wc -l)
|
||||||
|
if [ "$backups_count" -ge "$BACKUPS" ]; then
|
||||||
|
backups_rm_number=$((backups_count - BACKUPS + 1))
|
||||||
|
for backup in $(echo "$backup_list" | head -n $backups_rm_number); do
|
||||||
|
backup_date=$(echo $backup | sed -e "s/$user.//" -e "s/.tar.*$//")
|
||||||
|
if [ -z $deprecated ]; then deprecated="$backup_date"; else deprecated="$deprecated $backup_date"; fi
|
||||||
|
echo -e "$(date "+%F %T") Roated sftp backup: $backup_date"
|
||||||
|
msg="$msg\n$(date "+%F %T") Roated sftp backup: $backup_date"
|
||||||
|
sftpc "cd $BPATH" "rm $backup" > /dev/null 2>&1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Uploading backup archive
|
||||||
|
echo -e "$(date "+%F %T") Uploading $user.$DATE.tar ..."
|
||||||
|
if [ "$localbackup" = 'yes' ]; then
|
||||||
|
cd $BACKUP
|
||||||
|
sftpc "cd $BPATH" "put $user.$DATE.tar" > /dev/null 2>&1
|
||||||
|
else
|
||||||
|
cd $tmpdir
|
||||||
|
tar -cf $BACKUP/$user.$DATE.tar .
|
||||||
|
cd $BACKUP/
|
||||||
|
sftpc "cd $BPATH" "put $user.$DATE.tar" > /dev/null 2>&1
|
||||||
|
rm -f $user.$DATE.tar
|
||||||
|
fi
|
||||||
|
echo -e "$(date "+%F %T") Upload complete"
|
||||||
|
}
|
||||||
|
|
||||||
echo "-- SUMMARY --"
|
echo "-- SUMMARY --"
|
||||||
msg="$msg\n-- SUMMARY --"
|
msg="$msg\n-- SUMMARY --"
|
||||||
|
|
||||||
|
@ -700,6 +852,7 @@ for backup_type in $(echo -e "${BACKUP_SYSTEM//,/\\n}"); do
|
||||||
case $backup_type in
|
case $backup_type in
|
||||||
local) local_backup ;;
|
local) local_backup ;;
|
||||||
ftp) ftp_backup ;;
|
ftp) ftp_backup ;;
|
||||||
|
sftp) sftp_backup ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
46
bin/v-delete-backup-sftp-host
Normal file
46
bin/v-delete-backup-sftp-host
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# info: delete backup sftp server
|
||||||
|
# options: NONE
|
||||||
|
#
|
||||||
|
# The function deletes sftp backup host
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Variable&Function #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Includes
|
||||||
|
source $VESTA/func/main.sh
|
||||||
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Verifications #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Action #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Delete configuration file
|
||||||
|
rm -f $VESTA/conf/sftp.backup.conf
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Vesta #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Update vesta.conf
|
||||||
|
bckp=$(echo "$BACKUP_SYSTEM" |\
|
||||||
|
sed "s/,/\n/g"|\
|
||||||
|
sed "s/sftp//" |\
|
||||||
|
sed "/^$/d"|\
|
||||||
|
sed ':a;N;$!ba;s/\n/,/g')
|
||||||
|
sed -i "s/BACKUP_SYSTEM=.*/BACKUP_SYSTEM='$bckp'/g" $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
echo "sftp host successfulle removed from configuration"
|
||||||
|
log_event "$OK" "$EVENT"
|
||||||
|
|
||||||
|
exit
|
|
@ -12,6 +12,7 @@
|
||||||
# Defining absolute path for iptables and modprobe
|
# Defining absolute path for iptables and modprobe
|
||||||
iptables="/sbin/iptables"
|
iptables="/sbin/iptables"
|
||||||
modprobe="/sbin/modprobe"
|
modprobe="/sbin/modprobe"
|
||||||
|
sysctl="/sbin/sysctl"
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
source /etc/profile.d/vesta.sh
|
source /etc/profile.d/vesta.sh
|
||||||
|
@ -38,11 +39,16 @@ if [ ! -e "$rules" ]; then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
$sysctl net.netfilter.nf_conntrack_max >/dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
conntrack='no'
|
||||||
|
fi
|
||||||
|
|
||||||
# Checking conntrack module avaiabilty
|
# Checking conntrack module avaiabilty
|
||||||
$modprobe nf_conntrack >/dev/null 2>&1
|
$modprobe nf_conntrack >/dev/null 2>&1
|
||||||
$modprobe nf_conntrack_ftp >/dev/null 2>&1
|
$modprobe nf_conntrack_ftp >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
stateful='no'
|
conntrack_ftp='no'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Creating temporary file
|
# Creating temporary file
|
||||||
|
@ -75,7 +81,7 @@ for line in $(sort -r -n -k 2 -t \' $rules); do
|
||||||
|
|
||||||
# Checking FTP for contrack module
|
# Checking FTP for contrack module
|
||||||
if [ "$TYPE" = "FTP" ] || [ "$PORT" = '21' ]; then
|
if [ "$TYPE" = "FTP" ] || [ "$PORT" = '21' ]; then
|
||||||
if [ "$stateful" != 'no' ]; then
|
if [ "$conntrack_ftp" != 'no' ]; then
|
||||||
state="-m conntrack --ctstate NEW"
|
state="-m conntrack --ctstate NEW"
|
||||||
else
|
else
|
||||||
port="-m multiport --dports 20,21,12000:12100"
|
port="-m multiport --dports 20,21,12000:12100"
|
||||||
|
@ -101,7 +107,7 @@ for p_rule in $(cat $ports); do
|
||||||
done
|
done
|
||||||
|
|
||||||
# Enabling stateful support
|
# Enabling stateful support
|
||||||
if [ "$stateful" != 'no' ]; then
|
if [ "$conntrack" != 'no' ]; then
|
||||||
str="$iptables -A INPUT -p tcp -m state"
|
str="$iptables -A INPUT -p tcp -m state"
|
||||||
str="$str --state ESTABLISHED,RELATED -j ACCEPT"
|
str="$str --state ESTABLISHED,RELATED -j ACCEPT"
|
||||||
echo "$str" >> $tmp
|
echo "$str" >> $tmp
|
||||||
|
|
|
@ -2,3 +2,27 @@ protocols = imap pop3
|
||||||
listen = *, ::
|
listen = *, ::
|
||||||
base_dir = /var/run/dovecot/
|
base_dir = /var/run/dovecot/
|
||||||
!include conf.d/*.conf
|
!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
|
||||||
|
}
|
||||||
|
mailbox Junk {
|
||||||
|
auto = subscribe
|
||||||
|
special_use = \Junk
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ ServerName "FTP"
|
||||||
ServerIdent on "FTP Server ready."
|
ServerIdent on "FTP Server ready."
|
||||||
ServerAdmin root@localhost
|
ServerAdmin root@localhost
|
||||||
DefaultServer on
|
DefaultServer on
|
||||||
VRootEngine on
|
VRootEngine off
|
||||||
DefaultRoot ~ !adm
|
DefaultRoot ~ !adm
|
||||||
AuthPAMConfig proftpd
|
AuthPAMConfig proftpd
|
||||||
AuthOrder mod_auth_pam.c* mod_auth_unix.c
|
AuthOrder mod_auth_pam.c* mod_auth_unix.c
|
||||||
|
|
|
@ -3,51 +3,18 @@
|
||||||
##
|
##
|
||||||
|
|
||||||
protocol imap {
|
protocol imap {
|
||||||
# Maximum IMAP command line length. Some clients generate very long command
|
mail_plugins = $mail_plugins autocreate
|
||||||
# lines with huge mailboxes, so you may need to raise this if you get
|
}
|
||||||
# "Too long argument" or "IMAP command line too large" errors often.
|
|
||||||
#imap_max_line_length = 64k
|
plugin {
|
||||||
|
autocreate = Trash
|
||||||
# Maximum number of IMAP connections allowed for a user from each IP address.
|
autocreate2 = Spam
|
||||||
# NOTE: The username is compared case-sensitively.
|
autocreate3 = Sent
|
||||||
#mail_max_userip_connections = 10
|
autocreate4 = Drafts
|
||||||
|
#autocreate5 = Custom
|
||||||
# Space separated list of plugins to load (default is global mail_plugins).
|
autosubscribe = Trash
|
||||||
#mail_plugins = $mail_plugins
|
autosubscribe2 = Spam
|
||||||
|
autosubscribe3 = Sent
|
||||||
# IMAP logout format string:
|
autosubscribe4 = Drafts
|
||||||
# %i - total number of bytes read from client
|
#autosubscribe5 = Custom
|
||||||
# %o - total number of bytes sent to client
|
|
||||||
#imap_logout_format = bytes=%i/%o
|
|
||||||
|
|
||||||
# Override the IMAP CAPABILITY response. If the value begins with '+',
|
|
||||||
# add the given capabilities on top of the defaults (e.g. +XFOO XBAR).
|
|
||||||
#imap_capability =
|
|
||||||
|
|
||||||
# How long to wait between "OK Still here" notifications when client is
|
|
||||||
# IDLEing.
|
|
||||||
#imap_idle_notify_interval = 2 mins
|
|
||||||
|
|
||||||
# ID field names and values to send to clients. Using * as the value makes
|
|
||||||
# Dovecot use the default value. The following fields have default values
|
|
||||||
# currently: name, version, os, os-version, support-url, support-email.
|
|
||||||
#imap_id_send =
|
|
||||||
|
|
||||||
# ID fields sent by client to log. * means everything.
|
|
||||||
#imap_id_log =
|
|
||||||
|
|
||||||
# Workarounds for various client bugs:
|
|
||||||
# delay-newmail:
|
|
||||||
# Send EXISTS/RECENT new mail notifications only when replying to NOOP
|
|
||||||
# and CHECK commands. Some clients ignore them otherwise, for example OSX
|
|
||||||
# Mail (<v2.1). Outlook Express breaks more badly though, without this it
|
|
||||||
# may show user "Message no longer in server" errors. Note that OE6 still
|
|
||||||
# breaks even with this workaround if synchronization is set to
|
|
||||||
# "Headers Only".
|
|
||||||
# tb-extra-mailbox-sep:
|
|
||||||
# With mbox storage a mailbox can contain either mails or submailboxes,
|
|
||||||
# but not both. Thunderbird separates these two by forcing server to
|
|
||||||
# accept '/' suffix in mailbox names in subscriptions list.
|
|
||||||
# The list is space-separated.
|
|
||||||
#imap_client_workarounds =
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,56 +3,18 @@
|
||||||
##
|
##
|
||||||
|
|
||||||
protocol imap {
|
protocol imap {
|
||||||
# Maximum IMAP command line length. Some clients generate very long command
|
mail_plugins = $mail_plugins autocreate
|
||||||
# lines with huge mailboxes, so you may need to raise this if you get
|
}
|
||||||
# "Too long argument" or "IMAP command line too large" errors often.
|
|
||||||
#imap_max_line_length = 64k
|
plugin {
|
||||||
|
autocreate = Trash
|
||||||
# Maximum number of IMAP connections allowed for a user from each IP address.
|
autocreate2 = Spam
|
||||||
# NOTE: The username is compared case-sensitively.
|
autocreate3 = Sent
|
||||||
#mail_max_userip_connections = 10
|
autocreate4 = Drafts
|
||||||
|
#autocreate5 = Custom
|
||||||
# Space separated list of plugins to load (default is global mail_plugins).
|
autosubscribe = Trash
|
||||||
#mail_plugins = $mail_plugins
|
autosubscribe2 = Spam
|
||||||
|
autosubscribe3 = Sent
|
||||||
# IMAP logout format string:
|
autosubscribe4 = Drafts
|
||||||
# %i - total number of bytes read from client
|
#autosubscribe5 = Custom
|
||||||
# %o - total number of bytes sent to client
|
|
||||||
#imap_logout_format = bytes=%i/%o
|
|
||||||
|
|
||||||
# Override the IMAP CAPABILITY response. If the value begins with '+',
|
|
||||||
# add the given capabilities on top of the defaults (e.g. +XFOO XBAR).
|
|
||||||
#imap_capability =
|
|
||||||
|
|
||||||
# How long to wait between "OK Still here" notifications when client is
|
|
||||||
# IDLEing.
|
|
||||||
#imap_idle_notify_interval = 2 mins
|
|
||||||
|
|
||||||
# ID field names and values to send to clients. Using * as the value makes
|
|
||||||
# Dovecot use the default value. The following fields have default values
|
|
||||||
# currently: name, version, os, os-version, support-url, support-email.
|
|
||||||
#imap_id_send =
|
|
||||||
|
|
||||||
# ID fields sent by client to log. * means everything.
|
|
||||||
#imap_id_log =
|
|
||||||
|
|
||||||
# Workarounds for various client bugs:
|
|
||||||
# delay-newmail:
|
|
||||||
# Send EXISTS/RECENT new mail notifications only when replying to NOOP
|
|
||||||
# and CHECK commands. Some clients ignore them otherwise, for example OSX
|
|
||||||
# Mail (<v2.1). Outlook Express breaks more badly though, without this it
|
|
||||||
# may show user "Message no longer in server" errors. Note that OE6 still
|
|
||||||
# breaks even with this workaround if synchronization is set to
|
|
||||||
# "Headers Only".
|
|
||||||
# tb-extra-mailbox-sep:
|
|
||||||
# Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and
|
|
||||||
# adds extra '/' suffixes to mailbox names. This option causes Dovecot to
|
|
||||||
# ignore the extra '/' instead of treating it as invalid mailbox name.
|
|
||||||
# tb-lsub-flags:
|
|
||||||
# Show \Noselect flags for LSUB replies with LAYOUT=fs (e.g. mbox).
|
|
||||||
# This makes Thunderbird realize they aren't selectable and show them
|
|
||||||
# greyed out, instead of only later giving "not selectable" popup error.
|
|
||||||
#
|
|
||||||
# The list is space-separated.
|
|
||||||
#imap_client_workarounds =
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -533,6 +533,7 @@ wget $CHOST/$VERSION/sudoers.conf -O /etc/sudoers
|
||||||
wget $CHOST/$VERSION/sudoers.admin.conf -O /etc/sudoers.d/admin
|
wget $CHOST/$VERSION/sudoers.admin.conf -O /etc/sudoers.d/admin
|
||||||
chmod 440 /etc/sudoers
|
chmod 440 /etc/sudoers
|
||||||
chmod 440 /etc/sudoers.d/admin
|
chmod 440 /etc/sudoers.d/admin
|
||||||
|
echo 'Defaults:admin !syslog' >>/etc/sudoers.d/admin
|
||||||
|
|
||||||
# NTP Synchronization
|
# NTP Synchronization
|
||||||
echo '#!/bin/sh' > /etc/cron.daily/ntpdate
|
echo '#!/bin/sh' > /etc/cron.daily/ntpdate
|
||||||
|
|
|
@ -534,6 +534,7 @@ wget $CHOST/$VERSION/sudoers.vestacp.conf -O /etc/sudoers.d/vestacp
|
||||||
wget $CHOST/$VERSION/sudoers.admin.conf -O /etc/sudoers.d/admin
|
wget $CHOST/$VERSION/sudoers.admin.conf -O /etc/sudoers.d/admin
|
||||||
chmod 440 /etc/sudoers.d/vestacp
|
chmod 440 /etc/sudoers.d/vestacp
|
||||||
chmod 440 /etc/sudoers.d/admin
|
chmod 440 /etc/sudoers.d/admin
|
||||||
|
echo 'Defaults:admin !syslog' >>/etc/sudoers.d/admin
|
||||||
|
|
||||||
# NTP Synchronization
|
# NTP Synchronization
|
||||||
echo '#!/bin/sh' > /etc/cron.daily/ntpdate
|
echo '#!/bin/sh' > /etc/cron.daily/ntpdate
|
||||||
|
|
|
@ -26,7 +26,7 @@ $LANG['ua'] = array(
|
||||||
'CRON' => 'CRON',
|
'CRON' => 'CRON',
|
||||||
'BACKUP' => 'BACKUP',
|
'BACKUP' => 'BACKUP',
|
||||||
|
|
||||||
'Add User' => 'Додати акаунт',
|
'Add User' => 'Додати користувача',
|
||||||
'Add Domain' => 'Додати домен',
|
'Add Domain' => 'Додати домен',
|
||||||
'Add Web Domain' => 'Додати WEB домен',
|
'Add Web Domain' => 'Додати WEB домен',
|
||||||
'Add DNS Domain' => 'Додати DNS домен',
|
'Add DNS Domain' => 'Додати DNS домен',
|
||||||
|
@ -45,10 +45,10 @@ $LANG['ua'] = array(
|
||||||
'Add one more FTP Account' => 'Додати ще один FTP акаунт',
|
'Add one more FTP Account' => 'Додати ще один FTP акаунт',
|
||||||
'Search' => 'Пошук',
|
'Search' => 'Пошук',
|
||||||
'Overall Statistics' => 'Загальна статистика',
|
'Overall Statistics' => 'Загальна статистика',
|
||||||
'Daily' => 'Щоденні',
|
'Daily' => 'Щоденний',
|
||||||
'Weekly' => 'Щотижневі',
|
'Weekly' => 'Щотижневий',
|
||||||
'Monthly' => 'Щомісячні',
|
'Monthly' => 'Щомісячний',
|
||||||
'Yearly' => 'Щорічні',
|
'Yearly' => 'Щорічний',
|
||||||
'Add' => 'Додати',
|
'Add' => 'Додати',
|
||||||
'Back' => 'Назад',
|
'Back' => 'Назад',
|
||||||
'Save' => 'Зберегти',
|
'Save' => 'Зберегти',
|
||||||
|
@ -56,21 +56,21 @@ $LANG['ua'] = array(
|
||||||
|
|
||||||
'toggle all' => 'виділити все',
|
'toggle all' => 'виділити все',
|
||||||
'apply to selected' => 'застосувати до вибраних',
|
'apply to selected' => 'застосувати до вибраних',
|
||||||
'rebuild' => 'перестворити',
|
'rebuild' => 'перебудувати',
|
||||||
'rebuild web' => 'перестворити WEB',
|
'rebuild web' => 'перебудувати WEB',
|
||||||
'rebuild dns' => 'перестворити DNS',
|
'rebuild dns' => 'перебудувати DNS',
|
||||||
'rebuild mail' => 'перестворити MAIL',
|
'rebuild mail' => 'перебудувати MAIL',
|
||||||
'rebuild db' => 'перестворити DB',
|
'rebuild db' => 'перебудувати DB',
|
||||||
'rebuild cron' => 'перестворити CRON',
|
'rebuild cron' => 'перебудувати CRON',
|
||||||
'update counters' => 'оновити лічильники',
|
'update counters' => 'оновити лічильники',
|
||||||
'suspend' => 'заблокувати',
|
'suspend' => 'заблокувати',
|
||||||
'unsuspend' => 'розблокувати',
|
'unsuspend' => 'розблокувати',
|
||||||
'delete' => 'видалити',
|
'delete' => 'видалити',
|
||||||
'show per user' => 'вибрати користувача',
|
'show per user' => 'по користувачам',
|
||||||
'login as' => 'увійти як',
|
'login as' => 'увійти як',
|
||||||
'logout' => 'вийти',
|
'logout' => 'вийти',
|
||||||
'edit' => 'редагувати',
|
'edit' => 'редагувати',
|
||||||
'open webstats' => 'відкрити звіт веб-аналітики',
|
'open webstats' => 'відкрити веб-статистику',
|
||||||
'view logs' => 'переглянути логи',
|
'view logs' => 'переглянути логи',
|
||||||
'list records' => 'показати записи: %s',
|
'list records' => 'показати записи: %s',
|
||||||
'add record' => 'додати запис',
|
'add record' => 'додати запис',
|
||||||
|
@ -88,14 +88,14 @@ $LANG['ua'] = array(
|
||||||
'update' => 'оновити',
|
'update' => 'оновити',
|
||||||
'generate' => 'згенерувати',
|
'generate' => 'згенерувати',
|
||||||
'Generate CSR' => 'Згенерувати CSR запит',
|
'Generate CSR' => 'Згенерувати CSR запит',
|
||||||
'reread IP' => 'оновити IP',
|
'reread IP' => 'перечитати IP',
|
||||||
'enable autoupdate' => 'увімкнути автооновлення',
|
'enable autoupdate' => 'увімкнути автооновлення',
|
||||||
'disable autoupdate' => 'вимкнути автооновлення',
|
'disable autoupdate' => 'вимкнути автооновлення',
|
||||||
'turn on notifications' => 'увімкнути сповіщення',
|
'turn on notifications' => 'увімкнути сповіщення',
|
||||||
'turn off notifications' => 'вимкнути сповіщення',
|
'turn off notifications' => 'вимкнути сповіщення',
|
||||||
|
|
||||||
'Adding User' => 'Додавання акаунту',
|
'Adding User' => 'Додавання користувача',
|
||||||
'Editing User' => 'Редагування акаунту',
|
'Editing User' => 'Редагування користувача',
|
||||||
'Adding Domain' => 'Додавання домену',
|
'Adding Domain' => 'Додавання домену',
|
||||||
'Editing Domain' => 'Редагування домену',
|
'Editing Domain' => 'Редагування домену',
|
||||||
'Adding DNS Domain' => 'Додавання DNS домену',
|
'Adding DNS Domain' => 'Додавання DNS домену',
|
||||||
|
@ -114,7 +114,7 @@ $LANG['ua'] = array(
|
||||||
'Editing Package' => 'Редагування пакету',
|
'Editing Package' => 'Редагування пакету',
|
||||||
'Adding IP address' => 'Додавання IP адреси',
|
'Adding IP address' => 'Додавання IP адреси',
|
||||||
'Editing IP Address' => 'Редагування IP адреси',
|
'Editing IP Address' => 'Редагування IP адреси',
|
||||||
'Editing Backup Exclusions' => 'Налаштування вийнятків',
|
'Editing Backup Exclusions' => 'Налаштування вийнятків архіву',
|
||||||
'Generating CSR' => 'Генерування CSR запиту',
|
'Generating CSR' => 'Генерування CSR запиту',
|
||||||
'Listing' => 'Список',
|
'Listing' => 'Список',
|
||||||
'Search Results' => 'Результати пошуку',
|
'Search Results' => 'Результати пошуку',
|
||||||
|
@ -150,7 +150,7 @@ $LANG['ua'] = array(
|
||||||
'Web' => 'Веб',
|
'Web' => 'Веб',
|
||||||
'Mail' => 'Пошта',
|
'Mail' => 'Пошта',
|
||||||
'Databases' => 'Бази даних',
|
'Databases' => 'Бази даних',
|
||||||
'User Directories' => 'Теки Користувача',
|
'User Directories' => 'Теки користувача',
|
||||||
'Template' => 'Шаблон',
|
'Template' => 'Шаблон',
|
||||||
'Web Template' => 'Шаблон Apache',
|
'Web Template' => 'Шаблон Apache',
|
||||||
'Proxy Template' => 'Шаблон Nginx',
|
'Proxy Template' => 'Шаблон Nginx',
|
||||||
|
@ -161,7 +161,7 @@ $LANG['ua'] = array(
|
||||||
'per domain' => 'на домен',
|
'per domain' => 'на домен',
|
||||||
'DNS Domains' => 'DNS домени',
|
'DNS Domains' => 'DNS домени',
|
||||||
'DNS Domains' => 'DNS домени',
|
'DNS Domains' => 'DNS домени',
|
||||||
'DNS records' => 'DNS запису',
|
'DNS records' => 'DNS записи',
|
||||||
'Name Servers' => 'Сервери імен',
|
'Name Servers' => 'Сервери імен',
|
||||||
'Mail Domains' => 'Поштові домени',
|
'Mail Domains' => 'Поштові домени',
|
||||||
'Mail Accounts' => 'Поштові акаунти',
|
'Mail Accounts' => 'Поштові акаунти',
|
||||||
|
@ -173,19 +173,19 @@ $LANG['ua'] = array(
|
||||||
'backup exclusions' => 'вийнятки архіву',
|
'backup exclusions' => 'вийнятки архіву',
|
||||||
'template' => 'шаблон',
|
'template' => 'шаблон',
|
||||||
'SSL Support' => 'Підтримка SSL',
|
'SSL Support' => 'Підтримка SSL',
|
||||||
'SSL Home Directory' => 'Тека SSL',
|
'SSL Home Directory' => 'Домашня тека SSL',
|
||||||
'Proxy Support' => 'Підтримка Nginx',
|
'Proxy Support' => 'Підтримка Nginx',
|
||||||
'Proxy Extensions' => 'Опрацювання Nginx',
|
'Proxy Extensions' => 'Розширення Nginx',
|
||||||
'Web Statistics' => 'Статистика сайту',
|
'Web Statistics' => 'Веб статистика',
|
||||||
'Additional FTP Account' => 'Додатковий FTP',
|
'Additional FTP Account' => 'Додатковий FTP акаунт',
|
||||||
'SOA' => 'SOA',
|
'SOA' => 'SOA',
|
||||||
'TTL' => 'TTL',
|
'TTL' => 'TTL',
|
||||||
'Expire' => 'Спливає',
|
'Expire' => 'Спливає',
|
||||||
'Records' => 'DNS записи',
|
'Records' => 'Записи',
|
||||||
'Catchall email' => 'Пастка пошти',
|
'Catchall email' => 'Пастка пошти',
|
||||||
'AntiVirus Support' => 'Антивірус',
|
'AntiVirus Support' => 'Підтримка антивірусу',
|
||||||
'AntiSpam Support' => 'Антиспам',
|
'AntiSpam Support' => 'Підтримка антиспаму',
|
||||||
'DKIM Support' => 'DKIM',
|
'DKIM Support' => 'Підтримка DKIM',
|
||||||
'Accounts' => 'Акаунти',
|
'Accounts' => 'Акаунти',
|
||||||
'Quota' => 'Квота',
|
'Quota' => 'Квота',
|
||||||
'Autoreply' => 'Автовідповідач',
|
'Autoreply' => 'Автовідповідач',
|
||||||
|
@ -201,8 +201,8 @@ $LANG['ua'] = array(
|
||||||
'Month' => 'Місяць',
|
'Month' => 'Місяць',
|
||||||
'Day of week' => 'День тижня',
|
'Day of week' => 'День тижня',
|
||||||
'local' => 'локальний',
|
'local' => 'локальний',
|
||||||
'Run Time' => 'Виконаний за',
|
'Run Time' => 'Виконано за',
|
||||||
'Backup Size' => 'Розмір',
|
'Backup Size' => 'Розмір архіву',
|
||||||
'SYS' => 'Системний',
|
'SYS' => 'Системний',
|
||||||
'Domains' => 'Домени',
|
'Domains' => 'Домени',
|
||||||
'Status' => 'Статус',
|
'Status' => 'Статус',
|
||||||
|
@ -211,14 +211,14 @@ $LANG['ua'] = array(
|
||||||
'Owner' => 'Власник',
|
'Owner' => 'Власник',
|
||||||
'Users' => 'Користувачі',
|
'Users' => 'Користувачі',
|
||||||
'Load Average' => 'Загальне Навантаження',
|
'Load Average' => 'Загальне Навантаження',
|
||||||
'Memory Usage' => 'Використання Пам`яті',
|
'Memory Usage' => 'Використання Пам\'яті',
|
||||||
'HTTPD Usage' => 'Web сервер',
|
'HTTPD Usage' => 'Використання HTTPd',
|
||||||
'NGINX Usage' => 'Nginx',
|
'NGINX Usage' => 'Використання Nginx',
|
||||||
'MySQL Usage on localhost' => 'Сервер бази даних MySQL',
|
'MySQL Usage on localhost' => 'Локальний сервер бази даних MySQL',
|
||||||
'PostgreSQL Usage on localhost' => 'Сервер бази даних PostgreSQL',
|
'PostgreSQL Usage on localhost' => 'Локальний сервер бази даних PostgreSQL',
|
||||||
'Bandwidth Usage eth0' => 'Використання мережі: eth0',
|
'Bandwidth Usage eth0' => 'Використання мережі eth0',
|
||||||
'FTP Usage' => 'FTP сервер',
|
'FTP Usage' => 'Використання FTP',
|
||||||
'SSH Usage' => 'SSH сервер',
|
'SSH Usage' => 'Використання SSH',
|
||||||
'reverse proxy' => 'зворотній проксі',
|
'reverse proxy' => 'зворотній проксі',
|
||||||
'web server' => 'Web сервер',
|
'web server' => 'Web сервер',
|
||||||
'dns server' => 'DNS сервер ',
|
'dns server' => 'DNS сервер ',
|
||||||
|
@ -230,7 +230,7 @@ $LANG['ua'] = array(
|
||||||
'ftp server' => 'FTP сервер',
|
'ftp server' => 'FTP сервер',
|
||||||
'job scheduler' => 'планувальник завдань',
|
'job scheduler' => 'планувальник завдань',
|
||||||
'CPU' => 'Процесор',
|
'CPU' => 'Процесор',
|
||||||
'Memory' => 'Пам`ять',
|
'Memory' => 'Пам\'ять',
|
||||||
'Uptime' => 'Запущений',
|
'Uptime' => 'Запущений',
|
||||||
'core package' => 'головний пакет',
|
'core package' => 'головний пакет',
|
||||||
'php interpreter' => 'PHP інтерпретатор',
|
'php interpreter' => 'PHP інтерпретатор',
|
||||||
|
@ -238,14 +238,14 @@ $LANG['ua'] = array(
|
||||||
'Version' => 'Версія',
|
'Version' => 'Версія',
|
||||||
'Release' => 'Реліз',
|
'Release' => 'Реліз',
|
||||||
'Architecture' => 'Архітектура',
|
'Architecture' => 'Архітектура',
|
||||||
'Object' => 'Об`єкт',
|
'Object' => 'Об\'єкт',
|
||||||
'Owner' => 'Власник',
|
'Owner' => 'Власник',
|
||||||
'Username' => 'Акаунт',
|
'Username' => 'Акаунт',
|
||||||
'Password' => 'Пароль',
|
'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' => 'Шаблон за замовчуванням',
|
||||||
|
@ -257,12 +257,12 @@ $LANG['ua'] = array(
|
||||||
'Aliases' => 'Аліаси',
|
'Aliases' => 'Аліаси',
|
||||||
'SSL Certificate' => 'SSL сертификат',
|
'SSL Certificate' => 'SSL сертификат',
|
||||||
'SSL Key' => 'Ключ SSL сертифікату',
|
'SSL Key' => 'Ключ SSL сертифікату',
|
||||||
'SSL Certificate Authority / Intermediate' => 'Центр сертифікації SSL / Intermediate',
|
'SSL Certificate Authority / Intermediate' => 'Центр сертифікації SSL / Проміжний',
|
||||||
'SSL CSR' => 'SSL CSR запит',
|
'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' => 'Префікс %s буде автоматично додано до назви акаунту',
|
'Prefix will be automaticaly added to username' => 'Префікс %s буде автоматично додано до назви акаунту',
|
||||||
'Send FTP credentials to email' => 'Відправити дані FTP акаунту за адресою',
|
'Send FTP credentials to email' => 'Відправити дані FTP акаунту за адресою',
|
||||||
|
@ -272,7 +272,7 @@ $LANG['ua'] = array(
|
||||||
'Record' => 'Запис / Піддомен',
|
'Record' => 'Запис / Піддомен',
|
||||||
'IP or Value' => 'IP адреса або Значення',
|
'IP or Value' => 'IP адреса або Значення',
|
||||||
'Priority' => 'Пріоритет',
|
'Priority' => 'Пріоритет',
|
||||||
'Record Number' => 'Порядковий номер',
|
'Record Number' => 'Порядковий номер запису',
|
||||||
'in megabytes' => 'в мегабайтах',
|
'in megabytes' => 'в мегабайтах',
|
||||||
'Message' => 'Повідомлення',
|
'Message' => 'Повідомлення',
|
||||||
'use local-part' => 'використовуйте тільки імена акаунтів',
|
'use local-part' => 'використовуйте тільки імена акаунтів',
|
||||||
|
@ -286,12 +286,12 @@ $LANG['ua'] = array(
|
||||||
'Netmask' => 'Маска підмережі',
|
'Netmask' => 'Маска підмережі',
|
||||||
'Interface' => 'Інтерфейс',
|
'Interface' => 'Інтерфейс',
|
||||||
'Shared' => 'Загальний',
|
'Shared' => 'Загальний',
|
||||||
'Assigned user' => 'Назначити користувачу',
|
'Assigned user' => 'Призначений користувач',
|
||||||
'Assigned domain' => 'Домен',
|
'Assigned domain' => 'Призначений домен',
|
||||||
'NAT IP association' => 'Асоційований NAT IP',
|
'NAT IP association' => 'Асоційований NAT IP',
|
||||||
'shell' => 'SSH доступ',
|
'shell' => 'оболонка',
|
||||||
'web domains' => 'Web домени',
|
'web domains' => 'Web домени',
|
||||||
'web aliases' => 'аліаси хостів',
|
'web aliases' => 'Web аліаси',
|
||||||
'dns records' => 'DNS записи',
|
'dns records' => 'DNS записи',
|
||||||
'mail domains' => 'поштові домени',
|
'mail domains' => 'поштові домени',
|
||||||
'mail accounts' => 'поштові акаунти',
|
'mail accounts' => 'поштові акаунти',
|
||||||
|
@ -299,7 +299,7 @@ $LANG['ua'] = array(
|
||||||
'databases' => 'бази даних',
|
'databases' => 'бази даних',
|
||||||
'cron jobs' => 'cron завдання',
|
'cron jobs' => 'cron завдання',
|
||||||
'backups' => 'архіви',
|
'backups' => 'архіви',
|
||||||
'quota' => 'квота диску',
|
'quota' => 'квота',
|
||||||
'day of week' => 'день тижня',
|
'day of week' => 'день тижня',
|
||||||
'cmd' => 'командний рядок',
|
'cmd' => 'командний рядок',
|
||||||
'users' => 'користувачі',
|
'users' => 'користувачі',
|
||||||
|
@ -317,26 +317,26 @@ $LANG['ua'] = array(
|
||||||
'IP address' => 'IP адреса',
|
'IP address' => 'IP адреса',
|
||||||
'netmask' => 'маска підмережі',
|
'netmask' => 'маска підмережі',
|
||||||
'interface' => 'інтерфейс',
|
'interface' => 'інтерфейс',
|
||||||
'assigned user' => 'обраний користувач',
|
'assigned user' => 'призначений користувач',
|
||||||
'ns1' => 'сервер імен #1',
|
'ns1' => 'сервер імен #1',
|
||||||
'ns2' => 'сервер імен #2',
|
'ns2' => 'сервер імен #2',
|
||||||
'user' => 'користувач',
|
'user' => 'користувач',
|
||||||
'email' => 'пошта',
|
'email' => 'пошта',
|
||||||
'first name' => 'ім`я',
|
'first name' => 'Ім\'я',
|
||||||
'last name' => 'прізвище',
|
'last name' => 'Прізвище',
|
||||||
'account' => 'акаунт',
|
'account' => 'акаунт',
|
||||||
'ssl certificate' => 'SSL сертификат',
|
'ssl certificate' => 'SSL сертификат',
|
||||||
'ssl key' => 'ключ SSL сертифікату',
|
'ssl key' => 'ключ SSL сертифікату',
|
||||||
'stats user password' => 'пароль доступу до статистики',
|
'stats user password' => 'пароль користувача статистики',
|
||||||
'stats username' => 'ім`я користувача статистики',
|
'stats username' => 'ім\'я користувача статистики',
|
||||||
'stats password' => 'пароль користувача статистики',
|
'stats password' => 'пароль статистики',
|
||||||
'ftp user password' => 'пароль доступу до FTP',
|
'ftp user password' => 'пароль доступу до FTP',
|
||||||
'ftp user' => 'користувач FTP',
|
'ftp user' => 'користувач FTP',
|
||||||
'Last 70 lines of %s.%s.log' => 'Останні 70 рядків файлу %s.%s.log',
|
'Last 70 lines of %s.%s.log' => 'Останні 70 рядків файлу %s.%s.log',
|
||||||
'Download AccessLog' => 'Завантажити AccessLog',
|
'Download AccessLog' => 'Завантажити AccessLog',
|
||||||
'Download ErrorLog' => 'Завантажити ErrorLog',
|
'Download ErrorLog' => 'Завантажити ErrorLog',
|
||||||
'Country' => 'Країна',
|
'Country' => 'Країна',
|
||||||
'2 letter code' => 'двобуквений код',
|
'2 letter code' => 'Двобуквений код',
|
||||||
'State / Province' => 'Область',
|
'State / Province' => 'Область',
|
||||||
'City / Locality' => 'Місто / Населений пункт',
|
'City / Locality' => 'Місто / Населений пункт',
|
||||||
'Organization' => 'Організація',
|
'Organization' => 'Організація',
|
||||||
|
@ -348,52 +348,52 @@ $LANG['ua'] = array(
|
||||||
'ranges are acceptable' => 'дозволені діапазони',
|
'ranges are acceptable' => 'дозволені діапазони',
|
||||||
'CIDR format is supported' => 'формат CIDR підтримується',
|
'CIDR format is supported' => 'формат CIDR підтримується',
|
||||||
|
|
||||||
'1 account' => ' користувачів на сторінці: 1',
|
'1 account' => ' 1 акаунт',
|
||||||
'%s accounts' => 'користувачів на сторінці: %s',
|
'%s accounts' => '%s акаунтів',
|
||||||
'1 domain' => 'доменів на сторінці: 1',
|
'1 domain' => '1 домен',
|
||||||
'%s domains' => 'доменів на сторінці: %s',
|
'%s domains' => '%s доменів',
|
||||||
'1 record' => 'записів на сторінці: 1',
|
'1 record' => '1 запис',
|
||||||
'%s records' => 'записів на сторінці: %s',
|
'%s records' => '%s записів',
|
||||||
'1 mail account' => 'акаунтів на сторінці: 1',
|
'1 mail account' => '1 поштовий акаунт',
|
||||||
'%s mail accounts' => 'акаунтів на сторінці: %s',
|
'%s mail accounts' => '%s поштових акаунтів',
|
||||||
'1 database' => 'баз даних на сторінці: 1',
|
'1 database' => '1 база даних',
|
||||||
'%s databases' => 'баз даних на сторінці: %s',
|
'%s databases' => '%s баз даних',
|
||||||
'1 cron job' => 'завдань на сторінці: 1',
|
'1 cron job' => '1 завдання',
|
||||||
'%s cron jobs' => 'завдань на сторінці: %s',
|
'%s cron jobs' => '%s завдань',
|
||||||
'1 archive' => 'архівів на сторінці: 1',
|
'1 archive' => '1 архів',
|
||||||
'%s archives' => 'архівів на сторінці: %s',
|
'%s archives' => '%s архівів',
|
||||||
'1 package' => 'пакетів на сторінці: 1',
|
'1 package' => '1 пакет',
|
||||||
'%s packages' => 'пакетів на сторінці: %s',
|
'%s packages' => '%s пакет',
|
||||||
'1 IP address' => 'IP адрес на сторінці: 1',
|
'1 IP address' => '1 IP адреса',
|
||||||
'%s IP addresses' => 'IP адрес на сторінці: %s',
|
'%s IP addresses' => '%s IP адрес',
|
||||||
'1 month' => 'місяців на сторінці: 1',
|
'1 month' => '1 місяць',
|
||||||
'%s months' => 'місяців на сторінці: %s',
|
'%s months' => '%s місяців',
|
||||||
'1 log record' => 'записів на сторінці: 1',
|
'1 log record' => '1 журнальний запис',
|
||||||
'%s log records' => 'записів на сторінці %s',
|
'%s log records' => '%s журнальних записів',
|
||||||
'1 object' => 'об`єктів на сторінці: 1',
|
'1 object' => '1 об\'єкт',
|
||||||
'%s objects' => 'об`єктів на сторінці: %s',
|
'%s objects' => '%s об\'єктів',
|
||||||
'no exclusions' => 'немає виключень',
|
'no exclusions' => 'немає виключень',
|
||||||
'1 rule' => 'правил на сторінці: 1',
|
'1 rule' => '1 правило',
|
||||||
'%s rules' => 'правил на сторінці: %s',
|
'%s rules' => '%s правил',
|
||||||
'There are no currently banned IP' => 'Немає заблокованих IP',
|
'There are no currently banned IP' => 'Немає заблокованих IP',
|
||||||
|
|
||||||
'USER_CREATED_OK' => 'Аккаунт <a href="/edit/user/?user=%s"><b>%s</b></a> успішно створено',
|
'USER_CREATED_OK' => 'Аккаунт <a href="/edit/user/?user=%s"><b>%s</b></a> успішно створено',
|
||||||
'WEB_DOMAIN_CREATED_OK' => 'Домен <a href="/edit/web/?domain=%s"><b>%s</b></a> успішно створено.',
|
'WEB_DOMAIN_CREATED_OK' => 'WEB домен <a href="/edit/web/?domain=%s"><b>%s</b></a> успішно створено.',
|
||||||
'DNS_DOMAIN_CREATED_OK' => 'Домен <a href="/list/dns/?domain=%s"><b>%s</b></a> успішно створено.',
|
'DNS_DOMAIN_CREATED_OK' => 'DNS домен <a href="/list/dns/?domain=%s"><b>%s</b></a> успішно створено.',
|
||||||
'DNS_RECORD_CREATED_OK' => 'Запис <b>%s.%s</b> успішно створено.',
|
'DNS_RECORD_CREATED_OK' => 'DNS запис <b>%s.%s</b> успішно створено.',
|
||||||
'MAIL_DOMAIN_CREATED_OK' => 'Домен <a href="/list/mail/?domain=%s"><b>%s</b></a> успішно створено.',
|
'MAIL_DOMAIN_CREATED_OK' => 'Поштовий домен <a href="/list/mail/?domain=%s"><b>%s</b></a> успішно створено.',
|
||||||
'MAIL_ACCOUNT_CREATED_OK' => 'Аккаунт <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> успішно створено',
|
'MAIL_ACCOUNT_CREATED_OK' => 'Поштову скриньку <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> успішно створено',
|
||||||
'DATABASE_CREATED_OK' => 'Базу даних <a href="/edit/db/?database=%s"><b>%s</b></a> успішно створено',
|
'DATABASE_CREATED_OK' => 'Базу даних <a href="/edit/db/?database=%s"><b>%s</b></a> успішно створено',
|
||||||
'CRON_CREATED_OK' => 'Завдання успішно додано',
|
'CRON_CREATED_OK' => 'Cron завдання успішно додано',
|
||||||
'IP_CREATED_OK' => '"IP адресу <a href="/edit/ip/?ip=%s"><b>%s</b></a> успішно створено.',
|
'IP_CREATED_OK' => '"IP адресу <a href="/edit/ip/?ip=%s"><b>%s</b></a> успішно створено.',
|
||||||
'PACKAGE_CREATED_OK' => 'Пакет <a href="/edit/package/?package=%s"><b>%s</b></a> успішно створено.',
|
'PACKAGE_CREATED_OK' => 'Пакет <a href="/edit/package/?package=%s"><b>%s</b></a> успішно створено.',
|
||||||
'SSL_GENERATED_OK' => 'SSL cертификат успішно створено.',
|
'SSL_GENERATED_OK' => 'SSL cертификат успішно згенеровано.',
|
||||||
'RULE_CREATED_OK' => 'Правило успішно створено.',
|
'RULE_CREATED_OK' => 'Правило успішно створено.',
|
||||||
'Autoupdate has been successfully enabled' => 'Aвтооновлення було успішно увімкнено',
|
'Autoupdate has been successfully enabled' => 'Aвтооновлення було успішно увімкнено',
|
||||||
'Autoupdate has been successfully disabled' => 'Aвтооновлення було успішно вимкнено',
|
'Autoupdate has been successfully disabled' => 'Aвтооновлення було успішно вимкнено',
|
||||||
'Cronjob email reporting has been successfully enabled' => 'Cronjob звітування було успішно увімкнено',
|
'Cronjob email reporting has been successfully enabled' => 'Cronjob звітування було успішно увімкнено',
|
||||||
'Cronjob email reporting has been successfully disabled' => 'Cronjob звітування було успішно вимкнено',
|
'Cronjob email reporting has been successfully disabled' => 'Cronjob звітування було успішно вимкнено',
|
||||||
'Changes has been saved.' => 'Зміни збережені.',
|
'Changes has been saved.' => 'Зміни збережено.',
|
||||||
'Confirmation' => 'Підтвердження',
|
'Confirmation' => 'Підтвердження',
|
||||||
'DELETE_USER_CONFIRMATION' => 'Ви впевнені, що хочете видалити користувача %s?',
|
'DELETE_USER_CONFIRMATION' => 'Ви впевнені, що хочете видалити користувача %s?',
|
||||||
'SUSPEND_USER_CONFIRMATION' => 'Ви впевнені, що хочете заблокувати користувача %s?',
|
'SUSPEND_USER_CONFIRMATION' => 'Ви впевнені, що хочете заблокувати користувача %s?',
|
||||||
|
@ -434,9 +434,9 @@ $LANG['ua'] = array(
|
||||||
'SERVICE_ACTION_FAILED' => 'Не вдалось "%s" "%s"',
|
'SERVICE_ACTION_FAILED' => 'Не вдалось "%s" "%s"',
|
||||||
'IP address is in use' => 'IP адреса використовується',
|
'IP address is in use' => 'IP адреса використовується',
|
||||||
'BACKUP_SCHEDULED' => 'Завдання успішно додано в чергу. Після виконання ви отримаєте повний звіт по пошті.',
|
'BACKUP_SCHEDULED' => 'Завдання успішно додано в чергу. Після виконання ви отримаєте повний звіт по пошті.',
|
||||||
'BACKUP_EXISTS' => 'Резервне копіювання вже виконується, будь-ласка дочекайтесь закінчення.',
|
'BACKUP_EXISTS' => 'Резервне копіювання вже виконується, будь-ласка, дочекайтесь закінчення.',
|
||||||
'RESTORE_SCHEDULED' => 'Завдання успішно додано в чергу. Після виконання ви отримаєте повний звіт по пошті.',
|
'RESTORE_SCHEDULED' => 'Завдання успішно додано в чергу. Після виконання ви отримаєте повний звіт по пошті.',
|
||||||
'RESTORE_EXISTS' => 'Завдання вже виконується, будь-ласка дочекайтесь закінчення.',
|
'RESTORE_EXISTS' => 'Завдання вже виконується, будь-ласка, дочекайтесь закінчення.',
|
||||||
|
|
||||||
'WEB_EXCLUSIONS' => "Вкажіть домени по одному на рядок. Для того, щоб виключити всі, використовуйте *. Щоб виключити тільки деякі теки, використовуйте наступний формат: domain.com:public_html/cache:public_html/tmp",
|
'WEB_EXCLUSIONS' => "Вкажіть домени по одному на рядок. Для того, щоб виключити всі, використовуйте *. Щоб виключити тільки деякі теки, використовуйте наступний формат: domain.com:public_html/cache:public_html/tmp",
|
||||||
'DNS_EXCLUSIONS' => "Вкажіть домени по одному на рядок. Для того, щоб виключити всі, використовуйте *",
|
'DNS_EXCLUSIONS' => "Вкажіть домени по одному на рядок. Для того, щоб виключити всі, використовуйте *",
|
||||||
|
@ -449,20 +449,20 @@ $LANG['ua'] = array(
|
||||||
'MAIL_FROM' => 'Vesta Control Panel <noreply@%s>',
|
'MAIL_FROM' => 'Vesta Control Panel <noreply@%s>',
|
||||||
'GREETINGS_GORDON_FREEMAN' => "Вітаємо, %s %s,\n",
|
'GREETINGS_GORDON_FREEMAN' => "Вітаємо, %s %s,\n",
|
||||||
'GREETINGS' => "Вітаємо,\n",
|
'GREETINGS' => "Вітаємо,\n",
|
||||||
'ACCOUNT_READY' => "Ваш аккаунт успішно створений і готовий до використання.\n\nhttps://%s/login/\nІм`я користувача: %s\nПароль: %s\n\n--\nПанель керування Vesta\n",
|
'ACCOUNT_READY' => "Ваш аккаунт успішно створено і готовий до використання.\n\nhttps://%s/login/\nІм`я користувача: %s\nПароль: %s\n\n--\nПанель керування Vesta\n",
|
||||||
|
|
||||||
'FTP login credentials' => 'Дані доступу до FTP',
|
'FTP login credentials' => 'Дані доступу до FTP',
|
||||||
'FTP_ACCOUNT_READY' => "FTP аккаунт успішно створений і готовий до використання.\n\nХост: %s\nІм`я користувача: %s_%s\nПароль: %s\n\n--\nПанель керування Vesta\n",
|
'FTP_ACCOUNT_READY' => "FTP аккаунт успішно створено і готовий до використання.\n\nХост: %s\nІм`я користувача: %s_%s\nПароль: %s\n\n--\nПанель керування Vesta\n",
|
||||||
|
|
||||||
'Database Credentials' => 'Дані доступу до БД',
|
'Database Credentials' => 'Дані доступу до БД',
|
||||||
'DATABASE_READY' => "База даних успішно створена.\n\nБаза даних: %s\nКористувач: %s\nПароль: %s\n%s\n\n--\nПанель керування Vesta\n",
|
'DATABASE_READY' => "База даних успішно створена.\n\nБаза даних: %s\nКористувач: %s\nПароль: %s\n%s\n\n--\nПанель керування Vesta\n",
|
||||||
|
|
||||||
'forgot password' => 'нагадати',
|
'forgot password' => 'нагадати пароль',
|
||||||
'Confirm' => 'Підтвердити',
|
'Confirm' => 'Підтвердити',
|
||||||
'New Password' => 'Новий пароль',
|
'New Password' => 'Новий пароль',
|
||||||
'Confirm Password' => 'Підтвердження паролю',
|
'Confirm Password' => 'Підтвердження паролю',
|
||||||
'Reset' => 'Скинути',
|
'Reset' => 'Скинути',
|
||||||
'Reset Code' => 'Код відновлення',
|
'Reset Code' => 'Код скидання',
|
||||||
'RESET_NOTICE' => '',
|
'RESET_NOTICE' => '',
|
||||||
'RESET_CODE_SENT' => 'Код для відновлення паролю успішно відправлено на вашу електронну пошту.<br>',
|
'RESET_CODE_SENT' => 'Код для відновлення паролю успішно відправлено на вашу електронну пошту.<br>',
|
||||||
'MAIL_RESET_SUBJECT' => 'Відновлення паролю %s',
|
'MAIL_RESET_SUBJECT' => 'Відновлення паролю %s',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue