Compare commits

...

2520 commits

Author SHA1 Message Date
Peca
5ea346a345 Debian 13 installation files 2025-08-18 15:43:59 +02:00
Peca
a475e71145 Update vesta_compile.sh to set NGINX version to 1.29.1 and PHP version to 8.4.11 2025-08-18 15:24:54 +02:00
Peca
b4e10ed968 v-commander: disabling ClamAV 2025-08-18 15:06:17 +02:00
Peca
37c99361f7 v-commander: Add Freexian repository 2025-08-18 15:01:25 +02:00
Peca
63972e2266 v-commander: Enhance reboot requirement check to include dbus updates 2025-08-18 14:57:07 +02:00
Peca
87267eb18f v-commander: Add functionality to renew nginx GPG key and add Freexian repository 2025-08-18 14:47:20 +02:00
Peca
04453ebca2 v-df-snapshot-make tweaks and snapshot for /hdd 2025-08-18 14:28:32 +02:00
Peca
3faa448a32 Update Changelog for version 0.9.9-0-13 2025-08-15 20:14:45 +02:00
Peca
37e6a295ba Adding /usr/local/vesta/data/upgrades/ files that will prevent fixes to be repeated on next updates 2025-08-15 19:56:34 +02:00
Peca
7dbb74b6bf Increase changelog display limit from 30 to 100 entries in user index page 2025-08-15 17:47:12 +02:00
Peca
930bf7ed2b Version 0.9.9-0-13 2025-08-15 17:28:32 +02:00
Peca
ace0e0e2bf SSL fix for Apache 2.4.65+ 2025-08-15 08:28:52 +02:00
Peca
457e5c862e Add cron job for disk usage snapshot 2025-08-13 19:35:56 +02:00
myvesta
0a1df66a16
Merge pull request #200 from lukapaunovic/patch-7
Create wprocket-webp-express-force-https.tpl
2025-08-10 14:31:21 +02:00
myvesta
5e58708c5b
Merge pull request #202 from myvesta/cursor/PHP-syntax-fixes
PHP syntax fixes
2025-08-10 14:29:59 +02:00
Cursor Agent
be756306b0 Remove PHP version-specific code for array access and string formatting
Co-authored-by: peca <peca@mycity.rs>
2025-08-10 12:13:20 +00:00
Cursor Agent
4fff4b4985 Fix PHP 5.6 array index and implode compatibility issues
Co-authored-by: peca <peca@mycity.rs>
2025-08-10 11:48:54 +00:00
Peca
efe0045c5f Introduction of v-fix-website-permissions-only-php script 2025-08-07 23:56:00 +02:00
Peca
5008c2c778 Refactor v-fix-website-permissions to introduce conditional checks for PHP and symlink ownership adjustments, allowing for more flexible permission management based on configuration files. 2025-08-07 18:29:11 +02:00
Peca
a183cabdc7 v-install-wordpress: avoid changing nginx proxy template in apache-less variant 2025-08-04 16:50:52 +02:00
Peca
4dc1e73612 Remove redundant WP CLI installation checks from multiple scripts 2025-08-04 16:42:07 +02:00
Peca
8680995e66 Avoid 600 permissions for Apache-less variant 2025-08-04 15:19:22 +02:00
Peca
d18967e627 Refactor v-run-wp-cli to simplify WP CLI installation check by removing redundant file check for boot-fs.php 2025-08-04 11:07:07 +02:00
Peca
97548e55fb Removing temporary Docker container network interfaces from RRD 2025-08-03 15:06:13 +02:00
Peca
c1f2a02fb8 Implement cron job for fixing website permissions 2025-08-03 15:05:57 +02:00
Peca
cc09de9b6e v-fix-website-permissions: checks for php_chmod conf files 2025-08-01 19:46:28 +02:00
Peca
46a6ebafb0 Enhance v-commander to check for kernel updates and reboot requirements 2025-08-01 19:42:16 +02:00
Peca
48944af182 Update v-install-wp-cli-myvesta to set PHP version dynamically based on the oldest installed version and revert to the current version after installation 2025-07-30 18:30:43 +02:00
Peca
ef8d033b60 Enhance v-run-wp-cli and v-run-wp-cli-myvesta to check for file age and update if older than 30 days 2025-07-30 16:18:20 +02:00
Peca
95ed753b0b Separating v-install-wp-cli-myvesta. Update v-run-wp-cli to display error log if PHP Fatal Error occured. Updating v-run-wp-cli to use standard wp-cli, making v-run-wp-cli-myvesta for myvesta version of wp-cli. 2025-07-30 15:31:31 +02:00
Peca
35653eec54 Add WordFence CLI installation script 2025-07-26 22:00:22 +02:00
Peca
5fb7862b39 Replace direct calls to 'wp' with 'v-run-wp-cli' 2025-07-26 21:36:10 +02:00
Peca
d017fbbe07 v-fix-website-permissions: improve error messages for non-existent user and domain directories 2025-07-25 16:37:45 +02:00
Peca
4e8bac8dda v-update-firewall-rules: improve nginx configuration handling for deleting rules, as well as for suspended and unsuspended rules 2025-07-23 23:34:07 +02:00
Peca
30581ea672 v-change-wordpress-admin-passwords: enhance output messages for password change confirmation 2025-07-23 22:37:09 +02:00
Peca
77b6506bae v-update-deb-package: update completion message for Debian 13 2025-07-23 14:02:52 +02:00
Peca
b3758430c6 v-update-php-version: upgrade PHP to 8.4.10 and update download link; add additional dependencies for Debian 13 2025-07-22 16:30:23 +02:00
Peca
7799cd3322 v-update-deb-package: change target Debian version to 'trixie' and update dependencies for NGINX, OpenSSL, and Zlib 2025-07-22 14:22:48 +02:00
Peca
f64968ba91 v-change-wordpress-admin-passwords: add option to skip content reassignment during user deletion 2025-07-17 14:36:37 +02:00
Peca
9eade5a7df v-fix-wordpress-core: support for custom PHP version 2025-07-16 19:21:18 +02:00
Peca
a976a3bc3f v-change-database-password-for-wordpress: fixing a bug in temporary password storage 2025-07-16 18:01:53 +02:00
Peca
403dd65400 v-change-database-password-for-wordpress: enhance database name and user retrieval to support both single and double quotes in wp-config.php 2025-07-16 15:35:46 +02:00
Peca
3801e8d6cf v-delete-wordpress-uploads-php-files: set default response to 'yes' for moving files to quarantine 2025-07-16 13:58:25 +02:00
Peca
a5f2e6acd5 v-fix-website-permissions: exclude specific file types from permission changes to avoid altering 'Change' file attribute 2025-07-16 12:57:55 +02:00
Peca
29f030205e v-fix-website-permissions: exclude specific file types from permission changes to avoid altering 'Change' file attribute 2025-07-16 12:50:25 +02:00
Peca
b88f0e56bf New command: v-delete-wordpress-uploads-php-files 2025-07-15 18:44:02 +02:00
Peca
928bea0870 v-fix-website-permissions: only modify those that are not already set correctly 2025-07-15 17:48:08 +02:00
Peca
7191baa1c9 v-change-wordpress-admin-passwords: improve error handling 2025-07-15 13:53:20 +02:00
Peca
f16c7e4c3f New command: v-delete-inactive-wordpress-plugins-and-themes 2025-07-15 13:48:54 +02:00
Peca
ca9a939823 Refactor v-change-wordpress-admin-passwords to streamline admin list processing by using a here-string for input 2025-07-14 18:17:43 +02:00
Peca
1571d60b2f Update v-fix-website-permissions to allow dynamic php file permissions based on user-defined settings 2025-07-14 17:16:25 +02:00
Peca
98600537fc v-change-wordpress-admin-passwords: modified user deletion and password update commands to use user ID instead of username. 2025-07-14 16:32:21 +02:00
Peca
29236cfb03 Enhance proxy template selection in v-activate-rocket-nginx to include wprocket-webp-express-force-https option and update install script to download corresponding templates. 2025-07-13 22:16:46 +02:00
myvesta
2f8692bb21
Merge pull request #199 from lukapaunovic/patch-6
Create wprocket-webp-express-force-https.stpl
2025-07-13 22:02:11 +02:00
Luka Paunović
a48621a88e
Update wprocket-webp-express-force-https.stpl
rocket include must go bellow webp rules
2025-07-13 19:00:48 +02:00
Luka Paunović
7511baa628
Create wprocket-webp-express-force-https.tpl 2025-07-13 00:27:04 +02:00
Luka Paunović
59db959b9a
Update wprocket-webp-express-force-https.stpl 2025-07-13 00:26:08 +02:00
Luka Paunović
aa6263c0ac
Create wprocket-webp-express-force-https.stpl
WEBP Express NGINX support with Rocket-NGINX
2025-07-13 00:25:07 +02:00
Peca
cdf10aede1 v-change-wordpress-admin-passwords: enhance admin reassignment logic to handle default user selection 2025-07-12 14:46:14 +02:00
Peca
bf54a85a51 Added functions to check if a domain or user is unsuspended in main.sh 2025-07-11 16:37:09 +02:00
Peca
420a978572 v-install-wordpress: Support for IDN format domains 2025-07-11 11:41:28 +02:00
Peca
acc87125f0 v-change-wordpress-admin-passwords: ability to run v-run-wp-cli on choosen PHP version 2025-07-11 10:34:38 +02:00
Peca
54abc58c4e v-change-wordpress-admin-passwords: accept integer as id of user, support for custom php version 2025-07-10 17:49:15 +02:00
Peca
d20bc94866 v-fix-website-permissions: chown for .php and .env files 2025-07-01 10:03:32 +02:00
Peca
b8b75f0dde v-change-wordpress-admin-passwords 2025-06-30 00:11:44 +02:00
Peca
2fd60fc29d VERBOSE_MODE in v-run-wp-cli 2025-06-30 00:11:44 +02:00
Peca
1567383b49 v-run-wp-cli: Parameter 'PHP' to force specified PHP version 2025-06-28 16:49:18 +02:00
Peca
6cce5ecadd chmod .env files to 600 2025-06-26 22:26:14 +02:00
Peca
e8b5b5a836 v-update-document-errors-files 2025-06-26 18:05:11 +02:00
Peca
451c9944b9 v-fix-wordpress-core: move .user.ini 2025-06-25 17:32:23 +02:00
Peca
f77f8e8b78 $SKIP_OWNERSHIP_CHECK in v-fix-website-permissions, v-fix-wordpress-core 2025-06-24 17:30:20 +02:00
Peca
09465e5fba v-change-database-password-for-all-wordpress: first optional argument to specify a $user 2025-06-23 21:53:55 +02:00
Peca
5ee72684ab v-change-wordpress-admin-passwords: default = y 2025-06-23 15:55:28 +02:00
Peca
d37473b5e8 Using v-wp-cli in v-change-wordpress-admin-passwords 2025-06-22 23:56:46 +02:00
Peca
fd6eb44bae .gitignore: exclude data, conf, log 2025-06-22 22:45:19 +02:00
Peca
97e5fc0677 v-change-database-password-for-all-wordpress: Using existing password for $db_user 2025-06-21 17:56:57 +02:00
Peca
294c8ba516 Setting chmod 600 for all php files 2025-06-21 15:57:21 +02:00
Peca
761da8150b Visual improvements for v-change-wp-admins-pass 2025-06-20 17:54:04 +02:00
Peca
2e2b4b2f58 v-backup-user-now skip LA limit 2025-06-19 15:57:50 +02:00
Peca
e46c7e4e60 v-get-wp-cli and terminal $COLUMNS fix 2025-06-17 22:22:16 +02:00
Peca
b13b25602c Use wp-cli from git repo if available 2025-06-17 19:29:58 +02:00
Peca
c8f9601a35 v-fix-wp-core: BACKUP_DIR="$QUARANTINE_DIR/$DOMAIN/ 2025-06-17 15:56:56 +02:00
Peca
d1c48504ad v-run-wp-cli 2025-06-17 14:02:31 +02:00
Peca
596bce582f Jailing v-run-wp-cli 2025-06-17 11:43:48 +02:00
isscbta
31413a8f73
Update v-change-wp-admins-pass 2025-06-17 01:56:02 +02:00
isscbta
6ac6ea40d3
Update v-change-wp-admins-pass 2025-06-17 01:20:05 +02:00
isscbta
12dc1a5718
Update v-change-wp-admins-pass 2025-06-17 00:49:27 +02:00
isscbta
8a4b66a135
Update v-fix-wp-core 2025-06-17 00:42:19 +02:00
isscbta
a8e39817fc
Create v-desinfect-wp 2025-06-17 00:40:47 +02:00
isscbta
aa2f5e4fbb
Update v-fix-wp-core 2025-06-17 00:40:10 +02:00
isscbta
e8cbaa742f
Create v-change-wp-admins-pass 2025-06-17 00:23:04 +02:00
isscbta
59053e2ffd
Update v-fix-wp-core 2025-06-17 00:07:17 +02:00
isscbta
4f871db1fc Update v-fix-wp-core 2025-06-16 17:59:52 +02:00
isscbta
819450ca5c Create v-fix-wp-core 2025-06-16 17:59:52 +02:00
Peca
2fe4ce2ae4 v-change-db-password-to-wordpress 2025-06-16 17:59:11 +02:00
Peca
c5d0619a6b Check for SSL certificate existence before deleting web domain SSL in v-install-unsigned-ssl 2025-06-08 14:46:58 +02:00
Peca
413787070a Skip prompt to continue in vst-install-debian.sh if all required variables are set 2025-06-08 12:57:33 +02:00
Peca
6d752d93f5 Adding v-cd-www alias to root bash profile 2025-06-08 07:53:20 +02:00
Peca
85f39364a4 v-commander: stop setting a root password 2025-06-07 20:47:57 +02:00
Peca
0fd5be1d28 Activating FileManager licence for all users 2025-06-07 20:36:05 +02:00
Peca
89b7538fad Enhance package validation 2025-06-07 17:08:08 +02:00
Peca
8d9a3e1ca0 v-change-user-package switched to parse_object_kv_list_non_eval 2025-06-07 16:23:42 +02:00
Peca
4932dd3bb4 Fix dkim record deletion command in v-delete-mail-domain-dkim script 2025-06-07 14:53:49 +02:00
Peca
213ccd47df v-install-wordpress: Almost always use https 2025-06-04 11:25:33 +02:00
Peca
a3895aea0d v-clear-fail2ban 2025-06-02 15:16:33 +02:00
Peca
72252c561e Small bug fix in main.php 2025-06-01 20:25:23 +02:00
Peca
435a362765 Converting CRLF to LF in a few files 2025-06-01 14:44:18 +02:00
Peca
5ca293c9b2 Session DISABLE_IP_CHECK 2025-05-31 22:01:57 +02:00
Peca
92029a9733 v-import-cpanel-backup: /*!999999\- enable the sandbox mode */ fix 2025-05-30 22:08:44 +02:00
Peca
de5365280f Adding myVesta rules to SpamAssassin 2025-05-29 21:02:54 +02:00
myvesta
fa8dd64c5a Adding ProFTPD jail rule to Fail2Ban 2025-05-27 00:27:07 +02:00
ikheetjeff
ff7bc2baa5 Update edit_server.html 2025-05-26 09:39:29 +02:00
ikheetjeff
4c495a1d69 Update index.php 2025-05-26 09:39:29 +02:00
Peca
cb6e8e4926 nginx block-firewall.conf when user block 80,443 in Firewall 2025-05-26 09:39:29 +02:00
isscbta
451b025f1f Create v-delete-mails 2025-05-26 09:39:29 +02:00
myvesta
d3fb4e13d5 v-move-domain-and-database-to-account: Update wordfence-waf.php
Update v-move-domain-and-database-to-account

Update v-delete-web-domain: deleting /hdd/home/$user/web/$domain

Update v-delete-user: deleting /hdd/home/$user

Update v-delete-mail-domain: removing /hdd/home/$user/mail/$domain_idn

Update v-change-domain-owner: moving /hdd/home/$owner/web/$domain

Update v-change-domain-owner: moving /hdd/home/$owner/mail/$domain

Update v-move-folder-and-make-symlink: debug and additional checking
2025-05-26 09:39:29 +02:00
myvesta
83d12510e3 Update v-add-letsencrypt-domain: Detecting valid status on wildcard variant 2025-05-26 09:39:29 +02:00
myvesta
6dccbb8276 Update vst-install-debian.sh: mysql-apt-config_0.8.34-1_all.deb 2025-05-26 09:39:29 +02:00
myvesta
7388432261 parse_object_kv_list_non_eval() 2025-05-26 09:39:28 +02:00
myvesta
0d86e2ca40 Calculate size of directories on /hdd too 2025-05-26 09:39:28 +02:00
myvesta
8bdfade3d4 Update vst-install-debian.sh 2025-05-26 09:39:28 +02:00
myvesta
a86f76de09 Update db.sh - mysqldump --complete-insert --force --quick --single-transaction --max-allowed-packet=1024MB 2025-05-26 09:39:28 +02:00
myvesta
57f179ad05 When deleting a domain, also delete the database if the domain has a database. 2025-05-26 09:39:14 +02:00
myvesta
01e4890a97
Update multi-php-install.sh: Fixing disable_functions line 2025-03-31 16:41:43 +02:00
myvesta
4437f6f0da
Update v-move-folder-and-make-symlink 2025-03-19 16:25:04 +01:00
myvesta
24908aede1
Update v-move-folder-and-make-symlink 2025-03-19 16:22:54 +01:00
myvesta
dc1979461e
Update v-make-main-apache-log 2025-03-11 00:18:05 +01:00
myvesta
039dc4a561
SpamHaus DNSBL removed from exim4 2025-02-27 22:51:44 +01:00
myvesta
32aae7dbff
Update multi-php-install.sh: bringing back php8.4-memcached & imagick 2025-02-20 14:02:27 +01:00
myvesta
1573a33b75
Update v-clone-website: mysqldump --max_allowed_packet=1024M 2025-02-10 15:51:42 +01:00
myvesta
7937088e9c
Update index.php: Prevent recreation of token by shitty browser add-ons 2025-01-03 18:09:06 +01:00
myvesta
c5e5464373
Update v-restore-user: permissions fix 2025-01-03 17:16:07 +01:00
myvesta
c1072ec9e4
Update v-clone-website 2024-12-13 11:34:12 +01:00
myvesta
0e881c911b
Update v-update-firewall - skip CentOS block 2024-12-05 15:46:47 +01:00
myvesta
9fdfe2760a
Update v-change-dir-www 2024-12-03 15:50:07 +01:00
myvesta
2daa635cde
Update v-change-dir-www 2024-12-03 11:47:21 +01:00
myvesta
0639e7765f
Update vst-install-debian.sh 2024-12-02 18:52:53 +01:00
myvesta
3337783666
v-cd-www alias 2024-12-02 18:35:57 +01:00
isscbta
82803093d6
Update v-cd-www 2024-11-27 14:07:40 +01:00
isscbta
2e66899997
Create v-cd-www 2024-11-27 14:06:50 +01:00
isscbta
62b0e672a6
Create v-whitelist-email-account 2024-11-27 14:05:50 +01:00
isscbta
92ddd343a2
Create v-whitelist-email-domain 2024-11-27 14:05:30 +01:00
isscbta
aa92b6a270
Create v-blacklist-email-account 2024-11-27 14:05:07 +01:00
isscbta
00ef25524d
Create v-blacklist-email-domain 2024-11-27 14:04:37 +01:00
myvesta
af8c071944
Update v-clean-garbage 2024-11-25 11:25:22 +01:00
myvesta
6a35d14f0c
Update v-add-firewall-ban: nginx deny rules conf 2024-11-19 21:59:09 +01:00
myvesta
015b3c4571
nginx deny rules conf 2024-11-19 15:17:29 +01:00
myvesta
a2ed0dbf7a
Update v-make-separated-ip-for-email 2024-11-18 18:03:53 +01:00
myvesta
74fecc45d3
Update v-add-srs-support-to-exim 2024-11-18 18:02:05 +01:00
myvesta
0f71df9a95
Create exim4.conf.template.without-srs 2024-11-18 16:59:43 +01:00
myvesta
15b5996e4f
Update v-make-separated-ip-for-email 2024-11-18 16:56:10 +01:00
myvesta
8c477c39bf
Update v-add-srs-support-to-exim: Block execution in Exim < 4.96 2024-11-18 16:49:14 +01:00
myvesta
a7d7c3686c
Update v-add-srs-support-to-exim: compatibility for Debian < 12 2024-11-18 14:26:36 +01:00
myvesta
2cbf37e4d1
Temporarily disabling php8.4-memcache, memcached, imagick 2024-11-15 16:40:57 +01:00
myvesta
e8c912513d
Support for PHP 8.4 2024-11-15 16:19:52 +01:00
myvesta
5e9cf711e6
Add some loops due to 403 errors durring LE request in some random cases
Credits to HestiaCP - https://github.com/hestiacp/hestiacp/pull/4622
2024-11-11 19:43:49 +01:00
myvesta
de2305b3ff
Update vst-install-debian.sh 2024-11-11 18:36:32 +01:00
myvesta
60ce986ece
Update v-add-srs-support-to-exim 2024-11-11 18:11:14 +01:00
myvesta
5eb0607319
Update exim4.conf.template - avoid ACL error
failed to expand ACL string "${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}{true}{false}}": failed to open /etc/exim4/domains//aliases for linear search: No such file or directory
2024-11-10 18:23:52 +01:00
myvesta
f5027aff5d
Update v-clean-garbage 2024-11-10 18:03:09 +01:00
myvesta
46d2a729a1
Update v-clean-garbage 2024-11-10 17:22:47 +01:00
myvesta
24d84de6d2
Update v-fix-php-ini-disable-functions 2024-11-08 23:58:05 +01:00
myvesta
89fc5a1ebd
SRS support for Exim4 2024-11-08 18:07:38 +01:00
myvesta
afc6b62d5c
v-fix-php-ini-disable-dunctions exclude patching 2024-10-25 20:57:20 +02:00
myvesta
da84a0b913
v-fix-php-ini-disable-functions 2024-10-25 18:08:09 +02:00
myvesta
24371b8bbf
Update v-clone-website: adding --EXCLUDE_UPLOADS parameter 2024-10-18 22:12:23 +02:00
myvesta
acfc563a6c
Logging apache pid in v-make-main-apache-log 2024-10-14 17:51:26 +02:00
myvesta
e79acf1828
v-make-main-apache-log 2024-10-07 20:04:46 +02:00
myvesta
76ad95da64
Update vst-install-debian.sh - removing phppgadmin 2024-09-26 20:00:41 +02:00
isscbta
c148a1ed79
Create v-get-dns-config 2024-09-19 19:01:21 +02:00
isscbta
c32bd2c709
Generate random root password instead of using admin password 2024-09-19 17:32:22 +02:00
myvesta
3ed2cfa07b
Removing whitespace in php patch 2024-09-18 18:37:34 +03:00
myvesta
a99ae91c21
Update v-update-firewall: $FIREWALL_STATEFUL conf variable 2024-09-02 20:22:56 +02:00
myvesta
b9f89d0416
Update v-make-separated-ip-for-email - fix for deb 10 and 11 2024-08-23 15:54:57 +02:00
myvesta
7dcaaace8a
Merge pull request #181 from ikheetjeff/disable-root-login-phpmyadmin
disable root login phpmyadmin
2024-08-15 10:24:47 +02:00
myvesta
138f41c145
Merge pull request #180 from ikheetjeff/fix-db-mail
Fix db.sh + rebuild.sh mailadres & subject
2024-08-15 10:22:47 +02:00
myvesta
6e7954db55
Fixing Issue #185 2024-08-15 10:19:34 +02:00
myvesta
1ee4920576
Update multi-php-install.sh 2024-08-13 13:49:46 +02:00
myvesta
574fff0642
Update multi-php-install.sh - removing buster sury repo 2024-08-13 13:44:30 +02:00
myvesta
7ff828bf14
Update v-import-cpanel-backup - removing /*!999999\- enable the sandbox mode */ 2024-08-12 12:45:58 +02:00
isscbta
c1f7c91953
Added support for PHP 8.3 2024-08-07 13:55:33 +02:00
myvesta
7fa725b893
Update Changelog.md 2024-05-30 19:35:12 +02:00
myvesta
72baf4c702
Version 0.9.9-0-11 2024-05-30 17:29:18 +02:00
myvesta
edf1f616b2
Update v-run-wp-cli: removing --skip-plugins and --skip-themes 2024-05-30 17:23:43 +02:00
isscbta
357b20cc52
Rename v-run-wpcli to v-run-wp-cli 2024-05-30 17:01:39 +02:00
myvesta
30fb3d6a6c
Update v-delete-user: rm -rf /hdd/home/$user 2024-05-30 15:05:43 +02:00
myvesta
d59c4fafe2
Update v-run-wpcli to use $phpver 2024-05-30 14:11:17 +02:00
myvesta
67b8376608
Update v-add-wordpress-admin to use $phpver 2024-05-30 14:02:52 +02:00
myvesta
6a72798aba
Update v-clone-website to use $phpver 2024-05-30 13:55:10 +02:00
myvesta
8a8422539c
Update v-migrate-site-to-https to use $phpver 2024-05-30 13:52:46 +02:00
myvesta
7a13c03e9a
Update v-migrate-site-to-https to use $phpver 2024-05-30 13:48:11 +02:00
myvesta
a8435cab14
hosting-firewall-wordpress-2 2024-05-30 12:37:26 +02:00
myvesta
f99bcf8746
Update v-migrate-site-to-https 2024-05-30 09:19:22 +02:00
myvesta
c3985ba95e
Create v-backup-user-now 2024-05-23 15:26:39 +02:00
myvesta
21f7a509cb
nginx nodejs tpl CRLF to LF 2024-05-23 14:38:21 +02:00
myvesta
75ffd02ff9
nodejs tpl fix 2024-05-23 14:16:53 +02:00
isscbta
e51cd34f77
Update v-add-wordpress-admin 2024-05-22 17:51:42 +02:00
isscbta
abc2377dad
Update v-run-wpcli 2024-05-22 17:50:50 +02:00
isscbta
9cf91d5535
Create v-add-wordpress-admin 2024-05-22 17:49:54 +02:00
isscbta
491ac6255c
Create v-run-wpcli 2024-05-22 17:49:06 +02:00
myvesta
81f507b3c4
nodejs templates ssl fix 2024-05-16 12:15:20 +02:00
myvesta
763eea5c58
Update install-new-roundcube.sh - version 1.6.6 2024-05-15 19:42:42 +02:00
ikheetjeff
806ebf1db6
disable root login phpmyadmin 2024-05-05 21:21:32 +02:00
ikheetjeff
4acfa26de5
Fix emailadres and subject 2024-05-05 20:28:31 +02:00
ikheetjeff
66ae5580cd
Fix mailadress and subject 2024-05-05 20:28:05 +02:00
myvesta
dcd0bf2d64
Update v-clone-website: wp-cli to use proper php version 2024-04-24 13:56:28 +02:00
myvesta
05f5288d9b
Update v-clone-website: --skip-plugins --skip-themes 2024-04-24 13:14:36 +02:00
myvesta
65d4f0e65e
deb12 exim4: message_linelength_limit = 1G
Preventing exim4 error: message has lines too long for transport
2024-04-19 09:12:57 +02:00
myvesta
9b0f9e5876
Version 0.9.9-0-10 2024-04-11 20:55:41 +02:00
myvesta
cc3437c287
v-edit-php return fix 2024-04-11 20:50:26 +02:00
myvesta
9d65824606
v-edit-php tuning 2024-04-11 20:41:56 +02:00
isscbta
6514ea1d38
Create v-edit-php-ini 2024-04-11 15:43:41 +02:00
isscbta
f540cf9f2a
Update v-edit-domain-php-ini 2024-04-11 12:18:39 +02:00
isscbta
40afd5b5c8
Create v-edit-domain-php-ini 2024-04-09 16:44:05 +02:00
myvesta
929241c5f7
Version 0.9.9-0-9 2024-04-05 20:10:05 +02:00
myvesta
583a1e5cc7
Update v-commander 2024-04-05 19:56:50 +02:00
myvesta
63c4826ac0
Update v-commander 2024-04-05 15:22:20 +02:00
myvesta
8cc35b43eb
Update header.html 2024-04-04 15:08:14 +02:00
myvesta
dd825b96cb
Update latest.txt - 0.9.9-0-8 2024-04-04 14:55:48 +02:00
myvesta
5acdfb6158
Merge pull request #175 from VasilisParaschos/174-banned-ip-quick-info
Get quick info about a banned IP (Host, Banlist, Location)
2024-04-04 14:52:45 +02:00
myvesta
55e0fcb5de
Update v-clean-garbage: restart exim4 2024-04-04 14:48:56 +02:00
myvesta
20695198f4
tpl CRLF to LF 2024-03-29 17:17:22 +01:00
myvesta
dd18d6dd6d
Blocking xmlrpc.php and wp-config.php in nginx-rate-limit templatre for WP 2024-03-29 14:51:56 +01:00
myvesta
fa165a0020
Update v-fix-user-permissions 2024-03-14 20:24:47 +01:00
myvesta
0ae1ea6adc
Update v-commander 2024-03-08 17:22:18 +01:00
myvesta
e6bf09c608
Update v-commander 2024-03-08 16:48:48 +01:00
myvesta
138a30755f
Update v-commander 2024-03-08 16:43:05 +01:00
myvesta
6819f21c3e
Update v-commander 2024-03-08 15:49:33 +01:00
myvesta
a7def7b190
Changelog 2024-02-27 13:10:58 +01:00
myvesta
7e209c543d
Update v-backup-users
Prevent removing valid licenses when vestacp.com is offline.
Licences are free now - https://forum.myvestacp.com/viewtopic.php?t=949
2024-02-27 13:05:59 +01:00
myvesta
2aca86432f
imapsync tools 2024-02-08 21:26:03 +01:00
vaspar
edfea0d259 Get quick info about a banned IP (Host, Banlist, Location) 2024-02-02 16:36:40 +02:00
myvesta
560fa67c4b
v-list-php-apache 2024-01-26 23:36:51 +01:00
myvesta
db7e663c2c
Update v-list-php 2024-01-26 22:56:37 +01:00
myvesta
11ab872123
Update v-list-php 2024-01-24 16:17:11 +01:00
myvesta
7274147d36
v-list-php 2024-01-24 16:14:14 +01:00
myvesta
22463fd0f1
Update Changelog.md to 0.9.9-0-6 2024-01-22 18:47:27 +01:00
myvesta
e9317fc0ae
Update latest.txt to 0.9.9-0-6 2024-01-22 18:44:18 +01:00
myvesta
834fcfcf12
php8.3 fpm www.conf 2024-01-22 18:42:14 +01:00
myvesta
a43eef9c9b
Updating WAF path in v-clone-website 2024-01-15 18:06:36 +01:00
isscbta
cf1eacde1d
Update Wordfence WAF Path 2024-01-15 17:52:06 +01:00
isscbta
b0b3a9403f
Update Wordfence WAF Path 2024-01-15 17:08:52 +01:00
myvesta
003f35810b
Update v-fix-website-permissions 2024-01-08 09:49:04 +01:00
myvesta
1a6562eb87
Update v-fix-website-permissions 2024-01-08 09:43:54 +01:00
myvesta
f400b401d2
Update v-fix-website-permissions 2024-01-08 09:41:12 +01:00
myvesta
ecf419cb88
Update v-fix-website-permissions 2024-01-08 09:39:24 +01:00
myvesta
bdde36d4e3
Update v-fix-website-permissions 2024-01-08 09:34:57 +01:00
myvesta
c3720e5d5e
Fixing typo in secure_login.php
Thanks to @gathlete - https://forum.myvestacp.com/viewtopic.php?t=928
2024-01-07 23:47:44 +01:00
myvesta
add9c5c5e7
php8.3 installer fix 2024-01-07 22:36:29 +01:00
myvesta
8ef3fb0357
PHP 8.3 support 2024-01-07 22:35:06 +01:00
myvesta
08d0db0c6f
php8.3 templetes typo fix 2024-01-07 22:19:17 +01:00
myvesta
db6ba149c6
Apache templates for PHP 8.3 2024-01-07 22:16:40 +01:00
myvesta
942b46a657
v-php-func takes STDIN only if --stdin parameter is passed 2024-01-07 21:51:00 +01:00
isscbta
a55b160103
Added: Email rate limit 2024-01-06 11:39:49 +01:00
isscbta
5e72ead3b3
Create v-fix-website-permissions 2024-01-03 19:19:47 +01:00
myvesta
f39dc8edce
Update multi-php-install.sh 2023-12-28 21:42:09 +01:00
myvesta
f344c0b1d5
Update multi-php-install.sh 2023-12-28 21:22:34 +01:00
myvesta
6800013edb
Update v-commander 2023-12-28 21:21:31 +01:00
myvesta
cecb7cf56a
Update multi-php-install.sh 2023-12-28 21:15:39 +01:00
myvesta
e1053b1c9a
Update multi-php-install.sh: upgrading tailf_apache_error.php 2023-12-28 20:26:36 +01:00
myvesta
0beaa0abda
Update multi-php-install.sh: install phpgate 2023-12-28 20:11:10 +01:00
isscbta
fa71d3a1c6
Update Wordfence WAF Path 2023-12-28 16:01:34 +01:00
isscbta
91f6ae080a
Update Wordfence WAF Path 2023-12-28 16:01:09 +01:00
myvesta
328f6f293c
Disable hosts_try_fastopen for all hosts 2023-12-20 21:23:34 +01:00
myvesta
f4beb1c8f1
Update vst-install-debian.sh, MAX_DBUSER_LEN=80 2023-12-11 11:48:32 +01:00
myvesta
c4eb89e4fd
Update install-rocket-nginx.sh 2023-11-25 11:41:04 +01:00
myvesta
25749e8025
Update fix-fpm-poold.sh 2023-11-17 10:06:42 +01:00
myvesta
5e3473f90d
Merge pull request #169 from lukapaunovic/patch-5
Create wp-super-cache.stpl
2023-11-12 20:55:08 +01:00
myvesta
65aa97de82
Merge pull request #168 from lukapaunovic/patch-4
Create wp-super-cache.tpl
2023-11-12 20:54:49 +01:00
Luka Paunović
9985fcbea5
Create wp-super-cache.stpl 2023-11-12 19:45:58 +01:00
Luka Paunović
fc05c65359
Create wp-super-cache.tpl 2023-11-12 19:45:02 +01:00
myvesta
fff40883dd
webp smush nginx template 2023-11-12 19:18:00 +01:00
myvesta
562ad763dd
v-commander: install nginx-rate-limit templates 2023-11-05 15:25:01 +01:00
myvesta
7993d50276
v-install-wordpress to put force-https-firewall-wordpress nginx template 2023-11-05 15:17:34 +01:00
myvesta
803cde4c89
CRLF to LF for nginx-rate-.limit templates for WordPresd 2023-11-03 17:08:22 +01:00
myvesta
5e525f8898
nginx rate limit fixes for http:// templates 2023-11-02 14:27:15 +01:00
myvesta
88f52ec9a4
Adding limit_conn zone_site 15; to wordpress tpl 2023-11-02 11:33:19 +01:00
myvesta
3d8880e559
Rotating places for limit_conn_zone 2023-11-02 11:08:13 +01:00
myvesta
911dc91268
Fix message: Added rate_limit 'wfone' to nginx.conf 2023-11-02 11:03:54 +01:00
myvesta
c87de2631b
Fix to download force-https-firewall-wordpress.stpl 2023-11-02 11:01:03 +01:00
myvesta
bfdefc50e3
nginx rate-limit improvements 2023-11-02 10:47:51 +01:00
myvesta
2f0807e8ee
Update v-commander: redis installer conf fix 2023-10-18 14:46:55 +02:00
myvesta
946a1953d9
v-update-mail-domains-disk - even mail account is symlinked 2023-10-13 11:56:50 +02:00
myvesta
bf8411fa08
Update latest.txt: version 0.9.9-0-5 2023-10-08 16:56:38 +02:00
myvesta
3f3cfece06
Update Changelog.md 2023-10-08 16:55:33 +02:00
myvesta
8748ffc85b
Update v-suspend-web-domain 2023-10-08 16:45:13 +02:00
myvesta
a4acb57e54
Fixing removing certificates during apache reload
v-suspend-web-domain on line 49 is triggering apache/nginx reload... that is doing it in the background... and on line 64, we were previously doing 'mv' for certificates... 
If the reload lasts too long it in the background, certificates will vanish because of 'mv' on line 64.
This fix will avoid this collision by doing 'cp' instead of 'mv', then sleeping for 10 sec, and then removing certificates.
We will call this bug "Nemanja Puhalo's bug" because he hit this bug first.
2023-10-08 16:28:08 +02:00
myvesta
1848c36784
Update v-suspend-web-domain, allowing restart=no 2023-10-08 15:45:34 +02:00
myvesta
af7b658bfb
v-restart-web: systemctl instead of service 2023-10-08 15:33:46 +02:00
myvesta
9c233e92a6
v-restart-web: systemctl instead of service 2023-10-08 15:21:43 +02:00
myvesta
fd57420a70
Delete current SSL before v-install-unsigned-ssl 2023-10-08 13:28:52 +02:00
isscbta
baa93199e8
Update README.md 2023-10-06 11:35:11 +02:00
myvesta
5fb32ef55f
Delete pool.d conf file for all PHP versions 2023-10-04 14:56:19 +02:00
myvesta
1099b0c267
Update install_rate_limit_tpl.sh 2023-10-04 11:34:09 +02:00
myvesta
b5d57baa29
Update vst-install-debian.sh 2023-10-03 10:47:40 +02:00
myvesta
64fa7d9e58
Update exim4.conf.template 2023-10-01 15:12:40 +02:00
myvesta
e1fe2ba094
Patching exim4.conf for: Helo name contains a ip address 2023-10-01 15:07:43 +02:00
myvesta
85bbc56cbd
Update v-make-separated-ip-for-email 2023-10-01 14:55:49 +02:00
myvesta
3d503f4e14
Update v-clean-garbage 2023-10-01 14:19:41 +02:00
myvesta
33e6263e3d
Update v-clean-garbage 2023-10-01 00:32:27 +02:00
myvesta
8a323f6447
Update v-clean-garbage 2023-09-30 15:23:27 +02:00
myvesta
c8fcc089a7
Clean /home/*/tmp/ in v-clean-garbage 2023-09-30 15:20:47 +02:00
myvesta
98d8ab7f29
v-list-sys-services: detection for official mariadb repo installation 2023-09-27 09:32:23 +02:00
myvesta
1709e9ae3d
Disabling SpamAssassin on Deb12 2023-09-24 16:58:29 +02:00
myvesta
39a4dffbce
Check if source user is suspended 2023-09-16 01:20:19 +02:00
myvesta
c43b3b0976
Check if source user is suspended 2023-09-16 01:11:30 +02:00
myvesta
06527b4d49
Update postinst 2023-09-15 01:12:08 +02:00
myvesta
022f3078f5
Fixing 'dh key too small' in dovecot 2023-09-06 14:45:40 +02:00
myvesta
8d467b98ab
Muting some unnecessary cleaning errors 2023-08-23 14:39:44 +02:00
myvesta
34c0588b76
ignoring nohup messages 2023-08-23 14:05:26 +02:00
myvesta
b80a975621
Muting some unnecessary cleaning errors 2023-08-23 11:37:04 +02:00
myvesta
c32036e531
Handling tailf watcher processes in v-clean-garbage 2023-08-23 11:23:57 +02:00
myvesta
658680095b
http2 typo 2023-08-18 20:52:13 +02:00
myvesta
bb79f9f8c0
deb12 nginx http2 on; 2023-08-18 20:50:20 +02:00
myvesta
0213d749ee
Update exim_forwarding.patch 2023-08-11 14:03:16 +02:00
myvesta
cb52ef65b4
postinst removing tabs indent 2023-08-09 20:14:34 +02:00
myvesta
4d7ce60f39
deb12 fixes in postinst 2023-08-09 20:11:40 +02:00
myvesta
e82378c935
v-grep LF ending 2023-08-09 15:45:37 +02:00
myvesta
843d4a94e2
Update install_rate_limit_tpl.sh 2023-08-08 15:41:25 +02:00
myvesta
5d2f0d68e0
Removing sury repo from multi-php-install.sh for Debian 8 and 9 2023-07-29 14:40:19 +02:00
myvesta
12d6e59a7e
Update v-import-cpanel-backup 2023-07-27 14:50:16 +02:00
myvesta
7ee011a9d3
Update v-import-cpanel-backup 2023-07-27 14:41:38 +02:00
myvesta
ef5ef95194
get deb12 exim conf 2023-06-28 15:22:05 +02:00
myvesta
dc8abe95f0
Update list_user.html - coffee typo 2023-06-27 18:58:52 +02:00
myvesta
12c65839c2
Update Changelog.md 2023-06-27 15:28:36 +02:00
myvesta
d4f0baa4ad
Update Changelog.md 2023-06-27 15:24:58 +02:00
myvesta
9290ba6071
Version 0.9.9-0-4 2023-06-27 15:22:30 +02:00
myvesta
e095751b8b
Update barracuda.cf - correcting scores 2023-06-27 13:09:12 +02:00
myvesta
fb3e1e52e0
Update barracuda.cf 2023-06-27 12:20:28 +02:00
myvesta
a6eedcc6a9
Creating spamassassin /nonexistent folder 2023-06-26 22:00:46 +02:00
myvesta
ac98e1d9aa
Patching spamassassin dns_server 2023-06-26 21:52:43 +02:00
myvesta
c41a540494
Update install-new-roundcube.sh 2023-06-26 14:45:37 +02:00
myvesta
473277dd29
Update install-new-roundcube.sh - deleting filter plugin 2023-06-26 14:39:45 +02:00
myvesta
d41ca32761
Update install-new-roundcube.sh 1.6.1 2023-06-26 10:21:16 +02:00
myvesta
ebd100521f
Temporary ProFTPD fix for Debian12 2023-06-26 00:01:52 +02:00
myvesta
fdff356aa7
Switching signing apt key to "gpg --dearmor" 2023-06-25 23:50:21 +02:00
myvesta
b3336ba630
Update exim4.conf.template-RC deb11 2023-06-19 00:14:37 +02:00
myvesta
82956ffa9e
Setting up rsyslog for deb12 2023-06-18 22:00:38 +02:00
myvesta
1d89e935e1
Update exim4.conf.template 2023-06-18 19:13:09 +02:00
myvesta
599ce37116
exim4 fix for Tainted filename for search for aliases 2023-06-18 19:11:55 +02:00
myvesta
93a6d0b6e9
deb12 fail2ban auth.log fix 2023-06-17 23:00:40 +02:00
myvesta
ce5fac9b07
deb12 nginx listen ssl 2023-06-17 20:49:36 +02:00
myvesta
c74dfde170
deb12 exim4 smtputf8_advertise_hosts 2023-06-17 19:01:26 +02:00
myvesta
d52e27cc05
deb12 install rsyslog 2023-06-17 18:50:27 +02:00
myvesta
a6fdb87f7d
v-list-sys-services deb12 mariadb detection fix 2023-06-17 18:24:33 +02:00
myvesta
b535c863d6
deb12 spamd install 2023-06-17 18:12:35 +02:00
myvesta
89c86b84fd
deb12 new exim4 conf 2023-06-17 18:03:49 +02:00
myvesta
83092b8ac8
Fix for deb12 xxd install and php8.2 in default package 2023-06-17 17:51:26 +02:00
myvesta
159755e053
deb12 spamassassin temporary fix 2023-06-17 16:25:06 +02:00
myvesta
58c2793e94
vesta-nginx-deb12 conf fix 2023-06-17 15:59:47 +02:00
myvesta
420c0d097f
Reverting mistakenly changed 7.4 to 8.2 for deb12 2023-06-17 15:23:15 +02:00
myvesta
f332227588
v-install-unsigned-ssl deb12 fix 2023-06-17 15:11:30 +02:00
myvesta
f6cb92c20a
Debian12 installer script, first fix 2023-06-17 15:09:34 +02:00
myvesta
698069d708 Making php8.2 templates executable 2023-06-17 14:49:42 +02:00
myvesta
af61d62c47
debian12 php8.2 templates 2023-06-17 14:46:05 +02:00
myvesta
b5ccfbed82
debian12 vesta_compile.sh fixes 2023-06-16 23:10:48 +02:00
myvesta
b421b5f3b6
Version 0.9.9-0-3 2023-06-16 21:31:59 +02:00
myvesta
21071f4d7a
Fix for Grammarly Addon conflict 2023-06-16 21:26:22 +02:00
myvesta
90fddaa436
Update Changelog.md 2023-06-12 16:32:08 +02:00
myvesta
ef368b644b
Version 0.9.9-0-2 2023-06-12 16:29:24 +02:00
myvesta
6e88a26d4d
Few buttons decorated 2023-06-12 16:28:15 +02:00
myvesta
db6360922f
UI performance fix 5 2023-06-12 15:38:39 +02:00
myvesta
83acec3ec1
UI performance fix 4 2023-06-12 10:04:56 +02:00
myvesta
83649defc9
deleting styles.fix.css
it's merged with styles.min.css
2023-06-12 00:11:44 +02:00
myvesta
83e24f738a
Update list_backup_detail.html 2023-06-12 00:03:27 +02:00
myvesta
6921a58418
UI performance fix 3 2023-06-11 23:53:43 +02:00
myvesta
8fd8e33c3f
Update styles.fix.css 2023-06-10 22:47:04 +02:00
myvesta
5cbbbbcb06
right sidebar list 15 last logs 2023-06-10 22:42:12 +02:00
myvesta
9c9c06c2dc
Frontend UI performance fix 2 2023-06-10 22:39:49 +02:00
myvesta
bae14b2180
Frontend UI performance fix 2023-06-10 17:25:51 +02:00
myvesta
04070b4270
Merge pull request #159 from jaapmarcus/update-compile
Update urls due to moved download locations
2023-06-08 10:15:07 +02:00
Jaap Marcus
d9a68455a8
Update urls due to moved download locations
Update names


Fix pcre url


Please not configs are not tested


Revert changes
2023-06-07 22:59:31 +02:00
myvesta
7875aaf58e
Update list_backup_detail.html 2023-06-05 10:24:27 +02:00
myvesta
0a5faad911
Update latest.txt 2023-06-05 10:05:18 +02:00
myvesta
b41131f7ba
backup details css fix 2023-06-05 10:04:25 +02:00
myvesta
eccd4a99ba
Update styles.fix.css 2023-06-04 23:28:07 +02:00
myvesta
1120629026
Update latest.txt - version 0.9.9-0 2023-06-04 23:20:13 +02:00
myvesta
4683c08e1b
Update Changelog.md 2023-06-04 23:17:38 +02:00
myvesta
b670feea43
Removing smtputf8_advertise_hosts from Deb 9 and 10 2023-06-04 22:21:06 +02:00
myvesta
fcdd2a552c
smtputf8_advertise_hosts patch fix 2 2023-06-04 22:12:08 +02:00
myvesta
bf56cdc40f
smtputf8_advertise_hosts patch fix 2023-06-04 22:03:41 +02:00
myvesta
39745fd25a
Update styles.min.css, new sprite.png query number 2023-06-04 21:54:20 +02:00
myvesta
ecb988d2eb
sprite.png fix 2023-06-04 21:10:05 +02:00
myvesta
cd6c585641
Update styles.fix.css 2023-06-04 20:45:13 +02:00
myvesta
524a3a592b
Update styles.fix.css 2023-06-04 20:36:32 +02:00
myvesta
ff61a26f69
Update styles.fix.css 2023-06-04 20:25:37 +02:00
myvesta
2a3de783ae
Update scripts.html, correcting 'Log' label 2023-06-04 19:57:07 +02:00
myvesta
8bead4afaa
Update styles.fix.css 2023-06-04 19:50:39 +02:00
myvesta
c3d0c17c51
Redesign of hosting panel 2023-06-04 17:56:44 +02:00
myvesta
2afbc2cddf
Patching exim4.conf for: smtputf8_advertise_hosts 2023-06-04 16:41:08 +02:00
myvesta
ec8e174158
Update README.md, fixing < char 2023-05-27 19:03:41 +02:00
myvesta
c2511876c2
--retry-connrefused exception for Debian8 2023-05-02 12:59:16 +02:00
myvesta
22d524cfce
apache templates -FollowSymLinks +SymLinksIfOwnerMatch 2023-04-30 15:15:43 +02:00
myvesta
ae45e4a571
simplifying php code 2023-04-16 00:10:54 +02:00
myvesta
502acb44c0
v-grep and v-sed 2023-04-15 19:03:11 +02:00
myvesta
075c5e231b
MYVESTA_QUIET as export variable 2023-04-15 18:51:15 +02:00
myvesta
3fbb3dad78
myvesta php replacement for gnu 'sed' (but without regular expression) 2023-04-15 16:38:53 +02:00
myvesta
b01da84b15
correction for main.php 2023-04-15 15:53:21 +02:00
myvesta
888db2bc72
myvesta php replacement for gnu 'grep' (but without regular expression) 2023-04-15 15:50:27 +02:00
myvesta
2f37124545
simplifying php str functions 2023-04-14 19:01:07 +02:00
myvesta
c5144bcbae
v-php-func str_find quiet 2023-04-14 16:47:42 +02:00
myvesta
452f8a81d9
php myvesta_str_substring 2023-04-14 16:21:00 +02:00
myvesta
4dd6d22f07
myvesta-php-func support for stdin 2023-04-14 15:39:33 +02:00
myvesta
77467eeebd
exim4 HELO authenticated patch 2023-04-12 19:58:32 +02:00
myvesta
706e365a5e
syntax fix 2023-04-09 14:01:18 +02:00
isscbta
2fae00ae7d
Update v-clone-website 2023-04-09 00:22:04 +02:00
isscbta
e2fcade5bb
Update v-clone-website 2023-04-09 00:17:27 +02:00
isscbta
8dbfa3e210
Update README.md 2023-04-07 13:53:10 +02:00
isscbta
0e16d8d59c
Update README.md 2023-04-07 13:50:17 +02:00
isscbta
f0a82f02d3
Update README.md 2023-04-07 13:50:02 +02:00
isscbta
e86585568d
Update README.md 2023-04-07 13:44:53 +02:00
isscbta
5eabdd4784
Update README.md 2023-04-07 13:41:06 +02:00
isscbta
863f3e2aa5
Update README.md 2023-04-07 13:40:23 +02:00
myvesta
0b7b8cef85
Version 0.9.8-26-62 2023-04-06 11:14:44 +02:00
myvesta
7a3fc4fcea
Update Changelog.md 2023-04-06 11:13:17 +02:00
myvesta
f3211b7804
Merge pull request #157 from jaapmarcus/fix-update-certificate-changess
Fix: Changes in Certificate request Lets Encrypt
2023-04-06 11:07:39 +02:00
myvesta
b21efb09b6
Adding user-agent in v-add-letsencrypt-user 2023-04-06 10:28:44 +02:00
myvesta
fbf1d3390a
Checking for $nonce before step 7, and check for $certificate after step 7 2023-04-06 10:24:54 +02:00
myvesta
1056cd624b
Adding LE_STAGING to v-add-letsencrypt-user 2023-04-06 10:00:57 +02:00
myvesta
a18ee316a2
$LE_API to $API 2023-04-06 09:56:18 +02:00
myvesta
f50a785fff
Changing user-agent in v-add-letsencrypt-domain 2023-04-06 09:10:50 +02:00
myvesta
2f395f0a5e
Add staging 2023-04-06 09:06:03 +02:00
Jaap Marcus
4771d2502c
Fix: Changes in Certificate request Lets Encrypt
See: https://community.letsencrypt.org/t/myvesta-hestiacp-vestacp-fail-issuance-with-async-finalization/195923

And https://github.com/hestiacp/hestiacp/pull/3442

Not tested on Vesta CP
❤️
2023-04-06 01:23:10 +02:00
myvesta
f5132329c8
Update Changelog.md 2023-04-05 23:13:38 +02:00
myvesta
a098a9831c
Update Changelog.md 2023-04-05 21:10:28 +02:00
myvesta
cdde300f80
Version 0.9.8-26-61 2023-04-05 21:08:38 +02:00
myvesta
ec1c2146a1
LetsEncrypt check if 'certificate' is empty on step 6 2023-04-05 21:07:11 +02:00
myvesta
3bafc5b064
myvesta_echo php function 2023-04-01 23:29:35 +02:00
myvesta
a47603156d
Update exim_forwarding.patch 2023-03-29 15:48:42 +02:00
isscbta
551df0b5a6 Update v-clean-garbage 2023-03-29 15:45:36 +02:00
isscbta
a792f42ffd Security Improvements 2023-03-28 17:07:52 +02:00
myvesta
b1a3b88877
new line on the output end if v-php-func called directly from shell 2023-03-28 10:39:38 +02:00
myvesta
da136faf08
php function "find_in_file" 2023-03-26 19:04:45 +02:00
myvesta
4563f02f0f
Strip 'BROWSER MEDIA CACHE' block in rocket-nginx conf 2023-03-26 15:11:50 +02:00
myvesta
201cdad4b3
exit with brackets fix 2023-03-26 15:06:22 +02:00
myvesta
3192243fb4
tabs fix 2023-03-26 15:01:52 +02:00
myvesta
beccead388
php-func fix 2023-03-26 14:58:10 +02:00
myvesta
dd1efc58a1
Update bash-to-php-interpreter.php 2023-03-26 03:49:38 +02:00
myvesta
09dcc123be
Interpreter for calling myVesta PHP functions 2023-03-26 03:40:33 +02:00
myvesta
d84a021354
force-https fix 2023-03-25 23:59:28 +01:00
myvesta
505c4085f5
Update force-https.patch 2023-03-25 18:30:41 +01:00
myvesta
797ae8e515
force-https.patch 2023-03-25 18:19:29 +01:00
myvesta
71f91ba16d
deb9 private-force-https.tpl 2023-03-25 16:24:20 +01:00
myvesta
66097392bf
deb8 ttp2->ssl fix 2023-03-25 16:22:49 +01:00
myvesta
fdd8350fef
https redirect to the same host (deb9) 2023-03-25 16:12:44 +01:00
myvesta
ce7f31121d
https redirect to the same host (deb9) 2023-03-25 16:10:09 +01:00
myvesta
77857f92f0
https redirect to the same host 2023-03-25 15:39:57 +01:00
myvesta
a235ba6384
exim_forwarding.patch 2023-03-24 23:15:17 +01:00
myvesta
cd5cc2eda4
Forward from primary ip, not from secondary 2023-03-24 20:36:20 +01:00
myvesta
e9ca648f12
v-commander: inst-memchached and inst-redis 2023-03-23 14:14:40 +01:00
myvesta
172d66b4d2
Add files via upload 2023-03-22 15:02:22 +01:00
myvesta
afa72dc258
Update multi-php-install.sh 2023-03-21 17:50:14 +01:00
myvesta
bdc75152d2
php8.2.patch 2023-03-21 17:49:08 +01:00
myvesta
8ae36f7df5
Update string.php 2023-03-11 14:50:11 +01:00
myvesta
16e1000f1c
str_get_between PHP function 2023-03-11 10:40:40 +01:00
myvesta
38137b3ba9
Do not delete ssl.$domain* 2023-03-03 10:47:25 +01:00
myvesta
6db5f28ae5
Update v-commander 2023-03-02 15:29:26 +01:00
myvesta
4b0c521309
Merge pull request #155 from N1ebieski/master
Include "hidden" files to backup with support for exclusions in the old format
2023-02-24 13:29:53 +01:00
N1ebieski
47d55cff76
Update v-backup-user
Include "hidden" files to backup with support for exclusions in old pattern
2023-02-24 11:52:37 +01:00
myvesta
0dda04a19f
Merge pull request #154 from myvesta/revert-146-patch-4
Revert "Include "hidden" files to backup"
2023-02-23 20:46:14 +01:00
myvesta
91c6ff09ab
Revert "Include "hidden" files to backup" 2023-02-23 20:45:28 +01:00
myvesta
3391125925
SILENT_MODE in v-search-domain-owner 2023-02-23 16:18:31 +01:00
myvesta
0fae1613e3
Update main.sh 2023-02-23 15:58:00 +01:00
myvesta
8dcbafcc73
Update v-get-php-version-of-domain 2023-02-23 15:47:30 +01:00
myvesta
db554bacb7
Update fix-fpm-poold.sh 2023-02-23 14:57:37 +01:00
myvesta
f8a3f209c4
Update fix-fpm-poold.sh 2023-02-23 14:55:45 +01:00
myvesta
d0bba785be
Update v-activate-rocket-nginx 2023-02-21 20:29:16 +01:00
myvesta
84cf1269fb
Update sr.php 2023-02-20 11:16:08 +01:00
isscbta
ca4abdb864 Update v-activate-rocket-nginx 2023-02-16 21:38:17 +01:00
isscbta
f73b121ce7 Merge branch 'master' of https://github.com/myvesta/vesta 2023-02-16 21:33:35 +01:00
isscbta
d267a3deaa Update v-activate-rocket-nginx 2023-02-16 21:28:28 +01:00
myvesta
72e659ac18
Update v-get-php-version-of-domain 2023-02-16 21:20:11 +01:00
isscbta
38ec1b872f Update v-activate-rocket-nginx 2023-02-16 21:04:20 +01:00
isscbta
a997f6f59c Update v-activate-rocket-nginx 2023-02-16 20:50:57 +01:00
myvesta
7c9dfd4c05
Update v-activate-rocket-nginx 2023-02-15 14:00:04 +01:00
myvesta
1e20159847
Version 0.9.8-26-60 2023-02-12 16:22:53 +01:00
myvesta
df9e5508e0
Update Changelog.md 2023-02-12 16:21:32 +01:00
myvesta
1ee85a3568
Merge pull request #146 from N1ebieski/patch-4
Include "hidden" files to backup
2023-02-12 16:12:13 +01:00
myvesta
0ab6925adb
Create v-commander 2023-02-12 15:59:45 +01:00
myvesta
5dedc1e813
Checking for $CREATE_TO_DATABASE in v-clone-website 2023-02-11 20:35:00 +01:00
myvesta
7fe91ca4c9
v-clone-website: By default cloning to DB: user_domain_com
instead of cloning to database: user_old_db_migrated
2023-02-11 20:29:14 +01:00
myvesta
e0b90ef9d6
v-install-wordpress: Check if MariaDB allows long database name 2023-02-11 19:43:58 +01:00
myvesta
a28436e6e8
Update multi-php-install.sh 2023-02-11 19:20:03 +01:00
myvesta
6770d3bc4c
Fix for /backup 2023-02-10 19:37:45 +01:00
isscbta
7420a9ca84
Update v-move-domain-and-database-to-account 2023-02-10 17:40:20 +01:00
isscbta
a531eb20f6 Update v-activate-rocket-nginx 2023-02-06 18:34:10 +01:00
isscbta
33d0e6df9c Update v-activate-rocket-nginx 2023-02-06 15:57:07 +01:00
myvesta
94770a5f12
Update v-clean-garbage 2023-02-05 16:43:14 +01:00
myvesta
d6a84f37d2
Update v-update-myvesta 2023-02-05 16:40:24 +01:00
myvesta
65f626eda7
Update v-clean-garbage 2023-02-05 16:36:12 +01:00
myvesta
cf5b5325d6
Update v-clean-garbage 2023-02-05 16:32:14 +01:00
myvesta
43ebf79c34
Update v-clean-garbage 2023-02-05 16:19:10 +01:00
myvesta
5007cc2edf
Update v-update-myvesta 2023-02-05 16:17:46 +01:00
myvesta
a10f82af30
Create v-update-myvesta 2023-02-05 16:11:15 +01:00
myvesta
6d9c6d4734
Update v-clean-garbage 2023-02-05 16:05:00 +01:00
myvesta
71daf552e5
Cleaning /hdd/home 2023-02-05 15:52:13 +01:00
myvesta
935c7b2d08
Merge pull request #152 from umutkorkmaaz/master
i18n updates: missing fields added, duplicated keys removed, Turkish lang improvements
2023-02-04 11:04:58 +01:00
Umut Korkmaz
87b8216812 Duplicated fields removed 2023-02-04 02:47:43 +03:00
Umut Korkmaz
164ea90d53 Added missing fields 2023-02-04 02:45:31 +03:00
Umut Korkmaz
1ecd227785
Untranslated fields translated, typos fixed 2023-02-04 01:58:49 +03:00
isscbta
ab0b8c53c4
Rename v-activate-rocket-nginx.sh to v-activate-rocket-nginx 2023-02-02 14:28:37 +01:00
isscbta
15e5f3bc81
Rename v-get-php-version-of-domain.sh to v-get-php-version-of-domain 2023-02-02 13:49:00 +01:00
isscbta
d940389c15 Script to determine which PHP version a given domain is using 2023-02-02 13:44:29 +01:00
isscbta
1c33f9cfd2 Update v-activate-rocket-nginx.sh 2023-02-02 11:37:42 +01:00
isscbta
2d8fc21ba7 Update v-activate-rocket-nginx.sh 2023-02-01 20:07:07 +01:00
isscbta
c263c3322c Update v-activate-rocket-nginx.sh 2023-02-01 19:40:01 +01:00
isscbta
8eb0b19a0b Automatic installation of rocket-nginx for a given domain 2023-02-01 19:37:14 +01:00
myvesta
0a17e3759b
Version 0.9.8-26-59 2023-01-31 23:49:12 +01:00
myvesta
1325a73661
Update Changelog.md 2023-01-31 23:43:47 +01:00
myvesta
0e9a5304a5
Installing WordPress to user_domain_com database 2023-01-31 23:34:10 +01:00
myvesta
fa94c7a210
Update Changelog.md 2023-01-31 23:24:37 +01:00
myvesta
3fdfddf007
Merge pull request #144 from umutkorkmaaz/master
Fixed #142
2023-01-31 23:17:53 +01:00
myvesta
e8b9545a9d
CRLF to LF EOL 2023-01-31 21:56:18 +01:00
myvesta
151159f9d3
fpm pool.d conf tweak 2023-01-31 21:51:19 +01:00
myvesta
bfd822092c
Creating /etc/nginx/.htpasswd if it does not exist 2023-01-31 20:22:44 +01:00
myvesta
780f637325
Update PHP-FPM-73-public.sh 2023-01-31 20:13:31 +01:00
myvesta
60dbae21b1
Update PHP-FPM-73.sh 2023-01-31 20:12:40 +01:00
myvesta
13b310d115
Update PHP-FPM-74-public.sh 2023-01-31 20:11:12 +01:00
myvesta
f5cc5d75c2
Update PHP-FPM-74.sh 2023-01-31 20:10:19 +01:00
myvesta
08146520a0
default user/pass for private-hosting.tpl 2023-01-31 18:01:56 +01:00
myvesta
e7543afbd3
Update install-rocket-nginx.sh 2023-01-31 17:54:25 +01:00
isscbta
ac96d9f9b3 Fix filename 2023-01-31 17:48:45 +01:00
isscbta
4bc0ecc46e Update wprocket-hosting.stpl 2023-01-31 16:34:10 +01:00
isscbta
1d67c6ae54 Update wprocket-hosting.tpl 2023-01-31 16:31:02 +01:00
isscbta
290600dfcd Minor fix for install-rocket-nginx.sh 2023-01-31 16:27:52 +01:00
isscbta
66162375fd Minor fix for install-rocket-nginx.sh 2023-01-31 16:23:15 +01:00
myvesta
91ac345b3e
default php 8.2 www.conf 2023-01-31 15:26:38 +01:00
myvesta
2db5a6404a
PHP 8.2 apache templates 2023-01-31 15:20:33 +01:00
myvesta
ed85dfdac7
Support for PHP 8.2 2023-01-31 15:03:05 +01:00
isscbta
8409e19fac Added install-rocket-nginx.sh and the following nginx templates 2023-01-30 13:42:03 +01:00
myvesta
a39b192d30
v-lock-wordpress - set correct chmod just in case 2023-01-23 12:47:49 +01:00
myvesta
cdbcf84b2c
unlock /wp-content/cache/ for caching 2023-01-22 16:35:59 +01:00
myvesta
7cdd65baf2
Update v-install-wordpress 2023-01-20 13:09:23 +01:00
myvesta
bdfe17490f
Update v-unlock-wordpress 2023-01-20 13:07:16 +01:00
myvesta
ee5df22828
Update v-lock-wordpress 2023-01-20 13:06:34 +01:00
myvesta
0a78d937dd
Update v-unlock-wordpress 2023-01-19 18:07:43 +01:00
myvesta
a65f008f9a
Update v-unlock-wordpress 2023-01-19 18:06:44 +01:00
myvesta
0fc6fd5fa5
Update v-install-wordpress 2023-01-19 18:05:56 +01:00
myvesta
f397454364
Update v-install-wordpress 2023-01-19 18:04:45 +01:00
myvesta
8b75699377
Update v-lock-wordpress 2023-01-19 18:03:40 +01:00
myvesta
c9c29ce7a9
Create v-unlock-wordpress 2023-01-19 18:02:56 +01:00
myvesta
efc2be9f71
Lock WordPress files if they are potentially infected 2023-01-19 17:55:44 +01:00
myvesta
caee59c015
Update v-install-wordpress 2023-01-19 17:43:42 +01:00
myvesta
479805c52c
Cleaning fail2ban database 2023-01-15 22:01:43 +01:00
myvesta
2df6bfbb0b
New roundcube version 2023-01-15 17:37:32 +01:00
myvesta
ae81474f8e
Update vst-install-debian.sh 2023-01-14 17:15:36 +01:00
myvesta
d0a77cf3f6
Writing '$ip $servername' to /etc/hosts 2023-01-14 16:44:27 +01:00
myvesta
171a42a65e
Update vst-install-debian.sh 2023-01-14 15:49:46 +01:00
myvesta
fab56e1b70
Another attempt to fix wildcard letsencrypt 2023-01-12 17:59:49 +01:00
myvesta
0db48dcdaa
Update v-move-folder-and-make-symlink 2022-12-29 15:12:58 +01:00
myvesta
75e7d7c5e0
Update v-move-folder-and-make-symlink 2022-12-29 13:44:40 +01:00
myvesta
5b0056b193
Update v-move-folder-and-make-symlink 2022-12-29 13:18:44 +01:00
myvesta
cab6df399a
Create v-move-folder-and-make-symlink 2022-12-29 12:57:17 +01:00
myvesta
d0f5d1a355
Update fix-fpm-poold.sh 2022-12-08 14:13:42 +01:00
myvesta
343a4deb73
Additional fix for utf8mb4_0900_ai_ci 2022-11-26 21:42:09 +01:00
myvesta
93b4b1e466
Update v-fix-user-permissions 2022-11-26 15:37:51 +01:00
myvesta
8e34db9a71
Replacing utf8mb4_0900_ai_ci 2022-11-23 14:28:32 +01:00
myvesta
8563303fbe
Rollback of previous commit 2022-11-23 14:25:56 +01:00
myvesta
e134202224
Skipping forward proxy while renewing LetsEncrypt 2022-11-22 09:07:25 +01:00
myvesta
06ebea1a8b
Update fix-fpm-poold.sh 2022-11-14 14:45:59 +01:00
myvesta
f5d3d97dfb
Add files via upload 2022-11-09 19:01:33 +01:00
myvesta
56484d4b01
Create run-all.sh 2022-11-09 19:01:02 +01:00
myvesta
595dd5dffd
Delete create-mail-sync.sh 2022-11-09 19:00:15 +01:00
myvesta
7e37ed4711
scanps fixes 2022-11-09 17:04:10 +01:00
myvesta
aa493287f3
Create scanps.php 2022-11-09 16:15:48 +01:00
myvesta
8d4eee37d0
Create scanps.sh 2022-11-09 15:36:57 +01:00
myvesta
f89065a80a
Create create-mail-sync.sh 2022-11-09 10:35:38 +01:00
myvesta
af11a4cbf2
Update fix-fpm-poold.sh 2022-11-04 20:09:50 +01:00
myvesta
402a4286d3
Update fix-fpm-poold.sh 2022-11-03 15:37:43 +01:00
myvesta
039dca41c3
Update fix-fpm-poold.sh 2022-11-03 15:23:15 +01:00
myvesta
c182d7f0a7
Create fix-fpm-poold.sh 2022-11-03 15:19:08 +01:00
myvesta
8791d471c6
Merge pull request #148 from jaapmarcus/patch-1
Unsuspend database does not restore permissions remote users
2022-11-03 10:10:13 +01:00
Jaap Marcus
c6d226023e
Unsuspend database does not restore permissions remote users
See https://github.com/hestiacp/hestiacp/issues/3011 and https://github.com/hestiacp/hestiacp/issues/3014
2022-11-03 07:14:43 +01:00
myvesta
374b4da5bc
Update W3TC.json 2022-11-02 19:57:48 +01:00
myvesta
93c1414217
systemctl instead of service in v-restart-dns 2022-10-14 18:38:39 +02:00
myvesta
7f38c8ceaf
Restart DNS after adding acme_challenge TXT record 2022-10-14 16:00:02 +02:00
myvesta
25d3fef4aa
Create v-fix-user-permissions 2022-09-26 14:27:39 +02:00
N1ebieski
e5a03804aa
Include "hidden" files to backup
Files like .htaccess, .env, .git etc
2022-09-25 14:47:31 +02:00
myvesta
5518e0e059
Update v-clean-garbage 2022-09-24 11:55:07 +02:00
Umut Korkmaz
44cf0b5306
Fixed #142 2022-08-02 17:24:55 +03:00
myvesta
d48f6cc428
typo fix 2022-07-29 00:34:52 +02:00
myvesta
bc67f1028a
Fix for an boring PHP Notice in vesta-php 2022-07-12 21:08:30 +02:00
myvesta
d625c9722a
Fix for an boring PHP Notice in vesta-php 2022-07-12 21:00:33 +02:00
myvesta
6d36502623
Update Changelog.md 2022-07-12 20:52:41 +02:00
myvesta
8b1c8b658d
Update Changelog.md 2022-07-12 20:47:56 +02:00
myvesta
94d7c20a3b
Version 0.9.8-26-58 2022-07-12 20:42:10 +02:00
myvesta
b2d7c5a1fd
Fix for PHP Notice in vesta-php 2022-07-12 20:40:20 +02:00
myvesta
fa3d9aff36
Merge pull request #141 from divinity76/patch-4
avoid out-of-memory serving large logfiles
2022-07-12 20:24:54 +02:00
divinity76
15c5bdac51
turns out VESTA_CMD is 2 commands 2022-07-12 20:07:55 +02:00
divinity76
5aebfde6cf
avoid double-quoting v_domain 2022-07-12 19:17:01 +02:00
divinity76
1a081dfdbe
workaround for passthru() being disabled 2022-07-12 19:14:55 +02:00
myvesta
e65af22a54
hash_equals() in /reset/mail/
Thanks to @divinity76
2022-07-12 18:10:31 +02:00
divinity76
b09d244af7
code-breaking-typo
from copypasta
2022-07-09 11:18:30 +02:00
divinity76
b13b82112a
avoid out-of-memory serving large logfiles
large logfiles previously resulted in out-of-memory errors, see https://github.com/hestiacp/hestiacp/issues/2736

hestacp PR: https://github.com/hestiacp/hestiacp/pull/2741

and no, removing the php end tag was not an accident, it was intentional. end tags, ideally, should only be used when they're absolutely required, because they can easily introduce bugs like printing a newline after the end tag.
2022-07-09 11:16:02 +02:00
myvesta
a2da58841b
Merge pull request #140 from umutkorkmaaz/patch-4
fix typo
2022-07-06 19:32:51 +02:00
Umut Korkmaz
d3bde491c7
fix typo 2022-07-06 19:43:11 +03:00
myvesta
16f18bd8b3
Version 0.9.8-26-57 2022-07-06 15:09:22 +02:00
myvesta
7f1de189dd
Update Changelog.md 2022-07-06 15:08:12 +02:00
myvesta
cf8a49f739
Patch for GMail SMTP timeouts 2022-07-06 14:38:58 +02:00
myvesta
2598785a75
Fix for Exim4 fastopen with Gmail services (Debian11) 2022-07-06 13:25:34 +02:00
myvesta
c7aa6ec749
Fix for Exim4 fastopen with Gmail services (Debian11) 2022-07-06 12:48:09 +02:00
myvesta
0f86941e8e
Fix for Sed Injection Vulnerability 2022-06-04 19:06:23 +02:00
myvesta
8dd8cd0767
Version 0.9.8-26-56 2022-05-27 23:57:37 +02:00
myvesta
748d42ead7
Update Changelog.md 2022-05-27 23:55:58 +02:00
myvesta
67ba371722
Barracuda RBL in installer 2022-05-27 23:50:14 +02:00
myvesta
c787f2c235
Adding Barracuda RBL to SpamAssassin 2022-05-27 23:46:39 +02:00
myvesta
93f2a62ee8
Fixing insane HTML form bug in Lisr backup details page
Without this fix, selecting first item and skiping next item and selecting any other item below, resulted with selected only first item in HTML form array
2022-05-27 23:28:25 +02:00
myvesta
360abd80c0
Update v-make-separated-ip-for-email 2022-05-21 12:42:29 +02:00
myvesta
d8fb531865
Update barracuda.cf 2022-05-08 16:24:56 +02:00
myvesta
aaf20378b1
Create barracuda.cf 2022-05-08 15:59:46 +02:00
myvesta
23ba131e69
Update v-make-separated-ip-for-email 2022-05-07 22:21:20 +02:00
myvesta
f49479043f
Update v-make-separated-ip-for-email 2022-05-07 21:39:40 +02:00
myvesta
18e42c9540
exim4.conf.template-RC 2022-05-07 21:11:10 +02:00
myvesta
aeb210433f
conf/mariadb_installed and conf/mysql8_installed 2022-05-07 14:23:11 +02:00
myvesta
3a688f33fa
Update vst-install-debian.sh 2022-05-07 12:45:33 +02:00
myvesta
f2809eeb67
Update Changelog.md 2022-04-25 23:38:47 +02:00
myvesta
247dce94f8
Version 0.9.8-26-55 2022-04-25 22:41:53 +02:00
myvesta
d98d67d5a1
Update Changelog.md 2022-04-25 22:39:52 +02:00
myvesta
1c4cce181a
Making sure yescrypt is disabled 2022-04-25 22:34:33 +02:00
myvesta
74e9dd4abf
Linux EOL in v-log-failed-login and v-change-user-rkey 2022-04-25 22:16:34 +02:00
myvesta
fca4ca66d4
Delete v-change-user-rkey 2022-04-25 22:13:46 +02:00
myvesta
822541d1c5
Delete v-log-failed-login 2022-04-25 22:12:19 +02:00
myvesta
da69aaa7aa
Update v-log-failed-login 2022-04-25 22:09:23 +02:00
myvesta
475b7eac6b
Generating 16 chars password for users 2022-04-25 21:23:02 +02:00
myvesta
547d5f0c5b
Preventing brute-force reseting password 2022-04-25 21:13:46 +02:00
myvesta
add252bbd7
Update install-new-roundcube.sh 2022-04-02 10:13:37 +02:00
myvesta
8bbf4ef361
Update install-new-roundcube.sh 2022-04-02 10:12:05 +02:00
myvesta
1cbd6a5797
Update v-get-database-credentials-of-domain 2022-03-31 16:12:46 +02:00
myvesta
3cf64450a2 Blocking in nginx .env 2022-03-30 14:12:30 +02:00
myvesta
355ae01222 Reverting blocking in nginx everything that begins with dot 2022-03-30 13:50:29 +02:00
myvesta
ebb6b54065
Many improvements in v-clone-website 2022-03-24 20:31:43 +01:00
myvesta
6523a2daf9
OpenCart detection 2022-03-24 20:26:16 +01:00
myvesta
bda54c4ec4
handle --parameters without shifting 2022-03-24 18:20:31 +01:00
myvesta
54c3fd1e13 Blocking in nginx everything that begins with dot 2022-03-11 15:55:00 +01:00
myvesta
dd09dbe748
Update v-clone-website 2022-03-04 20:30:40 +01:00
myvesta
81b63267cf
Update v-clone-website 2022-03-04 18:54:15 +01:00
myvesta
7331a39ace
srdb cli in v-clone-website 2022-03-04 18:53:06 +01:00
myvesta
7fe43c33bc
Merge pull request #137 from umutkorkmaaz/master
Update v-install-wordpress
2022-02-17 08:16:17 +01:00
Umut Korkmaz
2f115195d4
Update v-install-wordpress
if the user reached the database limit abort the installation
2022-02-16 20:24:10 +03:00
myvesta
8c186156fd
Update v-clean-garbage 2022-02-11 16:43:39 +01:00
myvesta
29b83e7f76
Update install-new-roundcube.sh 2022-02-08 11:39:03 +01:00
myvesta
a4251739e9
Update install-new-roundcube.sh 2022-02-01 16:19:16 +01:00
myvesta
5a0914b71b
Update vst-install-debian.sh 2022-01-24 23:20:31 +01:00
myvesta
9090a21bc7
MySQL 8 support as installer option 2022-01-24 20:43:41 +01:00
myvesta
d98f373226
Detection of MySQL 8 in v-list-sys-services 2022-01-24 20:41:48 +01:00
myvesta
f0f28da12e phpmyadmin installer mysql8 suppodrt 2022-01-23 23:46:17 +01:00
myvesta
e91976613c mysql8 create user, set password, grant 2022-01-23 15:41:28 +01:00
myvesta
d30c9f584e
Update install-new-roundcube.sh 2022-01-22 16:15:24 +01:00
myvesta
91fe4bc7c5
Exclude /var/log/apt/* while cleaning garbage 2022-01-09 14:43:45 +01:00
myvesta
aa85d2e581
Update install-softaculous.sh 2021-12-25 13:36:08 +01:00
myvesta
909619ef69
Update v-clean-garbage 2021-12-19 16:06:13 +01:00
myvesta
fee11ca777
Update install-new-roundcube.sh 2021-12-19 01:56:35 +01:00
myvesta
90db1084ec
Update install-new-roundcube.sh 2021-12-19 01:08:43 +01:00
myvesta
2ee193873f
Update install-new-roundcube.sh 2021-12-17 22:36:49 +01:00
myvesta
d89da4f51b
Version 0.9.8-26-54 2021-12-17 19:36:17 +01:00
myvesta
ecc0640415
Update Changelog.md 2021-12-17 19:35:20 +01:00
myvesta
a0ad0c6101
Update sr.php 2021-12-17 19:16:50 +01:00
myvesta
5d87f24b3f
Checking if FreshClam is started after installation 2021-12-17 18:19:25 +01:00
myvesta
e0530d895a
Update vst-install-debian.sh 2021-12-17 18:12:47 +01:00
myvesta
6db07c4aa5
Starting FreshClam during myVesta installation 2021-12-17 16:38:43 +01:00
myvesta
774faa2d98
Update install-new-roundcube.sh 2021-12-17 01:18:49 +01:00
myvesta
5fa3645004
Adding install-new-roundcube.sh 2021-12-17 00:43:49 +01:00
myvesta
b965a3d184
Delete install-new-roundcube.sh 2021-12-17 00:42:45 +01:00
myvesta
e44da1ee66
Add files via upload 2021-12-17 00:36:35 +01:00
myvesta
5b9672b26f
Add files via upload 2021-12-16 23:56:59 +01:00
myvesta
11b5f0d9c7
Delete create_wp_http 2021-12-16 23:53:46 +01:00
myvesta
39fd40f0cc
Update multi-php-install.sh 2021-12-13 00:57:03 +01:00
myvesta
93d8ca4a81
Update vst-install-debian.sh 2021-12-12 21:17:24 +01:00
myvesta
98dcbbc691
Update postinst 2021-12-12 21:16:22 +01:00
myvesta
4ec64b0191
Update keep_mpm_event.sh 2021-12-12 21:14:15 +01:00
myvesta
d399d74fd9
Update multi-php-install.sh 2021-12-12 20:29:25 +01:00
myvesta
71bdbfbcf5
php8.1.patch 2021-12-12 20:27:57 +01:00
myvesta
549ba4e154
Update multi-php-install.sh 2021-12-12 19:39:37 +01:00
myvesta
a17af106fd
Support for PHP 8.1 2021-12-12 19:38:43 +01:00
myvesta
c03d8cd75e
PHP-FPM 8.1 templates 2021-12-12 19:25:40 +01:00
myvesta
5631e6d732
Update Changelog.md 2021-12-12 17:35:18 +01:00
myvesta
3b9d81bc80
Version 0.9.8-26-53 2021-12-12 17:32:45 +01:00
myvesta
353526d289
Update postinst 2021-12-12 17:31:50 +01:00
myvesta
9c04bb8417
Ensure pool.d folders after template changes 2021-12-12 17:25:19 +01:00
myvesta
3c17e159a1
Ensure that pool.d folders are not empty 2021-12-12 16:49:24 +01:00
myvesta
77de50a6cd
Create v-ensure-poold-folders-not-empty 2021-12-12 16:31:21 +01:00
myvesta
c7b872b778
check_if_service_exists() function 2021-12-12 16:28:16 +01:00
myvesta
591bd21615
default pool.d www.conf files 2021-12-12 16:24:23 +01:00
myvesta
cf4f5af280
Update latest.txt 2021-11-23 13:38:12 +01:00
myvesta
706fe4a5e7
Update Changelog.md 2021-11-23 13:37:32 +01:00
myvesta
fb0e127adf
Added memcached to v-list-sys-services 2021-11-23 13:33:34 +01:00
myvesta
dba6c79f71
Update v-normalize-restored-user 2021-11-21 13:43:01 +01:00
myvesta
a30d8b8233
Update v-normalize-restored-user 2021-11-21 13:41:48 +01:00
myvesta
a08a17cca8
Merge pull request #134 from anton-reutov/patch-26
Small improvmemts for login form
2021-11-20 22:15:48 +01:00
myvesta
47ba92989c
Merge pull request #133 from anton-reutov/patch-25
Small improvmemts for login form
2021-11-20 22:15:15 +01:00
Anton Reutov
47f2ca1d37
Small improvmemts for login form 2021-11-19 21:29:42 +03:00
Anton Reutov
d36f1a355b
Small improvmemts for login form 2021-11-19 21:28:19 +03:00
myvesta
8f6fe21dbf
Dont match wildcardly *domains and databases* while restoring 2021-11-17 15:15:23 +01:00
myvesta
de5f28459e
$pid fix in v-list-sys-services 2021-11-14 21:11:34 +01:00
myvesta
b62486ddd2
Update Changelog.md 2021-11-14 20:20:29 +01:00
myvesta
a7d96a479b
Fixes only if ClamAV is enabled 2021-11-14 20:16:27 +01:00
myvesta
b42d607ad1
Version 0.9.8-26-51 2021-11-14 20:05:49 +01:00
myvesta
d9202d91b9
Avoid clamav fixes if clamav is disabled 2021-11-14 20:01:21 +01:00
myvesta
302e351252 Many fixes for v-list-sys-services 2021-11-14 19:47:54 +01:00
myvesta
8c4be97720
Fix for "chmod: changing permissions" 2021-11-12 23:04:46 +01:00
myvesta
aba861c814 check spam if email smaller than 600 KB 2021-11-11 22:54:42 +01:00
myvesta
c0cebf5264
Update Changelog.md 2021-11-07 21:48:46 +01:00
myvesta
14ba4ab999
Version 0.9.8-26-50 2021-11-07 21:46:52 +01:00
myvesta
378108cd39
Merge pull request #131 from jaapmarcus/patch-1
Regex string threaded literally instead as regex
2021-11-07 15:11:34 +01:00
myvesta
4bb53ff28f
Properly rebuild_mysql_database password for MariaDB > 10.4 2021-11-07 14:26:16 +01:00
myvesta
39c9ebc2a7
curl --silent in v-add-letsencrypt-domain 2021-11-07 00:33:45 +01:00
myvesta
bc9ca52c37
Create v-clean-garbage 2021-10-20 23:48:42 +02:00
myvesta
5633b839e5
Update multi-php-install.sh 2021-10-20 23:36:26 +02:00
myvesta
e2537d9026
Set default php in installer 2021-10-20 23:34:42 +02:00
myvesta
f68d0178c8
Update multi-php-install.sh 2021-10-20 21:51:17 +02:00
Jaap Marcus
a493c140ce
Regex string threaded literally instead as regex
During shellcheck of Hestia source code I noticed the following error matching the line:
^----^ SC2076: Don't quote right-hand side of =~, it'll match literally rather than as a regex.
                                                                                      ^--------------^ SC2076: Don't quote right-hand side of =~, it'll match literally rather 
Proof of concept:
root@dev:~# v-add-web-domain jaap jaap..nu 
Error: nginx restart failed
root@dev:~# v-add-web-domain jaap jaap..nu 
Error: invalid domain format :: jaap..nu
2021-10-18 09:31:48 +02:00
myvesta
8bbfc1255f
Avoiding error if unzip destination exists 2021-10-15 10:33:21 +02:00
myvesta
def46e8cd7
Update v-install-wordpress 2021-10-12 11:41:04 +02:00
myvesta
402131c22b
Moving v-install-wordpress to --parameters 2021-09-30 16:41:36 +02:00
myvesta
9eb21cef4c
Define mail user in rebuild_mail_domain_conf() 2021-09-30 15:44:18 +02:00
myvesta
fd8a44ae23
Update postinst 2021-09-30 13:43:51 +02:00
myvesta
f236015bdf
Update process for Autoreply fix with Exim 4.94+ 2021-09-30 13:40:01 +02:00
myvesta
2ac72e00fb Fix Autoreply issue with Exim 4.94+ 2021-09-30 11:02:23 +02:00
myvesta
fc483f5d3c
Set original cPanel mail passwords 2021-09-27 21:35:47 +02:00
myvesta
d4411dc92f
Update v-import-cpanel-backup 2021-09-27 19:12:33 +02:00
myvesta
1884463e8e
Set original cPanel mail passwords 2021-09-27 16:28:49 +02:00
myvesta
f66403eb9f
Better replacing yescrypt to sha512 2021-09-26 11:55:15 +02:00
myvesta
e843f1e701
Removing pre-installed exim4 2021-09-26 10:41:18 +02:00
myvesta
43955dd086
Updating apt before installation 2021-09-25 15:30:30 +02:00
myvesta
d7a656b94f
roundcube set elastic skin as defalt 2021-09-25 14:35:35 +02:00
myvesta
ae99e0c837
Fresh W3TC.json 2021-09-25 14:17:09 +02:00
myvesta
e7b2626d4c
installing php7.x-imap 2021-09-24 10:54:20 +02:00
myvesta
73948ac4d1
Logging letsencrypt error message 2021-09-19 13:26:45 +02:00
myvesta
7ee21aad7b
Restoring php-fpm pool.d conf files 2021-09-14 21:43:46 +02:00
myvesta
c93345f669
Restoring php-fpm pool.d conf files 2021-09-14 21:10:10 +02:00
myvesta
ca76e2bc8c
Allow to specify full path to backup file 2021-09-14 21:07:22 +02:00
myvesta
f36d20641e
Update v-backup-user 2021-09-14 20:24:39 +02:00
myvesta
2f3bcfe5ec
backuping php-fpm conf file 2021-09-14 20:22:35 +02:00
myvesta
ee3665ecb7
Update index.php 2021-09-04 19:00:20 +02:00
myvesta
93de22a0b3 Fix for CSRF in FileManager and UploadHandler 2021-09-04 15:31:34 +02:00
myvesta
63861e4ffd Fix fox CSRF in /dowload/web-log/ 2021-09-04 12:55:40 +02:00
myvesta
329c37a13c
Update index.php 2021-09-04 12:32:16 +02:00
myvesta
7220e01116
secured php.ini for multi-php 2021-09-04 12:18:09 +02:00
myvesta
82d00b4a5c
Fix for: mv: cannot stat '/usr/local/vesta/log/backup.log' 2021-09-04 11:29:36 +02:00
myvesta
9a746ea484 Adding token for /logout/ 2021-09-04 01:23:24 +02:00
myvesta
5a6977660c
Update vst-install-debian.sh 2021-09-02 21:47:17 +02:00
myvesta
584acfd456
New versions of software in vesta_compile.sh 2021-09-02 21:40:40 +02:00
myvesta
3b287934c3
Enabling session.cookie_httponly and session.cookie_secure in myvesta php-fpm 2021-09-01 00:33:16 +02:00
myvesta
ab9c10b05c
Update secure_login.php 2021-09-01 00:24:43 +02:00
myvesta
693dd2877c
session.cookie_httponly and session.cookie_secure in myvesta php-fpm 2021-08-30 00:06:32 +02:00
myvesta
475fe47984 Checking token on adding and deleting favorites 2021-08-29 16:05:33 +02:00
myvesta
5262b3f447
Update secure_login.php 2021-08-29 14:13:03 +02:00
myvesta
7c9da855e8
Update secure_login.php 2021-08-29 14:05:15 +02:00
myvesta
8a5469abcd
Update secure_login.php 2021-08-29 12:39:48 +02:00
myvesta
834f939fbe
Exception for function prevent_get_csrf 2021-08-29 11:50:22 +02:00
myvesta
eae5c3418a
Preventing GET CSRFs 2021-08-29 11:14:11 +02:00
myvesta
49905063f6
Update secure_login.php 2021-08-29 11:09:24 +02:00
myvesta
085a25d165
Update secure_login.php 2021-08-29 01:59:49 +02:00
myvesta
59edb05f49
Proper way to fix CSRF in /edit/file/ 2021-08-29 01:20:12 +02:00
myvesta
11f1cfcf4e Proper way to fix CSRF in /schedule/backup/ 2021-08-29 00:54:57 +02:00
myvesta
0336e8b8d0
Preventing CSRF in /file_manager/fm_api.php 2021-08-29 00:14:15 +02:00
myvesta
9277b37800
Preventing CSRF in /schedule/backup 2021-08-29 00:12:09 +02:00
myvesta
92297f2fc2
Preventing CSRF in UploadHandler.php 2021-08-29 00:10:42 +02:00
myvesta
c2a30bcd31
Preventing CSRF in /edit/file/ 2021-08-29 00:07:41 +02:00
myvesta
c7bd10ab3b
Smarter preventing all POST CSRF 2021-08-29 00:04:27 +02:00
myvesta
0686c6d5f6
More logical check expression in secure_login.php 2021-08-28 23:35:10 +02:00
myvesta
b8963d5b2d
Fix for: news@anydomain.com went to /var/spool/news
Issue https://github.com/hestiacp/hestiacp/issues/2078
Credits to @HestiaCP
2021-08-28 20:06:24 +02:00
myvesta
b4204da66f
Fix for: news@anydomain.com went to /var/spool/news
Issue https://github.com/hestiacp/hestiacp/issues/2078
Credits to HestiaCP
2021-08-28 20:01:47 +02:00
myvesta
8e666c269b
systemctl reset-failed php5.6-fpm 2021-08-27 16:09:58 +02:00
myvesta
2d4efd2db9
systemctl reset-failed php7.0-fpm 2021-08-27 16:05:18 +02:00
myvesta
ded5ca2202
systemctl reset-failed php7.1-fpm 2021-08-27 16:01:52 +02:00
myvesta
7767ab759b
systemctl reset-failed php7.2-fpm 2021-08-27 15:51:37 +02:00
myvesta
b9ccc103f1
Enabling nginx official repo for deb11 2021-08-26 14:32:34 +02:00
myvesta
e52f036dfb
sury.org bullseye repo 2021-08-26 14:30:33 +02:00
myvesta
d36218db92
Create SECURITY.md
close https://github.com/myvesta/vesta/issues/130
2021-08-24 18:53:56 +02:00
myvesta
d368bf7291
Update PHP-FPM-80-public.sh 2021-08-24 18:20:14 +02:00
myvesta
e6b559cdf2
Update PHP-FPM-80.sh 2021-08-24 18:18:42 +02:00
myvesta
a56a2c7dd5
Update PHP-FPM-80.sh 2021-08-24 18:17:20 +02:00
myvesta
5e24bf7222
Update PHP-FPM-73-public.sh 2021-08-24 18:03:23 +02:00
myvesta
c2fc51e069
Update PHP-FPM-73.sh 2021-08-24 18:01:57 +02:00
myvesta
77fa4d0a6b
Update PHP-FPM-74-public.sh 2021-08-24 18:00:27 +02:00
myvesta
df377c677c
Update PHP-FPM-74.sh 2021-08-24 17:58:46 +02:00
myvesta
abcf557d05
systemctl restart php7.4-fpm 2021-08-24 17:15:14 +02:00
myvesta
6b1dd5ae18
systemctl restart php7.4-fpm 2021-08-24 17:13:52 +02:00
myvesta
ce75daf4de
systemctl reset-failed php7.3-fpm 2021-08-24 17:08:47 +02:00
myvesta
9cb517a514
Update PHP-FPM-73.sh 2021-08-24 17:00:40 +02:00
myvesta
628464b969
Update PHP-FPM-74.sh 2021-08-24 16:48:17 +02:00
myvesta
4942f52f7f
systemctl reset-failed php7.4-fpm 2021-08-24 16:46:40 +02:00
myvesta
c6226e403a
systemctl reset-failed php7.3 2021-08-24 16:45:15 +02:00
myvesta
29f8358516
Override backup path 2021-08-23 20:50:48 +02:00
myvesta
dcbb7b80f9
$OVERRIDE_BACKUP_PATH 2021-08-23 20:47:57 +02:00
myvesta
b71238813b Changing the Default Character Set To UTF-8 in MariaDB 2021-08-15 18:08:13 +02:00
myvesta
d0dba33d94 Changing the Default Character Set To UTF-8 in MariaDB 2021-08-15 16:37:34 +02:00
myvesta
ac7315883b
Merge pull request #122 from oldgin/patch-5
Create default_host.stpl
2021-08-15 15:38:07 +02:00
myvesta
2c8b19608a
Merge pull request #121 from oldgin/patch-4
Create default_host.tpl
2021-08-15 15:37:49 +02:00
myvesta
43da9e2aa7
Preventing CSRF in file_manager/fm_api.php 2021-08-15 15:14:16 +02:00
myvesta
55c591535c
Preventing all CSRF 2021-08-15 14:53:16 +02:00
myvesta
1d73ff488b
Preventing CSRF in schedule / backup 2021-08-15 14:41:04 +02:00
myvesta
518e627b46
Update index.php 2021-08-15 14:37:53 +02:00
myvesta
9f55ef33cf
Update index.php 2021-08-15 14:36:45 +02:00
myvesta
d66afcbaaa
Preventing CSRF in schedule / backup 2021-08-15 14:20:13 +02:00
myvesta
d559763427
Preventing CSRF in edit/file 2021-08-15 14:15:48 +02:00
myvesta
914b53ea1c
Getting hostname from $_SERVER['HTTP_HOST'] for UploadHandler 2021-08-15 14:11:14 +02:00
myvesta
88596a8cd9
Fix for possible file inclusion vulnerability in i18n.php
Fix for https://github.com/serghey-rodin/vesta/issues/2052
2021-08-15 12:35:28 +02:00
myvesta
df11eaf33f Fix for "Broken or Risky Cryptographic Algorithm" 2021-08-14 22:36:07 +02:00
myvesta
bc3ac1d993
Update v-clone-website 2021-08-05 22:02:35 +02:00
myvesta
54fab10b52
Checking custom OpenSSH port
Taken from @HestiaCP
2021-07-27 15:27:40 +02:00
myvesta
083954af41
Create www.conf 2021-07-19 14:26:26 +02:00
myvesta
de4f13b042
Update Changelog.md 2021-07-17 17:00:22 +02:00
myvesta
31564ff06a
Update latest.txt 2021-07-17 16:57:59 +02:00
myvesta
7f42804657
Update v-update-sys-vesta-all 2021-07-17 16:57:23 +02:00
myvesta
68b6ed0c33
vesta compiling script for deb11 2021-07-17 16:41:02 +02:00
myvesta
1a6785eb70
Exim4 config adaption for Exim4.94+
Many many thanks to @madeITBelgium
Adaptions taken from https://github.com/madeITBelgium/vesta/blob/master/install/os-configs/rhel/general/exim/exim.conf
2021-07-17 15:12:11 +02:00
myvesta
2091418412
Create mail account folder (mailbox) 2021-07-17 15:06:12 +02:00
myvesta
a839f643e7
Update v-change-vesta-port 2021-07-17 13:23:59 +02:00
myvesta
f80cbe955f
Update v-change-vesta-port 2021-07-17 13:22:51 +02:00
myvesta
a2572f44df
deb11 installer: systemctl enable proftpd 2021-07-17 12:58:54 +02:00
myvesta
9791d0b3b3
detecting mariadb in v-list-sys-services 2021-07-17 12:26:14 +02:00
myvesta
eba0f77478
deb11 installer: restart nginx after set hosting-webmail-phpmyadmin template 2021-07-17 12:02:04 +02:00
myvesta
70ee71e64a
phpmyadmin install steps for deb11 2021-07-17 11:01:06 +02:00
myvesta
e1deee2873
adding php7.4-imagick to installer 2021-07-17 10:20:56 +02:00
myvesta
854b0e9ecf Debian11 Apache template chmod a+x 2021-07-17 09:17:42 +02:00
myvesta
267fc214f0
Update default.pkg 2021-07-17 08:34:06 +02:00
myvesta
2c91d72277
Debian11 installer 2021-07-16 21:54:43 +02:00
myvesta
d946dbe412
Delete PHP-FPM-73.stpl 2021-07-16 21:03:23 +02:00
myvesta
343135650b
Delete PHP-FPM-73.tpl 2021-07-16 21:03:06 +02:00
myvesta
19f5439351
Delete PHP-FPM-73.sh 2021-07-16 21:02:53 +02:00
myvesta
92e09e8a25
Delete PHP-FPM-73-public.tpl 2021-07-16 21:02:35 +02:00
myvesta
c267045cea
Delete PHP-FPM-73-public.stpl 2021-07-16 21:02:21 +02:00
myvesta
ad20438e6c
Delete PHP-FPM-73-public.sh 2021-07-16 21:02:06 +02:00
myvesta
a0c1145fe7
php7.4 apache templates 2021-07-16 21:01:13 +02:00
myvesta
823ab23c3e
php7.4 patches 2021-07-16 16:27:40 +02:00
myvesta
b27e96b285
Update php7.4-dedi.patch 2021-07-16 15:43:10 +02:00
myvesta
fd82be8cf2
Update php7.4-vps.patch 2021-07-16 15:42:26 +02:00
myvesta
ebe60ba28c
php7.4 patches for deb11 2021-07-16 15:19:44 +02:00
myvesta
fb98936297
deb11 proftpd identlookups fix 2021-07-16 14:28:44 +02:00
myvesta
3fdf72082e Debian11 configs tree 2021-07-16 11:30:57 +02:00
Sofonov Evgeniy
1fae6fda46
Create default_host.stpl
this template is for httpS (http2). we determine the default host that requests for an IP or an unassigned domain were sent to this host.
2021-07-13 02:20:34 +05:00
Sofonov Evgeniy
3b114ee25b
Create default_host.tpl
we determine the default host that requests for an IP or an unassigned domain were sent to this host
2021-07-13 02:12:12 +05:00
myvesta
efcd74ce92
Update vesta_compile.sh 2021-07-12 15:30:44 +02:00
myvesta
ac416b15ab
Update deb_signing.key 2021-07-12 15:11:02 +02:00
myvesta
b19ea50183
Update deb_signing.key 2021-07-12 15:10:31 +02:00
myvesta
f6eafa7a6f
Update deb_signing.key 2021-07-12 15:10:08 +02:00
myvesta
c174cc8dca
Update deb_signing.key 2021-07-12 15:09:46 +02:00
myvesta
4bb0ad5ffb
Update deb_signing.key 2021-07-12 15:00:13 +02:00
myvesta
ff72f12fe2
Update deb_signing.key 2021-07-12 14:59:42 +02:00
myvesta
23a01d2625
Update deb_signing.key 2021-07-12 14:59:06 +02:00
myvesta
de1f566d14
Update deb_signing.key 2021-07-12 14:58:30 +02:00
myvesta
fa8321686f
Update vesta_compile.sh 2021-07-12 14:55:08 +02:00
myvesta
2e7c03b4cc
Update copyright 2021-07-12 14:16:08 +02:00
myvesta
191f1565f6
Update copyright 2021-07-12 14:14:33 +02:00
myvesta
d605a80d7d
Update copyright 2021-07-12 14:13:53 +02:00
myvesta
b69f6221bb
Update copyright 2021-07-12 14:13:07 +02:00
myvesta
0729152f72
Update control 2021-07-12 14:11:55 +02:00
myvesta
1ebe164b15
Update control 2021-07-12 14:10:40 +02:00
myvesta
23ae0227c0
Update control 2021-07-12 14:09:16 +02:00
myvesta
71ac6f2a57
Version 0.9.8-26-48 2021-07-11 15:54:48 +02:00
myvesta
96dd128764
Update Changelog.md 2021-07-11 15:53:40 +02:00
myvesta
d6b6599709
Grep carefully for 'END CERTIFICATE' 2021-07-11 15:39:46 +02:00
myvesta
7f9f1c0253
update acme-challenge always 2021-07-11 15:00:25 +02:00
myvesta
8301436be6
Update README.md 2021-06-09 09:50:12 +02:00
myvesta
2d10c646ff
Version 0.9.8-26-47 2021-05-30 20:52:11 +02:00
myvesta
a2792f8ebd
Update vst-install-debian.sh 2021-05-30 20:50:29 +02:00
myvesta
77d1da1359
Update Changelog.md 2021-05-30 20:49:02 +02:00
myvesta
e1f32c0470
Enabling TLS for ProFTPD FTPS 2021-05-30 20:46:34 +02:00
myvesta
cf75660818
Update list_backup_detail.html 2021-05-30 20:28:35 +02:00
myvesta
0233834da4
Update sr.php 2021-05-30 20:26:48 +02:00
myvesta
f1da73a7bd
Update list_backup_detail.html 2021-05-30 20:25:21 +02:00
myvesta
8fe06a2153
Update sr.php 2021-05-30 20:23:23 +02:00
myvesta
1739c8c731
Update list_backup_detail.html 2021-05-30 20:17:27 +02:00
myvesta
d368a7e6d4
More logical restore backup template 2021-05-30 19:21:06 +02:00
myvesta
17b4b25f97
Add files via upload 2021-05-16 11:46:40 +02:00
myvesta
0a0d3a4649
Copy Proftpd tls.conf in installer 2021-04-30 04:08:42 +02:00
myvesta
108cb3dfdb
Include /etc/proftpd/tls.conf 2021-04-30 04:06:09 +02:00
myvesta
39af1bd501
Proftpd tls.conf 2021-04-30 04:05:33 +02:00
myvesta
2ac32032a8
Include /etc/proftpd/tls.conf 2021-04-30 04:04:30 +02:00
myvesta
139f864b54
Proftpd tls.conf 2021-04-30 04:03:43 +02:00
myvesta
91961383d9
Include /etc/proftpd/tls.conf 2021-04-30 03:51:04 +02:00
myvesta
fe1f5f91f2
proftpd tls.conf 2021-04-30 03:49:41 +02:00
myvesta
5b7c04a8f2
Rename node-app-also-handle-static-files-3000tpl to node-app-also-handle-static-files-3000.tpl 2021-04-21 21:47:30 +02:00
myvesta
54fbba596b
Update Changelog.md 2021-04-17 19:32:17 +02:00
myvesta
693ad5cff2
Version 0.9.8-26-46 2021-04-17 19:30:07 +02:00
myvesta
c7a089b37e
Updating CloudFlare IP addresses 2021-04-17 19:09:01 +02:00
myvesta
92fa49bd6c
Update vst-install-debian.sh 2021-04-17 18:50:33 +02:00
myvesta
79402b2336
Updating CloudFlare IP addresses 2021-04-17 18:46:49 +02:00
myvesta
0ad91de3a3
New cloudflare IP adresses 2021-04-17 18:29:19 +02:00
myvesta
b207d508d8
New cloudflare IP adresses 2021-04-17 18:27:47 +02:00
myvesta
b7c6eba7a5
New cloudflare IP addresses 2021-04-17 18:24:17 +02:00
myvesta
543e6b5bc9
Sorting issue fix
Closing https://github.com/myvesta/vesta/issues/116
Thanks to @jaapmarcus and @hestiacp
2021-04-15 20:24:33 +02:00
myvesta
74823ca988
Rename node-app-also-handle-static files-3000tpl to node-app-also-handle-static-files-3000tpl 2021-04-13 21:28:21 +02:00
myvesta
c5e4a069fa
Rename node-app-also-handle-static files-3000.stpl to node-app-also-handle-static-files-3000.stpl 2021-04-13 21:27:51 +02:00
myvesta
3bc6bcd9ab
Rename node-app-that-also-handle-static files-3000tpl to node-app-also-handle-static files-3000tpl 2021-04-13 21:24:59 +02:00
myvesta
a473247208
Rename node-app-that-also-handle-static files-3000.stpl to node-app-also-handle-static files-3000.stpl 2021-04-13 21:24:34 +02:00
myvesta
2a4832abf5
Update and rename node-app-nextjs-3000.tpl to node-app-that-also-handle-static files-3000tpl 2021-04-13 21:19:57 +02:00
myvesta
e6067fa57b
Rename node-app-nextjs-3000.stpl to node-app-that-also-handle-static files-3000.stpl 2021-04-13 21:16:22 +02:00
myvesta
7293dd9f7b
Update Changelog.md 2021-04-13 19:12:41 +02:00
myvesta
7c5948b579
Update Changelog.md 2021-04-13 19:12:17 +02:00
myvesta
76efd9a1cd
Version 0.9.8-26-45 2021-04-13 19:05:07 +02:00
myvesta
3611b888e5
Update v-update-letsencrypt-ssl 2021-04-13 18:55:22 +02:00
myvesta
be9710f9ea
Update v-update-letsencrypt-ssl 2021-04-13 18:25:56 +02:00
myvesta
6b30357f9a
Update v-update-letsencrypt-ssl 2021-04-13 18:09:33 +02:00
myvesta
d03d8e9537
send_email_to_admin function 2021-04-13 18:07:03 +02:00
myvesta
dd9c8cf1f6
nodejs nginx templates 2021-04-13 12:45:32 +02:00
myvesta
d40424eb4d
Create node-app-3000.tpl 2021-04-13 12:44:27 +02:00
myvesta
e1d962e60b
Introducing UPDATE_SSL_SCRIPT2 callback 2021-04-13 10:50:53 +02:00
myvesta
1f56c826e3
Update v-add-letsencrypt-domain 2021-04-12 10:01:38 +02:00
myvesta
dba978b200
Update v-update-letsencrypt-ssl 2021-04-12 00:13:33 +02:00
myvesta
74209ee7db
Warn admin if LE renewing failed for hostname 2021-04-12 00:12:04 +02:00
myvesta
a7b209ff3f
Update v-add-letsencrypt-domain 2021-04-11 19:39:19 +02:00
myvesta
f1acff47ef
Temporary fix for double "END CERTIFICATE"
Credits to HestiaCP @hestiacp
2021-04-11 18:15:06 +02:00
myvesta
e9b6cd6d09
Update v-add-letsencrypt-domain 2021-04-11 18:12:07 +02:00
myvesta
39318bafef
Logging LetsEncrypt process 2021-04-11 16:58:35 +02:00
myvesta
78f8c0cb11
Update Changelog.md 2021-04-04 19:41:16 +02:00
myvesta
5f8579697c
Update Changelog.md 2021-04-04 19:39:04 +02:00
myvesta
801395c2b1
vesta-0.9.8-26-44 2021-04-04 19:30:23 +02:00
myvesta
7d05689ca9
Update copyright 2021-04-04 19:17:58 +02:00
myvesta
23d02598a1
Update control 2021-04-04 19:13:17 +02:00
myvesta
6ac6f50598
Update vesta_compile.sh 2021-04-04 19:05:47 +02:00
myvesta
75209618a0
Update v-backup-users 2021-04-04 18:55:49 +02:00
myvesta
d20f1aebd0
Preventing multiple execution of v-backup-users 2021-04-04 18:48:41 +02:00
myvesta
f5cc2bb7f2
Check if it's vesta package
Credits to: Numan Türle @numanturle
2021-04-04 18:36:27 +02:00
myvesta
a4977253ca
css fix on right place
Thanks to Miloš Spasić
2021-03-23 14:33:27 +01:00
myvesta
c907e11151
rollback css fix 2021-03-23 14:11:45 +01:00
myvesta
1b9d3bb0cc
css fix 2021-03-17 13:21:14 +01:00
myvesta
627684c0bd
Fix duplicated DNS records in DNS cluster
Credits to: @madeITBelgium
2021-03-16 00:19:03 +01:00
myvesta
afcf1a1572
Update Changelog.md 2021-03-15 19:42:12 +01:00
myvesta
91c592586e
Version 0.9.8-26-43 2021-03-15 17:42:23 +01:00
myvesta
60a0f38ca7
Version 0.9.8-26-43 changelog 2021-03-15 17:41:40 +01:00
myvesta
7991753ab7
Checking licence format
Credits to:  @numanturle Numan Türle
2021-03-15 13:55:11 +01:00
myvesta
d6240b12ca
Added interface validation
Thanks to @numanturle (Numan Türle) and @hestiacp
2021-03-15 12:53:00 +01:00
myvesta
c9b238a495
Ensure HTML will not be displayed in list log page 2021-03-14 23:22:33 +01:00
myvesta
3402071e95
Preventing uploads from other origin
Credits to:  Fady Othman, Security Consultant # ZINAD IT
2021-03-14 20:49:14 +01:00
myvesta
fdc6e191c2
Restrict v-make-tmp-file to tmp folder
Thanks to @hestiacp and @jaapmarcus
2021-03-14 19:09:10 +01:00
myvesta
16b33262af
Validate user input on domain
Thanks to @hestiacp and @jaapmarcus
2021-03-14 01:46:58 +01:00
myvesta
c981edee63 Making sure chmod and chown does not follow symlinks 2021-03-14 00:23:23 +01:00
myvesta
d0108b4ae3
Update v-clone-website 2021-03-02 22:53:33 +01:00
myvesta
97ffdd0571
Update vst-install-debian.sh 2021-02-27 19:26:56 +01:00
myvesta
d7f3d48d36
Update postinst 2021-02-26 01:18:06 +01:00
myvesta
36e5d2c9ec
Update keep_mpm_event.sh 2021-02-26 01:16:42 +01:00
myvesta
bc4c57d302
Update Changelog.md 2021-02-26 00:02:10 +01:00
myvesta
5dc0788b36
Update latest.txt 2021-02-25 23:58:03 +01:00
myvesta
809b310a15
Making sure Apache is in mpm_event mode 2021-02-25 23:57:23 +01:00
myvesta
7391d3664d
Patching php.ini for php8.0 2021-02-22 01:19:29 +01:00
myvesta
a143064127
php.ini patch for php8.0 2021-02-22 01:10:03 +01:00
myvesta
7614d0cbc3
Delete php8.0.patch 2021-02-22 01:08:33 +01:00
myvesta
bf3387139f
php.ini patch for php8.0 2021-02-22 01:00:20 +01:00
myvesta
b2ddf443b8
Support for php8.0 2021-02-21 23:02:17 +01:00
myvesta
bdaa3da310
php8.0 apache templates 2021-02-21 22:51:13 +01:00
myvesta
e3f1153942
Disabling libapache2-mod-php8.0 2021-02-21 22:27:15 +01:00
myvesta
7056f36286
Update latest.txt 2021-02-11 09:52:42 +01:00
myvesta
70fded990c
Merge pull request #106 from didyouexpectthat/fix_1
Change if to is (fix for #105)
2021-02-11 09:51:57 +01:00
didyouexpectthat
a136fe8009
Change if to is
main.sh defines the command as is_dir_symlink, not if_dir_symlink.
2021-02-10 23:45:11 -08:00
myvesta
13d58ff390
Update v-check-api-key 2021-02-09 09:08:56 +01:00
myvesta
177793a664
Update v-generate-api-key 2021-02-08 22:32:34 +01:00
myvesta
6324ca1690
Update latest.txt 2021-02-08 18:53:27 +01:00
myvesta
407e84fb37
Update Changelog.md 2021-02-08 18:52:37 +01:00
myvesta
5e6bccb68f
Update v-check-api-key 2021-02-08 18:41:55 +01:00
myvesta
19ca71e8fb
Update main.sh 2021-02-08 18:34:57 +01:00
myvesta
7f9105e8ea
Update v-add-web-domain 2021-02-08 18:33:36 +01:00
myvesta
22b5843062
Merge pull request #101 from j52m/patch-1
Fix Issue #96
2020-12-26 13:02:40 +01:00
j52m
777d1d2564
Fix Issue #96 2020-12-25 20:04:27 -05:00
myvesta
d523407dcf
Merge pull request #100 from j52m/patch-4
Fix nginx ssl directive is deprecated
2020-12-25 12:03:13 +01:00
j52m
b1ab212701
Update hosting-public.stpl 2020-12-25 05:00:47 -05:00
j52m
9778a945a2
Update hosting-webmail-phpmyadmin.stpl 2020-12-25 05:00:11 -05:00
j52m
20f6f3ed28
Update private-force-https.stpl 2020-12-25 04:59:55 -05:00
j52m
322df88467
Update private-hosting.stpl 2020-12-25 04:59:38 -05:00
j52m
3aca6d837e
Update hosting.stpl 2020-12-25 04:59:26 -05:00
j52m
6aad1e0232
Update hosting-legacy.stpl 2020-12-25 04:59:13 -05:00
j52m
384e24973f
Update force-https.stpl 2020-12-25 04:58:54 -05:00
j52m
951f5c932f
Update force-https-webmail-phpmyadmin.stpl 2020-12-25 04:58:40 -05:00
j52m
46f70ac244
Update force-https-public.stpl 2020-12-25 04:58:26 -05:00
j52m
b18e70f5c8
Update force-https-legacy.stpl 2020-12-25 04:58:06 -05:00
j52m
a61faf24a9
Update wordpress2_rewrite.stpl 2020-12-25 04:53:48 -05:00
j52m
7bb3ab659a
Update wordpress2.stpl 2020-12-25 04:53:25 -05:00
j52m
ac607eafa8
Update wordpress.stpl 2020-12-25 04:52:59 -05:00
j52m
f93dce60b5
Update pyrocms.stpl 2020-12-25 04:52:28 -05:00
j52m
28cb4758ac
Update piwik.stpl 2020-12-25 04:52:13 -05:00
j52m
764df30031
Update owncloud.stpl 2020-12-25 04:51:53 -05:00
j52m
760ff7fa65
Update opencart.stpl 2020-12-25 04:51:37 -05:00
j52m
3b6acaf3a8
Update odoo.stpl 2020-12-25 04:51:12 -05:00
j52m
4a890b1b55
Update no-php.stpl 2020-12-25 04:50:54 -05:00
j52m
add195b6b0
Update moodle.stpl 2020-12-25 04:50:20 -05:00
j52m
22accb9e83
Update modx.stpl 2020-12-25 04:49:55 -05:00
j52m
7a3e06941c
Update magento.stpl 2020-12-25 04:49:25 -05:00
j52m
63ebab9db5
Update laravel.stpl 2020-12-25 04:48:57 -05:00
j52m
bed654fce9
Update joomla.stpl 2020-12-25 04:48:42 -05:00
j52m
003a748735
Update drupal8.stpl 2020-12-25 04:48:23 -05:00
j52m
2b37a1eb11
Update drupal7.stpl 2020-12-25 04:47:57 -05:00
j52m
086f92f7a5
Update drupal6.stpl 2020-12-25 04:47:19 -05:00
j52m
ed27947cf7
Update dokuwiki.stpl 2020-12-25 04:47:07 -05:00
j52m
5918df6ebb
Update default.stpl 2020-12-25 04:46:52 -05:00
j52m
d437c55cd0
Update datalife_engine.stpl 2020-12-25 04:46:36 -05:00
j52m
267651c31c
Update codeigniter3.stpl 2020-12-25 04:46:24 -05:00
j52m
fddbb69677
Update codeigniter2.stpl 2020-12-25 04:46:12 -05:00
j52m
1cc0bcc140
Update cms_made_simple.stpl 2020-12-25 04:45:57 -05:00
j52m
d177e8941d
Update cms_made_simple.stpl 2020-12-25 04:45:39 -05:00
j52m
95d5f459f8
Update owncloud.stpl 2020-12-25 04:34:42 -05:00
j52m
7cbd41a1eb
Update pyrocms.stpl 2020-12-25 04:34:18 -05:00
j52m
049c8535ed
Update wordpress.stpl 2020-12-25 04:33:40 -05:00
j52m
3ee30043f9
Update wordpress2.stpl 2020-12-25 04:33:23 -05:00
j52m
4371f625c4
Update wordpress2_rewrite.stpl 2020-12-25 04:33:07 -05:00
j52m
ca4422b717
Update drupal6.stpl 2020-12-25 04:32:49 -05:00
j52m
b21f0e6c32
Update dokuwiki.stpl 2020-12-25 04:32:34 -05:00
j52m
4a7ff708ae
Update datalife_engine.stpl 2020-12-25 04:31:54 -05:00
j52m
9ae68a35da
Update codeigniter3.stpl 2020-12-25 04:31:35 -05:00
j52m
01f84bff1c
Update codeigniter2.stpl
ssl directive is deprecated
2020-12-25 04:31:18 -05:00
j52m
156a7358e8
Update cms_made_simple.stpl
ssl directive is deprecated
2020-12-25 04:30:56 -05:00
j52m
ad6258a508
Update default.stpl 2020-12-25 04:24:20 -05:00
myvesta
5be1e2d56d
Fixing DNS issue in LXC virtualization 2020-12-21 18:40:58 +01:00
myvesta
e7ec63a85f
Update Changelog.md 2020-12-12 14:20:44 +01:00
myvesta
10bfc78741
Version 0.9.8-26-39 2020-12-12 14:16:02 +01:00
myvesta
81daa6413b
Checking period value in /list/rrd/ 2020-12-12 14:09:48 +01:00
myvesta
f31b4b4d41
Update index.php 2020-12-12 13:52:26 +01:00
myvesta
292d933f88
Preventing admin to do loginas action without token
This is useless issue and useless fix too.
2020-12-12 13:48:51 +01:00
myvesta
00b4267afd
htmlentities() for token 2020-12-12 13:43:27 +01:00
myvesta
5da09d9c5b
Fix for downloading backup of other users 2020-12-12 12:54:06 +01:00
myvesta
1062168fed
Update latest.txt 2020-12-05 19:45:58 +01:00
myvesta
4e1fa39bb6
Update Changelog.md 2020-12-05 19:38:50 +01:00
myvesta
488f1c7a31
Version 0.9.8-26-38 2020-12-05 19:36:58 +01:00
myvesta
55a09a9ee3
Update Changelog.md 2020-12-05 19:35:23 +01:00
myvesta
3081f7df5c
Fixing Apache status public access 2020-12-05 19:30:47 +01:00
myvesta
4b02876ca4
Update vst-install-debian.sh 2020-12-05 19:30:28 +01:00
myvesta
f87855ffa8
Update status.conf 2020-12-05 19:12:02 +01:00
myvesta
dedfd927ab
Update status.conf 2020-12-05 19:11:25 +01:00
myvesta
0fd4d9f4f5
Update status.conf 2020-12-05 19:10:53 +01:00
myvesta
1f8d385cbb
Installer fix: avoid to turn On nginx if php-fpm is On 2020-11-07 21:21:10 +01:00
myvesta
b41ac10a96
New version of phpmyadmin 2020-11-05 22:06:08 +01:00
myvesta
2a5ba16689
New version of phpmyadmin 2020-11-05 22:02:53 +01:00
myvesta
7cdefe6f9a
Version 0.9.8-26-37 2020-10-26 19:26:54 +01:00
myvesta
27feb01413
Update Changelog.md
thanks to @moucho
2020-10-26 19:25:45 +01:00
myvesta
46055c0ba5
Update Changelog.md 2020-10-26 19:23:24 +01:00
myvesta
a48c92afb8
Merge pull request #95 from serghey-rodin/master
ACME fix from official Vesta repo
2020-10-25 02:23:20 +02:00
dpeca
d7de756d70
Merge pull request #2039 from moucho/acme_v2_GET
Deprecate GET acme v2
2020-10-25 02:20:11 +02:00
moucho
2dc4adb08e Deprecate GET acme v2 2020-10-22 13:48:45 +02:00
myvesta
fb5a3da3de
Fixing Roundcube to send via authenticated SMTP user instead via php 2020-09-21 00:39:46 +02:00
myvesta
95a8046e60
Roundcube SMTP auth 2020-09-21 00:33:49 +02:00
myvesta
0fdc394de1
Regexp fix in v-clone-website 2020-09-20 17:30:33 +02:00
myvesta
5b0e051565
Update v-backup-user 2020-09-18 01:04:25 +02:00
myvesta
1f63bf12e3
Update v-backup-user 2020-09-18 00:46:38 +02:00
myvesta
c56ac362cd
Update v-backup-user 2020-09-18 00:43:49 +02:00
myvesta
476024381a
More details about needes space for backup 2020-09-17 23:52:42 +02:00
myvesta
a51c286920
Changing Vesta to myVesta labels installer 2020-09-17 12:09:49 +02:00
myvesta
65625ce990
Avoid php patching if Deb9 and Apache=no 2020-09-17 12:04:33 +02:00
myvesta
138c0e3729
Update Changelog.md 2020-09-11 11:44:07 +02:00
myvesta
88c064a976
Update latest.txt 2020-09-10 23:39:20 +02:00
myvesta
69468e6ace
Update Changelog.md 2020-09-10 23:03:42 +02:00
myvesta
ce0619b44a
Version 0.9.8-26-36 2020-09-10 22:58:21 +02:00
myvesta
dcd6be2a22
Update Changelog.md 2020-09-10 22:55:38 +02:00
myvesta
fd47112fc1
Checking necessary available disk space before doing backup
Many thanks to @ScIT-Raphael and HestiaCP
https://github.com/hestiacp/hestiacp/pull/1141
2020-09-10 22:49:53 +02:00
myvesta
147e75412f
Update string.php 2020-08-30 05:15:23 +02:00
myvesta
a2be18cc18
Update main.php 2020-08-30 05:14:41 +02:00
myvesta
3919840fc4
Update string.php 2020-08-30 05:09:18 +02:00
myvesta
3c899178b4
Update and rename v-file-replace to v-file-replace-string 2020-08-30 05:08:31 +02:00
myvesta
ea0fa49d0e
Update string.php 2020-08-30 05:06:45 +02:00
myvesta
98cc47e654
Update main.php 2020-08-30 05:05:49 +02:00
myvesta
eaafe8dea3
Update main.php 2020-08-30 03:30:14 +02:00
myvesta
b1c95879c6
Update v-file-replace 2020-08-30 03:21:07 +02:00
myvesta
348717d33a
Update v-file-replace 2020-08-30 03:19:03 +02:00
myvesta
31d3bade05
Create string.php 2020-08-30 03:12:36 +02:00
myvesta
071e0d29a2
Create main.php 2020-08-30 03:11:31 +02:00
myvesta
2a71edda37
Update and rename v-replace-in-file to v-file-replace 2020-08-30 03:10:30 +02:00
myvesta
756a2b0d27
Deleting renamed command 2020-08-30 02:12:21 +02:00
myvesta
7594eed24a
Update v-get-user-salt
tnx @jaapmarcus and HestiaCP
2020-08-30 01:19:30 +02:00
myvesta
20182cb6b7
Ability to change IP in v-make-separated-ip-for-email-domain 2020-08-30 00:48:10 +02:00
myvesta
d6eb5f0ba7
Disabling login with 'root'
tnx @jaapmarcus and HestiaCP
2020-08-30 00:10:04 +02:00
Anton Reutov
af94a23962
Merge pull request #2029 from myrevery/patch-1
Update cn.php
2020-08-26 16:22:54 +03:00
myrevery
ce5d209c13
Update cn.php 2020-08-25 14:58:01 -07:00
myvesta
bdb1c1f028
Version 0.9.8-26-34 2020-08-23 23:58:23 +02:00
myvesta
3b5de24de0
Update Changelog.md 2020-08-23 19:55:24 +02:00
myvesta
939d2c9f32
Merge pull request #88 from serghey-rodin/master
Also checking "" in order to detect manually chunked record
2020-08-23 19:51:59 +02:00
dpeca
ef0f62a59b
Also checking "" in order to detect manually chunked record
And removing brackets, since they are not necessary when whole record is in one line
2020-08-23 19:44:12 +02:00
myvesta
8683c2dff0
Update Changelog.md 2020-08-23 18:50:08 +02:00
myvesta
83a643dbd8
Correction of number of recipients 2020-08-23 18:44:22 +02:00
myvesta
df674aafc9
Limit max recipients per email to 15, in order to prevent mass spamming 2020-08-23 18:42:45 +02:00
myvesta
028117dcb9
Limit max recipients per email to 15, in order to prevent mass spamming 2020-08-23 18:41:11 +02:00
myvesta
3aebb4f6d3
Update exim4.conf.template 2020-08-23 18:40:16 +02:00
myvesta
e3eb9c6b84
Update vst-install-debian.sh 2020-08-23 18:38:15 +02:00
myvesta
9f612d82cf
Limit max recipients per email to 15, in order to prevent mass spamming 2020-08-23 18:36:43 +02:00
myvesta
9ee83ce246
Merge pull request #87 from serghey-rodin/master
Not chunking already manually chunked TXT records
2020-08-19 14:55:40 +02:00
dpeca
311827c4b3
Not chunking already manually chunked TXT records 2020-08-19 14:52:45 +02:00
myvesta
212e074839
Update Changelog.md 2020-08-19 14:32:30 +02:00
myvesta
f0e741ee1c
Reverting back wrong merged code from PR 2020-08-19 14:17:10 +02:00
myvesta
83104523a0 Merge branch 'pr/86' 2020-08-19 14:10:12 +02:00
dpeca
f74301b19f
Split long TXT entries into 255 chunks 2020-08-19 12:44:46 +02:00
dpeca
ccea621787
Merge pull request #1947 from dawindk/patch-1
Only exclude logs folder from root, not in public_html
2020-08-19 11:07:55 +02:00
dpeca
c171d5e68e
Merge pull request #1969 from joshbmarshall/joshbmarshall-patch-1
Bugfix deleting a PostgreSQL database
2020-08-19 11:06:39 +02:00
myvesta
f3a6fef93c
Update index.html 2020-08-17 14:59:09 +02:00
myvesta
2afd1d78e9
Update index.html 2020-08-17 14:58:34 +02:00
myvesta
dc73115f4a
Update index.html 2020-08-17 14:57:44 +02:00
myvesta
a82e0eb0a4
Update index.html 2020-08-17 14:57:02 +02:00
myvesta
1320f14c16
Better place for changelog link 2020-08-17 14:51:55 +02:00
myvesta
3af821c798
Update v-make-separated-ip-for-email 2020-08-16 00:04:20 +02:00
myvesta
25bb5ce08f
Update v-make-separated-ip-for-email 2020-08-16 00:01:23 +02:00
myvesta
cc0527a8dc
Update v-make-ip-ssl 2020-08-15 23:46:00 +02:00
myvesta
1f11dfbbf2
Version 0.9.8-26-33 2020-08-15 22:51:31 +02:00
myvesta
1f93cedfc6
Update Changelog.md 2020-08-15 22:50:29 +02:00
myvesta
a2954d3731
Automatically call v-make-separated-ip-for-email from v-make-separated-ip-for-email-domain 2020-08-15 22:46:18 +02:00
myvesta
dd892f7303
Deleting accidentally created W3TC.json in root folder of project 2020-08-15 22:40:03 +02:00
myvesta
5efa58a92e
Create v-make-separated-ip-for-email-domain 2020-08-15 22:35:59 +02:00
myvesta
367030e9bd
Adding check to avoid duplicates in v-make-separated-ip-for-email 2020-08-15 21:43:48 +02:00
myvesta
39430bbd2b
Allow multiple IPs in v-make-separated-ip-for-email 2020-08-15 17:03:34 +02:00
myvesta
552a33f032
Update v-make-separated-ip-for-email 2020-08-15 16:25:31 +02:00
myvesta
d1041c5681
Delete W3TC.json 2020-08-14 23:28:34 +02:00
myvesta
348cecb0e9
Update convert-vesta-to-myvesta.sh 2020-08-08 23:34:04 +02:00
myvesta
1154ca137e
Update Changelog.md 2020-08-02 02:12:07 +02:00
myvesta
66e003c6ab
Create v-replace-in-file 2020-08-02 02:10:01 +02:00
myvesta
a66d88c0a1
Version 0.9.8-26-32 2020-08-02 01:52:17 +02:00
myvesta
c841bceac3
Update Changelog.md 2020-08-02 01:51:07 +02:00
myvesta
186beba0e9
check if user is root in v-get-database-credentials-of-domain 2020-08-02 01:49:03 +02:00
myvesta
9b26e48029
check if user is root in v-install-unsigned-ssl 2020-08-02 01:48:39 +02:00
myvesta
59c5ff7412
check if user is root in v-install-wordpress 2020-08-02 01:48:13 +02:00
myvesta
c553aafbd1
check if user is root in v-move-domain-and-database-to-account 2020-08-02 01:47:44 +02:00
myvesta
cd5ac56423
check if user is root in v-migrate-site-to-https 2020-08-02 01:47:25 +02:00
myvesta
dd9f963b6f
check if user is root in v-make-separated-ip-for-email 2020-08-02 01:47:00 +02:00
myvesta
2d8931e908
check if user is root in v-make-ip-ssl 2020-08-02 01:46:38 +02:00
myvesta
62b0d755ad
check if user is root in v-update-host-certificate 2020-08-02 01:40:26 +02:00
myvesta
e48d42617d
Update vesta_compile.sh 2020-07-31 01:48:58 +02:00
myvesta
fb95dd6a40
Backup www folder in vesta_compile.sh 2020-07-31 01:40:11 +02:00
myvesta
fa83bcdc7e
Update README.md 2020-07-31 01:05:09 +02:00
myvesta
889c53bad9
Version 0.9.8-26-31 2020-07-30 14:16:56 +02:00
myvesta
d52fbbc6c0
Update Changelog.md 2020-07-30 14:14:57 +02:00
myvesta
a6a3671697
Rename src/deb/for-download/tools/cpanel-import.sh to bin/v-import-cpanel-backup 2020-07-30 14:11:08 +02:00
myvesta
09ed586b5d
myvesta update log 2020-07-29 11:13:41 +02:00
myvesta
a26687e946
log vesta update 2020-07-29 00:52:37 +02:00
myvesta
a84adf71e8
W3TC optimal settings 2020-07-28 18:02:42 +02:00
myvesta
48dfac2b3a
W3TC optimal settings 2020-07-28 18:01:48 +02:00
myvesta
8728c239cc
Update v-update-sys-ip 2020-07-26 04:58:28 +02:00
myvesta
6367603158
Update vst-install-debian.sh 2020-07-26 03:11:36 +02:00
myvesta
1d35312597
Update vst-install-debian.sh 2020-07-26 02:51:56 +02:00
myvesta
667fffeb99
Update vst-install-debian.sh 2020-07-26 02:48:43 +02:00
myvesta
e2b56349d9
Update vst-install-debian.sh 2020-07-26 02:46:03 +02:00
myvesta
a3088205aa
Update Changelog.md 2020-07-26 02:36:11 +02:00
myvesta
b0acb7c4e8
new ascii logo 2020-07-26 02:35:15 +02:00
myvesta
3ca86fbf98
Update vst-install-debian.sh 2020-07-26 02:30:41 +02:00
myvesta
2d3aa721d0
new ascii logo 2020-07-26 02:28:08 +02:00
myvesta
3bc81d23c5
ascii logo 2020-07-26 02:11:33 +02:00
myvesta
6203ad1ab7
Update Changelog.md 2020-07-26 02:02:39 +02:00
myvesta
73130e50b6
Version 0.9.8-26-30 2020-07-26 01:54:19 +02:00
myvesta
4c8fe27476
ascii logo 2020-07-26 01:46:35 +02:00
myvesta
c7a3f7c414
Update list_user.html 2020-07-26 01:33:30 +02:00
myvesta
5353797756
--max-time 60 sec for deactivating vesta licences 2020-07-26 01:28:58 +02:00
myvesta
d362624583
--max-time 60 sec for checking official licence 2020-07-26 01:26:55 +02:00
myvesta
e56984de25
--max-time 60 sec for licence 2020-07-26 01:25:49 +02:00
myvesta
ace47e7c92
--max-time 10 sec to check official vestacp licences 2020-07-26 01:22:23 +02:00
myvesta
3272e6c4a6
Update v-update-dns-templates 2020-07-26 01:11:09 +02:00
myvesta
f194eb8571
Update v-update-sys-ip 2020-07-26 01:03:48 +02:00
myvesta
1f2fddf707
Update vst-install-debian.sh 2020-07-26 00:56:19 +02:00
myvesta
7926c9eeb0
Update vst-install-debian.sh 2020-07-25 20:21:29 +02:00
myvesta
6159b9f3b1
Create favicon.ico 2020-07-25 01:30:37 +02:00
myvesta
afa77ffa5d
Delete favicon.ico 2020-07-25 01:29:34 +02:00
myvesta
65987677ab
Update v-make-separated-ip-for-email 2020-07-22 23:02:32 +02:00
myvesta
6652a20481
Version 0.9.8-26-29 2020-07-21 00:37:21 +02:00
myvesta
26a894ab87
Update Changelog.md 2020-07-21 00:36:13 +02:00
myvesta
a9b48b4594
Changing Vesta to myVesta in title of hosting panel pages 2020-07-21 00:35:12 +02:00
myvesta
aeee97ec8a
Update Changelog.md 2020-07-21 00:33:36 +02:00
myvesta
373437e5f0
Update postinst 2020-07-21 00:17:40 +02:00
myvesta
49e405b1d0
Update vst-install-debian.sh 2020-07-21 00:12:12 +02:00
myvesta
aea9a6a969
Update clamd.conf 2020-07-21 00:07:30 +02:00
myvesta
c0dc019619
Update ISSUE_TEMPLATE.md 2020-07-20 15:01:25 +02:00
myvesta
fe7ae71917
Update ISSUE_TEMPLATE.md 2020-07-20 15:00:39 +02:00
myvesta
6099b9e996
Update vst-install-debian.sh 2020-07-20 14:34:45 +02:00
myvesta
d4e2bd2f93
Update exim4.conf.template 2020-07-20 14:29:42 +02:00
myvesta
d48e7337d2
Update exim4.conf.template 2020-07-20 14:29:00 +02:00
myvesta
65351b52dd
clamav.sock 2020-07-20 14:28:21 +02:00
myvesta
30f4c0572e
Update clamd.conf 2020-07-20 14:22:33 +02:00
myvesta
397617424d
Update clamd.conf 2020-07-20 14:21:52 +02:00
myvesta
715262f162
Reverting clamav.sock 2020-07-20 14:19:40 +02:00
myvesta
51fbca0ea7
Update clamd.conf 2020-07-20 14:14:51 +02:00
myvesta
10632f9143
Update v-clone-website 2020-07-19 02:32:03 +02:00
myvesta
4079e83cfb
Update v-migrate-site-to-https 2020-07-19 01:49:16 +02:00
myvesta
f761d0b323
Create handle_parameters.sh 2020-07-19 01:43:59 +02:00
myvesta
e5b3ef9b03
introducing vesta_generate_pass() function 2020-07-19 01:36:57 +02:00
myvesta
79357d2077
Update v-migrate-site-to-https 2020-07-19 00:47:46 +02:00
myvesta
ec1ab55e02
Adapting v-migrate-site-to-https to new myVesta functions 2020-07-19 00:44:00 +02:00
myvesta
ae8eb40ef4
Update v-get-database-credentials-of-domain 2020-07-18 02:37:39 +02:00
myvesta
d91e68d316
Update v-move-domain-and-database-to-account 2020-07-18 00:43:43 +02:00
myvesta
aefa553351
Update v-move-domain-and-database-to-account 2020-07-18 00:43:10 +02:00
myvesta
6a2709d9e0
Update v-install-wordpress 2020-07-18 00:41:56 +02:00
myvesta
32e87ecde1
Update v-install-wordpress 2020-07-18 00:35:19 +02:00
myvesta
40fe1a5fa2
Update v-get-database-credentials-of-domain 2020-07-18 00:07:47 +02:00
myvesta
e263e64e39
Moving get_database_name_without_user_prefix() function to db.sh 2020-07-18 00:04:26 +02:00
myvesta
ff053aacc9
check_if_database_exists() funtion created 2020-07-18 00:03:30 +02:00
myvesta
43a8ce9fa0
bold for changelog 2020-07-17 23:42:02 +02:00
myvesta
a761da29e0
phpmyadmin 4.9.5 to install 2020-07-15 00:30:45 +02:00
myvesta
c66bb6c81e
Update Changelog.md 2020-07-15 00:24:04 +02:00
myvesta
3fd1e64198
Update Changelog.md 2020-07-15 00:10:44 +02:00
myvesta
f737c6e5e0
Update Changelog.md 2020-07-15 00:09:18 +02:00
myvesta
93aa6f852b
vesta-0.9.8-26-28 2020-07-15 00:02:14 +02:00
myvesta
a63b6281ef
Fix for letsencrypt issuing in apache-less variant 2020-07-15 00:01:19 +02:00
myvesta
ab404bbdb7
Fix ip check for www in installer 2020-07-14 23:36:11 +02:00
myvesta
b95bdb363a
Update README.md 2020-07-13 23:58:11 +02:00
myvesta
40ab4b6ac2
Rename src/deb/for-download/tools/v-clone-website to bin/v-clone-website 2020-07-13 23:55:12 +02:00
myvesta
9791041f62
Rename src/deb/for-download/tools/v-migrate-site-to-https to bin/v-migrate-site-to-https 2020-07-13 23:54:14 +02:00
myvesta
ce8a4e6305
Update v-migrate-site-to-https 2020-07-13 23:53:38 +02:00
myvesta
cecd11cf31
Update v-clone-website 2020-07-13 23:52:43 +02:00
myvesta
e9afc74c66
Update v-make-separated-ip-for-email 2020-07-13 23:50:41 +02:00
myvesta
39c3c619e0
Update v-install-wordpress 2020-07-13 23:46:49 +02:00
myvesta
a3dba232b7
phpmyadmin fix for apache-less 2020-07-13 21:56:15 +02:00
myvesta
47f5f8a1d1
Update v-make-separated-ip-for-email 2020-07-13 16:08:46 +02:00
myvesta
99f2e5b165
Update v-make-ip-ssl 2020-07-13 16:08:38 +02:00
myvesta
939d3a0d05
Update v-get-database-credentials-of-domain 2020-07-13 16:06:00 +02:00
myvesta
ff1d6f5dde
Update v-clone-website 2020-07-13 15:58:49 +02:00
myvesta
6c3033d74d
Update v-make-ip-ssl 2020-07-13 15:25:23 +02:00
myvesta
6f9bc5a77c
Update v-make-separated-ip-for-email 2020-07-13 15:16:40 +02:00
myvesta
155b8d21c7
Update and rename v-create-ip-ssl to v-make-ip-ssl 2020-07-13 15:13:51 +02:00
myvesta
812d92b5f3
Update v-make-separated-ip-for-email 2020-07-13 12:03:37 +02:00
myvesta
6ebf690d54
Update v-get-database-credentials-of-domain 2020-07-13 12:01:30 +02:00
myvesta
32d5ed48d0
making v-install-wordpress for both http and https 2020-07-13 11:38:38 +02:00
myvesta
1b60828e04
Update v-install-wordpress 2020-07-13 11:33:53 +02:00
myvesta
b4897e982b
Rename v-make-separate-ip-for-email to v-make-separated-ip-for-email 2020-07-13 11:31:11 +02:00
myvesta
e698be8707
Update and rename src/deb/for-download/tools/create_wp_https to bin/v-install-wordpress 2020-07-13 11:06:16 +02:00
myvesta
88e612a216
Create v-move-domain-and-database-to-account 2020-07-13 00:06:12 +02:00
myvesta
8159689b1a
Update v-get-database-credentials-of-domain 2020-07-12 23:13:00 +02:00
myvesta
d3229d4fbd
Update v-get-database-credentials-of-domain 2020-07-12 22:24:35 +02:00
myvesta
4a12408981
Update and rename v-get-database-credentials-of-site to v-get-database-credentials-of-domain 2020-07-12 22:09:54 +02:00
myvesta
70a59fbedf
Update v-get-database-credentials-of-site 2020-07-12 21:41:59 +02:00
myvesta
1ddba4e853
get_database_name_without_user_prefix function 2020-07-12 21:00:23 +02:00
myvesta
9ac43d1f8f
Update main.sh 2020-07-12 20:41:27 +02:00
myvesta
e4b0be46b6
replace_php_config_value function 2020-07-12 20:38:06 +02:00
myvesta
8e3b348e6f
Create v-get-database-credentials-of-site 2020-07-12 18:57:28 +02:00
myvesta
b960f86e2c
Update main.sh 2020-07-12 17:52:22 +02:00
myvesta
5bbfb4dc1a
PTR dot fix in v-make-separate-ip-for-email 2020-07-12 04:52:46 +02:00
myvesta
7d2dda10bc
Update v-make-separate-ip-for-email 2020-07-12 04:46:40 +02:00
myvesta
7a0d18fc81
PTR check in v-make-separate-ip-for-email 2020-07-12 04:45:09 +02:00
myvesta
89c2767e92
Adding IP to SPF in v-make-separate-ip-for-email 2020-07-12 04:18:55 +02:00
myvesta
d779d47f64
Create v-make-separate-ip-for-email 2020-07-12 03:59:16 +02:00
myvesta
4b61f02b43
Create v-create-ip-ssl 2020-07-12 03:13:35 +02:00
myvesta
f6680abdea
separate-mail-ip.patch 2020-07-12 01:05:21 +02:00
myvesta
51b1255814
Update v-clone-website 2020-07-10 20:22:14 +02:00
myvesta
4ad0611e6c
Update postinst 2020-07-06 00:13:27 +02:00
myvesta
cef9dfd632
Update Changelog.md 2020-07-05 23:03:54 +02:00
myvesta
e276e6b70b
Update Changelog.md 2020-07-05 23:03:15 +02:00
myvesta
7a5e022749
Version 0.9.8-26-27 2020-07-05 22:45:03 +02:00
myvesta
e6c984acd9
Update vst-install-debian.sh 2020-07-05 22:43:41 +02:00
myvesta
a404a369ac
Second tuning php-fpm pool.d config files 2020-07-05 22:42:15 +02:00
myvesta
89f5e9954c
Update PHP-FPM-73.sh 2020-07-05 22:34:38 +02:00
myvesta
f6089d5377
Update README.md 2020-07-05 13:27:54 +02:00
myvesta
c582a08b35
Linking changelog 2020-07-05 03:01:59 +02:00
myvesta
a44f38257f
Better changelog style 2020-07-05 02:57:50 +02:00
myvesta
8f691d57e3
Changing links 2020-07-05 01:54:02 +02:00
myvesta
7c12046edd
Better truncating of changelog 2020-07-05 01:32:41 +02:00
myvesta
d82523f1d1
Better colors for changelog 2020-07-05 00:27:30 +02:00
myvesta
ab7a75e073
Open changelog in new tab 2020-07-05 00:11:09 +02:00
myvesta
af58e5abbc
Show changelog in template 2020-07-05 00:06:07 +02:00
myvesta
3607c9325a
Check and get changelog if needed 2020-07-05 00:02:22 +02:00
myvesta
c2a4f74496
chmod a=rw /usr/local/vesta/data/upgrades/show_changelog 2020-07-04 23:56:10 +02:00
myvesta
2004fa9299
show changelog after update 2020-07-04 23:26:44 +02:00
myvesta
438bd68067
call custom_callback.sh in vesta_compile.sh 2020-07-04 23:09:37 +02:00
myvesta
c57b15b5da
Fix for Too many concurrent SMTP connections 2020-07-03 16:49:25 +02:00
myvesta
1f5acaa843
Update Changelog.md 2020-06-28 23:26:42 +02:00
myvesta
3dca37bc76
Update Changelog.md 2020-06-28 13:57:26 +02:00
myvesta
b9f302fed9
Update Changelog.md 2020-06-28 13:48:10 +02:00
myvesta
881d3bc64e
Update README.md 2020-06-28 04:49:27 +02:00
myvesta
5f3d2511ef
Update Changelog.md 2020-06-28 04:42:37 +02:00
myvesta
bee9a7498a
Update Changelog.md 2020-06-28 03:59:31 +02:00
myvesta
46a2f3708b
Update Changelog.md 2020-06-28 03:18:42 +02:00
myvesta
a8565399d3
Update Changelog.md 2020-06-28 02:41:44 +02:00
myvesta
aac0fd1f8f
Rename Changelog to Changelog.md 2020-06-28 01:50:15 +02:00
myvesta
03410e47c4
Create Changelog 2020-06-28 01:49:03 +02:00
myvesta
884b97853a
Version 0.9.8-26-26 2020-06-27 20:42:18 +02:00
myvesta
f269b275da
Install unsigned SSL when user add domain 2020-06-27 20:37:48 +02:00
myvesta
8933d2b5b0
Update v-install-unsigned-ssl 2020-06-27 20:25:36 +02:00
myvesta
94ffccf1b0
Update v-install-unsigned-ssl 2020-06-27 20:24:03 +02:00
myvesta
ade95317d1
Update v-install-unsigned-ssl 2020-06-27 17:05:10 +02:00
myvesta
3648afaab5
Adding restart parameter to v-install-unsigned-ssl 2020-06-27 17:04:01 +02:00
myvesta
2edeee1f7f
Add files via upload 2020-06-27 03:17:16 +02:00
myvesta
daa9374f59
favicon 2020-06-27 02:27:59 +02:00
myvesta
b93623e865
Introducing: v-install-unsigned-ssl DOMAIN 2020-06-27 02:25:56 +02:00
myvesta
2108e0e32c
Multi-PHP error for servers without Apache 2020-06-26 13:23:22 +02:00
myvesta
a3513a9187
Start backup at 01 AM 2020-06-25 12:59:39 +02:00
myvesta
26e7f311c1
Make backup once a week 2020-06-25 11:47:24 +02:00
dpeca
e0ebf729f3
Avoid Let's Encrypt domain validation timeout 2020-06-23 20:20:11 +02:00
dpeca
83d0b9ed90
Allow quick restarting of nginx
It can occur if domain has many aliases, and acme-challenge should be added many times

This fix will prevent this error:
```
May 14 21:39:08 server systemd[1]: nginx.service: Start request repeated too quickly.
May 14 21:39:08 server systemd[1]: nginx.service: Failed with result 'start-limit-hit'.
```
2020-06-23 20:14:55 +02:00
dpeca
d9e9c64369
Fixing NS parameters in v-add-dns-on-web-alias 2020-06-23 20:10:54 +02:00
dpeca
8d9e349b23
Dont match subdomains while restoring domain 2020-06-23 20:08:59 +02:00
dpeca
a9e46047e9
Reset UPDATE_SSL_SCRIPT 2020-06-23 20:04:30 +02:00
myvesta
6fa21d9c69
vesta-0.9.8-26-25 2020-06-23 19:12:33 +02:00
myvesta
850fa1a27b
Merge pull request #71 from serghey-rodin/master
Adding escapeshellarg on few more places in php code
2020-06-23 19:11:19 +02:00
dpeca
c377e19df8 Adding escapeshellarg on few more places in php code 2020-06-23 19:06:25 +02:00
dpeca
c862bd9aff Fixing unnecessary slash in nginx configs for phpmyadmin and roundcube 2020-06-23 18:18:30 +02:00
myvesta
f304b6693d
Merge pull request #70 from serghey-rodin/master
Fixing unnecessary slash in nginx configs for phpmyadmin and roundcube
2020-06-23 18:15:29 +02:00
dpeca
b6cadcd992 Fixing unnecessary slash in nginx configs for phpmyadmin and roundcube 2020-06-23 18:01:38 +02:00
myvesta
094eb3a31b
Fixing nginx+php-fpm installer variant 2020-06-22 00:34:51 +02:00
myvesta
552f642704
Fixing nginx+php-fpm installer variant 2020-06-22 00:13:15 +02:00
myvesta
a4f1224f99
Update latest.txt 2020-06-22 00:01:10 +02:00
myvesta
a4b65c07ae
Checking official latest version 2020-06-21 23:43:36 +02:00
myvesta
8203fbca22
Fixing nginx+php-fpm installer variant 2020-06-21 23:34:16 +02:00
myvesta
5658a87205
Merge pull request #68 from adam993/patch-3
Update cpanel-import.sh
2020-06-20 12:46:33 +02:00
Adam Radivojevic
f3584d3a74
Update cpanel-import.sh 2020-06-20 08:47:52 +02:00
myvesta
1de5f42e3f
Update README.md 2020-06-19 01:53:53 +02:00
myvesta
b6295098a2
More features 2020-06-14 14:25:53 +02:00
myvesta
a3c147292a
LetsEncrypt notification color 2020-06-14 02:18:00 +02:00
myvesta
a352722aa9
vesta-0.9.8-26-23 2020-06-14 02:04:23 +02:00
myvesta
9021e29b01
Notification for LetsEncrypt 2020-06-14 02:02:46 +02:00
myvesta
473aab0815
vesta-0.9.8-26-22 2020-06-13 01:27:02 +02:00
myvesta
fe6cb1fbff
Checking php7.4 pool conf while deleting domain 2020-06-13 01:25:50 +02:00
myvesta
08834fcd15
Update vst-install-debian.sh 2020-06-13 00:16:31 +02:00
myvesta
396cbc6a26
Blocking executable files inside archives in ClamAV [installer] 2020-06-13 00:14:57 +02:00
myvesta
21d4b3ee40
Clearing letsencrypt pipe 2020-06-13 00:03:25 +02:00
myvesta
c329b4bb96
vesta-0.9.8-26-21 2020-06-13 00:00:59 +02:00
myvesta
3296e93083
Clearing letsencrypt pipe 2020-06-13 00:00:25 +02:00
myvesta
d6eed3b978
Avoiding v-schedule-letsencrypt
Because it is entering infinite loop for some reason
2020-06-12 23:51:16 +02:00
myvesta
62ec3bb5a7
LetsEncrypt to use Apache if myVesta is behind main nginx 2020-06-12 22:54:53 +02:00
myvesta
d0e24ed92f
LetsEncrypt to use Apache if myVesta is behind main nginx 2020-06-12 22:46:08 +02:00
myvesta
58ff192f53
Update caching.stpl 2020-06-12 18:05:29 +02:00
myvesta
06fab59f0b
Update fix_ssl_directive_in_templates.sh 2020-06-12 17:55:03 +02:00
myvesta
023234299f
Update fix_ssl_directive_in_templates.sh 2020-06-12 17:49:06 +02:00
myvesta
fd49534c2e
Run fix ssl directive only on Deb9 and Deb10 2020-06-12 17:40:48 +02:00
myvesta
bf4eb9aa4b
Run fix ssl directive only on Deb9 and Deb10 2020-06-12 17:38:44 +02:00
myvesta
84a9df6a58
Block executable files inside zip/rar/tar archives in ClamAV 2020-06-12 17:29:47 +02:00
myvesta
3b3d97f658
foxhole_all.cdb 2020-06-12 17:19:41 +02:00
myvesta
9669084e3f
Create foxhole_all.cdb 2020-06-12 17:18:25 +02:00
myvesta
9230e004f1
Update fix_ssl_directive_in_templates.sh 2020-06-11 16:26:55 +02:00
myvesta
9cdfaf483f
Fixing ssl directive in nginx templates 2020-06-11 16:13:29 +02:00
myvesta
514bf9e0f1
Create fix_ssl_directive_in_templates.sh 2020-06-11 16:09:42 +02:00
myvesta
ab9b778e39
Update keep_mpm_event.sh 2020-06-11 15:27:59 +02:00
myvesta
747b8eea4e
Update keep_mpm_event.sh 2020-06-11 15:25:29 +02:00
myvesta
977728c21a
Run keep_mpm_event.sh with 'background' parameter 2020-06-11 15:04:48 +02:00
myvesta
1ed512cf83
Building templates archive for Deb 8 and 9 2020-06-11 14:01:55 +02:00
myvesta
17f9435786 deb9 http2 2020-06-11 13:40:42 +02:00
myvesta
27e892c6e3
Reset UPDATE_SSL_SCRIPT 2020-06-11 10:21:14 +02:00
myvesta
1c1ed27357
vesta-0.9.8-26-20 2020-06-01 23:53:55 +02:00
myvesta
470d0a134e
skip upgrades on fresh installation 2020-06-01 18:53:09 +02:00
myvesta
4de8773575
Update keep_mpm_event.sh 2020-06-01 18:46:55 +02:00
myvesta
23aa28d463
apt-get -y remove libapache2-mod-php7.4 2020-05-31 04:09:46 +02:00
myvesta
e79aea271b
calling v-delete-cron-restart-job from keep_mpm_event.sh 2020-05-31 03:18:13 +02:00
myvesta
9e59d4dff4
muting v-add-cron-restart-job in postinst 2020-05-31 03:10:52 +02:00
myvesta
208a992b7f
Create keep_mpm_event.sh 2020-05-31 03:04:40 +02:00
myvesta
123bae9e61
calling v-add-cron-restart-job for keeping-mpm-event check script 2020-05-31 02:56:15 +02:00
myvesta
6c11c48d26
keeping-mpm-event.log 2020-05-31 02:42:59 +02:00
myvesta
07eea77be5
Calling /upd/keep_mpm_event.sh 2020-05-31 02:32:06 +02:00
myvesta
2ef5c92325
Making sure mpm_event will stay 2020-05-31 02:21:29 +02:00
myvesta
cdcc726ac7
Update install_rate_limit_tpl.sh 2020-05-29 10:09:21 +02:00
myvesta
4c6628822a
confdef in v-update-sys-vesta 2020-05-26 19:09:05 +02:00
myvesta
d1f256173e
timeout for getting latest release 2020-05-24 22:27:57 +02:00
myvesta
e21471b030
correcting code that take debian version 2020-05-24 22:18:49 +02:00
dpeca
9cb73b19df nginx caching tpl 2020-05-24 22:14:13 +02:00
myvesta
149109698a
typo fix 2020-05-23 21:51:59 +02:00
myvesta
e69cc7f513
Update vst-install-ubuntu.sh 2020-05-23 14:26:48 +02:00
myvesta
e2a491b361
Update vst-install-rhel.sh 2020-05-23 14:25:59 +02:00
myvesta
ced0330c45
Update vst-install-amazon.sh 2020-05-23 14:25:25 +02:00
myvesta
6fcc1dcdb8
Message in installer that only Debian is supported 2020-05-23 14:23:48 +02:00
myvesta
176bfe5d71
Message in installer that only Debian is supported 2020-05-23 14:22:33 +02:00
myvesta
a7dc2ee204
Debian 10 is recommended 2020-05-23 14:12:25 +02:00
myvesta
684c96169f
Recommending Debian10 in myVesta 2020-05-23 14:10:28 +02:00
myvesta
fc87362da8
Update install_rate_limit_tpl.sh 2020-05-22 15:52:06 +02:00
myvesta
584f3e3353
nginx rate limit templates, burst x2, speed x2, conn x4 2020-05-22 15:50:15 +02:00
myvesta
9d84a2c57c
Removing unnecessary .sh in installer for nginx rate limit tpl 2020-05-22 00:31:41 +02:00
myvesta
5a87c64eaa
nginx rate limit burst x2 and speed x2 installer + fix 2020-05-22 00:25:13 +02:00
myvesta
761190755b
nginx rate limit templates, burst x2, speed x2 2020-05-22 00:03:27 +02:00
myvesta
6f78e9f130
burst x2 installer 2020-05-22 00:02:01 +02:00
myvesta
9411e2f1df
nginx rate limit burst x2 2020-05-21 23:48:01 +02:00
myvesta
2540f7a16b
Delete hosting-firewall.sh
not necessary file
2020-05-21 23:44:33 +02:00
myvesta
e71af87d69
second rate limit zone for 2 req/sec 2020-05-21 23:33:31 +02:00
myvesta
c7859f100d
rate limit zone 1mb instead of 10mb 2020-05-21 23:29:19 +02:00
myvesta
a3ba9f3c84
version 0.9.8-26-19 2020-05-15 22:00:44 +02:00
myvesta
ec87943852
Dont match subdomains while restoring domain 2020-05-15 21:59:26 +02:00
myvesta
591369f9b4
checking if clamd.conf exists 2020-05-15 20:46:45 +02:00
myvesta
d4ffb91f09
version 0.9.8-26-18 2020-05-15 20:33:23 +02:00
myvesta
53d6f2a1ea
fixing NS parameters in v-add-dns-on-web-alias 2020-05-15 20:28:24 +02:00
myvesta
9f16db4431
check if clamav-daemon.socket exist 2020-05-15 20:04:06 +02:00
myvesta
d9b8330de8
leave default clamav socket path 2020-05-15 20:00:50 +02:00
myvesta
6b457ee087
version 0.9.8-26-17 2020-05-15 19:52:10 +02:00
myvesta
3be3510916
clamav-daemon.service fix and clamav sock fix 2020-05-15 19:50:59 +02:00
myvesta
52eeff1b6a
fixed patch syntax for clamav sock 2020-05-15 19:44:34 +02:00
myvesta
3986d4ec15
clamav sock in installer 2020-05-15 19:31:22 +02:00
myvesta
6ffb2637af
mail_max_userip_connections = 50 2020-05-15 13:58:02 +02:00
myvesta
516701cc26
mail_max_userip_connections = 50 2020-05-15 13:57:15 +02:00
myvesta
bc3cdc89c0
version 0.9.8-26-16 2020-05-15 00:11:20 +02:00
myvesta
f596022b80
Allow quick restarting of nginx
It can occur if domain has many aliases, and acme-challenge should be added many times
2020-05-15 00:05:48 +02:00
myvesta
559368818b
NOTIFY_ADMIN_FULL_BACKUP 2020-05-14 16:53:57 +02:00
myvesta
9383736acc
Update README.md 2020-05-14 14:29:32 +02:00
myvesta
1e89aae6a9
typo fix 2020-05-12 19:20:37 +02:00
myvesta
4020770fdf
Update install_rate_limit_tpl.sh 2020-05-12 14:41:46 +02:00
myvesta
f05ff062d8
rate limit new definition 2020-05-11 20:21:12 +02:00
myvesta
4526333fc9
nodelay 3 ratelimit tpl 2020-05-11 20:15:17 +02:00
myvesta
e39f05d165
nodelay 3 ratelimit tpl 2020-05-11 20:13:41 +02:00
myvesta
5987766e19
nodelay 3 ratelimit tpl 2020-05-11 20:12:59 +02:00
myvesta
060dfee2bd
timeout 10 sec for apache2 status 2020-05-10 18:58:16 +02:00
myvesta
9525acdd7f
Update README.md 2020-05-10 03:49:05 +02:00
myvesta
45f173c09d
Update README.md 2020-05-10 03:43:26 +02:00
myvesta
8c1d3e4ccb
Update README.md 2020-05-10 03:35:40 +02:00
myvesta
81f9a76e2b
link to official vestacp 2020-05-10 03:29:07 +02:00
myvesta
4ab1d9fd8e
Update README.md 2020-05-10 03:26:20 +02:00
myvesta
4b425d0796
Added useful tools on Homepage 2020-05-10 03:23:06 +02:00
myvesta
10998e52e7
Update README.md 2020-05-10 02:19:49 +02:00
myvesta
d898854061
Update install_rate_limit_tpl.sh 2020-05-10 00:48:36 +02:00
myvesta
054c32c156
limit req burst 7 2020-05-09 22:53:10 +02:00
myvesta
e0c80f5f71
limit req burst 7 2020-05-09 22:52:19 +02:00
myvesta
eaa56345da
limit req burst 7 2020-05-09 22:51:46 +02:00
myvesta
f08de3d41c
safe adding ALLOW_BACKUP_ANYTIME to vesta.conf 2020-05-09 21:12:16 +02:00
myvesta
3da021bcde
Update postinst 2020-05-09 19:19:55 +02:00
myvesta
4b7bf3b9a2
Version 15 2020-05-09 19:14:21 +02:00
myvesta
482032b672
folder for upgrade notations 2020-05-09 19:13:34 +02:00
myvesta
3926d457fa
tune fpm config files 2020-05-09 19:10:46 +02:00
myvesta
d63823075b
new logo 2020-05-09 18:28:07 +02:00
myvesta
75ebe2f249
Update PHP-FPM-74.sh 2020-05-09 01:24:41 +02:00
myvesta
c7b506de92
Update PHP-FPM-73.sh 2020-05-09 01:23:48 +02:00
myvesta
5f1be60ff9
Update PHP-FPM-72.sh 2020-05-09 01:23:01 +02:00
myvesta
4ab335fad8
Update PHP-FPM-71.sh 2020-05-09 01:22:14 +02:00
myvesta
59f4d1fa04
Update PHP-FPM-70.sh 2020-05-09 01:21:24 +02:00
myvesta
89d429b99b
Update PHP-FPM-56.sh 2020-05-09 01:20:35 +02:00
myvesta
b589078931
Update v-clone-website 2020-05-08 21:53:48 +02:00
myvesta
df8c6bee41
Add files via upload 2020-05-08 21:32:00 +02:00
myvesta
ace4e5f20b
Create install_rate_limit_tpl.sh 2020-05-08 21:17:22 +02:00
myvesta
d483291b64
rate limit tpl 2020-05-08 21:07:08 +02:00
myvesta
60cefe45a7
Create hosting-firewall.sh 2020-05-08 21:05:31 +02:00
myvesta
26bf021da9
Update index.html 2020-05-08 19:48:45 +02:00
myvesta
7c3b9fa454
Update index.html 2020-05-08 19:46:33 +02:00
myvesta
dcc071d8a8
Update index.html 2020-05-08 19:45:49 +02:00
myvesta
3b729f5c94
Version 14 2020-05-08 19:43:22 +02:00
myvesta
0bc0f2c523
new logo 2020-05-08 19:40:19 +02:00
myvesta
cc4fc9ff19
Update login.html 2020-05-08 19:26:35 +02:00
myvesta
afc5532390
Update v-clone-website 2020-05-08 18:44:28 +02:00
myvesta
f3b638d971
Update v-clone-website 2020-05-08 18:41:39 +02:00
myvesta
da4246d222
Update v-clone-website 2020-05-08 16:29:46 +02:00
myvesta
ac83a51dc2
Update v-clone-website 2020-05-08 15:51:40 +02:00
myvesta
be390b7cca
Update v-clone-website 2020-05-08 15:49:54 +02:00
myvesta
d121f9e345
Update v-clone-website 2020-05-08 15:44:30 +02:00
myvesta
3c5c0e2962
Update v-clone-website 2020-05-08 15:32:30 +02:00
myvesta
120f3b07a3
Set the same templates to migrated site 2020-05-08 15:30:41 +02:00
myvesta
395eee2d5f
Update v-clone-website 2020-05-08 14:46:40 +02:00
myvesta
47d589a1ba
Update v-clone-website 2020-05-08 13:55:18 +02:00
myvesta
3df19d0f2b
Update v-clone-website 2020-05-08 13:43:45 +02:00
myvesta
75bccb0f6c
Update v-clone-website 2020-05-08 13:36:00 +02:00
myvesta
f198adb3b3
Remove w3-total-cache on migrated domain
Because it can make hell in memcached cache
2020-05-08 13:10:30 +02:00
myvesta
aa04ca7222
v-clone-website switched to parameters 2020-05-08 12:50:41 +02:00
myvesta
d1ccc4cdf6
Update footer.html 2020-05-07 23:40:38 +02:00
myvesta
c260afa4a5
Update postinst 2020-05-07 23:33:22 +02:00
myvesta
893da18c7c
Update vesta_compile.sh 2020-05-07 23:30:01 +02:00
myvesta
892c2565fb
Version 13 2020-05-07 23:26:43 +02:00
myvesta
f6da475cc5
display version in footer 2020-05-07 23:25:32 +02:00
myvesta
6fa22486e7
get version and build date 2020-05-07 23:23:58 +02:00
myvesta
5d87a17bf8
build_date 2020-05-07 23:22:30 +02:00
myvesta
35bd47c5cd
Update vesta_compile.sh 2020-05-07 23:19:46 +02:00
myvesta
5f60eea486
version up 2020-05-07 21:38:33 +02:00
myvesta
cef7ab0233
Update control 2020-05-07 21:37:54 +02:00
myvesta
ab0ca29e28
Update vesta_compile.sh 2020-05-07 21:34:37 +02:00
myvesta
66ac7f74d5
Update postinst 2020-05-07 21:29:05 +02:00
myvesta
2c1b1cafd4
Update postinst 2020-05-07 21:24:40 +02:00
myvesta
e3c1d0f49e
wp cache flush 2020-05-07 18:08:31 +02:00
myvesta
0a3928691c
Support for parameters in v-clone-website 2020-05-07 18:04:02 +02:00
myvesta
363e5d72f1
Create yandex.tpl 2020-05-05 00:30:09 +02:00
myvesta
1fd58f2414
Office365 DNS template 2020-05-04 23:53:17 +02:00
myvesta
464f8075f3
Update proftpd.conf 2020-05-04 13:32:52 +02:00
myvesta
d04a97c943
Update postinst 2020-05-01 01:33:00 +02:00
myvesta
687b50b507
Update v-update-sys-vesta 2020-05-01 01:03:07 +02:00
myvesta
4b3343dc9d
Version up 2020-05-01 00:22:28 +02:00
myvesta
6c3399ff91
Version up 2020-05-01 00:21:48 +02:00
myvesta
c6109e5301
Version up 2020-05-01 00:21:15 +02:00
myvesta
9d182f292f
Keep conf files during auto-update 2020-05-01 00:17:03 +02:00
myvesta
14aad370ac
Skipping LE renewing after 7 attempts 2020-04-30 01:17:52 +02:00
myvesta
e97f309e70
LETSENCRYPT_FAIL_COUNT skip if suspended 2020-04-30 00:30:53 +02:00
myvesta
bbe4d0ddcd
echo fail_counter 2020-04-30 00:09:51 +02:00
myvesta
6baf08f8d3
get_web_counter LETSENCRYPT_FAIL_COUNT 2020-04-30 00:00:08 +02:00
myvesta
80d43b9392
reset_web_counter LETSENCRYPT_FAIL_COUNT 2020-04-29 23:50:10 +02:00
myvesta
d0542fd5e2
alter_web_counter LETSENCRYPT_FAIL_COUNT 2020-04-29 23:46:01 +02:00
myvesta
14ffd7d2a5
web_counter functions 2020-04-29 20:45:54 +02:00
myvesta
338125b448
Do not restart apache while preparing letsencrypt acme challenge 2020-04-27 11:24:02 +02:00
myvesta
c3c55a4e2a
Do not restart apache while preparing letsencrypt acme challenge 2020-04-27 09:04:52 +02:00
myvesta
5f853a0ec1
ALLOW_BACKUP_ANYTIME='yes' 2020-04-20 02:25:03 +02:00
myvesta
3208596639
Version up 2020-04-11 02:20:31 +02:00
myvesta
797f1d4595
Version up 2020-04-11 02:19:38 +02:00
myvesta
37ef7ab399
Version up 2020-04-11 02:18:46 +02:00
myvesta
81804028ed
Merge pull request #56 from serghey-rodin/master
Importing system enviroment in v-change-user-password
2020-04-11 02:17:37 +02:00
dpeca
cfc46bb2a9
Importing system enviroment in v-change-user-password
Thanks to @ScIT-Raphael for discovering this bug
2020-04-11 02:16:24 +02:00
myvesta
e7dbb91b25
Update postinst 2020-04-11 00:06:24 +02:00
myvesta
0bbcacc74f
ALLOW_MYSQL_REPAIR 2020-04-10 23:41:02 +02:00
myvesta
d2bf71d9b2
Create v-normalize-restored-user
Normalize NS1, NS2 and IP of account that is backuped on other server and restored on this server.
After restoring, user will have DNS that contains NS1, NS2 and IP from original server
This script will put NS1, NS2 and IP of current server
2020-04-10 00:28:17 +02:00
myvesta
68543c5d99
Merge pull request #55 from serghey-rodin/master
Correcting FTP link in v-backup-user
2020-04-09 20:56:03 +02:00
dpeca
cc8a3e0c58
Correcting FTP link in v-backup-user 2020-04-09 20:53:27 +02:00
myvesta
c138961af8
Tweak for hostname FPM conf 2020-04-09 13:27:11 +02:00
myvesta
6e97cdca78
Tweak for hostname FPM conf 2020-04-09 13:22:50 +02:00
myvesta
1e577e3000
Merge pull request #54 from serghey-rodin/master
Adding port to reset password link
2020-03-29 18:44:47 +02:00
dpeca
58807feb80
Adding port to reset password link 2020-03-29 18:13:22 +02:00
myvesta
8af131b19c
Merge pull request #53 from serghey-rodin/master
Pull from official repo
2020-03-24 21:01:57 +01:00
dpeca
c915bff32e
Forbid changing root password 2020-03-24 20:40:47 +01:00
myvesta
d1b97d4493
version up 2020-03-23 20:04:59 +01:00
myvesta
798fff5be2
version up 2020-03-23 20:03:56 +01:00
myvesta
e660b6b1a0
Update latest.txt 2020-03-23 20:03:09 +01:00
dpeca
00e1f46276
Limiting /etc/sudoers for Ubuntu 2020-03-23 19:34:39 +01:00
dpeca
c9844805a4
Limiting /etc/sudoers for Ubuntu 2020-03-23 19:31:42 +01:00
myvesta
9256193b0e
Merge pull request #52 from serghey-rodin/master
Preventing manipulation with $_SERVER['HTTP_HOST']
2020-03-23 17:38:43 +01:00
dpeca
c3c4de43d6
Preventing manipulation with $_SERVER['HTTP_HOST'] 2020-03-23 17:28:55 +01:00
myvesta
961e2f61dc
version up 2020-03-23 02:05:49 +01:00
myvesta
7be91af81a
version up 2020-03-23 02:05:08 +01:00
myvesta
3472f24a51
version up 2020-03-23 02:04:21 +01:00
myvesta
e37e5cf2a6
Merge pull request #51 from serghey-rodin/master
Pull from official vesta repo
2020-03-23 02:02:26 +01:00
dpeca
a5712542d7 Temporary fix for parsing backup conf 2020-03-23 01:21:57 +01:00
myvesta
db726ad32f
version up 2020-03-18 21:23:01 +01:00
myvesta
56fc89e2af
version up 2020-03-18 21:22:13 +01:00
myvesta
d6af7f06ec
version up 2020-03-18 21:21:28 +01:00
myvesta
d93935fb36
Second try to avoid Let's Encrypt domain validation timeout 2020-03-18 21:20:23 +01:00
myvesta
07b739382d
Update v-clone-website 2020-03-18 19:19:42 +01:00
myvesta
8da8d0b833
Update v-clone-website 2020-03-18 16:40:00 +01:00
myvesta
cd01273ae6
Update v-clone-website 2020-03-18 16:22:35 +01:00
myvesta
84c22518e5
Trying to avoid Let's Encrypt domain validation timeout 2020-03-11 15:16:58 +01:00
myvesta
01c3a9c9b6
timeout in v-list-sys-web-status 2020-03-06 20:39:53 +01:00
myvesta
5b9625d0c8
Update v-migrate-site-to-https 2020-03-05 09:40:20 +01:00
myvesta
e3af159de4
Update v-clone-website 2020-03-05 09:37:59 +01:00
myvesta
7c440d9ee7
Update v-migrate-site-to-https 2020-03-05 09:37:13 +01:00
myvesta
50a38e8823
Ensure apache2 mpm_event 2020-02-29 01:35:32 +01:00
dpeca
16f5b0c117
NOTIFY_ADMIN_FULL_BACKUP2 2020-02-24 19:48:22 +01:00
dpeca
57ee689651
Update main.sh 2020-02-24 19:34:38 +01:00
myvesta
79e9871abd
Update v-backup-users 2020-02-21 15:12:24 +01:00
myvesta
b98cdf75fe
Version up 2020-02-21 15:04:30 +01:00
myvesta
e556f672b1
Version up 2020-02-21 15:03:49 +01:00
myvesta
55aa50eb0c
Version up 2020-02-21 15:03:07 +01:00
myvesta
78b227d775
Introducing NOTIFY_ADMIN_FULL_BACKUP 2020-02-21 15:01:17 +01:00
myvesta
fe9d6c1c63
Update secure_login.php 2020-02-21 14:19:15 +01:00
myvesta
c4a644bd9a
Introducing KEEP_N_FTP_BACKUPS 2020-02-21 13:10:40 +01:00
myvesta
cbed4fe37d
force-https-webmail-phpmyadmin tpl 2020-02-20 15:33:19 +01:00
myvesta
2e3f833f17
Update vst-install-debian.sh 2020-02-20 15:10:56 +01:00
myvesta
58bf77e896
Update vst-install-debian.sh 2020-02-19 22:00:36 +01:00
dpeca
8dea5b43d3
Update secure_login.php 2020-02-16 01:50:38 +01:00
dpeca
d35f1908db
Update v-clone-website 2020-02-10 23:18:53 +01:00
dpeca
88d149ac9a
Update v-migrate-site-to-https 2020-02-10 23:17:57 +01:00
dpeca
6713f75f93
version up 2020-02-10 22:11:28 +01:00
dpeca
f19e0d49eb
version up 2020-02-10 22:10:48 +01:00
dpeca
b01fd9b9a1
version up 2020-02-10 22:09:59 +01:00
dpeca
5bbb8f951d
sudoers fix 2020-02-10 21:15:30 +01:00
dpeca
4856aeca85
Update admin 2020-02-10 21:11:32 +01:00
dpeca
d050146fab
Update v-clone-website 2020-02-07 13:21:22 +01:00
dpeca
304059a759
Patching rcube_vcard.php in installer 2020-02-06 20:36:09 +01:00
dpeca
3ea0bbaa3b
rcube_vcard.patch 2020-02-06 20:17:27 +01:00
dpeca
0aba1ce148
Update multi-php-install.sh 2020-02-06 19:56:20 +01:00
dpeca
10a86e2458
Delete php5.6.patch 2020-02-06 19:55:12 +01:00
dpeca
d4de5165b1
Create php5.6.patch 2020-02-06 19:54:35 +01:00
dpeca
b6379cf8ff
php5.6 php.ini fix 2020-02-06 19:41:23 +01:00
dpeca
341e7d6599
php5.6.patch 2020-02-06 19:34:48 +01:00
dpeca
9224872c5c
Update main.inc.php 2020-02-04 11:24:59 +01:00
dpeca
97d3fc3be2
Update hosting-webmail-phpmyadmin.tpl 2020-02-04 11:20:57 +01:00
dpeca
dc00af4d61
Exim compatibility with Loopia 2020-02-03 11:16:37 +01:00
dpeca
14cb0a988d
Exim compatibility with Loopia 2020-02-03 11:13:21 +01:00
dpeca
ee308a3f4f
Create v-migrate-site-to-https 2020-02-02 16:55:46 +01:00
dpeca
abacfa71b9
Update create_wp_https 2020-02-02 15:34:26 +01:00
dpeca
72939b1fdf
Update create_wp_https 2020-02-02 15:28:54 +01:00
dpeca
393fb7445a
Update v-clone-website 2020-02-02 15:04:23 +01:00
dpeca
b5db512b8b
Update v-clone-website 2020-02-02 14:54:39 +01:00
dpeca
19b2b0c9dc
Update multi-php-install.sh 2020-02-02 00:17:58 +01:00
dpeca
040a7e735d
php7.4-memcache php7.4-memcached 2020-01-24 18:38:59 +01:00
dpeca
70171a4598
v-clone-website: switching to wp-cli for WP sites 2020-01-20 01:00:20 +01:00
dpeca
be6d976d8a
Update create_wp_https 2020-01-19 23:00:46 +01:00
dpeca
180898fde8
create_wp 2020-01-19 22:57:37 +01:00
dpeca
a607cf9ccd
v-clone-website 2020-01-19 17:55:08 +01:00
dpeca
e8f52886b0
mkdir -p /var/lib/clamav in installer 2020-01-11 19:00:57 +01:00
dpeca
9aac2a457a
Merge pull request #44 from flackjap/patch-3
Update README.md
2020-01-11 18:09:43 +01:00
dpeca
86ce76cbae
Update vst-install-debian.sh 2020-01-11 17:59:28 +01:00
dpeca
373feb37cd
Note about secret URL 2020-01-11 17:58:25 +01:00
flackjap
8244e94be8
Update README.md
Syntax and grammar improvements.
2020-01-11 17:56:12 +01:00
Josh Marshall
99abd5ed05
Bugfix deleting a PostgreSQL database
Was just a typo
2020-01-09 00:52:10 +10:00
dpeca
6d34e2b1b0
Version up 2020-01-07 23:45:14 +01:00
dpeca
5ec8cc2f55
version up 2020-01-07 23:44:22 +01:00
dpeca
b40ebe07e2
Allow whitelisting specific IP for /api/ 2020-01-07 23:43:14 +01:00
dpeca
f4b64b4b4e
Allow whitelisting specific IP to avoid secret_url 2020-01-07 23:26:03 +01:00
dpeca
3dd6c186fc
apparmor install fix 2020-01-07 15:33:58 +01:00
dpeca
436669607e
Allow softaculous in secure_login 2020-01-05 15:54:54 +01:00
dpeca
2106a46d62
Update postinst 2020-01-04 21:30:54 +01:00
dpeca
430cdd41ff
Update vesta_compile.sh 2020-01-04 15:19:49 +01:00
dpeca
1a71d90e9a
Update vesta_compile.sh 2020-01-04 15:17:45 +01:00
dpeca
96f7a4f480
Update postinst 2020-01-04 15:06:06 +01:00
dpeca
71e59e5009
Update postinst 2020-01-04 14:59:20 +01:00
dpeca
2dc2fe5682
Update install-softaculous.sh 2020-01-04 14:35:10 +01:00
dpeca
3ab4bcf6e8
Create install-softaculous.sh 2020-01-04 14:04:00 +01:00
dpeca
515ceb2160
Turning off MariaDB SQL strict mode 2020-01-02 18:54:59 +01:00
dpeca
70d699c5aa
Turning off MariaDB SQL strict mode 2020-01-02 18:49:15 +01:00
dpeca
b4da32ef54
Turning off MariaDB SQL strict mode 2020-01-02 18:48:19 +01:00
dpeca
1bdd8dd6b1
Allow mail symlink to HDD 2019-12-31 17:35:53 +01:00
dpeca
19a0812367
Removing xml from proxy extensions list 2019-12-29 20:17:41 +01:00
dpeca
e9afaa1bac
Removing xml from proxy extensions list 2019-12-29 20:16:00 +01:00
dpeca
f68edcb5c1
Removing xml from proxy extensions list 2019-12-29 20:13:10 +01:00
dpeca
1d84e8bfcd
Removing xml from proxy extensions list 2019-12-29 20:10:18 +01:00
dpeca
56ccb71ea8
Removing xml from proxy extensions list 2019-12-29 20:08:42 +01:00
dpeca
e9cd93e3f7
exim-without-limits 2019-12-16 21:23:12 +01:00
dpeca
ef3b9529ba
exim4 clamd.sock fix deb8 2019-11-26 21:53:14 +01:00
dpeca
07731f93bb
exim4 clamd.sock fix deb9 2019-11-26 21:51:41 +01:00
dpeca
f6a8bb073f
clamd.sock fix exim4 deb10 2019-11-26 21:49:16 +01:00
dpeca
6663edc113
update postinst 2019-11-26 21:46:51 +01:00
dpeca
43a9c75445
Version up 2019-11-26 21:44:54 +01:00
dpeca
471b77f9be
Version up 2019-11-26 21:44:03 +01:00
dpeca
776975ac02
clamd.sock fix for exim 2019-11-26 21:43:14 +01:00
dpeca
fe0746ec28
Info about nameservers 2019-11-15 15:54:44 +01:00
dpeca
4eb2e6a7ba
Better check if session cron already added 2019-11-15 15:34:15 +01:00
dpeca
9d4d002bd3
Support for sub-release 2019-11-15 15:18:41 +01:00
dpeca
6f5fff2790
Version up 2019-11-15 14:45:42 +01:00
dpeca
0620dd094d
Version up 2019-11-15 14:44:43 +01:00
dpeca
b2701563a6
clamav installer notification fix 2019-11-15 14:39:07 +01:00
dpeca
14b1bdf78a
New clamd.sock (deb8) 2019-11-15 14:33:33 +01:00
dpeca
c58c43dfc4
New clamd.sock (deb9) 2019-11-15 14:32:36 +01:00
dpeca
63c364d2a3
New clamd.sock (deb10) 2019-11-15 14:31:28 +01:00
dpeca
d4332cafc8
clamav-freshclam notification fix 2019-11-15 14:29:14 +01:00
dpeca
818745df1b
Support for longer username of email accounts 2019-11-14 12:44:11 +01:00
dpeca
40f8c5c5c7
apparmor fix 2019-11-13 14:13:31 +01:00
dpeca
2e6a660b59
Update postinst 2019-11-07 21:02:08 +01:00
dpeca
0461f03644
Removing old PHP sessions files 2019-11-07 20:55:03 +01:00
dpeca
ef8151bd81
Temporary removing php7.4-memcached 2019-10-31 15:12:24 +01:00
dpeca
72c1aa3830
Moved tpls to official c subdomain 2019-10-31 14:57:17 +01:00
dpeca
8983b418de
Copy tools folder to c subdomain 2019-10-31 14:52:23 +01:00
myvesta
2d6887b725 php-fpm apache templates 2019-10-31 14:42:34 +01:00
dpeca
5a57c0911a
Update multi-php-install.sh 2019-10-31 14:06:32 +01:00
dpeca
94ca263036
Multi PHP support for PHP 7.4 2019-10-31 13:47:52 +01:00
Anton Reutov
931fb5beeb
Merge pull request #1944 from nothinux/i18n-php
update id.php
2019-10-21 13:25:31 +03:00
David Olsen
9d2ca4b592
Only exclude logs folder from root, not in webdata
Restoring should not exclude logs in any folder down the tree. This causes errors when restoring wordpress with certain plugins that have folders named "logs". This change aligns the restore with the backup function https://github.com/serghey-rodin/vesta/blob/master/bin/v-backup-user#L226

You could also omit the exclusion entirely, as this folder you are excluding should never be in the backup.
2019-10-07 10:40:56 +02:00
myvesta
619874873a
Merge pull request #38 from serghey-rodin/master
Update from official vesta github
2019-10-03 16:22:09 +02:00
dpeca
f0782d1f82
Fixing broken autoreply output
Broken in 0831a198b8 (diff-f07da7937954ae08bdb2e7379655ae29)
@sergio-nadal
2019-10-03 16:15:36 +02:00
myvesta
b625cd51cc
MultiPHP for DEB8 2019-10-02 12:05:06 +02:00
Alexandr Loskutov
d0ca10a5d3
Merge pull request #1945 from robindirksen1/patch-7
Update nl.php
2019-10-01 23:52:17 +03:00
dpeca
4eb6fed51f
New phpmyadmin version 2019-10-01 21:55:31 +02:00
dpeca
9089595a52
Removing inbox = yes from installer 2019-10-01 21:48:09 +02:00
dpeca
f767d14006
deb9 dovecot inbox = yes 2019-10-01 21:46:46 +02:00
dpeca
1fd0078a66
deb10 dovecot inbox = yes 2019-10-01 21:45:53 +02:00
Robin Dirksen
ec8631b2d2
Update nl.php 2019-10-01 16:28:03 +02:00
Taufik Mulyana
9947b17144 update id.php 2019-10-01 21:18:38 +07:00
T. Mulyana
6645586fb2
Merge pull request #1 from serghey-rodin/master
update
2019-10-01 20:42:54 +07:00
myvesta
b951743e56
Deleting blanko in allow-index.php 2019-10-01 13:40:13 +02:00
myvesta
91136300ea
Moving to myvestacp.com 2019-10-01 11:32:30 +02:00
myvesta
98ca075bde
Moving to myvestacp.com 2019-09-30 18:57:35 +02:00
myvesta
6d1f189de1
Moving to myvestacp.com 2019-09-30 18:56:29 +02:00
myvesta
96c1dd2276
Moving to myvestacp.com 2019-09-30 18:54:51 +02:00
myvesta
679893e71b
Moving to myvestacp.com 2019-09-30 18:53:23 +02:00
myvesta
b8e08b6ad8
Moving to myvestacp.com 2019-09-30 18:52:26 +02:00
myvesta
8652b25dd0
Fix for update_firewall_custom.sh 2019-09-30 18:47:33 +02:00
myvesta
41f4778c7e
Syntax fix for update_firewall_custom.sh 2019-09-30 18:41:32 +02:00
myvesta
f477c75418
Trigger for /root/update_firewall_custom.sh 2019-09-30 18:37:30 +02:00
myvesta
f6bca2a8e1
Moving to myvestacp.com 2019-09-30 14:11:31 +02:00
myvesta
50cc5d5b35
convert-vesta-to-myvesta.sh 2019-09-29 19:23:25 +02:00
dpeca
d1cba4e5cc
Moving to myvestacp.com 2019-09-29 00:50:08 +02:00
dpeca
8e81b7cf19
Copy latest.txt 2019-09-29 00:37:43 +02:00
dpeca
b0f14c4844
Moving to myvestacp.com 2019-09-29 00:35:10 +02:00
dpeca
9365252623
Changing URL for latest version 2019-09-29 00:30:38 +02:00
dpeca
add0c9756b
Create latest.txt 2019-09-29 00:22:20 +02:00
dpeca
9fcdce0e1d
Moving to myvestacp.com 2019-09-28 23:58:24 +02:00
dpeca
f0fa7bdd2b
Moving to myvestacp.com 2019-09-28 23:55:19 +02:00
Serghey Rodin
270d29ff06 added month to the release log date 2019-09-29 00:17:54 +03:00
Serghey Rodin
52c32962a8 Release 0.9.8-26 2019-09-29 00:09:07 +03:00
dpeca
621a94e858
Create allow-index.php 2019-09-28 22:39:52 +02:00
myvesta
54908c53d6
Switch to vesta port if it connection came via nginx proxy 2019-09-25 15:51:21 +02:00
myvesta
1b2d6959df
Merge pull request #37 from serghey-rodin/master
Updates from Official VestaCP
2019-09-25 14:43:40 +02:00
Serghey Rodin
ae328a0935 added support for HTTP/2 Let's Encrypt servers 2019-09-24 01:08:17 +03:00
dpeca
395234b94c
Add woff, woff2, xml extension as static file, removing html, htm 2019-09-23 18:13:59 +02:00
dpeca
d08790457a
Add woff, woff2, xml extension as static file, removing html, htm 2019-09-23 18:09:01 +02:00
dpeca
1632c27355
Add woff, woff2, xml extension as static file, removing html, htm 2019-09-23 17:35:53 +02:00
dpeca
6b1f3a0e5d
Add woff, woff2, xml extension as static file, removing html, htm 2019-09-23 17:34:06 +02:00
dpeca
1658144030
Add woff, woff2, xml extension as static file, removing html, htm 2019-09-23 17:31:05 +02:00
dpeca
3f7e7915f0
Making roundcube and phpmyadmin works with new hosting tpl 2019-09-23 16:58:59 +02:00
myvesta
890df7a19d hosting webmail phpmyadmin nginx tpl 2019-09-23 15:47:45 +02:00
dpeca
6d414b14ff
Symlink missing templates 2019-09-23 15:38:35 +02:00
myvesta
eb6f79c6a9 hosting legacy nginx tpl 2019-09-23 15:22:23 +02:00
dpeca
8ce0bde89e
Do not try_files if static file not exists 2019-09-23 15:10:40 +02:00
dpeca
acc62c1f1e
Do not try_files if static file not exists 2019-09-23 15:10:05 +02:00
dpeca
a03a01eecc
Do not try_files if static file not exists 2019-09-23 15:09:38 +02:00
dpeca
908bdd5b33
Do not try_files if static file not exists 2019-09-23 15:08:16 +02:00
dpeca
a0f5caee58
Do not try_files if static file not exists 2019-09-23 15:07:31 +02:00
dpeca
65c24af9d5
Update secure_login.php 2019-09-11 23:48:33 +02:00
dpeca
244f94f53e
Removing again TLSv1 2019-09-10 20:32:59 +02:00
dpeca
789552b48e
Update vesta.stpl 2019-09-10 19:55:55 +02:00
dpeca
40fafca705
Update vesta-webmail-phpmyadmin.stpl 2019-09-10 19:55:20 +02:00
dpeca
5a60b7b360
Update private-hosting.stpl 2019-09-10 19:54:41 +02:00
dpeca
86a4ec909c
Update private-force-https.stpl 2019-09-10 19:53:56 +02:00
dpeca
055d0a6c5c
Update hosting-webmail.stpl 2019-09-10 19:53:15 +02:00
dpeca
53eb920e20
Update hosting-webmail-phpmyadmin.stpl 2019-09-10 19:52:15 +02:00
dpeca
aaec339c69
Update hosting-public.stpl 2019-09-10 19:51:28 +02:00
dpeca
1d08197737
Update force-https.stpl 2019-09-10 19:50:45 +02:00
dpeca
4f4af970ce
Update force-https-public.stpl 2019-09-10 19:50:01 +02:00
dpeca
93ecc5d040
Update force-https-legacy.stpl 2019-09-10 19:49:13 +02:00
dpeca
9bde61d150
Update hosting.stpl 2019-09-10 19:47:10 +02:00
dpeca
a564d335cb
testing LE with TLSv1 2019-09-10 18:46:15 +02:00
dpeca
5b51edd081
New CloudFlare IPs
Tnx to Luka Paunovic
2019-09-10 17:08:32 +02:00
dpeca
d688b63a40
Update nginx.conf 2019-09-10 17:07:15 +02:00
dpeca
69ca62abb1
New CloudFlare IPs
tnx to Luka Paunovic
2019-09-10 17:06:17 +02:00
dpeca
3535097788
MySQL port blocked by default from outside 2019-09-10 17:02:19 +02:00
dpeca
5ee11280be
Update README.md 2019-09-07 21:50:44 +02:00
dpeca
79e7d50d78
Multi PHP installer 2019-09-07 21:47:51 +02:00
dpeca
0f9e47a7b8
php-fpm request_terminate_timeout = 30s 2019-09-06 00:12:10 +02:00
dpeca
374412f862
php-fpm request_terminate_timeout = 30s 2019-09-06 00:11:12 +02:00
dpeca
e0c417c5e4
Update vst-install-debian.sh 2019-09-05 21:31:45 +02:00
dpeca
10f2dacedb
proxy_read_timeout 900 in nginx 2019-09-05 21:27:32 +02:00
dpeca
deddf58c3c
ProxyTimeout 900 in Apache 2019-09-05 21:24:43 +02:00
dpeca
85ea9804d6
Update cpanel-import-godaddy.sh 2019-09-04 01:02:26 +02:00
dpeca
6e8302dacf
Update cpanel-import-godaddy.sh 2019-09-03 23:21:18 +02:00
dpeca
08d8c64619
Update cpanel-import-godaddy.sh 2019-09-03 03:21:32 +02:00
dpeca
aec47bf550
Create cpanel-import-godaddy.sh 2019-09-03 03:20:06 +02:00
dpeca
31ff92eb7a
Create cpanel-import.sh 2019-09-03 03:19:20 +02:00
dpeca
847481d45e
Update README.md 2019-08-29 00:54:25 +02:00
dpeca
1a65c4774b
Update README.md 2019-08-29 00:05:23 +02:00
dpeca
596c61c237
Update README.md 2019-08-28 23:36:17 +02:00
dpeca
56224663e7
Update README.md 2019-08-28 23:33:32 +02:00
dpeca
b1b47a2dd6
Avoid changing DNS during install if bind is not installed 2019-08-26 21:56:58 +02:00
dpeca
9ed52415c3
Avoid changing DNS during install if bind is not installed 2019-08-26 20:42:05 +02:00
dpeca
7daee89bad
Removing TLSv1 from vesta nginx.conf 2019-08-26 20:09:19 +02:00
dpeca
f4f6ff78e2
Update nginx.conf 2019-08-26 20:07:41 +02:00
dpeca
725aedd7ed
Update nginx.conf 2019-08-26 20:06:42 +02:00
dpeca
697f80fceb
Removing TLSv1 from /etc/nginx/nginx.conf 2019-08-26 20:04:12 +02:00
dpeca
2036f4b118
Update vst-install-debian.sh 2019-08-25 23:01:33 +02:00
dpeca
8408825141
Update vst-install-debian.sh 2019-08-25 22:59:14 +02:00
dpeca
f3b15c5834
install gnupg2 if it's not installed 2019-08-25 22:30:20 +02:00
dpeca
c73a75e634
Update vst-install-debian.sh 2019-08-25 03:29:55 +02:00
dpeca
2e11fb79f1
Update vst-install-debian.sh 2019-08-25 02:15:31 +02:00
dpeca
c923cabc19
Warning when server hostname is not pointing to server IP 2019-08-25 02:10:51 +02:00
dpeca
92229c2597
max_length_of_MySQL_username=80 2019-08-25 00:29:48 +02:00
dpeca
952115a9a8
Update README.md 2019-08-24 23:50:53 +02:00
dpeca
f75843cef0
Update README.md 2019-08-24 23:45:22 +02:00
dpeca
77d66b4420
Update README.md 2019-08-24 23:43:59 +02:00
dpeca
53f1c6b2bb
Update vst-install-debian.sh 2019-08-24 18:23:19 +02:00
dpeca
5fe990d987
Asking for secret URL and Vesta port during installation 2019-08-24 18:20:44 +02:00
dpeca
84ef0a118f
Changing /usr/local/vesta to $VESTA 2019-08-24 16:13:03 +02:00
dpeca
0ed4207c9e
Update v-change-vesta-port 2019-08-24 16:10:34 +02:00
dpeca
5eeead791e
Update v-change-vesta-port 2019-08-24 15:58:20 +02:00
dpeca
e902b0180b
Update v-change-vesta-port 2019-08-24 15:55:29 +02:00
dpeca
105f8c2541
Update v-change-vesta-port 2019-08-24 03:35:59 +02:00
dpeca
5afd45bc70
Update README.md 2019-08-24 02:50:28 +02:00
dpeca
40739f3105
Update v-change-vesta-port 2019-08-24 02:37:28 +02:00
dpeca
9eedd3e1b2
Not creating default admin database 2019-08-24 02:31:37 +02:00
dpeca
72029bb578
Update v-change-vesta-port 2019-08-24 02:20:02 +02:00
dpeca
f9b68027da
Update v-change-vesta-port 2019-08-24 02:17:24 +02:00
myvesta
6343b3e20d Introducing v-change-vesta-port 2019-08-24 02:00:22 +02:00
dpeca
8b39d8e847
Put secured login URL in welcome mail while creating user 2019-08-24 00:55:10 +02:00
dpeca
c39d80f15e
Optimizing ClamAV 2019-08-24 00:12:31 +02:00
dpeca
a96a39dbbb
Optimizing ClamAV 2019-08-24 00:11:03 +02:00
dpeca
4fade0fbc9
Optimizing ClamAV 2019-08-24 00:09:28 +02:00
dpeca
f3acaf9297
Create deny_senders 2019-08-23 19:52:48 +02:00
dpeca
d2061fa623
Update exim4.conf.template 2019-08-23 19:51:42 +02:00
dpeca
aa0b8866c0
Update exim4.conf.template 2019-08-23 19:50:51 +02:00
dpeca
3dc748f533
Update exim4.conf.template 2019-08-23 19:49:59 +02:00
dpeca
7b50f5f3f1
Update exim4.conf.template 2019-08-23 19:47:52 +02:00
dpeca
69496e0934
Create deny_senders 2019-08-23 19:46:33 +02:00
dpeca
a1c95d0290
installer: copy exim4 deny_senders 2019-08-23 19:01:47 +02:00
dpeca
f1a1c0e0a6
Create deny_senders 2019-08-23 18:59:43 +02:00
dpeca
0d621b0991
Exim conf enhancements 2019-08-23 18:58:42 +02:00
dpeca
75c921832b
Update README.md 2019-08-23 17:33:31 +02:00
dpeca
1b18519978
Auto-generating LE SSL for hostname 2019-08-23 16:11:54 +02:00
dpeca
5823ca250e
Merge pull request #36 from flackjap/patch-2
Typos in readme
2019-08-21 14:32:45 +03:00
flackjap
e821948b8b
Typos in readme 2019-08-21 10:03:36 +02:00
dpeca
052031d103
Update secure_login.php 2019-08-21 02:05:12 +02:00
dpeca
1a26460eee
Update secure_login.php 2019-08-21 01:35:38 +02:00
dpeca
2c242d152d
Update secure_login.php 2019-08-21 01:33:39 +02:00
dpeca
e13fb65424
Update vesta_compile.sh 2019-08-21 00:37:19 +02:00
dpeca
a699f9aecf
Update README.md 2019-08-21 00:14:01 +02:00
dpeca
d6c8c10d06
Update README.md 2019-08-21 00:05:04 +02:00
dpeca
a0f940da35
Update README.md 2019-08-21 00:03:35 +02:00
dpeca
9989bbd83d
Merge pull request #35 from flackjap/patch-1
Update README.md
2019-08-21 00:59:35 +03:00
flackjap
169ddfcbac
Update README.md
Grammar and eloquence suggestions
2019-08-20 23:58:50 +02:00
dpeca
c4c720838d
Update README.md 2019-08-20 23:26:35 +02:00
dpeca
70397a79fb
Securing php.ini 2019-08-20 23:05:25 +02:00
dpeca
abb84aa403
Create php7.3-dedi.patch 2019-08-20 23:02:26 +02:00
dpeca
b07f758003
Create php7.3-vps.patch 2019-08-20 23:00:56 +02:00
dpeca
c5845ea8ea
Create php7.0-dedi.patch 2019-08-20 22:54:47 +02:00
dpeca
6f662ec573
Create php7.0-vps.patch 2019-08-20 22:52:36 +02:00
dpeca
54590c47af
Update vesta_compile.sh 2019-08-20 22:19:04 +02:00
dpeca
3ff583c737
Delete vesta 2019-08-20 22:14:00 +02:00
dpeca
a1f3c60a8e
Create vesta 2019-08-20 22:13:06 +02:00
dpeca
fb28e8dea7
Delete nginx.conf 2019-08-20 22:12:10 +02:00
dpeca
deb3a0eeae
Create nginx.conf 2019-08-20 22:10:30 +02:00
dpeca
943df73720
Update README.md 2019-08-20 22:05:57 +02:00
dpeca
8944fb261a
Delete php.ini 2019-08-20 22:04:50 +02:00
dpeca
8f0f393a6e
Create php.ini 2019-08-20 22:03:37 +02:00
dpeca
fe21fed10d
Delete php-fpm.conf 2019-08-20 22:02:42 +02:00
dpeca
d3c86aa1c3
Create php-fpm.conf 2019-08-20 22:02:24 +02:00
dpeca
6dfa512dc1
Update README.md 2019-08-20 21:53:16 +02:00
dpeca
4f1a338a62
Update README.md 2019-08-20 21:27:49 +02:00
dpeca
6496d9588b
Update README.md 2019-08-20 21:21:55 +02:00
dpeca
311acac5a6
Update README.md 2019-08-20 21:17:19 +02:00
dpeca
db1f2c71c3
Update README.md 2019-08-20 21:13:37 +02:00
dpeca
bf7ae3c0d4
Update README.md 2019-08-20 21:09:14 +02:00
dpeca
4c916e4ddd
Update README.md 2019-08-20 21:06:36 +02:00
dpeca
73a7008b4a
Update README.md 2019-08-20 21:00:45 +02:00
dpeca
197043e395
Update README.md 2019-08-20 20:18:37 +02:00
dpeca
181a99d5d7
Update secure_login.php 2019-08-20 20:11:43 +02:00
dpeca
e82ad200b7
Translated added string in sr.php 2019-08-18 16:37:00 +02:00
dpeca
aec12a5119
Update README.md 2019-08-17 23:26:29 +02:00
dpeca
6d7a53267c
Update README.md 2019-08-17 23:23:15 +02:00
dpeca
1882aa3d8a
Update README.md 2019-08-17 23:19:40 +02:00
dpeca
d0ec79ca1e
Update vesta_compile.sh 2019-08-17 22:50:45 +02:00
dpeca
5e9f7dcbbc
Update vst-install-debian.sh 2019-08-17 20:16:50 +02:00
dpeca
76fb13bc41
Update vesta_compile.sh 2019-08-17 20:09:12 +02:00
dpeca
a7c533ecd4
Update vst-install-debian.sh 2019-08-17 20:03:41 +02:00
dpeca
fd4cb7c026
Update vst-install-debian.sh 2019-08-17 19:50:38 +02:00
dpeca
0634c42b26
Update vst-install-debian.sh 2019-08-17 19:50:01 +02:00
dpeca
1613744d0a
Update vst-install-debian.sh 2019-08-17 19:34:04 +02:00
dpeca
d5ef538af6
Update vesta_compile.sh 2019-08-17 19:26:15 +02:00
dpeca
59a959c4b2
Update vesta_compile.sh 2019-08-17 19:02:34 +02:00
dpeca
0287e6d956
Update vesta_compile.sh 2019-08-17 19:00:44 +02:00
dpeca
b2934fd617
Update vesta_compile.sh 2019-08-17 18:58:54 +02:00
dpeca
0c503c7e32
Update vesta_compile.sh 2019-08-17 18:50:16 +02:00
dpeca
b168ef14d9
Update vesta_compile.sh 2019-08-17 16:04:48 +02:00
dpeca
69c6e910fa
Trigger custom post-update script after update 2019-08-17 15:30:40 +02:00
dpeca
84392aa52a
Replacing ns1.domain.tld and ns2.domain.tld with real nameservers 2019-08-17 12:42:26 +02:00
dpeca
b4ca738aff
Vesta compiling script, ver 1.0 2019-08-17 02:52:24 +02:00
dpeca
48e6e497da
Update vesta_compile.sh 2019-08-17 01:50:55 +02:00
dpeca
57862aaae6
Update vesta_compile.sh 2019-08-17 01:32:35 +02:00
dpeca
d2b9837df5
Update vesta_compile.sh 2019-08-17 01:20:19 +02:00
Serghey Rodin
868dd8b146 Release 0.9.8-25 2019-08-15 21:42:57 +03:00
myvesta
ab1badd35e
Add files via upload 2019-08-13 20:32:40 +02:00
myvesta
04360b978b
Update vesta_compile.sh 2019-08-13 00:55:14 +02:00
myvesta
b07da4ec86
Update php-fpm.conf 2019-08-13 00:52:17 +02:00
myvesta
c18c94ed60
Update php-fpm.conf 2019-08-13 00:48:52 +02:00
myvesta
cebbd3bda5
auto_prepend_file = /usr/local/vesta/web/inc/secure_login.php 2019-08-12 23:49:39 +02:00
myvesta
15e0529b13
Create php.ini 2019-08-12 23:08:22 +02:00
myvesta
0423d9a5e4
Update secure_login.php 2019-08-12 22:31:20 +02:00
dpeca
f3988e5ccb
Update vesta_compile.sh 2019-08-12 00:37:59 +02:00
dpeca
4e5c316f10
Update vesta_compile.sh 2019-08-12 00:28:16 +02:00
myvesta
a244f1984b
Enhanced compiler script 2019-08-11 23:50:08 +02:00
myvesta
412b447399
Update deb_signing.key 2019-08-10 20:32:04 +02:00
myvesta
c1b8699ffb
static files for c subdomain 2019-08-10 19:46:45 +02:00
myvesta
8314a4e1c3
Create 15-mailboxes.conf 2019-08-10 18:46:06 +02:00
myvesta
8369e7084b
Update vst-install-debian.sh 2019-08-10 18:32:00 +02:00
myvesta
e43bc8d804
Update v-list-sys-config 2019-08-10 18:21:36 +02:00
Peca
db8b4ed21e Merge branch 'pr/34' 2019-08-10 17:09:42 +02:00
Serghey Rodin
26c0d3c3f2 fixed delimiter format for plain output 2019-08-08 19:59:21 +03:00
Serghey Rodin
743476ad73 added sudo call for directory creation and restore 2019-08-08 19:58:35 +03:00
Serghey Rodin
015acfc168
Merge pull request #1896 from millsy/master
Switched to egrep to support optional comma in renewal
2019-08-08 14:24:36 +03:00
Serghey Rodin
8728f4b00d deleted merge artifacts 2019-08-08 14:20:35 +03:00
Luka Paunović
02955ddb47 Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
25e66d471e Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
b16e9b1d4d Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
6d09433447 Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
f23697217b Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
9ab4927ec2 Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
ea2f42e689 Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
8d3473c914 Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
aa8ba1aff1 Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
c83a925c9a Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
ed8d38228b Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
0d66d22150 Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
bebd854b60 Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
7f8313b48f Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
fe6f93faba Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
57fb5a759f Update config.inc.php 2019-08-08 14:18:31 +03:00
Luka Paunović
cb8cd40b13 Update config.inc.conf 2019-08-08 14:18:31 +03:00
Luka Paunović
a745eb02d8 Update config.inc.conf 2019-08-08 14:18:31 +03:00
Luka Paunović
880496962a Update config.inc.conf 2019-08-08 14:15:57 +03:00
Luka Paunović
3e2178bb6e Update config.inc.conf 2019-08-08 14:15:57 +03:00
Serghey Rodin
9ba24729a6 Merge branch 'lukapaunovic-patch-2' 2019-08-08 14:15:18 +03:00
Serghey Rodin
1a02521f76 Resolved merge conflict with tmp dir. 2019-08-08 14:13:35 +03:00
Serghey Rodin
5c61b3efb1
Merge pull request #1919 from dbannik/fix-add-sftp-backup
fixed add sftp server backup
2019-08-08 14:04:26 +03:00
Serghey Rodin
72fe886a84 Merge branch 'master' of github.com:serghey-rodin/vesta 2019-08-08 13:55:11 +03:00
Serghey Rodin
0340652bf6
Merge pull request #1920 from kovalets/patch-3
Create vsftpd.conf on RHEL 8
2019-08-08 13:53:38 +03:00
Serghey Rodin
b17b4b205d removed unnecessary single quotes for security reasons / thanks to Andrea Cardaci 2019-08-07 18:46:40 +03:00
Serghey Rodin
c9bf443c6a added user format valdation 2019-07-31 00:46:04 +03:00
dpeca
37d370390a
Update UploadHandler.php 2019-07-30 23:18:40 +02:00
dpeca
019a039588
Update main.sh 2019-07-30 22:06:47 +02:00
dpeca
718a64c5af
Additional format check 2019-07-30 21:37:56 +02:00
Serghey Rodin
bb44f4197b hardering user validation 2019-07-30 18:32:30 +03:00
Sergey Kovalets
dbb8b8c674
Create vsftpd.conf 2019-07-26 02:23:40 +03:00
Serghey Rodin
f0b47b3220 rfc2324 partial support: any attempt to brew coffee with a teapot should result in the error code 418 - I'm a teapot 2019-07-22 16:55:55 +03:00
myvesta
38b54ee937
apparmor check 2019-07-22 14:26:20 +02:00
Dmitry Bannik
d74ac9980a
fixed add sftp server backup 2019-07-20 02:39:15 +03:00
myvesta
36e2586c76
Adding script that compile Vesta .deb packages 2019-07-19 15:20:24 +02:00
myvesta
9b702509e3
Sending mail fix 2019-07-18 16:51:03 +02:00
myvesta
2cd3171275
Update control 2019-07-18 15:40:11 +02:00
myvesta
3951d5fd8d
Update control 2019-07-18 15:39:15 +02:00
myvesta
eddb8f7c21
Update control 2019-07-18 15:38:52 +02:00
myvesta
05b71e4fb6
Update conffiles 2019-07-18 15:35:12 +02:00
myvesta
97954f4db5
Update copyright 2019-07-18 15:33:23 +02:00
myvesta
83ec58d513
Update copyright 2019-07-18 15:31:07 +02:00
myvesta
b72b6153ae
Update copyright 2019-07-18 15:30:20 +02:00
myvesta
f30c41240a
Update postinst 2019-07-18 15:28:39 +02:00
dpeca
881d620cd6
Update v-update-sys-vesta-all 2019-07-18 03:29:14 +02:00
dpeca
3a786e9ee1
blowfish secret 2019-07-18 00:26:33 +02:00
dpeca
e54e1feb37
port 8083 2019-07-17 22:49:54 +02:00
dpeca
70ee7404f3
Adding ns1 and ns2 to installer 2019-07-17 22:10:08 +02:00
dpeca
968f7fb546
Create nginx.conf 2019-07-17 21:49:54 +02:00
dpeca
7326aad784
create copyright 2019-07-17 21:44:24 +02:00
dpeca
1c64b8b321
nginx version up 2019-07-17 21:34:23 +02:00
dpeca
f28c7aaefa
Set nameservers in installer 2019-07-17 20:54:19 +02:00
Alexandr Loskutov
9de1d46bb6
Merge pull request #1914 from myrevery/patch-1
Update cn.php
2019-07-15 23:22:56 +03:00
myrevery
9c42ce85de
Update cn.php
Refine some details.
2019-07-15 06:17:02 -07:00
dpeca
325add4749
Vesta FPM date.timezone = GMT 2019-07-14 07:04:50 +02:00
dpeca
04c4d369a4
Create php-fpm.conf 2019-07-14 04:32:55 +02:00
dpeca
3bf5860ce9
Create copyright 2019-07-14 04:26:21 +02:00
dpeca
8ac896f2ae
empty php postinst 2019-07-14 04:21:00 +02:00
dpeca
0517fe57e4
version up 2019-07-14 04:07:01 +02:00
dpeca
6cff4053c0
Vesta data sessions permissions 2019-07-14 02:55:14 +02:00
dpeca
ba02f6f7c6
installation fixes 2019-07-14 02:35:15 +02:00
myvesta
bef9a5b8fd proxy-ip.tpl 2019-07-14 02:00:41 +02:00
dpeca
834a2be455
Installation fixes 2019-07-14 01:42:21 +02:00
dpeca
cce2122fb5
gen_pass() in pma.sh 2019-07-14 01:10:06 +02:00
dpeca
710cc25148
softaculous=no by default 2019-07-13 23:36:22 +02:00
dpeca
be5f180d2f
Removing insecure apt option 2019-07-13 23:29:38 +02:00
dpeca
aba1210e7f
phpmyadmin fix 2019-07-13 23:26:02 +02:00
myvesta
dc930753da
new repos 2019-07-13 03:20:47 +02:00
myvesta
73e547b6c2
ALLOW_INSECURE_APT=0 2019-07-12 16:41:33 +02:00
myvesta
8e60da8a05
--allow-unauthenticated apt 2019-07-12 16:36:12 +02:00
myvesta
b33ea73577 deb10 configs 2019-07-12 16:02:33 +02:00
myvesta
792edbe685
Removing rssh 2019-07-12 15:56:04 +02:00
myvesta
4b184ab7f5
deb key 2019-07-12 14:33:06 +02:00
myvesta
ab26bb3e9c
deb10 phpmyadmin 2019-07-12 14:21:17 +02:00
myvesta
6a9f65d98e
Turning off sending mail 2019-07-12 13:30:37 +02:00
myvesta
fa5d76fcb7
installer -eq 10 2019-07-12 02:45:17 +02:00
myvesta
873c0a97b0
php-fpm in installer 2019-07-12 02:28:23 +02:00
myvesta
842d45f600
new repo 2019-07-12 01:46:43 +02:00
myvesta
632a507b32
deb10 2019-07-12 01:28:59 +02:00
Anton Reutov
f9c9ec6fed
Merge pull request #1910 from TimoStramann/patch-2
vBulletin 5 templates added for Debian/Ubuntu
2019-07-04 11:12:16 +03:00
Timo Stramann
ce6640010b
vBulletin 5 template based on default tpl 2019-07-04 02:55:47 +02:00
Timo Stramann
81842cc878
vBulletin 5 template based on default tpl 2019-07-04 02:55:10 +02:00
Timo Stramann
ef36a47ce0
vBulletin 5 template based on default stpl 2019-07-04 02:53:49 +02:00
Timo Stramann
8d83d0235e
vBulletin 5 template based on default tpl 2019-07-04 02:53:03 +02:00
Timo Stramann
de51aa4692
vBulletin 5 template based on default tpl 2019-07-04 02:52:16 +02:00
Timo Stramann
0829d631c9
vBulletin 5 template based on default stpl 2019-07-04 02:47:02 +02:00
Alexandr Loskutov
36c12c618b
Merge pull request #1902 from darkworks/urdu_translation
Update ur.php
2019-06-28 17:32:40 +03:00
Alexandr Loskutov
cbb5356a07
Merge pull request #1898 from myrevery/patch-1
Update cn.php
2019-06-28 17:30:42 +03:00
darkworks
0b0bcf6b15
Use Web Domain SSL Certificate -> ur.php
updated ur.php translation
2019-06-20 23:11:23 +05:00
darkworks
b67c0f88e4
Merge pull request #2 from serghey-rodin/master
update 6 20 2019
2019-06-20 22:30:39 +05:00
darkworks
bf030103da
Merge pull request #1 from darkworks/darkworks-yum_check
check for yum properly.
2019-06-20 22:24:22 +05:00
myrevery
a6028ee4e9
Update cn.php
Refine some details.
2019-06-10 16:10:32 +08:00
Chris Mills
9bceb01622 Switched to egrep to support optional comma in renewal 2019-06-06 06:07:44 +01:00
dpeca
15d44e5a94
Right place to delete FPM conf 2019-05-24 11:56:11 +02:00
dpeca
bb18737152
Wrong place for deleting fpm conf 2019-05-24 11:51:16 +02:00
dpeca
7a2025037f
Log FPM conf deleting 2019-05-24 11:28:45 +02:00
Serghey Rodin
a6d498e7e2 added net-tools package for ifconfig command 2019-05-23 00:12:42 +03:00
Serghey Rodin
58e9615d94
Merge pull request #1887 from Myself5/master
v-backup-user: Properly fix userdata backup exclusions
2019-05-23 00:08:06 +03:00
Serghey Rodin
7d48d5585f
Merge pull request #1888 from millsy/master
Renewal of cert not removing domain from alias list
2019-05-23 00:04:44 +03:00
Serghey Rodin
c2abcf3dc9
Merge pull request #1892 from romkoll/patch-2
Fix v-unsuspend-mail-account
2019-05-23 00:03:06 +03:00
Serghey Rodin
9c108786e6
Merge pull request #1867 from moucho/domain_idn
Fix Let's Encrypt for IDN domains
2019-05-23 00:02:07 +03:00
Roman
a716a3f2cb
Fix v-unsuspend-mail-account
Fix 'Malformed value "unlimitedM"' after unsuspend mail account
2019-05-22 20:10:15 +03:00
dpeca
10fca3053d
Deleting FPM pool conf when deleting domain 2019-05-19 02:33:55 +02:00
Chris Mills
a78c7ffc92 Renewal of cert not removing domain from alias list 2019-05-17 09:49:58 +01:00
Christian Oder
d24f68a370
v-backup-user: Properly fix userdata backup exclusions
So far, no exclusions have been accounted for as fargs has not been passed.
Rework the logic for fargs parsing based on domain exclusions and pass fargs to the tar command.

Also add --anchored based on 37c69b8f4c
2019-05-15 17:07:53 +02:00
Serghey Rodin
e087a04f00
Merge pull request #1854 from anthonyrossbach/patch-1
Fixes for dumps of large databases
2019-05-14 12:38:21 +03:00
Serghey Rodin
7726ed8956
Merge pull request #1690 from chkhanu/fix-invalid-extension-replace
Fix invalid extension replace in add_web_config
2019-05-14 12:21:14 +03:00
Serghey Rodin
46db88d266
Merge pull request #1885 from noogen/master
fix typo of extra L issue #1509
2019-05-14 12:15:24 +03:00
Serghey Rodin
3e922f8cfe
Merge pull request #1540 from darkworks/darkworks-yum_check
check for yum properly.
2019-05-14 12:11:29 +03:00
noogen
d856c1e080 fix typo of extra L issue #1509 2019-05-14 03:38:36 -05:00
Serghey Rodin
20c7764485
Merge pull request #1575 from moucho/backups
Don't exclude "logs" folder recursively on backups
2019-05-14 11:14:16 +03:00
Serghey Rodin
56ee371a88
Merge pull request #1431 from somthanat/master
#1429 fix php open_basedir error when using public_shtml as a document root
2019-05-14 11:09:48 +03:00
Serghey Rodin
390daf416c
Merge pull request #1463 from serghey-rodin/madeITBelgium-patch-1462
Fix http2 templates #1462
2019-05-14 11:08:25 +03:00
Serghey Rodin
e6cc11a27b
Merge pull request #1454 from EmanH/patch-1
644 chmod should only apply to files
2019-05-14 11:02:18 +03:00
Serghey Rodin
faf7612c7e
Merge pull request #1349 from serghey-rodin/add-caa-record
Add CAA DNS record
2019-05-14 10:57:13 +03:00
Serghey Rodin
1e157d4c29
Merge pull request #1751 from hacktivista/fix/v-update-sys-ip-non-existent-files
Fix v-update-sys-ip: verify if primary IP exists
2019-05-14 10:38:38 +03:00
Serghey Rodin
46d080cd8a
Merge pull request #1750 from hacktivista/fix/debian-chown-admin
Don't chown $VESTA/data/sessions admin:admin previous to user admin creation
2019-05-14 10:36:09 +03:00
Serghey Rodin
63b8ef22f6
Merge pull request #1859 from lukapaunovic/patch-1
Fix for issue #1286
2019-05-14 10:33:55 +03:00
Serghey Rodin
3069003941
Merge pull request #1846 from dreiggy/dreiggy-patch-v-list-mail-domain-dkim-dns-newline-remove
Remove \n from dkim txt output
2019-05-14 10:30:55 +03:00
Serghey Rodin
0f08d77fd5
Merge pull request #1858 from SteenSchutt/master
Prevent v-backup-user from excluding folders named logs further down the tree
2019-05-14 10:28:05 +03:00
Serghey Rodin
855ba537cd
Merge pull request #1838 from pablobae/br2-fix-firewall-update-check-ssh-custom-port-rules-config-file
Update v-update-firewall
2019-05-14 10:26:04 +03:00
Serghey Rodin
d4bde98d2e
Merge pull request #1862 from noogen/master
fix typo and allow user to login on pgsql restore
2019-05-14 10:24:18 +03:00
Serghey Rodin
7f82e42cc2
Merge pull request #1870 from skullwritter/patch-11
correcting wildcat
2019-05-14 10:23:33 +03:00
Serghey Rodin
e57f620a86
Merge pull request #1875 from serghey-rodin/Skamasle-patch-6
Fix Nginx exclusion
2019-05-14 10:20:26 +03:00
Serghey Rodin
8dd0ef30fe
Merge pull request #1876 from serghey-rodin/Skamasle-patch-7
Fix for nginx exclude
2019-05-14 10:20:08 +03:00
Serghey Rodin
698f9783b4
Merge pull request #1884 from pasuder/master
Fix update of SSL for LetsEncrypt certs
2019-05-14 10:18:42 +03:00
Paweł Suder
d563dcd12b Fix update of SSL for LetsEncrypt certs
Due to missing /g in sed for parsing aliases from certificate SAN
field there was an issue with doubled alias which is also common
name of issued certficiate.
2019-05-14 08:59:43 +02:00
dpeca
6a6cfe969a
Introducing ONLY_ONE_FTP_BACKUP variable 2019-05-10 23:22:31 +02:00
Serghey Rodin
f50d8b7d84 added port 654321 to run openssl key-pair test 2019-05-08 22:47:30 +03:00
Maksim Usmanov | Maks
3acd228169
Fix for nginx exclude
There are some ways to fix this

First put nginx at the beginig or modify this line

software=$(echo "$software" | sed -e "s/^nginx//")
Replacing it by this one:
software=$(echo "$software" | sed -e "s/nginx//")
Or by this:
software=$(echo "$software" | sed -e "s/ nginx//")
2019-04-28 16:03:54 +02:00
Maksim Usmanov | Maks
a62095aa13
Fix Nginx exclusion
This fix 706 in bugs.vesta and #1820 ( same issue )
2019-04-28 15:57:49 +02:00
dpeca
caf3e97d5c
Correcting $ALLOW_BACKUP_ANYTIME 2019-04-27 16:04:49 +02:00
dpeca
233a3a3777
Adding $ALLOW_BACKUP_ANYTIME 2019-04-27 16:03:10 +02:00
Skull Writter
f492c1ee2a
correcting wildcat
check if alias is the letsencrypt wildcard domain, if not, make the normal checks
2019-04-23 14:11:31 +00:00
Anton Reutov
0031c93535
Merge pull request #1865 from sergio-nadal/security-fixes
Security fixes - CSRF / Command Injection / XSS
2019-04-22 19:48:00 +03:00
Anton Reutov
9b5ac54d93
Merge pull request #1868 from moucho/spanish
Updated Spanish translation
2019-04-22 15:50:23 +03:00
moucho
5df4dc819f Updated Spanish translation 2019-04-22 14:47:32 +02:00
moucho
0713570b87 Fix Let's Encrypt for IDN domains 2019-04-21 18:28:34 +02:00
Sergio
7226a8991f Fix some XSS. 2019-04-21 02:18:24 +02:00
Sergio
0831a198b8 Fixed several Command Injection. 2019-04-21 01:51:29 +02:00
Sergio
7603cdea7a Add the validation of the CSRF token. It is missing in some cases when it is sent by GET or POST. 2019-04-21 00:11:36 +02:00
Anton Reutov
2da2c539f1
Merge pull request #1864 from moucho/Spanish
Spanish translation update
2019-04-20 15:00:20 +03:00
moucho
97a3b40047 Spanish translation update 2019-04-20 13:47:38 +02:00
Serghey Rodin
af37f5cbef fix backport apt name 2019-04-20 03:07:10 +03:00
Serghey Rodin
35df8ba980 Jessie backports 2019-04-20 00:08:37 +03:00
Serghey Rodin
82b635f8da Print the file name for each match 2019-04-18 15:03:03 +03:00
Serghey Rodin
25706abfb3 replaced rdomain with domain variable 2019-04-17 23:28:40 +03:00
Serghey Rodin
425e9f2483 18$ instead of 21$ 2019-04-16 12:53:58 +03:00
Serghey Rodin
bef5f87618 version up 2019-04-16 12:16:03 +03:00
noogen
483c4b943b fix typo and allow user to login on pgsql restore 2019-04-15 17:29:31 -05:00
Serghey Rodin
703a66eb57 gzip_vary duplicate 2019-04-15 21:00:12 +03:00
Serghey Rodin
e1fb811caf ubuntu 18.10 support 2019-04-15 14:08:16 +03:00
Serghey Rodin
e674bf14fd Release 0.9.8-24 2019-04-15 13:48:23 +03:00
Serghey Rodin
70319b6a94 full pma install 2019-04-15 13:33:09 +03:00
Serghey Rodin
ab95d5d88d removing single quote from escapeshellarg calls 2019-04-15 10:51:40 +03:00
Serghey Rodin
c28c5d29a3 setting content type to fix possible XSS attack vector 2019-04-12 17:21:28 +03:00
Luka Paunović
f0c328375f
Update v-change-sys-service-config 2019-04-11 19:02:36 +02:00
Luka Paunović
3cbaab38bf
Fix for issue #1286
Fix for issue #1286
2019-04-11 19:00:56 +02:00
Steen Schütt
b650ae5bd5
Merge pull request #1 from SteenSchutt/SteenSchutt-patch-1
Prevent v-backup-user from excluding folders named logs further down …
2019-04-10 14:43:46 +02:00
Steen Schütt
a981ddb468
Prevent v-backup-user from excluding folders named logs further down the tree
This change will fix issues with files like `public_html/wp-content/plugins/sitepress-multilingual-cms/classes/logs/interface-wpml-log.php` from being excluded, but still exclude the intended main logs directory. Fixes a semi-widespread issue with VestaCP and WPML.
2019-04-10 14:42:10 +02:00
Anthony Rossbach
8f2fdfb8d3
Fixes for dumps of large databases 2019-04-08 21:47:22 -07:00
dpeca
9400592892
schedule restore nice and ionice 2019-04-05 00:17:00 +02:00
dpeca
f969909866
schedule backup nice and ionice 2019-04-05 00:15:43 +02:00
Anton Reutov
576a0003da
Merge pull request #1850 from myrevery/patch-1
Update cn.php
2019-03-31 12:16:00 +03:00
myrevery
a181433231
Update cn.php
Refine some details.
Format code and translate new keywords.
2019-03-31 05:50:02 +08:00
dpeca
cd3e1f9585
Requested backups should also wait for night 2019-03-28 14:28:48 +01:00
Olgerdas
a420465b39
Remove \n from dkim txt output
Some DNS providers (like cloudflare) do not allow in dkim txt record \n char. Fix is removing new line symbols (\n).
2019-03-27 19:35:10 +02:00
Anton Reutov
2bde9c6e47
Merge pull request #1841 from lukapaunovic/patch-1
Fixing blowfish_secret length (too short) [phpMyAdmin]
2019-03-23 15:01:44 +03:00
dpeca
8f03540a1b
Adding MAX_DBUSER_LEN in add_db.html template 2019-03-22 01:27:29 +01:00
dpeca
2210f52b7c
Include MAX_DBUSER_LEN in v-list-sys-config 2019-03-22 01:25:19 +01:00
dpeca
f534560782
Allow custom $MAX_DBUSER_LEN
echo "MAX_DBUSER_LEN=80" >> /usr/local/vesta/conf/vesta.conf
2019-03-22 01:09:39 +01:00
Luka Paunović
891dac76fc
Update vst-install-rhel.sh 2019-03-21 21:26:05 +01:00
Luka Paunović
a67674c1f2
Fixed
fixed
2019-03-21 21:25:27 +01:00
Luka Paunović
5d9265f84f
Fixing blowfish_secret length (too short)
Fixing blowfish_secret length (too short)
2019-03-21 16:52:59 +01:00
Luka Paunović
aeee40865e
Fixing blowfish_secret length (too short)
phpMyAdmin "screams", we should be using length of 32 characters for blowfish_secret.
2019-03-21 16:50:29 +01:00
Anton Reutov
678c385a81
Merge pull request #1549 from asfihani/master
Add Wordpress WP Super Cache plugin template support
2019-03-20 12:46:38 +03:00
Anton Reutov
1637f737e1
Merge pull request #1711 from clarkchentw/patch-2
Traditional Chinese - TW, update to match en.php
2019-03-20 12:44:20 +03:00
Anton Reutov
90b30a437b
Merge pull request #1683 from crackerizer/drupal-nginx
Reworked on Drupal's nginx template
2019-03-20 12:41:55 +03:00
pablobae
1f40804735 Update v-update-firewall
Check sshcustom port  is not needed anymore, because after merging pull 1819, the rules file already contains the ssh port correctly (it's not hardcoded anymore.

Also, if these lines are not removed, we have change ssh port, and we try to add a new rule with port 22 (v-add-firewall-rule DROP 0.0.0.0/0 22 tcp ssh) , these lines will change port 22 to current ssh port on rules.conf file, and we will be blocked.
2019-03-14 16:07:44 +01:00
Serghey Rodin
180d910131 inverted trigger condition 2019-03-14 14:58:19 +02:00
Serghey Rodin
6a9b7d3507 Use Web Domain SSL Certificate -> i18n 2019-03-14 14:34:38 +02:00
Serghey Rodin
80ebfc0daa frontend: user domain vesta ssl certificate support 2019-03-14 00:44:32 +02:00
Serghey Rodin
8edf965375 backend: user domain vesta ssl certificate support 2019-03-14 00:44:06 +02:00
Anton Reutov
f456afec60
Merge pull request #1835 from myrevery/patch-1
Update cn.php
2019-03-11 13:12:53 +03:00
myrevery
2959165e1a
Update cn.php
Refine some details.
2019-03-11 06:43:33 +08:00
Serghey Rodin
c1b775443d added scripts to copy web domain ssl to vesta and exim 2019-03-03 23:25:16 +02:00
dpeca
eb03d7bab2
Added unzip to Debian installer
Needed for FileManager
2019-03-02 23:24:02 +01:00
dpeca
80730aafa4
unzip in debian installer 2019-03-02 23:21:58 +01:00
dpeca
dbd028adc8
Fix for nice and ionice in FileManager 2019-03-02 23:16:46 +01:00
dpeca
9689bc144d
Larger LA graph 2019-03-01 14:34:00 +01:00
dpeca
fde256744d
nice and ionice for filemanager operation functions 2019-03-01 14:30:05 +01:00
Serghey Rodin
c5cff5bcd6 Merge branch 'master' of github.com:serghey-rodin/vesta 2019-02-28 23:47:18 +02:00
Serghey Rodin
a7b54d6000 Function to search avaiable SSL certificates that could be used as main cert 2019-02-28 23:47:07 +02:00
Anton Reutov
66473a41d9
Merge pull request #1819 from pablobae/pablobae-patch1
Update v-add-firewall-chain getting ssh port from ssh config file (not hardcoded)
2019-02-28 23:02:59 +03:00
Anton Reutov
ae1ec05e66
fix for the use of a deprecated directive in nginx 2019-02-28 15:25:54 +03:00
Anton Reutov
452a7ad62e
fix for the use of a deprecated directive in nginx 2019-02-28 15:25:48 +03:00
Anton Reutov
12bc7ab544
fix for the use of a deprecated directive in nginx 2019-02-28 15:25:42 +03:00
Anton Reutov
b7a2728ab0
fix for the use of a deprecated directive in nginx 2019-02-28 15:25:40 +03:00
Anton Reutov
12fdd9713e
fix for the use of a deprecated directive in nginx 2019-02-28 15:24:14 +03:00
Anton Reutov
3912de3ed0
fix for the use of a deprecated directive in nginx 2019-02-28 15:23:55 +03:00
Anton Reutov
b3b1ec3c2e
fix for the use of a deprecated directive in nginx 2019-02-28 15:23:50 +03:00
Anton Reutov
4d5ecf05e7
fix for the use of a deprecated directive in nginx 2019-02-28 15:23:46 +03:00
Anton Reutov
d353421ff4
fix for the use of a deprecated directive in nginx 2019-02-28 15:22:28 +03:00
Anton Reutov
20027824cf
fix for the use of a deprecated directive in nginx 2019-02-28 15:22:17 +03:00
Anton Reutov
eae7202f52
fix for the use of a deprecated directive in nginx 2019-02-28 15:22:09 +03:00
Anton Reutov
caf0890ca1
fix for the use of a deprecated directive in nginx 2019-02-28 15:22:01 +03:00
Anton Reutov
c1d1f13a04
fix for the use of a deprecated directive in nginx 2019-02-28 15:20:06 +03:00
Anton Reutov
a38770a081
fix for the use of a deprecated directive in nginx 2019-02-28 15:19:47 +03:00
Anton Reutov
470b88c764
fix for the use of a deprecated directive in nginx 2019-02-28 15:19:32 +03:00
Anton Reutov
a90c85e6b5
fix for the use of a deprecated directive in nginx 2019-02-28 15:18:46 +03:00
Anton Reutov
f85989fdbf
fix for the use of a deprecated directive in nginx 2019-02-28 15:18:03 +03:00
Anton Reutov
4a04783d66
fix for the use of a deprecated directive in nginx 2019-02-28 15:15:20 +03:00
Anton Reutov
b1e826b0a6
fix for the use of a deprecated directive in nginx 2019-02-28 15:15:03 +03:00
Anton Reutov
19bd87334b
fix for the use of a deprecated directive in nginx 2019-02-28 15:14:51 +03:00
Anton Reutov
e39623308e
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:53 +03:00
Anton Reutov
c11a1b165b
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:49 +03:00
Anton Reutov
579ed37114
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:48 +03:00
Anton Reutov
49ab4c345c
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:45 +03:00
Anton Reutov
00ab9be534
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:43 +03:00
Anton Reutov
a4b8ebcf88
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:41 +03:00
Anton Reutov
cd3ccf5370
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:38 +03:00
Anton Reutov
5230c3d3b0
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:35 +03:00
Anton Reutov
bbf745e049
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:31 +03:00
Anton Reutov
8cbba0ed3e
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:29 +03:00
Anton Reutov
1ede3c055c
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:26 +03:00
Anton Reutov
c28167f37a
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:24 +03:00
Anton Reutov
cf2dc9ccbd
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:20 +03:00
Anton Reutov
6c6520a18c
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:16 +03:00
Anton Reutov
ada32d5535
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:11 +03:00
Anton Reutov
1806c2a3d6
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:09 +03:00
Anton Reutov
dca488c0f7
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:06 +03:00
Anton Reutov
58ddfd4b4d
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:04 +03:00
Anton Reutov
f64e745e20
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:02 +03:00
Anton Reutov
8ef8d8b722
fix for the use of a deprecated directive in nginx 2019-02-28 15:05:00 +03:00
Anton Reutov
d449784697
fix for the use of a deprecated directive in nginx 2019-02-28 15:04:58 +03:00
Anton Reutov
68230531b3
fix for the use of a deprecated directive in nginx 2019-02-28 15:04:53 +03:00
Anton Reutov
37acc7bf31
fix for the use of a deprecated directive in nginx 2019-02-28 15:04:49 +03:00
Anton Reutov
faa9d4aa62
fix for the use of a deprecated directive in nginx 2019-02-28 15:04:45 +03:00
Anton Reutov
75283ef755
fix for the use of a deprecated directive in nginx 2019-02-28 14:50:10 +03:00
Anton Reutov
b289a46cfb
fix for the use of a deprecated directive in nginx 2019-02-28 14:50:05 +03:00
Anton Reutov
4f086744be
fix for the use of a deprecated directive in nginx 2019-02-28 14:50:00 +03:00
Anton Reutov
40a8461b28
fix for the use of a deprecated directive in nginx 2019-02-28 14:49:56 +03:00
Anton Reutov
f36148ca01
fix for the use of a deprecated directive in nginx 2019-02-28 14:47:36 +03:00
Anton Reutov
0226e7b862
fix for the use of a deprecated directive in nginx 2019-02-28 14:47:33 +03:00
Anton Reutov
064a16043d
fix for the use of a deprecated directive in nginx 2019-02-28 14:47:31 +03:00
Anton Reutov
48f61fcc2c
fix for the use of a deprecated directive in nginx 2019-02-28 14:47:29 +03:00
Anton Reutov
3188ae9999
fix for the use of a deprecated directive in nginx 2019-02-28 14:42:44 +03:00
Anton Reutov
01d9626b6c
fix for the use of a deprecated directive in nginx 2019-02-28 14:42:38 +03:00
Anton Reutov
3ed733669e
fix for the use of a deprecated directive in nginx 2019-02-28 14:41:55 +03:00
Anton Reutov
4ed0ca484c
fix for the use of a deprecated directive in nginx 2019-02-28 14:41:35 +03:00
Anton Reutov
dc3dec644d
fix for the use of a deprecated directive in nginx 2019-02-28 14:40:06 +03:00
Anton Reutov
6bb56a8742
fix for the use of a deprecated directive in nginx 2019-02-28 14:39:37 +03:00
Anton Reutov
5ea43b6df6
fix for the use of a deprecated directive in nginx 2019-02-28 14:39:05 +03:00
Anton Reutov
7a1cdc689e
fix for the use of a deprecated directive in nginx 2019-02-28 14:13:15 +03:00
Anton Reutov
232dbf0d09
fix for the use of a deprecated directive in nginx 2019-02-28 14:11:55 +03:00
Anton Reutov
5b4d89b47f
fix for the use of a deprecated directive in nginx 2019-02-28 14:11:21 +03:00
Anton Reutov
6a5061a7a9
fix for the use of a deprecated directive in nginx 2019-02-28 14:11:03 +03:00
Anton Reutov
7aa71c6ca0
fix for the use of a deprecated directive in nginx 2019-02-28 14:10:11 +03:00
Anton Reutov
b22802478d
fix for the use of a deprecated directive in nginx 2019-02-28 14:07:33 +03:00
Anton Reutov
21ce107c68
fix for the use of a deprecated directive in nginx 2019-02-28 14:07:07 +03:00
Anton Reutov
edb3fcc2df
fix for the use of a deprecated directive in nginx 2019-02-28 14:06:25 +03:00
Anton Reutov
372770931c
fix for the use of a deprecated directive in nginx 2019-02-28 14:05:12 +03:00
Anton Reutov
a09f097b3b
Merge pull request #1810 from ifaist0s/master
Proposed fix for the use of a deprecated directive in nginx
2019-02-28 13:54:13 +03:00
Serghey Rodin
f4d3f7a85f Full PMA&Roundcube installs + dovecot namespace hotfix 2019-02-27 14:03:51 +02:00
Serghey Rodin
090875a173 Merge branch 'master' of github.com:serghey-rodin/vesta 2019-02-27 13:56:14 +02:00
Anton Reutov
43fe755f0b
Merge pull request #1822 from fifi/fix-german-translation
fix german translation, forwarded mail
2019-02-25 22:36:02 +03:00
Anton Reutov
ba6491b23f
Merge pull request #1815 from mdandidarmawan/master
Fixing Typo error on Lets Encrypt validation
2019-02-25 17:21:15 +03:00
Anton Reutov
b510f55e88
a new pricing for FileManager & SFTP chroot plugin
a new pricing for FileManager & SFTP chroot plugin
2019-02-25 16:08:40 +03:00
Serghey Rodin
bf5aa0fd6e auto subscribe mail dirs 2019-02-23 11:30:28 +02:00
Serghey Rodin
d05a02e0b6 hotfix for dovecot namespace on ubuntu 18.04 2019-02-21 15:56:34 +02:00
Serghey Rodin
561d7e9f01 force flag isn't required when admin group exists since it's there by default 2019-02-20 18:01:06 +02:00
Serghey Rodin
7d11db2dd2 Merge branch 'master' of github.com:serghey-rodin/vesta 2019-02-20 15:51:04 +02:00
dpeca
0c387388cb
v-restore-user create empty tmp/ 2019-02-15 02:15:16 +01:00
dpeca
f4749743ce
Do not backup tmp folder 2019-02-15 01:49:12 +01:00
dpeca
82192a001d
Allow admins to run custom script after SSL is put to any domain 2019-02-14 18:56:16 +01:00
dpeca
d15e103704
Allow admins to run custom script after SSL is put to any domain
Useful if you have separated SSLs for each IP address.

If admin add to vesta.conf this:
UPDATE_SSL_SCRIPT='/usr/local/bin/update_ssl_script.sh'
that script will be called after each domain get new SSL or renew old SSL.

Then admin can write custom script that will, for example, copy new SSL to some file that is needed for dovecot or exim, for example...
Passed parameters are $user and $domain ($1 and $2), so custom script can check what domain got new SSL, and then to run custom task...
2019-02-14 18:29:56 +01:00
Serghey Rodin
6b2f651418 protection in case there are two or more ips with the same nat association 2019-02-14 17:47:58 +02:00
Serghey Rodin
0d9218e9fc in case there is no conf 2019-02-14 13:24:18 +02:00
Marcus Viefeld
bad8ee8042 fix german translation, forwarded mail 2019-02-14 05:41:16 +01:00
Alexandr Loskutov
3c8c2f2cfb
Merge pull request #1821 from RJuho/finnish_translation
Finnish translation update
2019-02-12 23:28:36 +02:00
Juho Räsänen
1725a61491 Finnish translation updated and some changes
New strings translated and some small changes.
2019-02-12 22:05:47 +02:00
Juho Räsänen
d60c2655ec
Merge pull request #1 from serghey-rodin/master
Bringing fork up to date
2019-02-12 22:01:27 +02:00
Alexandr Loskutov
0bb74cd2bb
Merge pull request #1818 from devius/patch-3
Add missing translations
2019-02-09 20:32:32 +02:00
pablobae
d334ddc501
Update v-add-firewall-chain
Obtains the SSH port from the service configuration file (originally it was hardcoded). This allow the correct creation of ssh chain when this service has a custom port.
2019-02-07 16:49:43 +01:00
devius
2d96e3631f
Add missing translations
I have found and translated last missing Georgian versions for strings
2019-02-06 17:23:58 +04:00
Dandi Darmawan
c1fc0208f7
Fixing Typo
check_result $E_CONNECT "Let's Encrypt vvalidation status $status"  > check_result $E_CONNECT "Let's Encrypt validation status $status"
2019-01-24 18:16:01 +07:00
ifaist0s
6c072a91c4
Use of deprecated directive
FIX: [warn] 31172#31172: the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
CAUSE: http://hg.nginx.org/nginx/rev/46c0c7ef4913
2019-01-22 12:59:33 +02:00
ifaist0s
a72ecfbcfb
Use of deprecated directive
FIX: [warn] 31172#31172: the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
CAUSE: http://hg.nginx.org/nginx/rev/46c0c7ef4913
2019-01-22 12:58:48 +02:00
ifaist0s
45a6824990
Use of deprecated directive
FIX: [warn] 31172#31172: the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
CAUSE: http://hg.nginx.org/nginx/rev/46c0c7ef4913
2019-01-22 12:52:36 +02:00
ifaist0s
18ec586831
Use of deprecated directive
FIX: [warn] 31172#31172: the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
CAUSE: http://hg.nginx.org/nginx/rev/46c0c7ef4913
2019-01-22 12:51:59 +02:00
myvesta
fcbb523c05
Added ionice to backup 2019-01-11 13:59:15 +01:00
myvesta
5259f53dd8
Reseting i_am_in_backup_all_user 2019-01-11 00:30:47 +01:00
myvesta
a46490af77
OR instead AND 2019-01-11 00:24:50 +01:00
myvesta
f8461813d7
Don't make backup before 1 AM 2019-01-11 00:22:00 +01:00
myvesta
38f5b16019
Log mysqlrepair 2019-01-11 00:13:08 +01:00
myvesta
81fba76695
Mute wait_for_backup 2019-01-11 00:09:56 +01:00
myvesta
937efa2054
nice -n 19 for backups 2019-01-11 00:00:36 +01:00
dpeca
0d85c88d18
Bringing back Better handling of calm-down routine while LE renewing
Accidentally overwritten in f8b4d42b74 commit
Original commit: 3d8b6a87a7

Calming down is because https://github.com/serghey-rodin/vesta/issues/1193 issue
2018-12-27 21:10:17 +01:00
dpeca
8010f5d802
CentOS7: Register /sbin/nologin and /usr/sbin/nologin
Fix for https://github.com/serghey-rodin/vesta/issues/1437
2018-12-27 20:56:14 +01:00
Serghey Rodin
f8b4d42b74 Let's Encrypt v2 with wildcard support 2018-12-26 12:54:33 +02:00
Marcos
635107b804 Merge branch 'backups' of github.com:moucho/vesta into backups 2018-12-24 17:51:15 +01:00
Marcos
49f69ce60d Fix conflicts 2018-12-24 17:51:07 +01:00
Marcos
daa33140f4
Merge branch 'master' into backups 2018-12-24 17:46:08 +01:00
Marcos
73cb7667cd Fix conflict 2018-12-24 17:44:23 +01:00
myvesta
fd066fa94f
Merge pull request #33 from serghey-rodin/master
Syntax error fix in v-add-letsencrypt-user
2018-12-21 17:32:45 +01:00
dpeca
4327a3d1bc
Syntax error fix in v-add-letsencrypt-user 2018-12-21 17:28:12 +01:00
dpeca
f1bbd788aa
Sleep 25 before restart nginx 2018-12-14 16:39:15 +01:00
dpeca
98b05f1ba2
Sleep 120 sec while LE renewing 2018-12-14 15:55:35 +01:00
dpeca
51d8870ec1
Update v-restart-proxy 2018-12-14 15:54:24 +01:00
dpeca
3a7d7158ca
Temporary fix for CSR 2018-12-14 15:42:32 +01:00
myvesta
60dcc89d32
Fix for sleep while LE renewing 2018-12-10 14:35:20 +01:00
myvesta
7d6fcbd634
Merge pull request #32 from serghey-rodin/master
update from master
2018-12-10 14:32:33 +01:00
dpeca
3d8b6a87a7
Better handling of calm-down routine while LE renewing
Sleep is because https://github.com/serghey-rodin/vesta/issues/1193
2018-12-10 14:31:10 +01:00
dpeca
58c6ca95b1
Fix for suspended domain checking while LE renewing
Logic should be inversed...
If you grep for suspended=no, then variable is NOT empty if it's NOT suspended
Which means it's empty only if it's suspended.
So we must grep for suspended=yes if we consider not-empty result as suspended domain.
@skullwritter 

This bug totally brakes LE renewing :)
2018-12-10 14:15:46 +01:00
myvesta
a14e4a6118
Merge pull request #31 from serghey-rodin/master
update from master
2018-12-10 11:02:30 +01:00
Serghey Rodin
320455f7c9 ACME v2 support - list user/ typo 2018-12-04 16:30:42 +02:00
Serghey Rodin
d2d399676f ACME v2 support - list user 2018-12-04 16:27:22 +02:00
Serghey Rodin
41bfca0b21 ACME v2 support 2018-12-04 16:21:46 +02:00
Anton Reutov
9f9ee14559
Change monthly price for File Manager and SFTP 2018-11-30 17:29:33 +02:00
Anton Reutov
2d0e09e7ca
Azerbaijani language support 2018-11-30 00:55:27 +02:00
Anton Reutov
44eabb4e9d
Azerbaijani language support 2018-11-30 00:54:45 +02:00
Anton Reutov
c29c7cc8e6
Azerbaijani language support 2018-11-30 00:52:49 +02:00
Anton Reutov
2a8188a207
Create az.php
Azerbaijani language support
2018-11-30 00:44:32 +02:00
Serghey Rodin
59695acd10 universe repository check 2018-11-29 13:40:15 +02:00
Serghey Rodin
6b590a6c93 New version of Softaculous: 5.1.2 2018-11-27 15:30:59 +02:00
myvesta
162e58773f
Merge pull request #30 from serghey-rodin/master
update from master
2018-11-26 23:08:22 +01:00
Anton Reutov
6a8f77db18
Merge pull request #1696 from prodimon/bugfix-nginx-templates
bugfix nginx templates
2018-11-25 01:51:14 +02:00
Anton Reutov
46bfba0cae
Merge pull request #1721 from moucho/suspend_mail_domain
Suspend Domain Alert wrong
2018-11-24 23:06:58 +02:00
Anton Reutov
15a6808733
Merge pull request #1733 from skullwritter/patch-8
supose fix to #1526
2018-11-24 22:44:48 +02:00
Anton Reutov
c5ba8b5b65
Update v-update-user-counters 2018-11-24 22:43:21 +02:00
Anton Reutov
e1ca04c77c
Merge pull request #1666 from prodimon/fix-tar-exclude-folder
Fix editing backup exclusions
2018-11-23 17:45:19 +02:00
Anton Reutov
04e4b37f01
Merge pull request #1781 from serghey-rodin/madeITBelgium-patch-6
Fix quotes in cronjob CMD
2018-11-23 13:34:00 +02:00
Made I.T
aa83fa85f8
Fix quotes in cronjob CMD 2018-11-22 10:19:23 +01:00
Dmitry Bannik
eb29a1f374
Merge branch 'master' into fix-tar-exclude-folder 2018-11-21 04:46:41 +03:00
myvesta
f02349de16
Merge pull request #29 from serghey-rodin/master
removed duplicate loop
2018-11-20 11:29:32 +01:00
Serghey Rodin
00bc162fe6 removed duplicate loop 2018-11-20 11:20:21 +02:00
myvesta
c1eb00dabb Merge branch 'pr/28' 2018-11-15 14:11:52 +01:00
Serghey Rodin
0437c4ac3e fix backup exlustions for files 2018-11-14 17:53:48 +02:00
dpeca
2044890bae
Merge pull request #1776 from lukapaunovic/patch-44
Update nginx.conf
2018-11-14 13:08:29 +01:00
dpeca
8c52faab65
Merge pull request #1775 from lukapaunovic/patch-38
Update nginx.conf
2018-11-14 13:08:13 +01:00
dpeca
64ad51376d
Merge pull request #1774 from lukapaunovic/patch-42
Update nginx.conf
2018-11-14 13:07:57 +01:00
dpeca
784f075fa8
Merge pull request #1773 from lukapaunovic/patch-41
Update nginx.conf
2018-11-14 13:07:29 +01:00
dpeca
1369a12204
Merge pull request #1772 from lukapaunovic/patch-40
Update nginx.conf
2018-11-14 13:07:03 +01:00
dpeca
a697ae70f6
Merge pull request #1771 from lukapaunovic/patch-39
Update nginx.conf
2018-11-14 13:06:41 +01:00
dpeca
0a9aaa1042
Merge pull request #1770 from lukapaunovic/patch-37
Update nginx.conf
2018-11-14 13:05:45 +01:00
dpeca
59f29ce2f3
Merge pull request #1769 from lukapaunovic/patch-36
Update nginx.conf
2018-11-14 13:05:23 +01:00
dpeca
768df7293d
Merge pull request #1768 from lukapaunovic/patch-35
Update nginx.conf
2018-11-14 13:04:15 +01:00
dpeca
995f9f8eba
Merge pull request #1767 from lukapaunovic/patch-34
Update nginx.conf
2018-11-14 13:03:32 +01:00
dpeca
c8039a8ed9
Merge pull request #1766 from lukapaunovic/patch-33
Update nginx.conf
2018-11-14 13:03:02 +01:00
dpeca
ff0e5a00d4
Merge pull request #1765 from lukapaunovic/patch-32
Update nginx.conf
2018-11-14 13:02:45 +01:00
dpeca
05d77009e3
Merge pull request #1764 from lukapaunovic/patch-31
Update nginx.conf
2018-11-14 13:02:27 +01:00
dpeca
4edcd354ae
Merge pull request #1763 from lukapaunovic/patch-30
Update nginx.conf
2018-11-14 13:02:02 +01:00
dpeca
483c4b6c7a
Merge pull request #1762 from lukapaunovic/patch-29
Update nginx.conf
2018-11-14 13:01:38 +01:00
dpeca
12e1c00806
Merge pull request #1761 from lukapaunovic/patch-28
Update nginx.conf
2018-11-14 13:01:11 +01:00
dpeca
37a2216c74
Merge pull request #1777 from lukapaunovic/patch-43
Update nginx.conf
2018-11-14 13:00:48 +01:00
dpeca
d38c252089
Merge pull request #1760 from lukapaunovic/patch-26
vary
2018-11-14 12:59:51 +01:00
dpeca
b8ae9fc2bd
Merge pull request #1759 from lukapaunovic/patch-27
Update nginx.conf
2018-11-14 12:59:27 +01:00
Luka Paunović
e672970103
Update nginx.conf
vary on
2018-11-14 00:25:12 +01:00
Luka Paunović
c82e50056d
Update nginx.conf
vary on
2018-11-14 00:24:58 +01:00
Luka Paunović
13d713ecc8
Update nginx.conf 2018-11-14 00:24:42 +01:00
Luka Paunović
0f1fb8aa43
Update nginx.conf 2018-11-14 00:24:25 +01:00
Luka Paunović
d6e0b4e18f
Update nginx.conf
vary on
2018-11-14 00:24:17 +01:00
Luka Paunović
936b225b30
Update nginx.conf
vary on
2018-11-14 00:24:02 +01:00
Luka Paunović
ccc4e5a262
Update nginx.conf
vary on
2018-11-14 00:23:45 +01:00
Luka Paunović
ef422f62f6
Update nginx.conf
vary on
2018-11-14 00:23:19 +01:00
Luka Paunović
46b7d8438f
Update nginx.conf
vary on
2018-11-14 00:23:06 +01:00
Luka Paunović
433166a477
Update nginx.conf
vary on
2018-11-14 00:22:32 +01:00
Luka Paunović
61c439554e
Update nginx.conf
vary on
2018-11-14 00:21:38 +01:00
Luka Paunović
151f82e519
Update nginx.conf
vary on
2018-11-14 00:21:12 +01:00
Luka Paunović
4073325014
Update nginx.conf
vary on
2018-11-14 00:20:21 +01:00
Luka Paunović
812e001723
Update nginx.conf
vary on
2018-11-14 00:18:06 +01:00
Luka Paunović
49cf569729
Update nginx.conf
vary on
2018-11-14 00:17:31 +01:00
Luka Paunović
4d70c416ca
Update nginx.conf
vary on
2018-11-14 00:17:02 +01:00
Luka Paunović
a3982fd477
Update nginx.conf
vary on
2018-11-14 00:16:24 +01:00
Luka Paunović
591bfdaad1
Update nginx.conf 2018-11-14 00:14:39 +01:00
Luka Paunović
e799566c6b
vary
vary, causes page speed issues
2018-11-14 00:14:04 +01:00
dpeca
f64909e9a9
Merge pull request #1749 from serghey-rodin/madeITBelgium-patch-5
Fix default www & edit alias
2018-11-10 20:48:28 +01:00
Hacktivista
9abd3baf2e Fix v-update-sys-ip: verify if primary IP exists
Fixes the following errors on new installations:

> mv: cannot move '/usr/local/vesta/data/ips/' to a subdirectory of itself, '/usr/local/vesta/data/ips/x.x.x.x'
> sed: can't read /usr/local/vesta/data/users/*/dns/*.conf: No such file or directory
> sed: -e expression #1, char 0: no previous regular expression
> sed: -e expression #1, char 0: no previous regular expression
2018-11-09 20:02:47 -03:00
Hacktivista
0760e6a2e6 Don't chown $VESTA/data/sessions admin:admin previous to user admin creation
Fixes `chown: invalid user: 'admin:admin'` on Debian installations, line not present in other distros install scripts
2018-11-09 20:01:10 -03:00
dpeca
b9210522f5
Ubuntu 18.04 dovecot namespace inbox fix
Fix based on https://github.com/serghey-rodin/vesta/pull/1669/files
2018-11-09 17:47:05 +01:00
dpeca
e92d7a0960
Merge pull request #1669 from luizjrdeveloper/master
Fix Dovecot Connection
2018-11-09 17:37:49 +01:00
Made I.T
2dc406aae4
Fix dubble www 2018-11-08 16:33:34 +01:00
Made I.T
381bc48e96
Fix dubble www 2018-11-08 16:32:31 +01:00
dpeca
2996b8afc8
Merge pull request #1734 from skullwritter/patch-9
Fix for LE renewal if domain is suspended
2018-11-07 20:47:10 +01:00
Alexandr Loskutov
c32fa673e1 Fix Dovecot namespace inbox=yes for CentOS 7
Co-Authored-By: dpeca <dpeca@users.noreply.github.com>
2018-11-04 08:21:36 +02:00
myvesta
9f4ec54618
Fix for mute auto-repair databases 2018-11-04 04:02:45 +01:00
myvesta
3acf962fa2
Mute backup auto-repair databases 2018-11-04 04:01:46 +01:00
myvesta
7b498a7a3c
Fix for avoiding "We can use mysqldump now" 2018-11-04 03:53:13 +01:00
myvesta
b4dc63b72f
Avoiding "We can use mysqldump now" 2018-11-04 03:49:14 +01:00
myvesta
441679a960
Better place for backup LA check 2018-11-04 03:44:35 +01:00
myvesta
14f64bc512
Moving backup LA check 2018-11-04 03:41:20 +01:00
myvesta
d57d8f99f1
Merge pull request #27 from serghey-rodin/master
Update from official vesta
2018-11-04 03:38:22 +01:00
dpeca
5170e5f5aa
Dovecot fix namespace inbox=yes only for Debian9 2018-11-04 03:35:17 +01:00
Alexandr Loskutov
8a1f8349ec
Merge pull request #1747 from tomivs/spanish-translation
Spanish translation improvements
2018-10-31 23:00:51 +02:00
myvesta
5fe591d517
Merge pull request #26 from serghey-rodin/master
Escaping quotas in JSON output of v-list-web-domain-ssl
2018-10-31 17:08:36 +01:00
dpeca
f9a15564e2
Escaping quotas in JSON output of v-list-web-domain-ssl 2018-10-31 17:07:01 +01:00
Tomás Vielma
6a753f65f2 Spanish translation improvements 2018-10-31 10:29:25 -04:00
Skull Writter
fa331e6ef2
removed dns and mail support - checking le 2018-10-30 16:25:24 -01:00
dpeca
3d0e6dd26b
Do not skip backup if LA is above threshold 2018-10-30 14:33:40 +01:00
myvesta
0bab3cdf97
Auto-repair all databases before backuping all accounts 2018-10-29 12:52:43 +01:00
myvesta
fce6abd684
Commenting empty if block 2018-10-29 12:49:50 +01:00
dpeca
9eca02980a
Adding call for function wait_for_backup_if_it_is_not_time_for_backup 2018-10-28 03:51:20 +01:00
dpeca
4814e7a28e
Adding call for function wait_for_backup_if_it_is_not_time_for_backup 2018-10-28 03:48:22 +01:00
dpeca
525bd0f162
Adding function wait_for_backup_if_it_is_not_time_for_backup() 2018-10-28 03:42:39 +01:00
myvesta
be684a7f90
Merge pull request #25 from serghey-rodin/master
Avoid user backup if user is not created from Vesta
2018-10-28 03:30:40 +01:00
dpeca
76319e5a1b
Avoid user backup if user is not created from Vesta 2018-10-28 03:29:50 +01:00
dpeca
10eed3da8f
Wait another mysqldump to finish before we use mysqldump 2018-10-28 03:12:13 +01:00
myvesta
8c97cc46ea
Merge pull request #24 from serghey-rodin/master
Avoid user stats for the user that is not created from Vesta
2018-10-28 00:32:31 +02:00
dpeca
5ab9fc5f4a
Avoid user stats for the user that is not created from Vesta 2018-10-28 00:31:34 +02:00
myvesta
c949dda0e8
Merge pull request #23 from serghey-rodin/master
update from official Vesta
2018-10-28 00:25:23 +02:00
dpeca
21dd9fae6d
Avoid listing user that is not created from Vesta 2018-10-28 00:23:12 +02:00
dpeca
32e970d111
Fix for dovecot namespace inbox=yes 2018-10-26 18:02:24 +02:00
myvesta
5dde7eb861
Merge pull request #22 from serghey-rodin/master
update from official vesta
2018-10-26 17:41:47 +02:00
myvesta
d9e45f25a7
Fix for broken edit cronjob interface when CMD contains quote 2018-10-26 17:40:49 +02:00
Skull Writter
06f670046b
Fix: #1731
Now checks if the domain is suspended (WEB or EMAIL or DNS) if so, continue to the next domain
2018-10-25 19:44:46 +00:00
Skull Writter
50205c99ec
supose fix to #1526
i cannot see any diference, but on debian it apears that there is an diference.
maybe because the system has tis var exported? (DISK)
2018-10-25 19:20:08 +00:00
Alexandr Loskutov
20735121f7
Merge pull request #1728 from moucho/spanish
spanish revision
2018-10-19 07:19:38 +03:00
Marcos
b9252066e1 spanish revision 2018-10-19 01:54:22 +02:00
myvesta
c082c61de9
Merge pull request #21 from serghey-rodin/master
updates from official vesta
2018-10-18 17:04:45 +02:00
Serghey Rodin
8e37c4fa0f switch from c.vestacp.com to local configs 2018-10-18 17:46:34 +03:00
Serghey Rodin
cbbf27fc46 Additional argument check for remote hosts 2018-10-18 14:36:17 +03:00
Serghey Rodin
9a0bbbfd45 Merge branch 'master' of github.com:serghey-rodin/vesta 2018-10-18 14:20:30 +03:00
Serghey Rodin
32fbc253a9 Additional argument check for remote hosts 2018-10-18 14:20:14 +03:00
myvesta
c04eda5e09
Merge pull request #20 from serghey-rodin/master
update from official vesta
2018-10-18 12:04:37 +02:00
Serghey Rodin
14c093a6a1
Merge pull request #1727 from serghey-rodin/madeITBelgium-patch-4
Fix bug in password reset
2018-10-18 12:21:00 +03:00
Made I.T
f6f6f9cfbb
Fix bug in password reset 2018-10-18 10:01:35 +02:00
Serghey Rodin
defba72215 added missing month in spec file 2018-10-18 00:27:22 +03:00
Serghey Rodin
83bd1f679f added missing month in spec file 2018-10-18 00:23:56 +03:00
Serghey Rodin
cde4269170 Release 0.9.8-23 2018-10-18 00:14:28 +03:00
Serghey Rodin
d880b5b425 limit sudo for admin to vesta scripts only 2018-10-17 23:58:27 +03:00
Serghey Rodin
5f68c1b634 Timing attack fix from security experts https://arcturussecurity.com 2018-10-17 23:28:37 +03:00
Serghey Rodin
67a0e8d108 limit config visibility to /etc and /var/lib 2018-10-17 22:27:06 +03:00
Serghey Rodin
a1b3aa3a84 No stats with distro name anymore 2018-10-17 22:06:17 +03:00
Serghey Rodin
1557f9bc8c Security: separate passwords for databases 2018-10-17 17:27:03 +03:00
Alexandr Loskutov
a7e115fbb3
Merge pull request #1722 from moucho/spanish
Spanish translation revision
2018-10-14 22:07:55 +03:00
marcos
a12466f5cc suspend_message 2018-10-14 15:31:38 +02:00
marcos
7b0597fc41 traducciones 2018-10-14 15:28:48 +02:00
myvesta
466cf25da8
Bringing back default restart routine for nginx 2018-10-12 20:45:34 +02:00
myvesta
927c288b27
Reverting /web/index.php to default 2018-10-12 16:33:02 +02:00
myvesta
0652d1e75e
Removing old secure_login gateway include 2018-10-12 16:27:21 +02:00
myvesta
fdb6baf7ae
Dont redirect to webmail if vesta is not behind nginx 2018-10-12 16:24:43 +02:00
myvesta
1d7119d6d9
Fix for undefined variable in secure_login 2018-10-08 11:22:12 +02:00
myvesta
b45c554d77
Temporary fix for redirect to webmail 2018-10-03 13:25:52 +02:00
myvesta
41110bf27d
Restart apache when enter wait-backup state 2018-09-30 00:10:41 +02:00
myvesta
b7b0570cc4
Allow php from /usr/local/vesta/bin/ 2018-09-29 23:59:20 +02:00
myvesta
9c6819a24f
get-ar and set-ar to whitelist 2018-09-29 03:33:18 +02:00
myvesta
09c99eb97d
improved secure login 2018-09-29 01:28:15 +02:00
myvesta
b9ea4038cf
Merge pull request #19 from serghey-rodin/master
update from master
2018-09-29 01:25:36 +02:00
Clark Chen
c7f6bf4e28
Traditional Chinese - TW, update to match en.php
This update the file to match 100% as en.php, also corrected some term in the file
2018-09-17 22:02:04 -05:00
Clark Chen
a54771261d
Traditional Chinese - TW, update to match en.php
This update the file to match 100% as en.php, also corrected some term in the file
2018-09-17 21:59:22 -05:00
Clark Chen
74334fae11
Traditional Chinese - TW, update to match en.php
This update the file to match 100% as en.php, also corrected some term in the file
2018-09-17 21:57:06 -05:00
dpeca
347e24fb7a
Merge pull request #1702 from skullwritter/patch-6
Enable utf8mb4 charset: #1698
2018-09-13 15:55:16 +02:00
dpeca
ce4292da1d
Additional echo for waiting hour in backup 2018-09-10 02:47:32 +02:00
dpeca
67a081f7fc
fix for backup wait 2018-09-10 02:18:43 +02:00
dpeca
b4bb0bb5e8
echo for backup wait 2018-09-10 01:18:37 +02:00
Alexandr Loskutov
13e75fea29
Merge pull request #1705 from myrevery/patch-1
Update cn.php
2018-09-09 21:04:08 +03:00
myrevery
5420b2c95d
Update cn.php
Add new keyword and refine some details.
2018-09-10 01:59:17 +08:00
dpeca
cbaffbd561
Merge pull request #1704 from serghey-rodin/Skamasle-patch-2
Fix function check_result
2018-09-09 16:44:19 +02:00
Maksim Usmanov | Maks
5bd270591c
Fix function check_result
Check_error not defined
2018-09-09 13:51:00 +02:00
Alexandr Loskutov
1ea1bf6787
Merge pull request #1703 from Seia-Soto/master
Update translations
2018-09-09 14:03:17 +03:00
Skull Writter
7f20521c5b
Enable utf8mb4 charset
issue: #1698
2018-09-08 14:32:11 +00:00
Seia Soto
e7daba868b Update translations 2018-09-08 23:23:03 +09:00
myvesta
55a593c475
Fix for user dns_edit template 2018-09-07 14:36:48 +02:00
myvesta
ff8ef7955a
Adding DNS template listbox to user template edit_dns 2018-09-07 14:32:10 +02:00
Dmitry Bannik
d6c79c7d7e bugfix nginx templates 2018-09-03 21:57:45 +03:00
myvesta
fc187b3863
Block backup if current hour is after 6 AM 2018-09-02 21:40:01 +02:00
myvesta
8d4a2c1707
Block backup if current hour is after 8 AM 2018-09-02 02:07:19 +02:00
myvesta
2c05d7bcf2
Merge pull request #18 from serghey-rodin/master
update from master
2018-09-02 02:04:34 +02:00
dpeca
d2c172641f
Merge pull request #1693 from skullwritter/patch-2
Correction on typos and to issue #1691
2018-08-31 18:22:09 +02:00
Skull Writter
1ba6d24189
Typo in function name 2018-08-31 15:49:32 +00:00
Skull Writter
d2764a6481
Missing function: is_format_valid_shell 2018-08-31 15:35:21 +00:00
Chernyavskiy Leonid
ebc67f6478 Fix invalid extension replace in add_web_config
Do not use globbing, because it kills too many characters.
Use conditionals and search at the end of the line instead.
2018-08-24 14:05:58 +07:00
myvesta
f2a2c42ec0
Merge pull request #17 from serghey-rodin/master
Little fix for previous commit
2018-08-12 04:27:49 +02:00
dpeca
df7cccac4c
Little fix for previous commit
see 563a9d8b10
2018-08-12 04:25:18 +02:00
myvesta
83e87a59f3
Merge pull request #16 from serghey-rodin/master
update from master
2018-08-12 03:35:52 +02:00
dpeca
563a9d8b10
Avoid blocking v-backup-user because of already dumped db
Well, in one db.conf I found duplicated entry for the same database.

root@btvc:~# cat /usr/local/vesta/data/users/btvc2011/db.conf
DB='btvc2011_cart' DBUSER='btvc2011_9091dn' MD5='*' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='1' SUSPENDED='no' TIME='' DATE=''
DB='btvc2011_cart' DBUSER='btvc2011_admin' MD5='*' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='0' SUSPENDED='no' TIME='' DATE=''
DB='btvc2011_cart' DBUSER='btvc2011_david' MD5='*' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='0' SUSPENDED='no' TIME='' DATE=''
DB='btvc2011_cart' DBUSER='btvc2011_djn' MD5='*' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='0' SUSPENDED='no' TIME='' DATE=''
DB='btvc2011_cart' DBUSER='btvc2011_jd' MD5='*' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='0' SUSPENDED='no' TIME='' DATE=''
DB='btvc2011_cart' DBUSER='btvc2011_oscar' MD5='*' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='0' SUSPENDED='no' TIME='' DATE=''

Obviously different users has access to the same database.
I know that this is impossible to create in Vesta.
But @Skamasle thirt-party script for importing cPanels backup obviously CAN do that... and many people use that cPanel importer.

This fix will avoid databases that are already dumped.
Without this fix backup script get stuck on stdin waiting for:
gzip: /backup/tmp.4YlV9Yr4m5/db/btvc2011_cart/btvc2011_cart.mysql.sql.gz already exists; do you wish to overwrite (y or n)?
2018-08-12 03:17:01 +02:00
Phinitnan Chanasabaeng
287da0f336 Reworked on Drupal's nginx template. 2018-08-11 16:01:41 +07:00
Serghey Rodin
0e484587a8 Added back policy.d block for daeomon autostart on install 2018-08-09 17:42:47 +03:00
Phinitnan Chanasabaeng
d2d6b85d43 Fixed missing NGINX rewrite rule for Drupal 7 & 8 2018-08-07 14:02:36 +07:00
myvesta
21a1444949
Merge pull request #15 from serghey-rodin/master
update from master
2018-08-06 14:07:52 +02:00
Alexandr Loskutov
6825caa764
Merge pull request #1675 from crackerizer/thai-translation
Updated Thai translation
2018-08-06 06:50:21 +03:00
Phinitnan Chanasabaeng
8bb89d2eb6 Updated Thai translation 2018-08-06 10:35:41 +07:00
Serghey Rodin
6a34f064c4 Merge branch 'master' of github.com:serghey-rodin/vesta 2018-08-03 18:34:28 +03:00
Serghey Rodin
1c315de8d7 fix for ubuntu 14.04 2018-08-03 18:34:13 +03:00
Luiz Junior
47a22f4a25
Fix dovecot
namespace inbox {
2018-07-31 10:46:54 -03:00
Luiz Junior
4a27e61d60
Fix Dovecot Connection
Fix dovecot Connection
2018-07-31 10:32:47 -03:00
Anton Reutov
fbe93aa95b
Merge pull request #1653 from crackerizer/master
Fixed error on updating Letsencrypt cert with NGINX's Drupal template
2018-07-28 18:56:23 +02:00
Dmitry Bannik
98542d69bc Fix editing backup exclusions 2018-07-27 23:59:53 +03:00
Phinitnan Chanasabaeng
7958b495c9 Updated and Fixed error on updating Letsencrypt cert with NGINX's drupal template. 2018-07-18 10:40:35 +07:00
Alexandr Loskutov
1096fcda9c
Merge pull request #1652 from myrevery/patch-2
Update cn.php
2018-07-15 13:45:21 +03:00
myrevery
79e34f240b
Update cn.php
Refine some details.
2018-07-15 16:33:32 +08:00
myvesta
6fe57460cc
Merge pull request #14 from serghey-rodin/master
update from master
2018-07-15 01:17:02 +02:00
Serghey Rodin
07a7c90cf6 chkconfig firewalld off 2018-07-13 15:27:10 +03:00
dpeca
15f77bbf2b
Merge pull request #1649 from Hoto-Cocoa/patch-1
Improve korean i18n
2018-07-11 16:52:31 +02:00
Hoto Cocoa
fd88749791
Fix typo 2018-07-11 23:42:16 +09:00
Hoto Cocoa
f80e6c8df8
Improve korean i18n 2018-07-10 00:09:08 +09:00
dpeca
18cfd97338
Merge pull request #1644 from pan93412/trans
Update Chinese (Taiwan) Translation.
2018-07-05 12:35:15 +02:00
pan93412
289ff88e4d Update Chinese (Taiwan) Translation. 2018-07-05 18:28:23 +08:00
myvesta
96d4ca0305
Merge pull request #13 from serghey-rodin/master
update from master
2018-07-02 13:03:10 +02:00
Serghey Rodin
41d698b2ce
Merge pull request #1634 from ioannidesalex/patch-56
Typo fix
2018-06-29 01:05:14 +03:00
Alexandros Ioannides
3933ca4cb4
Typo fix 2018-06-29 00:05:23 +03:00
myvesta
dabe04f28a
Merge pull request #12 from serghey-rodin/master
update from master
2018-06-28 14:52:25 +02:00
Serghey Rodin
af04e1bdb9 clean php-fpm.conf 2018-06-28 00:55:13 +03:00
Serghey Rodin
5b4211b3da updated spec to 0.9.8-22 2018-06-27 12:00:44 +03:00
myvesta
b22f386c5c
Merge pull request #11 from serghey-rodin/master
updating from master
2018-06-26 16:02:33 +02:00
Anton Reutov
392caec58e
Merge pull request #1628 from clarkchentw/patch-2
Update tw.php
2018-06-25 09:59:51 +02:00
Clark Chen
dd19eef3aa
Update tw.php 2018-06-25 15:11:15 +08:00
Clark Chen
bffeed5739
Update tw.php 2018-06-25 15:10:04 +08:00
Clark Chen
397cf699bb
Update tw.php 2018-06-25 15:07:33 +08:00
Serghey Rodin
7f3e7d5b63 ip.sh include missing 2018-06-24 19:12:43 +03:00
Serghey Rodin
ece8efd505 0.9.8-22 2018-06-24 10:42:43 +03:00
Serghey Rodin
ca3a9e0895 Security fix for API hash check 2018-06-24 10:38:16 +03:00
Serghey Rodin
b6e26ac479 Fixed mysql-server package replacement 2018-06-22 16:55:52 +03:00
Serghey Rodin
f4751a4e97 Updated Amazon installer 2018-06-21 18:11:09 +03:00
Serghey Rodin
5fc8339a8d cosmetic fixes for CentOS and Amazon installers 2018-06-21 18:01:24 +03:00
Serghey Rodin
ca3956568b Updated CentOS installer 2018-06-21 15:40:22 +03:00
myvesta
caec3b555e
Merge pull request #10 from serghey-rodin/master
update from master
2018-06-21 13:36:14 +02:00
Serghey Rodin
17d0fb114e fix for debian and amazon installers 2018-06-21 11:40:07 +03:00
Serghey Rodin
955f3e7510 cosmetix fixes in ubuntu installer 2018-06-21 11:39:14 +03:00
Serghey Rodin
f59ebc4f65 Fix: nginx restart order 2018-06-14 18:00:44 +03:00
dpeca
4922062af6
Merge pull request #1617 from trajche/Roundcube-ubuntu-change-password
Fixing the change password for Roundcube to work with Ubuntu
2018-06-13 21:04:17 +02:00
TJ
6b2fafccb2 Fixing the change password for Roundcube to work with Ubuntu 2018-06-13 19:58:26 +03:00
Serghey Rodin
ee03eff016 udapted package defenition 2018-06-13 17:08:36 +03:00
dpeca
e08a123642
Merge pull request #1616 from ioannidesalex/patch-51
Minor fix
2018-06-11 21:21:53 +02:00
Alexandros Ioannides
4880746f8f
Minor fix 2018-06-11 20:21:13 +03:00
Serghey Rodin
f68bb795de Fixes for proper EIP handling 2018-06-08 11:40:42 +03:00
myvesta
96e3bada5c
Merge pull request #9 from serghey-rodin/master
update from master
2018-06-02 01:52:13 +02:00
dpeca
4363244c1a
Changing /var/log/httpd/ to /var/log/%web_system%/ (debian9 http2.stpl) 2018-06-02 01:50:43 +02:00
dpeca
f759088dde
Changing /var/log/httpd/ to /var/log/%web_system%/ (debian9 http2.tpl) 2018-06-02 01:48:41 +02:00
myvesta
2f3543c3db
Allow user to change Web Template 2018-06-02 01:28:31 +02:00
myvesta
01c1b54b4d
Allow user to change Web Template (tpl modification) 2018-06-02 01:23:13 +02:00
myvesta
6c2f4e34a4
Merge pull request #8 from serghey-rodin/master
update from master
2018-06-02 01:21:04 +02:00
dpeca
73a0b3fd95
Configurable $BACKUP_TEMP in v-restore-user 2018-06-02 00:55:52 +02:00
dpeca
11eca5dfda
Configurable $BACKUP_TEMP in v-backup-user 2018-06-02 00:52:31 +02:00
myvesta
0970485799
Merge pull request #7 from serghey-rodin/master
update from master
2018-06-01 16:54:20 +02:00
Anton Reutov
55f7598d69
Merge pull request #1598 from ioannidesalex/patch-42
NTP server modification
2018-06-01 14:53:19 +02:00
Serghey Rodin
21278272ad
Merge pull request #1586 from moucho/suspend_dns
Adding and removing includes when suspending/unsuspending DNS zones
2018-06-01 15:49:06 +03:00
Serghey Rodin
90a60579f3
Merge pull request #1589 from ioannidesalex/patch-33
vsftpd / fail2ban Fix
2018-06-01 15:48:12 +03:00
Serghey Rodin
497b7c5a33
Merge pull request #1594 from ioannidesalex/patch-38
nginx Configuration Optimizations
2018-06-01 15:46:59 +03:00
Serghey Rodin
c7d84e7b2c
Merge pull request #1597 from ioannidesalex/patch-41
Vesta PHP-FPM Optimization
2018-06-01 15:44:32 +03:00
Anton Reutov
84202ca51b
Merge pull request #1591 from ioannidesalex/patch-35
Minor cosmetic change
2018-06-01 14:43:46 +02:00
Serghey Rodin
71ca858ed2
Merge pull request #1606 from ioannidesalex/patch-49
Switch from /tmp to /backup
2018-06-01 15:42:07 +03:00
Alexandros Ioannides
cd61896176
Switch from /tmp to /backup 2018-06-01 13:57:37 +03:00
dpeca
308da454eb
Merge pull request #1593 from ioannidesalex/patch-37
vsftpd SSL Support & hardening
2018-06-01 12:40:30 +02:00
Anton Reutov
a5d0011ef7
Merge pull request #1590 from ioannidesalex/patch-34
Replace /tmp with $BACKUP
2018-06-01 09:52:54 +02:00
Serghey Rodin
70d5e2537f
Merge pull request #1533 from didyouexpectthat/patch-1
Change william.cage to example in mail_acc files
2018-06-01 00:56:23 +03:00
Serghey Rodin
828c8450e4
Merge pull request #1554 from vsitnic/master
set softquota=hardquota
2018-06-01 00:48:25 +03:00
Serghey Rodin
d0b1fa6e57
Merge pull request #1595 from ioannidesalex/patch-39
Typo in ip.sh comment
2018-06-01 00:47:39 +03:00
Serghey Rodin
2ddcff2915
Merge pull request #1596 from ioannidesalex/patch-40
Do not expose PHP Version
2018-06-01 00:46:36 +03:00
Serghey Rodin
eed9f3bf4b
Merge pull request #1602 from ioannidesalex/patch-46
Roundcube fail2ban fix
2018-06-01 00:44:30 +03:00
Serghey Rodin
5c7fd09642
Merge pull request #1599 from ioannidesalex/patch-43
Cosmetic changes
2018-06-01 00:42:15 +03:00
Serghey Rodin
c1c0443e20
Merge pull request #1600 from ioannidesalex/patch-44
Not always apache is used
2018-06-01 00:41:41 +03:00
Serghey Rodin
e44a7ca5a2
Merge pull request #1601 from ioannidesalex/patch-45
Small fix PHP-FPM
2018-06-01 00:41:06 +03:00
Alexandros Ioannides
eca2fdc073
Roundcube fail2ban fix 2018-05-31 23:51:09 +03:00
Alexandros Ioannides
52e9b19df6
Small fix PHP-FPM 2018-05-31 23:20:30 +03:00
Alexandros Ioannides
cb20b0bfd1
Not always apache is used 2018-05-31 23:08:39 +03:00
Alexandros Ioannides
3ecce92e16
Cosmetic changes 2018-05-31 22:44:10 +03:00
Alexandros Ioannides
ce96bc9388
NTP fix 2018-05-31 22:32:26 +03:00
Alexandros Ioannides
334436e503
Vesta PHP-FPM Optimization 2018-05-31 22:12:31 +03:00
Alexandros Ioannides
51f3dea7da
Do not expose PHP Version 2018-05-31 22:05:38 +03:00
dpeca
54cae504f0
Merge pull request #1592 from ioannidesalex/patch-36, Minor roundcube fixes
Minor roundcube fixes
2018-05-31 21:05:00 +02:00
Alexandros Ioannides
5e536570de
Typo 2018-05-31 21:58:46 +03:00
Alexandros Ioannides
cdbd689065
Optimizations 2018-05-31 21:52:09 +03:00
Alexandros Ioannides
e1024e0483
vsftpd SSL Support & hardening 2018-05-31 21:42:03 +03:00
Alexandros Ioannides
53c58d2bb3
Minor fixes 2018-05-31 21:36:49 +03:00
Alexandros Ioannides
3e0a67113e
Update exim4.conf.template 2018-05-31 21:27:41 +03:00
Alexandros Ioannides
b06ddecbc1
Replace /tmp with $BACKUP
/tmp size is not enough for larger websites.
2018-05-31 21:21:16 +03:00
Serghey Rodin
e9589f586d
Merge pull request #1588 from ioannidesalex/patch-32
Fix nologin
2018-05-31 21:09:26 +03:00
Alexandros Ioannides
7a28629ffc
vsftpd Fix 2018-05-31 21:08:24 +03:00
Alexandros Ioannides
73e72183b2
Fix nologin 2018-05-31 21:01:49 +03:00
Serghey Rodin
a3f0fa1501 New ubuntu installer 2018-05-31 18:15:53 +03:00
Serghey Rodin
208db116d1 fixed my.cnf config location 2018-05-31 18:14:14 +03:00
Serghey Rodin
4a3cec1290 default configs for ubuntu releases 2018-05-31 16:01:46 +03:00
Serghey Rodin
4401d706a4 Amazon Linux Support 2018-05-31 15:56:34 +03:00
dpeca
1304a7312d
Merge pull request #1587 from moucho/web_alias
Fix Adding alias DNS from web panel
2018-05-30 01:20:54 +02:00
Marcos
b2649fd3cc Fix Adding alias DNS from web panel 2018-05-29 23:42:58 +02:00
Marcos
b143792750 Adding and removing includes when suspending/unsuspending DNS zones 2018-05-29 20:01:29 +02:00
myvesta
63e7e607c7
Merge pull request #6 from serghey-rodin/master
Update from master
2018-05-26 22:17:49 +02:00
dpeca
78bccef43c
Merge pull request #1582 from moucho/deletedomain_error
Fix on deleting last web domain was deleting all includes in /etc/*/conf.d/vesta.conf for some usernames
2018-05-26 21:26:03 +02:00
Marcos
04a55260ca Fix delete domain 2018-05-26 20:14:47 +02:00
dpeca
ed1ad943cf
Centos6 roundcube password driver typo fix 2018-05-25 17:21:03 +02:00
dpeca
b8375c5833
Merge pull request #1577 from moucho/error_tab
Do not allow {tab} as a valid character for a domain
2018-05-21 11:50:11 +02:00
dpeca
f1a6b3783c
Merge pull request #1576 from moucho/rebuild_problem
Fix rebuild-web-domain deleting all includes in /etc/*/conf.d/vesta.conf for some usernames
2018-05-21 11:48:19 +02:00
Alexandr Loskutov
92f70d7178
Merge pull request #1578 from moucho/translation_apps
Updated Spanish translation
2018-05-21 07:16:03 +03:00
Marcos
a5e093da16 Apps translation 2018-05-21 04:03:26 +02:00
Marcos
0f48ec04f0 Do not allow {tab} on a domain name 2018-05-21 03:59:55 +02:00
Marcos
85b3578f9c Fix rebuild for some user names 2018-05-21 03:55:05 +02:00
Marcos
37c69b8f4c Don't exclude "logs" folder recursively 2018-05-21 03:41:46 +02:00
myvesta
11e32db4b6
Logo to link /list/user/ 2018-05-19 22:39:21 +02:00
myvesta
4a545b8756
logo to link /list/user/ 2018-05-19 22:31:46 +02:00
myvesta
c80350ff3a
Merge pull request #5 from serghey-rodin/master
update from master
2018-05-18 15:56:53 +02:00
Serghey Rodin
3aadf37a82 Temporary fix for CentOS Vault issue 2018-05-17 18:27:28 +03:00
Serghey Rodin
c80c4c472e Additional rXSS fix / closes #1558 2018-05-16 17:23:04 +03:00
Anton Reutov
e62432e672
Merge pull request #1570 from robindirksen1/patch-6
Update nl.php
2018-05-14 19:40:55 +02:00
Robin Dirksen
97e0e0644d
Update nl.php
Added apps translation
2018-05-14 17:06:35 +02:00
myvesta
5d10ea26d5
Merge pull request #4 from serghey-rodin/master
updates from master branch
2018-05-14 16:55:36 +02:00
dpeca
599a07fa60
Small fixes in serbian translation 2018-05-14 16:04:30 +02:00
Serghey Rodin
2ebc6a7ec8 Merge branch 'master' of github.com:serghey-rodin/vesta 2018-05-14 16:23:08 +03:00
dpeca
e79de3c834
Merge pull request #1566 from wojsmol/patch-1
Fix typo in add_sudo.sh
2018-05-13 14:14:34 +02:00
Wojciech Smoliński
ad96554e77
Fix typo in add_sudo.sh 2018-05-12 16:57:11 +02:00
Serghey Rodin
314f08b484 Release 0.9.8-21 2018-05-11 17:09:18 +03:00
Serghey Rodin
19400663ec delete eval from roundcube configs 2018-05-11 16:44:45 +03:00
Serghey Rodin
4e81382cd8 fixed typo / closes #1561 2018-05-11 16:43:53 +03:00
Serghey Rodin
dd2a57e408 Vesta CP 0.9.8–20 rXSS to RCE / solves #1558 2018-05-11 16:17:23 +03:00
myvesta
3d9137c1ac
Wait 60 sec even for check-letsencrypt 2018-05-10 10:25:25 +02:00
myvesta
c1762e931c
Always write LE token to file 2018-05-09 16:45:49 +02:00
Serghey Rodin
2cb01e0c73 Merge branch 'master' of github.com:serghey-rodin/vesta 2018-05-08 15:45:47 +03:00
myvesta
3118b9b91a
Sleep 60 after LE renew 2018-05-07 16:49:49 +02:00
myvesta
d3742b6f2d
Merge pull request #3 from serghey-rodin/master
Get vesta port by reading nginx.conf
2018-05-04 12:40:03 +02:00
dpeca
4baf5ebc2c
Get vesta port by reading nginx.conf 2018-05-04 12:35:28 +02:00
myvesta
3f99275e26
Do not check nginx status for reload 2018-05-04 10:39:38 +02:00
myvesta
2a26571648
Temporary fix for aliases 2018-05-03 17:27:49 +02:00
Serghey Rodin
91db05f1f8 Merge branch 'master' of github.com:serghey-rodin/vesta 2018-04-30 15:29:31 +03:00
Serghey Rodin
4f4cc763a7 RACK911LABS.COM: symlink check 2018-04-27 15:36:41 +03:00
Vadim Sitnic
9148f7c9c2 set softquota=hardquota 2018-04-27 11:33:13 +03:00
myvesta
bfe21eab76
Merge pull request #2 from serghey-rodin/master
Wait 10 sec only while renewing LE for more than 1 domain
2018-04-26 19:12:56 +02:00
dpeca
8d85cdcb2c
Wait 10 sec only while renewing LE for more than 1 domain 2018-04-26 19:11:51 +02:00
myvesta
92ec2cf032
sleep 15 2018-04-26 18:50:18 +02:00
myvesta
a3a2daa4cd
Removing nginx restart lock 2018-04-26 18:46:00 +02:00
Serghey Rodin
a21ecd0ad0 RACK911LABS.COM: safer log parser 2018-04-26 18:17:09 +03:00
dpeca
b329be0352
v-restart-proxy sleep 1 2018-04-26 16:59:54 +02:00
Serghey Rodin
b5874764a7 RACK911LABS.COM: safer mysql/pgsql query 2018-04-26 17:29:13 +03:00
Serghey Rodin
4c751ab693 RACK911LABS.COM: safer mysql status check 2018-04-26 17:14:19 +03:00
Serghey Rodin
73e6656986 RACK911LABS.COM: simpler and safer hash check 2018-04-26 16:42:00 +03:00
myvesta
04e3413590
v-restart-proxy better restart handling 2018-04-24 15:32:57 +02:00
myvesta
1c51af3b50
Allowing normal user to change proxy template, web template 2018-04-24 14:51:55 +02:00
myvesta
d0e2ecc305
Allowing normal user to change proxy template, /web/edit/ 2018-04-24 14:48:56 +02:00
myvesta
9d4606bd78
Merge pull request #1 from serghey-rodin/master
Update from master
2018-04-24 13:43:29 +02:00
Anton Reutov
d14b7d969c
Merge pull request #1548 from Secretjail/patch-8
Update fa.php
2018-04-17 12:57:55 +03:00
Asfihani
17f198cc36 Add Wordpress WP Super Cache plugin template support 2018-04-17 16:44:12 +07:00
asfihani
3f9f8d9467
Add wp super cache support 2018-04-17 16:27:38 +07:00
asfihani
3742d5f13d
Add wp super cache support 2018-04-17 16:23:36 +07:00
Secretjail
5fed5bb889
Update fa.php
add Apps (softaculous).
2018-04-17 13:32:32 +04:30
dpeca
40947919e0
Restart nginx after 20 sec 2018-04-16 19:56:06 +02:00
dpeca
b04dce9ce3
Restart nginx in background 2018-04-16 16:54:00 +02:00
dpeca
c3cfd66228
Merge pull request #1543 from robindirksen1/patch-5
Update v-update-host-certificate for restart vsftpd
2018-04-12 16:44:06 +02:00
Robin Dirksen
d14d4cddfb
Update v-update-host-certificate
https://github.com/serghey-rodin/vesta/pull/1543#issuecomment-380798986
2018-04-12 16:27:47 +02:00
Robin Dirksen
12306ce834
Update v-update-host-certificate
Restart mailserver & ftpserver based on `conf/vesta.conf` settings, so the new certificate will be applied.
2018-04-12 14:28:23 +02:00
dpeca
a57c8b775b
NO_AUTH_REQUIRED2 fix 2018-04-12 01:34:18 +02:00
dpeca
7688706ed3
put back my modification 2018-04-12 01:33:35 +02:00
dpeca
70a99d0017
Merge pull request #4 from serghey-rodin/master
Allow /reset/mail/ only from localhost
2018-04-12 01:30:25 +02:00
dpeca
b2f2caf3bb
equalize with master 2018-04-12 01:29:49 +02:00
dpeca
b7c19a8e63
Allow /reset/mail/ only from localhost
Block connection from outside, that could brute force password guessing
2018-04-12 01:08:35 +02:00
dpeca
4fa549c570
Disable direct access through frontend nginx in /reset/mail/ 2018-04-12 00:09:35 +02:00
dpeca
9e0d1cb3bf
Merge pull request #2 from serghey-rodin/master
Update from master
2018-04-11 23:52:03 +02:00
dpeca
8e293259bf
Merge branch 'master' into master 2018-04-11 23:51:43 +02:00
Serghey Rodin
07453d7d83
Merge pull request #1542 from serghey-rodin/dpeca-patch-2
Allow /reset/mail/ only from localhost
2018-04-11 22:58:24 +03:00
dpeca
14c8e56d84
Allow /reset/mail/ only from localhost 2018-04-11 21:34:07 +02:00
dpeca
fb2cdf6fe1
Allow /reset/mail/ only from localhost 2018-04-11 21:30:55 +02:00
dpeca
f16de5905a
Missing curly brace 2018-04-11 13:11:58 +02:00
dpeca
c739e5fc48
Avoid pre-auth if login_url.php is not created 2018-04-11 13:04:07 +02:00
dpeca
3e7a59a8ec
Avoid NO_AUTH_REQUIRED2 in secure_login.php 2018-04-11 12:59:11 +02:00
dpeca
334e54bf93
define NO_AUTH_REQUIRED2 in reset email 2018-04-11 12:54:27 +02:00
dpeca
e6b01fbd7e
reload nginx instead restart 2018-04-11 01:01:44 +02:00
darkworks
acf3e0be13
check for yum properly.
check for yum properly.
2018-04-10 19:53:27 +05:00
dpeca
80b76fc6ed
Logo to link /list/user/ 2018-04-10 04:06:53 +02:00
dpeca
58f1613759
Logo to link /list/user/ 2018-04-10 04:05:58 +02:00
dpeca
25516949ff
Logout to redirect to login 2018-04-10 04:01:12 +02:00
dpeca
1a61ea102b
Redirect to /list/user/ after login 2018-04-10 03:58:19 +02:00
dpeca
82dcba51a0
Check secure login on index 2018-04-10 03:43:50 +02:00
dpeca
2404294185
Redirect to webmail by default 2018-04-10 03:36:52 +02:00
dpeca
84adfcc4ed
Check pre-auth before redirecting to login 2018-04-10 02:44:02 +02:00
dpeca
a260e0c6b7
Changing redirect location 2018-04-10 02:42:34 +02:00
dpeca
318f9dadde
filepath change to secure_login.php 2018-04-10 02:25:45 +02:00
dpeca
ac4ec9b1a0
include secure_login.php from main.php 2018-04-10 02:24:04 +02:00
dpeca
302f38c92a
secure_login.php 2018-04-10 02:21:49 +02:00
dpeca
3c7b30cbd9
Merge pull request #1 from serghey-rodin/master
one ver up
2018-04-10 00:46:52 +02:00
dpeca
4663fbf574
disable api 2018-04-10 00:45:59 +02:00
Serghey Rodin
06f6fff118 one ver up 2018-04-09 19:23:22 +03:00
Serghey Rodin
eaf9d89096 Auth fix 0.9.8-20 2018-04-09 00:44:32 +03:00
didyouexpectthat
07ec81b6ae
Change william.cage to example
Feedback in #1530
2018-04-08 14:11:41 -07:00
didyouexpectthat
c1d87b2823
Change william.cage to example
Feedback in https://github.com/serghey-rodin/vesta/issues/1530
2018-04-08 14:09:07 -07:00
Serghey Rodin
1034d1bbc2 New release with improved password checks 2018-04-08 22:09:56 +03:00
Serghey Rodin
0d5c3c42a1 set -o noglob just in case 2018-04-08 22:06:20 +03:00
Serghey Rodin
efa2b50b4c Enabled access log 2018-04-08 22:01:43 +03:00
Serghey Rodin
3fdee2975d Hardening password checks 2018-04-08 21:50:32 +03:00
Alexandr Loskutov
ffdae1dca1
Merge pull request #1529 from AiratHalitov/patch-1
Update ru.php
2018-04-08 07:36:55 +03:00
Airat Halitov
6d0e4efe2e
Update ru.php
Обновил переводы графиков
2018-04-08 02:34:48 +05:00
dpeca
b2e75d89b7
Making Vesta able to update hostname SSL automatically
This feature will allow VestaCP to automatically update system SSL when you add SSL to your domain (that is also hostname) through VestaCP panel.
For example, if your server hostname is my.server.net and you add SSL to that domain (as you usually do via VestaCP panel), that SSL will be also installed to Vesta nginx (on 8083 port), to Exim and to devocot.
This will work if you use LetsEncrypt, and it will also automatically apply renewed certificate when Vesta renew letsencrypt certificate.

--- IMPORTANT ---
This feature will work only if you have
UPDATE_HOSTNAME_SSL='yes'
in /usr/local/vesta/conf/vesta.conf

Why?
Because I'm not sure that Serghey want to use this mechanism for installing system SSL.
So, this way it's only OPTIONAL feature, not enabled by default.
On all servers nothing will happen.

If Sergey likes this idea, he will easily make it enabled by default.

Cheers.
2018-04-07 00:38:55 +02:00
dpeca
082095b164
Better way to restart services in v-update-host-certificate 2018-04-07 00:20:35 +02:00
dpeca
d942f85d31
Clean-up for both config styles if there is no more domains
Fix #1458
2018-04-06 18:20:35 +02:00
dpeca
7ec123a861
Refactoring rebuild_mysql_database() func
Fix #1523
2018-04-06 14:50:42 +02:00
dpeca
b3d78bbfdb
Avoiding IF NOT EXISTS for MariaDB 5.x in rebuild_mysql_database() 2018-04-05 23:58:47 +02:00
dpeca
69f01fb227
Adding missing >/dev/null in rebuild_mysql_database() func 2018-04-05 23:12:42 +02:00
dpeca
eb7e6d2fba
Fixing MySQL restore user privileges (MariaDB)
Fix #1523
2018-04-05 22:07:36 +02:00
dpeca
6b97f7394c
Determining is it MySQL or MariaDB in mysql_connect() func 2018-04-05 21:55:39 +02:00
Serghey Rodin
58c9656779 Merge branch 'master' of github.com:serghey-rodin/vesta 2018-03-29 16:35:40 +03:00
Serghey Rodin
4ef7131065 few fixes for aws linux support 2018-03-29 16:35:31 +03:00
dpeca
7f734c4fe9
Merge pull request #1506 from nothinux/i18n-id
fix indonesian translation
2018-03-06 07:55:15 +01:00
nothinux
4c1a67a9b1 fix indonesian translation 2018-03-06 12:36:32 +07:00
Serghey Rodin
4cc3c1d287 Amazon linux support 2018-02-14 17:10:14 +02:00
info@madeit.be
26c311b773 Revert "Fix default alias"
This reverts commit 74fa6d5b0c.
2018-02-13 22:17:33 +00:00
Maksim Usmanov | Maks
74fa6d5b0c
Fix default alias
This

grep -v www.$domain make imposible to add default alias or some order alias if contain www. wwww. hiwww. so if you delete your default alias you cant add it any more.

I check this and not know why is excluded, for me there is no reason for that grep
2018-02-13 22:54:34 +01:00
Anton Reutov
da5bcbe624
Fix backup rotate for ftp/sftp mode 2018-02-08 12:10:23 +03:00
dpeca
a217391565
Debian: Tolerate error in systemd/clamav-daemon.service if dir already exists 2018-02-07 21:02:53 +01:00
info@madeit.be
40011f8f75 #1462 2018-01-31 10:46:18 +00:00
Serghey Rodin
421ecfa62c install apparmor-utils 2018-01-26 16:08:55 +02:00
Anton Reutov
bc82fcaf71
Merge pull request #1453 from Skamasle/patch-19
Fix Min and hour limit in cron validation
2018-01-25 18:48:43 +03:00
Anton Reutov
add956bb62
Merge pull request #1452 from Skamasle/patch-18
Fix cron validation
2018-01-25 18:48:19 +03:00
Emmanuel Higgins
4b1b1e3299
644 chmod should only apply to files 2018-01-25 19:30:38 +11:00
Maksim Usmanov | Maks
2e03b516f8
Fix Min and hour limit in cron validation 2018-01-24 00:29:03 +01:00
Maksim Usmanov | Maks
5a108be182
Fix cron validation
New vesta cron generator not works if you have some format ranges like:

1,2 2 * 5,2,4,1
or
1-10 * * * *
2018-01-23 23:53:27 +01:00
Serghey Rodin
8a217352fe fix ssl backup restore 2018-01-19 18:10:54 +02:00
Serghey Rodin
9a9dabb0c9 reverting back chunked upload feature 2018-01-18 18:20:22 +02:00
Alexandr Loskutov
c042fa2689 Fix backup restore 2018-01-18 15:40:50 +02:00
Alexandr Loskutov
bea7ccd25e Fix backup restore 2018-01-18 14:32:25 +02:00
Anton Reutov
12409ddeaf
Merge pull request #1423 from serghey-rodin/madeITBelgium-patch-4
#1421 - Fix Backup retention
2018-01-12 00:13:15 +03:00
Somthanat Wongsa
c28dcc1037 fix php open_basedir error when using public_shtml as a document root 2018-01-06 13:20:16 +07:00
Made I.T
9059167db7
#1421 - Fix Backup retention
Fix #1421
2018-01-02 21:05:31 +01:00
Made I.T
3d6eb2c8ea
Update v-add-dns-record 2017-11-27 11:42:49 +01:00
Made I.T
d9686a59f2
Add CAA record to web template 2017-11-27 11:17:47 +01:00
Made I.T
2397137578
Add CAA record to is_dns_type_format_valid 2017-11-27 11:16:52 +01:00
2321 changed files with 121225 additions and 12308 deletions

3
.gitignore vendored
View file

@ -4,3 +4,6 @@
*.gz
.vscode
.DS_Store
data
conf
log

468
Changelog.md Normal file
View file

@ -0,0 +1,468 @@
Version 0.9.9-0-13 [2025-08-15]
==================================================
* Improvement: Activating FileManager licence for all users (credits to Official VestaCP)
* Introducing a malware cleaning set of tools: v-install-wordfence-cli, v-desinfect-wordpress, v-fix-wordpress-core, v-change-database-password-for-wordpress, v-change-wordpress-admin-passwords, v-delete-inactive-wordpress-plugins-and-themes, v-delete-wordpress-uploads-php-files) (credits to isscbta)
* Improvement: Added support for PHP 8.3 and 8.4
* SRS support for Exim4 (v-add-srs-support-to-exim) (credits to HestiaCP)
* Security: Ensuring that PHP files are visible only to the account they belong to - setting chmod 600 for all .php and .env files (also added as admin cronjob - v-fix-website-permissions-for-all-websites-only-php)
* Added cronjob for disk usage snapshot (size of each folder) to see what folder is growing every day (v-df-snapshot-make, v-df-snapshot-diff [some-day-snapshot] [some-other-day-snapshot])
* Bugfix: SSL fix for Apache 2.4.65+ (fix for '421 Misdirected Request')
* Bugfix: vst-install-debian.sh: ability to install MySQL 8 on Debian 12
* Improvement: Update nginx block-firewall.conf when user blocks 80,443 ports for some IPv4 address in the Firewall section of the admin panel
* Improvement: v-install-wordpress: Support for IDN format domains
* Security: Adding ProFTPD jail rule to Fail2Ban
* Introducing: v-make-main-apache-log - making one log file for PHP requests for all websites
* Security: Introducing a new command: v-fix-php-ini-disable-functions
* Improvement: Introducing myVesta rules for SpamAssassin (enhancing spam filtering)
* Improvement: When deleting a domain, also delete the database if the domain has a database
* Bugfix: Removing temporary Docker container network interfaces from RRD
* Introducing v-run-wp-cli-myvesta that knows the correct terminal width
* Introducing a new command: v-cd-www alias for v-change-dir-www
* Introducing a new command: v-clear-fail2ban
* Introducing a new command: v-get-dns-config (to print zone file in bind9 format)
* Introducing a DISABLE_IP_CHECK as vesta.conf variable (if logged-in user is getting a new IPv4 address every minute)
* Security: Introducing a parse_object_kv_list_non_eval() function in main.sh, to avoid the evil eval command
* Security: Enhance package validation, in v-change-user-package 'eval' replaced with 'parse_object_kv_list_non_eval'
* Improvement: Replacing all WordPress scripts to use 'v-run-wp-cli' instead of 'wp'
* Improvement: v-install-wordpress: Almost always use https
* Improvement: Skip the prompt to continue during myVesta installation if the administrator has set all required variables in the command line
* Security: Jailing v-run-wp-cli (running WP-CLI as user, added open_basedir, disabling shell_exec() and other dangerous PHP functions)
* Security: v-commander: removing the ability to set a root password
* Bugfix: DKIM record deletion command in v-delete-mail-domain-dkim script
* Adding FTP / SFTP port for Remote Backup (credits to ikheetjeff)
* Introducing a new command: v-delete-mails - delete emails older than N days (credits to isscbta)
* Introducing new commands: v-blacklist-email-domain, v-blacklist-email-account, v-whitelist-email-domain, v-whitelist-email-account (credits to isscbta)
* Bugfix: v-move-folder-and-make-symlink: use 'mv' instead of 'rsync'
* Improvement: Calculate the size of directories on /hdd too
* Bugfix: v-move-domain-and-database-to-account: Update wordfence-waf.php
* Bugfix: v-add-letsencrypt-domain: Detecting valid status on wildcard variant
* Bugfix: db.sh and v-clone-website: mysqldump --max_allowed_packet=1024M
* Bugfix: web/index.php: Prevent recreation of token by shitty browser add-ons
* Bugfix: v-restore-user: permissions fix while restoring backup
* Bugfix: Add some loops due to 403 errors during LE request in some random cases
* Improvement: v-clone-website: adding --EXCLUDE_UPLOADS parameter
* Bugfix: vst-install-debian.sh - removing phppgadmin
* Bugfix: v-update-firewall: $FIREWALL_STATEFUL conf variable (for Infomaniak VPS servers)
* Bugfix: Awstats template for all systems does not have a closed bracket in line 27 (credits to gkirde)
* Bugfix: Update v-import-cpanel-backup - removing /*!999999\- enable the sandbox mode */
* Bugfix: Small PHP syntax fixes in the admin panel
* Introducing nginx template 'wprocket-webp-express-force-https' (credits to Luka Paunovic)
* Improvement: Added functions to check if a domain or user is unsuspended in main.sh
* Introducing a new command: v-update-document-errors-files
* Improvement: new v-backup-user-now command does backup even if the system Load Average is above the limit, or the administrator configured backups to perform only at night
* Improvement: v-install-wp-cli and v-install-wp-cli-myvesta - automatically updates if wp-cli is 30 days old
* Bugfix: Check for SSL certificate existence before deleting web domain SSL in v-install-unsigned-ssl
* Improvement: v-install-wordpress: avoid changing nginx proxy template in apache-less variant
* Added to .gitignore excludes for 'data', 'conf', and 'log' folders
* And many other minor bugfixes and improvements...
Version 0.9.9-0-12 [2025-02-28]
==================================================
* SpamHaus DNSBL removed from exim4
* A lot of small bugs fixed
Version 0.9.9-0-11 [2024-05-30]
==================================================
* Introducing v-run-wp-cli command ( @isscbta )
* Introducing v-add-wordpress-admin command ( @isscbta )
* Few bugs fixed
Version 0.9.9-0-10 [2024-04-11]
==================================================
* Introducing v-edit-php-ini command ( @isscbta )
* Introducing v-edit-domain-php-ini command ( @isscbta )
Version 0.9.9-0-9 [2024-04-05]
==================================================
* Get quick info about a banned IP (Host, Banlist, Location) (many thanks to @VasilisParaschos )
* Few bugs fixed
Version 0.9.9-0-5 to 0.9.9-0-8
==================================================
* Few bugs fixed
Version 0.9.9-0-4 [2023-06-27]
==================================================
* Support for Debian 12 ( in mutual cooperation with @HestiaCP )
Version 0.9.9-0-2 [2023-06-12]
==================================================
* Hosting panel UI perfomance fix
Version 0.9.9-0 [2023-06-05]
==================================================
* Redesign of hosting panel
* Fix for WP_CACHE_KEY_SALTs in v-clone-website command
* Fix for "Helo name contains a ip address" in Exim4
* Fix for Exim4 for punycode domains (in collaboration with @HestiaCP )
Version 0.9.8-26-62 [2023-04-05]
==================================================
* Fix for LetsEncrypt Asynchronous Order Finalization (in collaboration with @HestiaCP )
Version 0.9.8-26-61 [2023-04-04]
==================================================
* Many bugfixes
* Hotfix for LetsEncrypt to prevent Apache falling
Version 0.9.8-26-60 [2023-02-12]
==================================================
* New script: v-commander (useful for maintaining the server)
* New script: v-activate-rocket-nginx (serve WP-Rocket cache directly from nginx)
* New script: v-update-myvesta (get the very latest build of myVesta)
* v-clone-website: By default cloning to database: user_domain_com (instead of cloning to database: user_old_db_migrated)
* Many minor bugfixes
Version 0.9.8-26-59 [2023-02-01]
==================================================
* Support for PHP 8.2
* New script: v-move-folder-and-make-symlink
* New script: v-lock-wordpress (to prevent PHP malware) and v-unlock-wordpress
* v-install-wordpress: Installing WordPress to user_domain_com database instead of installing to user_wp database
* Many minor bugfixes
Version 0.9.8-26-58 [2022-07-12]
==================================================
* [Security] hash_equals() in /reset/mail/ (credits to @divinity76 )
* Avoid out-of-memory while downloading large log files from panel (credits to @divinity76 )
* Fix for an boring PHP Notice in vesta-php
Version 0.9.8-26-57 [2022-07-06]
==================================================
* Fix for GMail SMTP timeouts on Debian11
* [Security] Fix for Local Sed Injection Vulnerability ( credits to @cleemy-desu-wayo )
Version 0.9.8-26-56 [2022-05-28]
==================================================
* Adding Barracuda RBL to SpamAssassin
* Fixing insane HTML form bug in List backup items page
* Script for easy adding second IP address for SMTP authenticated users only (v-make-separated-ip-for-email)
Version 0.9.8-26-55 [2022-04-26]
==================================================
* Support for MySQL 8
* [Security] Preventing brute-force resetting password (thanks to HestiaCP @hestiacp for fix)
* Many minor bugfixes
Version 0.9.8-26-54 [2021-12-17]
==================================================
* Checking if FreshClam is started after installation
Version 0.9.8-26-53 [2021-12-12]
==================================================
* Support for PHP 8.1
* Function to ensure that pool.d folders are not empty
Version 0.9.8-26-52 [2021-11-23]
==================================================
* Fix for not to match wildcard "*domains" and "databases*" while restoring
* Added memcached to v-list-sys-services
Version 0.9.8-26-51 [2021-11-14]
==================================================
* Many fixes for "List services" page (v-list-sys-services function)
Version 0.9.8-26-50 [2021-11-07]
==================================================
* Many small bugfixes and CSRF fixes
Version 0.9.8-26-49 [2021-07-17]
==================================================
* Support for Debian 11
Version 0.9.8-26-48 [2021-07-11]
==================================================
* Fixed two bugs in LetsEncrypt generating process
Version 0.9.8-26-47 [2021-05-30]
==================================================
* Enabling TLS for ProFTPD FTPS
* More logical "Restore backup" template
Version 0.9.8-26-46 [2021-04-17]
==================================================
* [Feature] Updating CloudFlare IP addresses
Version 0.9.8-26-45 [2021-04-13]
==================================================
* [Feature] Logging whole LetsEncrypt process to /usr/local/vesta/log/letsencrypt.log and /usr/local/vesta/log/letsencrypt_cron.log
* [Feature] Warn admin once (by sending email) if LetsEncrypt renewing failed for server hostname
* [Bugfix] Correct truncating of CA LetsEncrypt certificate (thanks to HestiaCP @hestiacp for fix)
Version 0.9.8-26-44 [2021-04-04]
==================================================
* [Security] Preventing denial-of-service in openssl library in vesta-nginx service (CVE-2021-3449)
* [Security] Preventing admin to install non-vesta packages from vesta admin panel user interface (Credits to: Numan Türle @numanturle)
* [Bugfix] Preventing multiple execution of v-backup-users
* [UserInterface] CSS fix for Apache status table (Credits to: Milos Spasic)
Version 0.9.8-26-43 [2021-03-15]
==================================================
* [Security] fix for: CSRF remote code execution in UploadHandler.php - CVE-2021-28379 (Credits to: Fady Osman @fady_othman)
* [Security] fix for: Local privilege escalation from user account to admin account via v-add-web-domain (Credits to: Two independent security researchers, Marti Guasch Jiménez and Francisco Andreu Sanz, working with the SSD Secure Disclosure program) (and also thanks to HestiaCP @hestiacp for fix)
* [Security] fix for: Local privilege escalation in v-generate-ssl-cert (potential user to admin or root escalation) (Credits to: Numan Türle @numanturle, thanks to HestiaCP @hestiacp for fix)
* [Security] fix for: Local privilege escalation in /web/api/ via v-make-tmp-file (probably admin to root escalation) (Credits to: Numan Türle @numanturle, thanks to HestiaCP @hestiacp for fix)
* [Security] fix for: Cross site scripting in /web/add/ip/ (admin to other admin XSS escalation) (Credits to: Numan Türle @numanturle, thanks to HestiaCP @hestiacp for fix)
* [Security] fix for: Admin to root escalation in v-activate-vesta-license (Credits to: Numan Türle @numanturle)
* [Security] Ensure HTML will not be displayed in list log page (Credits to: Kristan Kenney @kristankenney, thanks to HestiaCP @hestiacp for fix)
Version 0.9.8-26-42 [2021-02-26]
==================================================
* [Feature] Support for PHP 8.0, see: https://forum.myvestacp.com/viewtopic.php?f=18&t=52
* [Bugfix] Making sure Apache is in mpm_event mode
Version 0.9.8-26-41 [2021-02-11]
==================================================
* Few bugfixes
Version 0.9.8-26-40 [2021-02-08]
==================================================
* Few bugfixes
Version 0.9.8-26-39 [2020-12-12]
==================================================
* [Security] Fixing useless issue with tokens in "download backup" and "loginas" functions (thanks to HestiaCP for fixes)
* [Security] Fixing XSS in /list/rrd/?period= value
Version 0.9.8-26-38 [2020-12-05]
==================================================
* [Security] Fixing Apache status public access (thanks to HestiaCP for letting us know)
Version 0.9.8-26-37 [2020-10-26]
==================================================
* [Bugfix] Fixing LetsEncrypt deprecated GET method for ACME v2 (thanks to @moucho)
* [Bugfix] Fixing Roundcube to send via authenticated SMTP user instead via php
Version 0.9.8-26-36 [2020-09-10]
==================================================
* [Bugfix] Checking necessary available disk space before doing backup
* [Security] Disabling login with 'root'
Version 0.9.8-26-35 [2020-08-23]
==================================================
* [Feature] Limiting max recipients per email to 15, in order to prevent mass spamming
* [Bugfix] While restoring backup, only exclude logs folder from root, not in public_html
Version 0.9.8-26-34 [2020-08-19]
==================================================
* [Bugfix] Split long DNS TXT entries into 255 chunks
Version 0.9.8-26-33 [2020-08-16]
==================================================
* [Feature] Ability to set some domain to send emails from another IP (command: v-make-separated-ip-for-email-domain)
Version 0.9.8-26-32 [2020-08-02]
==================================================
* [Feature] v-replace-in-file command introduced
* [Security] Making sure new myVesta commands can be called only by root
Version 0.9.8-26-31 [2020-07-30]
==================================================
* [Feature] v-import-cpanel-backup command moved to vesta-bin folder (becoming standard myVesta command)
* Starting to log auto-update output
Version 0.9.8-26-30 [2020-07-26]
==================================================
* New ASCII logo in installer
* Deleted favicon when user don't know secret-url of hosting panel
* [bugfix] Minor bug fixed in v-make-separated-ip-for-email
* [bugfix] Minor fix of URL for templates in v-update-dns-templates
* [bugfix] Minor fixes in installer
Version 0.9.8-26-29 [2020-07-21]
==================================================
* [Feature] v-clone-website command moved to vesta-bin folder (becoming standard myVesta command)
* [Feature] v-migrate-site-to-https command moved to vesta-bin folder (becoming standard myVesta command)
* [Bugfix] Fix for ClamAV socket
* Changing Vesta to myVesta in title of hosting panel pages
Version 0.9.8-26-28 [2020-07-15]
==================================================
* [Feature] v-install-wordpress command introduced
* [Feature] v-move-domain-and-database-to-account command introduced
* [Feature] v-make-separated-ip-for-email command introduced
* [Bugfix] Fix for LetsEncrypt issuing in apache-less variant (nginx + php-fpm variant)
* [Bugfix] Fix for configuring phpMyAdmin DB in apache-less variant (nginx + php-fpm variant)
Version 0.9.8-26-27 [2020-07-05]
==================================================
* [Feature] Admins now see changelog when they open myVesta panel after myVesta get updated (changelog will dissapear on next refresh)
* [Bugfix] Better control of opened SMTP concurrent connections (preventing denial-of-service of SMTP) on fresh installed servers - https://github.com/myvesta/vesta/commit/c57b15b5daca2a0ea88ee6a89a2ff5a4ef47d2a3
* Second tuning of php-fpm pool.d config files (perfomances and limits)
Version 0.9.8-26-26 [2020-06-27]
==================================================
* [Feature] Self-signed SSL will be automaticaly added when you add new domain (CloudFlare is fine with that, you don't need LetsEncrypt anymore if you use CloudFlare as reverse-proxy(CDN+Firewall), just set "Full" in SSL section on CloudFlare)
* [Feature] Script for adding self-signed SSL to desired domain [v-install-unsigned-ssl]
* From now, on fresh installed server, default backup cron goes at Saturday at 01 AM (instead of everyday at 05 AM)
* New favicon for hosting panel
Version 0.9.8-26-25 [2020-06-23]
==================================================
* [Security] Fixing unnecessary slash in nginx configs for phpmyadmin and roundcube (Credits to Bernardo Berg @bberg1984 for finding this issue!)
* [Security] Adding escapeshellarg on few more places in php code (Credits to Talha Günay and @Lupul for finding these places)
Version 0.9.8-26-24 [2020-06-22]
==================================================
* [Bugfix] nginx + php-fpm installer variant now finally works
Version 0.9.8-26-23 [2020-06-14]
==================================================
* Adding label that LetsEncrypt can be added when you Edit domain
Version 0.9.8-26-22 [2020-06-13]
==================================================
* [Bugfix] Checking (in order to delete) php7.4 pool config file while deleting domain
Version 0.9.8-26-21 [2020-06-13]
==================================================
* [Feature] Blocking executable files inside archives in received emails (ClamAV)
* [Bugfix] Removing ability to schedule LetsEncrypt issuing while adding new domain (because it can fall in infinite loop whole day)
* [Bugfix] Force acme-challenge to use Apache if myVesta is behind main nginx
* [Bugfix] Adding http2 support to nginx caching.tpl
* [Bugfix] Script that removes depricated 'ssl on;' in nginx templates
* [Security] Ensure UPDATE_SSL_SCRIPT is not set in some config files
Version 0.9.8-26-20 [2020-06-01]
==================================================
* [Bugfix] Script that will ensure that Apache2 will always stay in mpm_event mode
* [Bugfix] Ensure config files will not be overwritten while updating vesta-nginx package
* [Bugfix] Fixing URL in v-update-web-templates script
* [Feature] Additional rates for nginx anti-denial-of-service templates
Version 0.9.8-26-19 [2020-05-15]
==================================================
* [Bugfix] Do not match subdomains while restoring domain [v-restore-user]
Version 0.9.8-26-18 [2020-05-15]
==================================================
* [Bugfix] Fixing NS parameters in v-add-dns-on-web-alias
Version 0.9.8-26-17 [2020-05-15]
==================================================
* [Bugfix] Reverting default clamav socket path
* [Bugfix] Put mail_max_userip_connections = 50 in dovecot
Version 0.9.8-26-16 [2020-05-15]
==================================================
* [Bugfix] Allow quick restarting of nginx if acme-challenge should be added many times
* [Bugfix] Enabling email notification to fresh installed servers about backup success status
* [Bugfix] Timeout 10 sec for apache2 status
Version 0.9.8-26-15 [2020-05-09]
==================================================
* [Feature] nginx templates that can prevent denial-of-service on your server
* First tuning php-fpm pool.d config files (perfomances and limits)
* New logo
Version 0.9.8-26-14 [2020-05-08]
==================================================
* v-clone-website script switched to parameters
* Display new version in console while updating myVesta
Version 0.9.8-26-13 [2020-05-07]
==================================================
* [Feature] Put build date and version in right-bottom corner of control panel
Version 0.9.8-26-12 [2020-05-07]
==================================================
* [Feature] Put build date and version while compiling myVesta
* [Feature] Office365 DNS template
* [Feature] Yandex DNS template
* ProFTPD MaxIstances = 100 for fresh installed servers
Version 0.9.8-26-11 [2020-05-01]
==================================================
* [Feature] Skipping LE renewing after 7 failed attempts
* [Bugfix] Keep conf files during auto-update
* [Bugfix] Do not restart apache while preparing letsencrypt acme challenge
* [Bugfix] Set ALLOW_BACKUP_ANYTIME='yes' for fresh installed servers
Version 0.9.8-26-10 [2020-04-11]
==================================================
* [Feature] Creating v-normalize-restored-user script (normalize NS1, NS2 and IP of account that is backuped on other server and restored on this server)
* Tweak for hostname FPM conf
* [Security] Forbid changing root password (Credits to Alexandre ZANNI, Orange Cyberdefense, https://cyberdefense.orange.com)
* [Security] Importing system enviroment in v-change-user-password (Credits to Alexandre ZANNI, Orange Cyberdefense, https://cyberdefense.orange.com)
Version 0.9.8-26-9 [2020-03-23]
==================================================
* [Security] Preventing manipulation with $SERVER['HTTP_HOST'] (Credits to @mdisec - Managing Partner of PRODAFT / INVICTUS A.Ş. Master ninja at pentest.blog)
Version 0.9.8-26-8 [2020-03-23]
==================================================
* [Security] Temporary fix for parsing backup conf (Credits to @dreiggy - https://pentest.blog/vesta-control-panel-second-order-remote-code-execution-0day-step-by-step-analysis/)
Version 0.9.8-26-7 [2020-03-18]
==================================================
* [Bugfix] Fix that avoid LetsEncrypt domain validation timeout
* [Bugfix] Set timeout in v-list-sys-web-status script
Version 0.9.8-26-6 [2020-02-21]
==================================================
* [Bugfix] mail-wrapper.php from now works
* [Feature] Introducing NOTIFY_ADMIN_FULL_BACKUP, email notification about backup success status
* [Feature] Introducing KEEP_N_FTP_BACKUPS, ability to limit number of remote FTP backups
* [Feature] Introducing force-https-webmail-phpmyadmin nginx template
* [Feature] Trigger for /root/update_firewall_custom.sh
Version 0.9.8-26-5 [2020-02-10]
==================================================
* [Security] sudoers fix for Debian10
* [Feature] [Script that will migrate your site from http to https, replacing http to https URLs in database](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/v-migrate-site-to-https)
* [Feature] [Cloning script that will copy the whole site from one domain to another (sub)domain](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/v-clone-website)
* [Feature] [Script that will install multiple PHP versions on your server](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/multi-php-install.sh)
* [Bugfix] Roundcube force https
* [Bugfix] Exim compatibility with Loopia for Debian10
Version 0.9.8-26-4 [2020-01-07]
==================================================
* [Feature] Allow whitelisting specific IP for /api/
* [Feature] Allow whitelisting specific IP to avoid secret_url
* [Feature] Allow Softaculous in secure_login gateway
* [Bugfix] apparmor install fix again
* [Bugfix] Turning off MariaDB SQL strict mode
Version 0.9.8-26-3 [2019-11-26]
==================================================
* [Bugfix] Better check if session cron already added
Version 0.9.8-26-2 [2019-11-15]
==================================================
* [Feature] Support for sub-sub-sub-sub versions :))
* [Bugfix] Support for longer username of email accounts
* [Bugfix] apparmor install fix
* [Bugfix] Trying to fix ClamAV broken socket
* Moving to myvestacp.com
Version 0.9.8-26 [2019-09-28]
==================================================
* [Bugfix] Let's Encrypt HTTP/2 support (by @serghey-rodin)
* [Bugfix] Fixing broken autoreply output
* [Feature] Multi-PHP support for PHP 7.4
* [Feature] Multi-PHP installer for Debian 8
* [Bugfix] Cron for removing old PHP sessions files
* [Bugfix] New CloudFlare IPs
* [Security] MySQL port blocked by default from outside
* [Feature] Warning when server hostname is not pointing to server IP
* [Feature] max_length_of_MySQL_username=80
Older versions
==================================================
* Support for Debian 10 (previous Debian releases are also supported, but Debian 10 is recommended)
* [Support for multi-PHP versions](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/multi-php-install.sh)
* You can limit the maximum number of sent emails (per hour) [per mail account](https://github.com/myvesta/vesta/blob/master/install/debian/10/exim/exim4.conf.template#L105-L106) and [per hosting account](https://github.com/myvesta/vesta/blob/master/install/debian/10/exim/exim4.conf.template#L65-L66), preventing hijacking of email accounts and preventing PHP malware scripts to send spam.
* You can see [what PHP scripts are sending emails](https://github.com/myvesta/vesta/blob/master/install/debian/10/php/php7.3-dedi.patch#L50), when and to whom
* You can completely "lock" myVesta so it can be accessed only via **secret URL**, for example https://serverhost:8083/?MY-SECRET-URL
+ Literally no PHP scripts will be alive on your hosting panel (won't be able to get executed), unless you access the hosting panel with secret URL parameter. Thus, when it happens that, let's say, some zero-day exploit pops up - attackers won't be able to access it without knowing your secret URL - PHP scripts from myVesta
* We [disabled dangerous PHP functions](https://github.com/myvesta/vesta/blob/master/install/debian/10/php/php7.3-dedi.patch#L9) in php.ini, so even if, for example, your customer's CMS gets compromised, hacker will not be able to execute shell scripts from within PHP.
* Apache is fully switched to mpm_event mode, while PHP is running in PHP-FPM mode, which is the most stable PHP-stack solution
+ OPCache is turned on by default
* Auto-generating LetsEncrypt SSL for server hostname (signed SSL for Vesta 8083 port, for dovecot (IMAP & POP3) and for Exim (SMTP))
* You can change Vesta port during installation or later using one command line: **v-change-vesta-port [number]**
* Backup will run with lowest priority (to avoid load on server), and can be configured to run only by night (and to stop on the morning and continue next night)
* You can compile Vesta binaries by yourself
* [Script that will convert Vesta to myVesta](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/convert-vesta-to-myvesta.sh)
* [Wordpress installer in one second](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/create_wp_https)
* [Script for importing cPanel backups to Vesta](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/cpanel-import.sh)
* [Official Vesta Softaculous installer](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/install-softaculous.sh)

View file

@ -1,23 +1,19 @@
### Operating System (OS/VERSION):
### Describe the problem:
Type here, e.g. CentOS 6
### VestaCP Version:
Type here, e.g. 3.14159
### Installed Software (what you got with the installer):
Type here, e.g. php-fpm, apache, nginx, mysql
Type here what is the problem
### Steps to Reproduce:
Type here, e.g. install vesta and type rm -rf / --no-preserve-root
Type here what we should do in order to see the bug on our test server
### Related Issues/Forum Threads:
### Debian version:
Found anything that might be related to this? It might help us find the cause.
Type here, example: Debian 10
### Other Notes:
### VestaCP Version:
Anything else?
Type here, example: 0.9.8.26-29
### Installed Software (what you got with the installer):
Copy here first 22 lines of file /usr/local/vesta/conf/vesta.conf

113
README.md
View file

@ -1,42 +1,95 @@
[Vesta Control Panel](http://vestacp.com/)
==================================================
[![Join the chat at https://gitter.im/vesta-cp/Lobby](https://badges.gitter.im/vesta-cp/Lobby.svg)](https://gitter.im/vesta-cp/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
<h1 align="center"><a href="https://myvestacp.com">myVesta</a></h1>
* Vesta is an open source hosting control panel.
* Vesta has a clean and focused interface without the clutter.
* Vesta has the latest of very innovative technologies.
<div style="text-align:center">
How to install (2 step)
----------------------------
Connect to your server as root via SSH
```bash
ssh root@your.server
```
[![Screenshot of myVesta](https://www.myvestacp.com/screenshot1.png)](https://www.myvestacp.com/)
Download the installation script, and run it:
```bash
curl http://vestacp.com/pub/vst-install.sh | bash
```
</div>
How to install (3 step)
----------------------------
If the above example does not work, try this 3 step method:
Connect to your server as root via SSH
```bash
ssh root@your.server
```
<h1 align="center">About</h1>
<p align="center">myVesta is a security and stability-focused fork of VestaCP, exclusively supporting Debian in order to maintain a streamlined ecosystem. Boasting a clean, clutter-free interface and the latest innovative technologies, our project is committed to staying synchronized with official VestaCP commits. We work independently to enhance security and develop new features, driven by our passion for contributing to the open-source community rather than monetary gain. As such, we will offer all features built for myVesta to the official VestaCP project through pull requests, without interfering with their development milestones.</p>
<p align="center"><b><a href="https://github.com/myvesta/vesta/blob/master/Changelog.md">View Changelog</a>
</b></p>
<h1>Links</h1>
<ul>
<li><a href="https://www.myvestacp.com/">Visit our homepage.</a></li>
<li><a href="https://forum.myvestacp.com/">Check out our forum for discussions and support.</a></li>
<li><a href="https://wiki.myvestacp.com/">For more information, take a look at our knowledge base.</a></li>
</ul>
<h1>Features of myVesta</h1>
<ul>
<li>Support for Debian 11 and 12 (Debian 12 is recommended, but previous Debian releases are also supported)</li>
<li>Support for MySQL 8</li>
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=20&t=51">nginx templates</a> that can prevent denial-of-service on your server</li>
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=18&t=52">Support for multi-PHP versions</a></li>
<li>You can <a href="https://forum.myvestacp.com/viewtopic.php?f=20&t=350">host NodeJS apps</a></li>
<li>You can limit the maximum number of sent emails (per hour) <a href="https://github.com/myvesta/vesta/blob/master/install/debian/10/exim/exim4.conf.template#L112-L113">per mail account</a> and <a href="https://github.com/myvesta/vesta/blob/master/install/debian/10/exim/exim4.conf.template#L72-L73">per hosting account</a>, preventing hijacking of email accounts and preventing PHP malware scripts to send spam.</li>
<li>
You can completely "lock" myVesta so it can be accessed only via secret URL, for example https://serverhost:8083/?MY-SECRET-URL
<ul>
<li>During installation you will be asked to choose a secret URL for your hosting panel</li>
<li>Literally no PHP scripts will be alive on your hosting panel (won't be able to get executed), unless you access the hosting panel with secret URL parameter. Thus, when it happens that, let's say, some zero-day exploit pops up - attackers won't be able to access it without knowing your secret URL - PHP scripts from VestaCP will be simply dead - no one will be able to interact with your panel unless they have the secret URL.</li>
<li>You can see for yourself how this mechanism was built by looking at:</li>
<ul>
<li><a href="https://github.com/myvesta/vesta/blob/master/src/deb/for-download/php/php.ini#L496">src/deb/for-download/php/php.ini</a></li>
<li><a href="https://github.com/myvesta/vesta/blob/master/web/inc/secure_login.php">web/inc/secure_login.php</a></li>
</ul>
<li>If you didn't set the secret URL during installation, you can do it anytime. Just execute in shell: <code>echo "&lt;?php \$login_url='MY-SECRET-URL';" > /usr/local/vesta/web/inc/login_url.php</code></li>
</ul>
</li>
<li>We <a href="https://github.com/myvesta/vesta/blob/master/install/debian/10/php/php7.3-dedi.patch#L9">disabled dangerous PHP functions</a> in php.ini, so even if, for example, your customer's CMS gets compromised, hacker will not be able to execute shell scripts from within PHP.</li>
<li>Apache is fully switched to mpm_event mode, while PHP is running in PHP-FPM mode, which is the most stable PHP-stack solution
<ul><li>OPCache is turned on by default</li></ul>
<li>Auto-generating LetsEncrypt SSL for server hostname (signed SSL for Vesta 8083 port, for dovecot (IMAP & POP3) and for Exim (SMTP))</li>
<li>You can change Vesta port during installation or later using one command line: v-change-vesta-port [number]</li>
<li>ClamAV is configured to block zip/rar/7z archives that contains executable files (just like GMail)</li>
<li>Backup will run with lowest priority (to avoid load on server), and can be configured to run only by night (and to stop on the morning and continue next night) </li>
<ul>
<li>You can compile Vesta binaries by yourself - <a href="https://github.com/myvesta/vesta/blob/master/src/deb/vesta_compile.sh">src/deb/vesta_compile.sh</a></li>
<li>You can even create your own APT repository in a minute</li>
<li>We are using latest nginx version for vesta-nginx package</li>
<li>With your own APT infrastructure you can take security of Vesta-installer infrastructure in your own hands. You will have full control of your Vesta code (this way you can rest assured that there's 0% chance that you'll install malicious packages from repositories that may get hacked)</li>
<li>Binaries that you compile are 100% compatible with official VestaCP from vestacp.com, so you can run official VestaCP code with your own binaries (in case you don't want the source code from this fork)</li>
</ul>
</li>
</ul>
<h1>How to install</h1>
Download the installation script:
```bash
curl -O http://vestacp.com/pub/vst-install.sh
```shell
curl -O http://c.myvestacp.com/vst-install-debian.sh
```
Then run it:
```bash
bash vst-install.sh
```shell
bash vst-install-debian.sh
```
License
----------------------------
Vesta is licensed under [GPL v3 ](https://github.com/serghey-rodin/vesta/blob/master/LICENSE) license
Or use our <a href="https://www.myvestacp.com/install_generator.html">installer generator</a>.
<h1>Useful scripts</h1>
<ul>
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=24&t=50">How to move accounts from one (my)Vesta server to another myVesta server</a></li>
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=17&t=386">WordPress installer in one second </a></li>(v-install-wordpress)
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=17&t=385">Cloning script that will copy the whole site from one (sub)domain to another (sub)domain </a></li>(v-clone-website)
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=17&t=382">Script that will migrate your site from http to https, replacing http to https URLs in database </a></li>(v-migrate-site-to-https)
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=24&t=63">Script for importing cPanel backups to Vesta (thanks to Maks Usmanov - Skamasle) </a></li> (v-import-cpanel-backup)
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=18&t=52">Script that will install multiple PHP versions on your server</a></li>
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=20&t=350">How to host NodeJS apps</a></li>
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=20&t=51">Script that will install nginx templates that can prevent denial-of-service on your server</a></li>
<li><a href="https://forum.myvestacp.com/viewtopic.php?f=15&t=47">Official VestaCP Softaculous installer</a></li>
</ul>
<h1>Licence</h1>
myVesta is licensed under <a href="https://github.com/serghey-rodin/vesta/blob/master/LICENSE">GPL v3</a> license.

5
SECURITY.md Normal file
View file

@ -0,0 +1,5 @@
# Security Policy
## Reporting a Vulnerability
Please report security issues to info@myvestacp.com

144
bin/v-activate-rocket-nginx Normal file
View file

@ -0,0 +1,144 @@
#!/bin/bash
# info: Install rocket-nginx extension for certain domain
# options: DOMAIN
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
# Argument definition
domain=$1
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
USER=$user
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/func/domain.sh
if [ -z "$user" ]; then
check_result $E_NOTEXIST "domain $domain doesn't exist"
fi
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
if [ ! -d "/home/$user" ]; then
echo "User doesn't exist";
exit 1;
fi
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
echo "Domain doesn't exist";
exit 1;
fi
if [ ! -f "/home/$user/web/$domain/public_html/wp-config.php" ]; then
echo 'Please install WordPress first.'
exit 1;
fi
if [ ! -d "/etc/nginx/rocket-nginx" ]; then
echo "rocket-nginx is not installed";
echo "Do you want to install it now (y/n)?"
read answer
if [ "$answer" == "y" ]; then
echo "Installing rocket-nginx..."
curl -sL https://c.myvestacp.com/tools/install-rocket-nginx.sh | bash -
else
echo "Exiting script"
exit 1;
fi
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Changing Proxy Template
# Check if the proxy template is already set correctly
current_template=$(/usr/local/vesta/bin/v-list-web-domain $user $domain | grep 'PROXY:' | awk '{print $2}')
if [ "$current_template" == "wprocket-force-https" ] || [ "$current_template" == "wprocket-hosting" ] || [ "$current_template" == "wprocket-webp-express-force-https" ]; then
echo "Proxy Template is already set up correctly"
else
# Prompt the user to choose whether to force HTTPS or not
echo "Do you want to use wprocket-hosting template, wprocket-force-https template or wprocket-webp-express-force-https template (h/f/w):"
read answer
# Change the proxy template based on the user's choice
if [ "$answer" == "h" ]; then
/usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "wprocket-hosting"
elif [ "$answer" == "f" ]; then
/usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "wprocket-force-https"
elif [ "$answer" == "w" ]; then
/usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "wprocket-webp-express-force-https"
fi
echo "Proxy Template is ready"
fi
# Disabling wp-cron in wp-config.php
cd /home/$user/web/$domain/public_html
checkstring_disable="define('DISABLE_WP_CRON', true)"
checkstring_enable="define('DISABLE_WP_CRON', false)"
string_disable="define( 'DISABLE_WP_CRON', true );"
line="<?php"
file="wp-config.php"
if grep -q -w -i -F "$checkstring_disable" "$file"; then
echo "WP-Cron is already disabled in your wp-config.php"
elif grep -q -w -i -F "$checkstring_enable" "$file"; then
echo "Disabling WP-Cron in your wp-config.php..."
sed -i "/$checkstring_enable/d" "$file"
sed -i "/$line/Ia $string_disable" "$file"
else
echo "Disabling WP-Cron in your wp-config.php..."
sed -i "/$line/Ia $string_disable" "$file"
fi
# Adding cron job
# Check if a cron job already exists for any of the specified PHP-FPM versions
existing_cron=$(crontab -l -u $user | grep -o "wp-cron.php >/home/$user/web/$domain/cron.log" | grep -v "grep")
if [ ! -z "$existing_cron" ]; then
echo "There is already a cron job added for user $user and domain $domain."
else
echo "Adding cron job..."
# Add the cron job
fpm_ver=$(/usr/local/vesta/bin/v-get-php-version-of-domain "$domain")
touch /home/$user/web/$domain/cron.log
chown $user:$user /home/$user/web/$domain/cron.log
case $fpm_ver in
5.6 | 7.0 | 7.1 | 7.2 | 7.3 | 7.4 | 8.0 | 8.1 | 8.2 | 8.3)
/usr/local/vesta/bin/v-add-cron-job "$user" "*/15" "*" "*" "*" "*" "cd /home/$user/web/$domain/public_html; /usr/bin/php$fpm_ver wp-cron.php >/home/$user/web/$domain/cron.log 2>&1"
;;
esac
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
echo "Installation is completed."
echo "Checking RESPONSE HEADERS (You should see x-rocket-nginx-serving-static if the WP Rocket plugin is activated):"
curl -I https://$domain
exit

View file

@ -27,7 +27,7 @@ source $VESTA/conf/vesta.conf
# Checking arg number
check_args '2' "$#" 'MODULE LICENSE'
is_user_format_valid "$license" "license"
#----------------------------------------------------------#
# Action #
@ -35,7 +35,7 @@ check_args '2' "$#" 'MODULE LICENSE'
# Activating license
v_host='https://vestacp.com/checkout'
answer=$(curl -s $v_host/activate.php?licence_key=$license&module=$module)
answer=$(curl --max-time 60 -s $v_host/activate.php?licence_key=$license&module=$module)
check_result $? "cant' connect to vestacp.com " $E_CONNECT
# Checking server answer

View file

@ -38,8 +38,7 @@ EOF
sftpc() {
expect -f "-" <<EOF "$@"
set count 0
spawn /usr/bin/sftp -o StrictHostKeyChecking=no -o \
Port=$port $user@$host
spawn /usr/bin/sftp -o StrictHostKeyChecking=no -o Port=$port $user@$host
expect {
"password:" {
send "$password\r"
@ -94,12 +93,14 @@ EOF
if [ "$type" != 'local' ];then
check_args '4' "$#" "TYPE HOST USERNAME PASSWORD [PATH] [PORT]"
is_format_valid 'host'
is_format_valid 'user' 'host' 'path' 'port'
is_password_valid
if [ "$type" = 'sftp' ]; then
which expect >/dev/null 2>&1
check_result $? "expect command not found" $E_NOTEXIST
fi
host "$host" >/dev/null 2>&1
check_result $? "host connection failed" "$E_CONNECT"
fi

View file

@ -50,12 +50,12 @@ domain_lvl=$(echo "$alias" |grep -o "\." |wc -l)
# Adding second level domain
if [ "$domain_lvl" -eq 1 ] || [ "${#top_domain}" -le '6' ]; then
$BIN/v-add-dns-domain \
$user $alias $ip '' '' '' '' '' $restart >> /dev/null
$user $alias $ip '' '' '' '' '' '' '' '' $restart >> /dev/null
exit
fi
# Adding top-level domain and then its sub
$BIN/v-add-dns-domain $user $top_domain $ip '' '' '' '' $restart >> /dev/null
$BIN/v-add-dns-domain $user $top_domain $ip '' '' '' '' '' '' '' '' $restart >> /dev/null
# Checking top-level domain
if [ ! -e "$USER_DATA/dns/$top_domain.conf" ]; then

View file

@ -45,10 +45,12 @@ if [[ $rtype =~ NS|CNAME|MX|PTR|SRV ]]; then
fi
fi
dvalue=${dvalue//\"/}
if [ $rtype != "CAA" ]; then
dvalue=${dvalue//\"/}
if [[ "$dvalue" =~ [\;[:space:]] ]]; then
dvalue='"'"$dvalue"'"'
if [[ "$dvalue" =~ [\;[:space:]] ]]; then
dvalue='"'"$dvalue"'"'
fi
fi
# Additional argument formatting

View file

@ -72,6 +72,13 @@ $iptables -I fail2ban-$chain 1 -s $ip \
# Changing permissions
chmod 660 $conf
# nginx deny rules conf
if [ "$chain" = "WEB" ] && [ -f "/etc/nginx/conf.d/block.conf" ]; then
if ! grep -q "deny $ip;" /etc/nginx/conf.d/block.conf; then
echo "deny $ip;" >> /etc/nginx/conf.d/block.conf
systemctl reload nginx
fi
fi
#----------------------------------------------------------#
# Vesta #

View file

@ -21,6 +21,12 @@ protocol=$(echo $protocol|tr '[:lower:]' '[:upper:]')
# Defining absolute path to iptables
iptables="/sbin/iptables"
# Get vesta port by reading nginx.conf
vestaport=$(grep 'listen' $VESTA/nginx/conf/nginx.conf | awk '{print $2}' | sed "s|;||")
if [ -z "$vestaport" ]; then
vestaport=8083
fi
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
@ -41,13 +47,19 @@ is_system_enabled "$FIREWALL_SYSTEM" 'FIREWALL_SYSTEM'
# Checking known chains
case $chain in
SSH) port=22; protocol=TCP ;;
SSH) # Get ssh port by reading ssh config file.
sshport=$(grep '^Port ' /etc/ssh/sshd_config | head -1 | cut -d ' ' -f 2)
if [ -z "$sshport" ]; then
sshport=22
fi
port=$sshport;
protocol=TCP ;;
FTP) port=21; protocol=TCP ;;
MAIL) port='25,465,587,2525,110,995,143,993'; protocol=TCP ;;
DNS) port=53; protocol=UDP ;;
WEB) port='80,443'; protocol=TCP ;;
DB) port='3306,5432'; protocol=TCP ;;
VESTA) port=8083; protocol=TCP ;;
VESTA) port=$vestaport; protocol=TCP ;;
*) check_args '2' "$#" 'CHAIN PORT' ;;
esac

View file

@ -83,6 +83,16 @@ sort_fw_rules
# Updating system firewall
$BIN/v-update-firewall
if [ "$WEB_SYSTEM" == 'nginx' ] || [ "$PROXY_SYSTEM" == 'nginx' ]; then
if [ "$port_ext" == "80,443" ] && [ "$action" == "DROP" ]; then
touch /etc/nginx/conf.d/block-firewall.conf
if ! grep -q "deny $ip;" /etc/nginx/conf.d/block-firewall.conf; then
echo "deny $ip;" >> /etc/nginx/conf.d/block-firewall.conf
systemctl restart nginx
fi
fi
fi
#----------------------------------------------------------#
# Vesta #

View file

@ -1,13 +1,8 @@
#!/bin/bash
# info: adding letsencrypt ssl cetificate for domain
# options: USER DOMAIN [ALIASES] [RESTART] [NOTIFY]
# info: check letsencrypt domain
# options: USER DOMAIN [ALIASES]
#
# The function turns on SSL support for a domain. Parameter ssl_dir is a path
# to directory where 2 or 3 ssl files can be found. Certificate file
# domain.tld.crt and its key domain.tld.key are mandatory. Certificate
# authority domain.tld.ca file is optional. If home directory parameter
# (ssl_home) is not set, https domain uses public_shtml as separate
# documentroot directory.
# The function check and validates domain with Let's Encript
#----------------------------------------------------------#
@ -18,8 +13,15 @@
user=$1
domain=$2
aliases=$3
restart=$4
notify=$5
# LE API
API='https://acme-v02.api.letsencrypt.org'
if [[ "$LE_STAGING" = 'yes' ]]; then
API='https://acme-staging-v02.api.letsencrypt.org'
fi
deb_release=$(cat /etc/debian_version | tr "." "\n" | head -n1)
# Includes
source $VESTA/func/main.sh
@ -27,98 +29,421 @@ source $VESTA/func/domain.sh
source $VESTA/conf/vesta.conf
# Additional argument formatting
format_domain_idn
format_identifier_idn() {
identifier_idn=$identifier
if [[ "$identifier_idn" = *[![:ascii:]]* ]]; then
identifier_idn=$(idn -t --quiet -a $identifier_idn)
fi
}
# encode base64
encode_base64() {
cat |base64 |tr '+/' '-_' |tr -d '\r\n='
}
# Let's Encrypt v2 curl function
query_le_v2() {
protected='{"nonce": "'$3'",'
protected=''$protected' "url": "'$1'",'
protected=''$protected' "alg": "RS256", "kid": "'$KID'"}'
content="Content-Type: application/jose+json"
payload_=$(echo -n "$2" |encode_base64)
protected_=$(echo -n "$protected" |encode_base64)
signature_=$(printf "%s" "$protected_.$payload_" |\
openssl dgst -sha256 -binary -sign $USER_DATA/ssl/user.key |\
encode_base64)
post_data='{"protected":"'"$protected_"'",'
post_data=$post_data'"payload":"'"$payload_"'",'
post_data=$post_data'"signature":"'"$signature_"'"}'
# Save http response to file passed as "$4" arg or print to stdout if not provided
# http response headers are always sent to stdout
local save_to_file=${4:-"/dev/stdout"}
if [ "$deb_release" -gt 8 ]; then
curl --location --user-agent "myVesta" --insecure --retry 5 --retry-connrefused --silent --dump-header /dev/stdout --data "$post_data" "$1" --header "$content" --output "$save_to_file"
else
curl --location --user-agent "myVesta" --insecure --retry 5 --silent --dump-header /dev/stdout --data "$post_data" "$1" --header "$content" --output "$save_to_file"
fi
}
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'USER DOMAIN [ALIASES] [RESTART] [NOTIFY]'
is_format_valid 'user' 'domain'
check_args '2' "$#" 'USER DOMAIN [ALIASES]'
is_format_valid 'user' 'domain' 'aliases'
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
is_system_enabled "$WEB_SSL" 'SSL_SUPPORT'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_object_valid 'web' 'DOMAIN' "$domain"
is_object_unsuspended 'web' 'DOMAIN' "$domain"
get_domain_values 'web'
echo "-----------------------------------------------------------------------------------" >> /usr/local/vesta/log/letsencrypt.log
echo "[$(date)] : v-add-letsencrypt-domain $domain [$aliases]" >> /usr/local/vesta/log/letsencrypt.log
# check if alias is the letsencrypt wildcard domain, if not, make the normal checks
if [[ "$aliases" != "*.$domain" ]]; then
for alias in $(echo "$aliases" |tr ',' '\n' |sort -u); do
check_alias="$(echo $ALIAS |tr ',' '\n' |grep ^$alias$)"
if [ -z "$check_alias" ]; then
echo "[$(date)] : EXIT=domain alias $alias doesn't exist" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_NOTEXIST "domain alias $alias doesn't exist"
fi
done
fi;
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Parsing domain data
get_domain_values 'web'
# Registering LetsEncrypt user account
echo "[$(date)] : v-add-letsencrypt-user $user" >> /usr/local/vesta/log/letsencrypt.log
$BIN/v-add-letsencrypt-user $user
echo "[$(date)] : result: $?" >> /usr/local/vesta/log/letsencrypt.log
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"
echo "[$(date)] : EXIT=LE account registration" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "LE account registration" >/dev/null
fi
# Parsing LetsEncrypt account data
source $USER_DATA/ssl/le.conf
email=$EMAIL
# Validating domain and aliases
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
# Checking wildcard alias
if [ "$aliases" = "*.$domain" ]; then
echo "[$(date)] : Checking wildcard alias" >> /usr/local/vesta/log/letsencrypt.log
wildcard='yes'
proto="dns-01"
if [ ! -e "$VESTA/data/users/$user/dns/$domain.conf" ]; then
echo "[$(date)] : EXIT=DNS domain $domain doesn't exist" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_NOTEXIST "DNS domain $domain doesn't exist"
fi
else
proto="http-01"
fi
# Requesting nonce / STEP 1
echo "[$(date)] : --- Requesting nonce / STEP 1 ---" >> /usr/local/vesta/log/letsencrypt.log
echo "[$(date)] : curl -s -I \"$API/directory\"" >> /usr/local/vesta/log/letsencrypt.log
answer=$(curl --user-agent "myVesta" -s -I "$API/directory")
echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
if [[ "$status" -ne 200 ]]; then
echo "[$(date)] : EXIT=Let's Encrypt nonce request status $status" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "Let's Encrypt nonce request status $status"
fi
# Placing new order / STEP 2
echo "[$(date)] : --- Placing new order / STEP 2 ---" >> /usr/local/vesta/log/letsencrypt.log
url="$API/acme/new-order"
payload='{"identifiers":['
for identifier in $(echo $domain,$aliases |tr ',' '\n' |sort -u); do
format_identifier_idn
payload=$payload'{"type":"dns","value":"'$identifier_idn'"},'
done
payload=$(echo "$payload"|sed "s/,$//")
payload=$payload']}'
# validation='pending'
# # Start counter to avoid infinite loop
# i=0
# while [ "$validation" = 'pending' ]; do
# echo "[$(date)] : ----------------------- step 2 loop, counter \$i=$i -----------------------" >> /usr/local/vesta/log/letsencrypt.log
echo "[$(date)] : payload=$payload" >> /usr/local/vesta/log/letsencrypt.log
echo "[$(date)] : query_le_v2 \"$url\" \"$payload\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
answer=$(query_le_v2 "$url" "$payload" "$nonce")
echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
authz=$(echo "$answer" |grep "acme/authz" |cut -f2 -d '"')
echo "[$(date)] : authz=$authz" >> /usr/local/vesta/log/letsencrypt.log
finalize=$(echo "$answer" |grep 'finalize":' |cut -f4 -d '"')
echo "[$(date)] : finalize=$finalize" >> /usr/local/vesta/log/letsencrypt.log
order=$(echo -e "$answer" | grep -i location | cut -f2 -d \ | tr -d '\r\n')
echo "[$(date)] : order=$order" >> /usr/local/vesta/log/letsencrypt.log
status=$(echo "$answer" |grep HTTP/ |tail -n1 |cut -f2 -d ' ')
echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
validation=$(echo "$answer" | grep 'status":' | cut -f4 -d '"')
echo "[$(date)] : validation=$validation" >> /usr/local/vesta/log/letsencrypt.log
if [[ "$status" -ne 201 ]]; then
echo "[$(date)] : EXIT=Let's Encrypt new auth status $status" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "Let's Encrypt new auth status $status"
fi
# # Exit the loop after 5 attempts
# i=$((i + 1))
# if [ $i -gt 5 ]; then
# break
# fi
# sleep 2
# done
# Requesting authorization token / STEP 3
echo "[$(date)] : --- Requesting authorization token / STEP 3 ---" >> /usr/local/vesta/log/letsencrypt.log
for auth in $authz; do
payload=''
echo "[$(date)] : for auth=$auth" >> /usr/local/vesta/log/letsencrypt.log
echo "[$(date)] : query_le_v2 \"$auth\" \"$payload\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
answer=$(query_le_v2 "$auth" "$payload" "$nonce")
echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
url=$(echo "$answer" |grep -A3 $proto |grep url |cut -f 4 -d \")
echo "[$(date)] : url=$url" >> /usr/local/vesta/log/letsencrypt.log
token=$(echo "$answer" |grep -A3 $proto |grep token |cut -f 4 -d \")
echo "[$(date)] : token=$token" >> /usr/local/vesta/log/letsencrypt.log
nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
if [[ "$status" -ne 200 ]]; then
echo "[$(date)] : EXIT=Let's Encrypt acme/authz bad status $status" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "Let's Encrypt acme/authz bad status $status"
fi
# 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"
# Configuring challenge / STEP 4
echo "[$(date)] : --- Configuring challenge / STEP 4 ---" >> /usr/local/vesta/log/letsencrypt.log
echo "[$(date)] : wildcard=$wildcard" >> /usr/local/vesta/log/letsencrypt.log
if [ "$wildcard" = 'yes' ]; then
record=$(printf "%s" "$token.$THUMB" |\
openssl dgst -sha256 -binary |encode_base64)
old_records=$($BIN/v-list-dns-records $user $domain plain|grep 'TXT')
old_records=$(echo "$old_records" |grep _acme-challenge |cut -f 1)
for old_record in $old_records; do
$BIN/v-delete-dns-record "$user" "$domain" "$old_record"
done
$BIN/v-add-dns-record "$user" "$domain" "_acme-challenge" "TXT" "$record"
exitstatus=$?
echo "[$(date)] : v-add-dns-record \"$user\" \"$domain\" \"_acme-challenge\" \"TXT\" \"$record\"" >> /usr/local/vesta/log/letsencrypt.log
if [ "$exitstatus" -ne 0 ]; then
echo "[$(date)] : EXIT=DNS _acme-challenge record wasn't created" >> /usr/local/vesta/log/letsencrypt.log
fi
check_result $exitstatus "DNS _acme-challenge record wasn't created"
systemctl restart bind9
else
if [ "$WEB_SYSTEM" = 'nginx' ] || [ ! -z "$PROXY_SYSTEM" ]; then
if [ -f "/usr/local/vesta/web/inc/nginx_proxy" ]; then
# if vesta is behind main nginx
well_known="$HOMEDIR/$user/web/$domain/public_html/.well-known"
acme_challenge="$well_known/acme-challenge"
mkdir -p $acme_challenge
echo "$token.$THUMB" > $acme_challenge/$token
echo "[$(date)] : in $acme_challenge/$token we put: $token.$THUMB" >> /usr/local/vesta/log/letsencrypt.log
chown -R $user:$user $well_known
else
# default nginx method
conf="$HOMEDIR/$user/conf/web/nginx.$domain.conf_letsencrypt"
sconf="$HOMEDIR/$user/conf/web/snginx.$domain.conf_letsencrypt"
# if [ ! -e "$conf" ]; then
echo 'location ~ "^/\.well-known/acme-challenge/(.*)$" {' \
> $conf
echo ' default_type text/plain;' >> $conf
echo ' return 200 "$1.'$THUMB'";' >> $conf
echo '}' >> $conf
# fi
echo "[$(date)] : in $conf we put: $THUMB" >> /usr/local/vesta/log/letsencrypt.log
if [ ! -e "$sconf" ]; then
ln -s "$conf" "$sconf"
fi
echo "[$(date)] : v-restart-proxy" >> /usr/local/vesta/log/letsencrypt.log
$BIN/v-restart-proxy
if [ -z "$PROXY_SYSTEM" ]; then
# apache-less variant
echo "[$(date)] : v-restart-web" >> /usr/local/vesta/log/letsencrypt.log
$BIN/v-restart-web
fi
exitstatus=$?
if [ "$exitstatus" -ne 0 ]; then
echo "[$(date)] : EXIT=Proxy restart failed = $exitstatus" >> /usr/local/vesta/log/letsencrypt.log
fi
check_result $exitstatus "Proxy restart failed" >/dev/null
fi
else
well_known="$HOMEDIR/$user/web/$domain/public_html/.well-known"
acme_challenge="$well_known/acme-challenge"
mkdir -p $acme_challenge
echo "$token.$THUMB" > $acme_challenge/$token
chown -R $user:$user $well_known
echo "[$(date)] : in $acme_challenge/$token we put: $token.$THUMB" >> /usr/local/vesta/log/letsencrypt.log
# $BIN/v-restart-web
# check_result $? "Web restart failed" >/dev/null
fi
fi
# Requesting ACME validation / STEP 5
echo "[$(date)] : --- Requesting ACME validation / STEP 5 ---" >> /usr/local/vesta/log/letsencrypt.log
validation_check=$(echo "$answer" |grep '"valid"')
echo "[$(date)] : validation_check=$validation_check" >> /usr/local/vesta/log/letsencrypt.log
if [[ ! -z "$validation_check" ]]; then
validation='valid'
else
validation='pending'
fi
# Doing pol check on status
i=1
while [ "$validation" = 'pending' ]; do
i=0
while true; do
echo "[$(date)] : ----------------------- Doing pol check on status, counter \$i=$i -----------------------" >> /usr/local/vesta/log/letsencrypt.log
payload='{}'
echo "[$(date)] : query_le_v2 \"$url\" \"$payload\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
answer=$(query_le_v2 "$url" "$payload" "$nonce")
echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
url2=$(echo "$answer" |grep -A3 $proto |grep url |cut -f 4 -d \")
echo "[$(date)] : url2=$url2" >> /usr/local/vesta/log/letsencrypt.log
validation=$(echo "$answer"|grep -A1 $proto |tail -n1|cut -f4 -d \")
echo "[$(date)] : validation=$validation" >> /usr/local/vesta/log/letsencrypt.log
nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
if [[ $(echo "$answer" | grep 'addressesResolved') != "" ]]; then
break
fi
if [ "$wildcard" = 'yes' ]; then
if [[ $(echo "$answer" | grep '"status": "valid"') != "" ]]; then
break
fi
fi
i=$((i + 1))
if ((i > 30)); then
break
fi
sleep 2
done
if [[ "$status" -ne 200 ]]; then
echo "[$(date)] : EXIT=Let's Encrypt validation status $status" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "Let's Encrypt validation status $status"
fi
i=$((i + 1))
if [ "$i" -gt 10 ]; then
echo "[$(date)] : EXIT=Let's Encrypt domain validation timeout" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "Let's Encrypt domain validation timeout"
fi
echo "[$(date)] : curl: $url2 :" >> /usr/local/vesta/log/letsencrypt.log
get_answer=$(curl --user-agent "myVesta" --silent -S "$url2")
echo "[$(date)] : get_answer=$get_answer" >> /usr/local/vesta/log/letsencrypt.log
sleeping=$((i*2))
echo "[$(date)] : sleep $sleeping (i=$i)" >> /usr/local/vesta/log/letsencrypt.log
sleep $sleeping
done
if [ "$validation" = 'invalid' ]; then
echo "[$(date)] : EXIT=Let's Encrypt domain verification failed" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "Let's Encrypt domain verification failed"
fi
i=$((i++))
done
# Generating CSR
ssl_dir=$($BIN/v-generate-ssl-cert "$domain" "$email" "US" "California" \
# Generating new ssl certificate
ssl_dir=$($BIN/v-generate-ssl-cert "$domain" "info@$domain" "US" "California"\
"San Francisco" "Vesta" "IT" "$aliases" |tail -n1 |awk '{print $2}')
# 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"
fi
echo "$crt" > $ssl_dir/$domain.crt
# Sending CSR to finalize order / STEP 6
echo "[$(date)] : --- Sending CSR to finalize order / STEP 6 ---" >> /usr/local/vesta/log/letsencrypt.log
# Dowloading CA certificate
le_certs='https://letsencrypt.org/certs'
x1='lets-encrypt-x1-cross-signed.pem.txt'
x3='lets-encrypt-x3-cross-signed.pem.txt'
issuer=$(openssl x509 -text -in $ssl_dir/$domain.crt |grep "Issuer:")
if [ -z "$(echo $issuer|grep X3)" ]; then
curl -s $le_certs/$x1 > $ssl_dir/$domain.ca
else
curl -s $le_certs/$x3 > $ssl_dir/$domain.ca
csr=$(openssl req -in $ssl_dir/$domain.csr -outform DER |encode_base64)
payload='{"csr":"'$csr'"}'
echo "[$(date)] : query_le_v2 \"$finalize\" \"$payload\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
answer=$(query_le_v2 "$finalize" "$payload" "$nonce")
echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
certificate=$(echo "$answer"|grep 'certificate":' |cut -f4 -d '"')
echo "[$(date)] : certificate=$certificate" >> /usr/local/vesta/log/letsencrypt.log
if [[ "$status" -ne 200 ]]; then
echo "[$(date)] : EXIT=Let's Encrypt finalize bad status $status" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "Let's Encrypt finalize bad status $status"
fi
if [ "$nonce" = "" ]; then
echo "[$(date)] : EXIT=Let's Encrypt 'nonce' is empty after step 6" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "Let's Encrypt 'nonce' is empty after step 6"
fi
if [ "$certificate" = "" ]; then
validation="processing"
i=1
while [ "$validation" = "processing" ]; do
echo "[$(date)] : --- Polling server waiting for Certificate / STEP 7 ---" >> /usr/local/vesta/log/letsencrypt.log
answer=$(query_le_v2 "$order" "" "$nonce")
i=$((i + 1))
nonce=$(echo "$answer" | grep -i nonce | cut -f2 -d \ | tr -d '\r\n')
echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
status=$(echo "$answer" | grep HTTP/ | tail -n1 | cut -f 2 -d ' ')
echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
validation=$(echo "$answer" | grep 'status":' | cut -f4 -d '"')
echo "[$(date)] : validation=$validation" >> /usr/local/vesta/log/letsencrypt.log
certificate=$(echo "$answer" | grep 'certificate":' | cut -f4 -d '"')
echo "[$(date)] : certificate=$certificate" >> /usr/local/vesta/log/letsencrypt.log
sleep $((i * 2)) # Sleep for 2s, 4s, 6s, 8s
if [ $i -gt 10 ]; then
check_result "$E_CONNECT" "Certificate processing timeout ($domain)"
fi
done
fi
if [ "$certificate" = "" ]; then
echo "[$(date)] : EXIT=Let's Encrypt 'certificate' is empty after step 7" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_CONNECT "Let's Encrypt 'certificate' is empty after step 7"
fi
# Downloading signed certificate / STEP 8
echo "[$(date)] : --- Downloading signed certificate / STEP 8 ---" >> /usr/local/vesta/log/letsencrypt.log
echo "[$(date)] : query_le_v2 \"$certificate\" \"\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
answer=$(query_le_v2 "$certificate" "" "$nonce" "$ssl_dir/$domain.pem")
echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
if [[ "$status" -ne 200 ]]; then
[ -d "$ssl_dir" ] && rm -rf "$ssl_dir"
echo "[$(date)] : EXIT=Let's Encrypt downloading signed cert failed status: $status" >> /usr/local/vesta/log/letsencrypt.log
check_result $E_NOTEXIST "Let's Encrypt downloading signed cert failed status: $status"
fi
# Splitting up downloaded pem
# echo "[$(date)] : - Splitting up downloaded pem" >> /usr/local/vesta/log/letsencrypt.log
crt_end=$(grep -n 'END CERTIFICATE' $ssl_dir/$domain.pem |head -n1 |cut -f1 -d:)
# echo "[$(date)] : crt_end=$crt_end" >> /usr/local/vesta/log/letsencrypt.log
head -n $crt_end $ssl_dir/$domain.pem > $ssl_dir/$domain.crt
pem_lines=$(wc -l $ssl_dir/$domain.pem |cut -f 1 -d ' ')
# echo "[$(date)] : pem_lines=$pem_lines" >> /usr/local/vesta/log/letsencrypt.log
ca_end=$(grep -n 'BEGIN CERTIFICATE' $ssl_dir/$domain.pem |tail -n1 |cut -f 1 -d :)
# echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log
ca_end=$(( pem_lines - crt_end + 1 ))
# echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log
tail -n $ca_end $ssl_dir/$domain.pem > $ssl_dir/$domain.ca
# Temporary fix for double "END CERTIFICATE"
if [[ $(head -n 1 $ssl_dir/$domain.ca) = "-----END CERTIFICATE-----" ]]; then
sed -i '1,2d' $ssl_dir/$domain.ca
fi
# Adding SSL
ssl_home=$(search_objects 'web' 'LETSENCRYPT' 'yes' 'SSL_HOME')
$BIN/v-delete-web-domain-ssl $user $domain >/dev/null 2>&1
echo "[$(date)] : v-add-web-domain-ssl $user $domain $ssl_dir $ssl_home" >> /usr/local/vesta/log/letsencrypt.log
$BIN/v-add-web-domain-ssl $user $domain $ssl_dir $ssl_home
if [ "$?" -ne '0' ]; then
exitstatus=$?
echo "[$(date)] : v-add-web-domain-ssl status: $exitstatus" >> /usr/local/vesta/log/letsencrypt.log
if [ "$exitstatus" -ne '0' ]; then
touch $VESTA/data/queue/letsencrypt.pipe
sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe
echo "[$(date)] : EXIT=$domain certificate installation failed" >> /usr/local/vesta/log/letsencrypt.log
send_notice 'LETSENCRYPT' "$domain certificate installation failed"
check_result $? "SSL install" >/dev/null
check_result $exitstatus "SSL install" >/dev/null
fi
# Adding LE autorenew cronjob
@ -135,24 +460,20 @@ if [ -z "$LETSENCRYPT" ]; then
fi
update_object_value 'web' 'DOMAIN' "$domain" '$LETSENCRYPT' 'yes'
reset_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT'
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Restarting web
$BIN/v-restart-web $restart
if [ "$?" -ne 0 ]; then
send_notice 'LETSENCRYPT' "web server needs to be restarted manually"
fi
# Notifying user
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
# Notifying user
send_notice 'LETSENCRYPT' "$domain SSL has been installed successfully"
echo "[$(date)] : EXIT=***** $domain SSL has been installed successfully *****" >> /usr/local/vesta/log/letsencrypt.log
# Logging
log_event "$OK" "$ARGUMENTS"

View file

@ -1,8 +1,8 @@
#!/bin/bash
# info: register letsencrypt user account
# options: USER [EMAIL]
# options: USER
#
# The function creates and register LetsEncript account key
# The function creates and register LetsEncript account
#----------------------------------------------------------#
@ -11,8 +11,13 @@
# Argument definition
user=$1
email=$2
key_size=4096
# LE API
API='https://acme-v02.api.letsencrypt.org'
if [[ "$LE_STAGING" = 'yes' ]]; then
API='https://acme-staging-v02.api.letsencrypt.org'
fi
# Includes
source $VESTA/func/main.sh
@ -23,15 +28,38 @@ encode_base64() {
cat |base64 |tr '+/' '-_' |tr -d '\r\n='
}
# Let's Encrypt v2 curl function
query_le_v2() {
protected='{"nonce": "'$3'",'
protected=''$protected' "url": "'$1'",'
protected=''$protected' "alg": "RS256", "jwk": '$jwk'}'
content="Content-Type: application/jose+json"
payload_=$(echo -n "$2" |encode_base64)
protected_=$(echo -n "$protected" |encode_base64)
signature_=$(printf "%s" "$protected_.$payload_" |\
openssl dgst -sha256 -binary -sign $USER_DATA/ssl/user.key |\
encode_base64)
post_data='{"protected":"'"$protected_"'",'
post_data=$post_data'"payload":"'"$payload_"'",'
post_data=$post_data'"signature":"'"$signature_"'"}'
curl --user-agent "myVesta" -s -i -d "$post_data" "$1" -H "$content"
}
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'USER [EMAIL]'
check_args '1' "$#" 'USER'
is_format_valid 'user'
is_object_valid 'user' 'USER' "$user"
if [ -e "$USER_DATA/ssl/le.conf" ]; then
source "$USER_DATA/ssl/le.conf"
fi
if [ ! -z "$KID" ]; then
exit
fi
@ -40,57 +68,57 @@ fi
# Action #
#----------------------------------------------------------#
api='https://acme-v01.api.letsencrypt.org'
if [ -z "$email" ]; then
email=$(get_user_value '$CONTACT')
# Defining user email
if [[ -z "$EMAIL" ]]; then
EMAIL=$(get_user_value '$CONTACT')
fi
agreement=$(curl -s -I "$api/terms" |grep Location |cut -f 2 -d \ |tr -d '\r\n')
# Defining user agreement
agreement=''
# Generating key
key="$USER_DATA/ssl/user.key"
if [ ! -e "$key" ]; then
openssl genrsa -out $key $key_size >/dev/null 2>&1
chmod 600 $key
# Generating user key
KEY="$USER_DATA/ssl/user.key"
if [ ! -e "$KEY" ]; then
openssl genrsa -out $KEY 4096 >/dev/null 2>&1
chmod 600 $KEY
fi
# Defining key exponent
exponent=$(openssl pkey -inform pem -in "$key" -noout -text_pub |\
grep Exponent: |cut -f 2 -d '(' |cut -f 1 -d ')' |sed -e 's/x//' |\
xxd -r -p |encode_base64)
if [ -z "$EXPONENT" ]; then
EXPONENT=$(openssl pkey -inform pem -in "$KEY" -noout -text_pub |\
grep Exponent: |cut -f 2 -d '(' |cut -f 1 -d ')' |sed -e 's/x//' |\
xxd -r -p |encode_base64)
fi
# Defining key modulus
modulus=$(openssl rsa -in "$key" -modulus -noout |\
sed -e 's/^Modulus=//' |xxd -r -p |encode_base64)
if [ -z "$MODULUS" ]; then
MODULUS=$(openssl rsa -in "$KEY" -modulus -noout |\
sed -e 's/^Modulus=//' |xxd -r -p |encode_base64)
fi
# Defining key thumb
thumb='{"e":"'$exponent'","kty":"RSA","n":"'"$modulus"'"}'
thumb="$(echo -n "$thumb" |openssl dgst -sha256 -binary |encode_base64)"
# Defining JWK
jwk='{"e":"'$EXPONENT'","kty":"RSA","n":"'"$MODULUS"'"}'
# Defining JWK header
header='{"e":"'$exponent'","kty":"RSA","n":"'"$modulus"'"}'
header='{"alg":"RS256","jwk":'"$header"'}'
# Defining key thumbnail
if [ -z "$THUMB" ]; then
THUMB="$(echo -n "$jwk" |openssl dgst -sha256 -binary |encode_base64)"
fi
# Requesting nonce
nonce=$(curl -s -I "$api/directory" |grep Nonce |cut -f 2 -d \ |tr -d '\r\n')
protected=$(echo -n '{"nonce":"'"$nonce"'"}' |encode_base64)
# Defining registration query
query='{"resource":"new-reg","contact":["mailto:'"$email"'"],'
query=$query'"agreement":"'$agreement'"}'
payload=$(echo -n "$query" |encode_base64)
signature=$(printf "%s" "$protected.$payload" |\
openssl dgst -sha256 -binary -sign "$key" |encode_base64)
data='{"header":'"$header"',"protected":"'"$protected"'",'
data=$data'"payload":"'"$payload"'","signature":"'"$signature"'"}'
# Requesting ACME nonce
nonce=$(curl -s -I "$API/directory" |grep -i nonce |cut -f2 -d\ |tr -d '\r\n')
# Sending request to LetsEncrypt API
answer=$(curl -s -i -d "$data" "$api/acme/new-reg")
status=$(echo "$answer" |grep HTTP/1.1 |tail -n1 |cut -f2 -d ' ')
# Creating ACME account
url="$API/acme/new-acct"
payload='{"termsOfServiceAgreed": true}'
answer=$(query_le_v2 "$url" "$payload" "$nonce")
kid=$(echo "$answer" |grep -i location: |cut -f2 -d ' '|tr -d '\r')
# Checking http answer status
if [[ "$status" -ne "201" ]] && [[ "$status" -ne "409" ]]; then
check_result $E_CONNECT "LetsEncrypt account registration $status"
# Checking answer status
status=$(echo "$answer" |grep HTTP/ |tail -n1 |cut -f2 -d ' ')
if [[ "${status:0:2}" -ne "20" ]]; then
check_result $E_CONNECT "Let's Encrypt acc registration failed $status"
fi
@ -99,12 +127,17 @@ fi
#----------------------------------------------------------#
# Adding le.conf
echo "EMAIL='$email'" > $USER_DATA/ssl/le.conf
echo "EXPONENT='$exponent'" >> $USER_DATA/ssl/le.conf
echo "MODULUS='$modulus'" >> $USER_DATA/ssl/le.conf
echo "THUMB='$thumb'" >> $USER_DATA/ssl/le.conf
chmod 660 $USER_DATA/ssl/le.conf
if [ ! -e "$USER_DATA/ssl/le.conf" ]; then
echo "EXPONENT='$EXPONENT'" > $USER_DATA/ssl/le.conf
echo "MODULUS='$MODULUS'" >> $USER_DATA/ssl/le.conf
echo "THUMB='$THUMB'" >> $USER_DATA/ssl/le.conf
echo "EMAIL='$EMAIL'" >> $USER_DATA/ssl/le.conf
echo "KID='$kid'" >> $USER_DATA/ssl/le.conf
chmod 660 $USER_DATA/ssl/le.conf
else
sed -i '/^KID=/d' $USER_DATA/ssl/le.conf
echo "KID='$kid'" >> $USER_DATA/ssl/le.conf
fi
# Logging
log_event "$OK" "$ARGUMENTS"

View file

@ -61,8 +61,14 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then
fi
str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
userstr="$account:$account:$user:mail:$HOMEDIR/$user"
echo $userstr >> $HOMEDIR/$user/conf/mail/$domain/accounts
fi
# Create mail account folder (mailbox)
mkdir $HOMEDIR/$user/mail/$domain/$account
chown $user:mail $HOMEDIR/$user/mail/$domain/$account
chmod 700 $HOMEDIR/$user/mail/$domain/$account
#----------------------------------------------------------#
# Vesta #

View file

@ -45,6 +45,16 @@ is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_domain_new 'mail' "$domain"
is_package_full 'MAIL_DOMAINS'
# Allow mail symlink to HDD
check_symlink=1
symlink=$(readlink $HOMEDIR/$user/mail)
if [ "$symlink" = "/hdd/home/$user/mail" ]; then
check_symlink=0
fi
if [ $check_symlink -eq 1 ]; then
is_dir_symlink $HOMEDIR/$user/mail
fi
#----------------------------------------------------------#
@ -81,6 +91,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then
touch $HOMEDIR/$user/conf/mail/$domain/aliases
touch $HOMEDIR/$user/conf/mail/$domain/passwd
touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
touch $HOMEDIR/$user/conf/mail/$domain/accounts
ln -s $HOMEDIR/$user/conf/mail/$domain \
/etc/$MAIL_SYSTEM/domains/$domain_idn
@ -109,6 +120,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then
# Set ownership
chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain
chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd
chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/accounts
chown $user:mail $HOMEDIR/$user/mail/$domain_idn
fi

View file

@ -0,0 +1,77 @@
#!/bin/bash
gen_pass() {
MATRIX='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
if [ -z "$1" ]; then
LENGTH=32
else
LENGTH=$1
fi
while [ ${n:=1} -le $LENGTH ]; do
PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$PASS"
}
eximversion=$(exim4 --version | grep '^Exim version ' | awk '{print $3}')
if (( $(echo "$eximversion < 4.96" | bc -l) )); then
echo "= ERROR: Exim SRS support requires Exim 4.96 or higher."
echo "You have Exim $eximversion"
exit 1;
fi
echo "=== Addind SRS support to Exim4 ==="
# SRS support is taken from HestiaCP
if [ ! -f "/etc/exim4/srs.conf" ]; then
echo "= Generating SRS KEY"
srs=$(gen_pass 16)
echo $srs > /etc/exim4/srs.conf
chmod 640 /etc/exim4/srs.conf
chown root:Debian-exim /etc/exim4/srs.conf
fi
if [ ! -f "/etc/exim4/exim4.conf.template.backup-without-srs" ]; then
echo "= Backing up /etc/exim4/exim4.conf.template"
cp /etc/exim4/exim4.conf.template /etc/exim4/exim4.conf.template.backup-without-srs
fi
if ! /usr/local/vesta/bin/v-grep 'SRS_SECRET = ' '/etc/exim4/exim4.conf.template' '-q'; then
echo "= Adding: SRS_SECRET = readfile /etc/exim4/srs.conf"
v-sed 'smtputf8_advertise_hosts =' 'smtputf8_advertise_hosts =\n\nSRS_SECRET = ${readfile{/etc/exim4/srs.conf}}' '/etc/exim4/exim4.conf.template'
fi
if ! /usr/local/vesta/bin/v-grep 'if outbound, and forwarding has been done, use an alternate transport' '/etc/exim4/exim4.conf.template' '-q'; then
echo "= Patching \"dnslookup:\" block"
/usr/local/vesta/bin/v-php-func "replace_in_file_once_between_including_borders" "/etc/exim4/exim4.conf.template" 'dnslookup:' ' no_more' 'dnslookup:\n driver = dnslookup\n # if outbound, and forwarding has been done, use an alternate transport\n domains = ! +local_domains\n transport = ${if eq {$local_part@$domain} \\n {$original_local_part@$original_domain} \\n {remote_smtp} {remote_forwarded_smtp}}\n no_more'
fi
if ! /usr/local/vesta/bin/v-grep 'inbound_srs:' '/etc/exim4/exim4.conf.template' '-q'; then
echo "= Adding \"inbound_srs\" and \"inbound_srs_failure\" blocks"
v-sed 'aliases:' 'inbound_srs:\n driver = redirect\n senders = :\n domains = +local_domains\n # detect inbound bounces which are converted to SRS, and decode them\n condition = ${if inbound_srs {$local_part} {SRS_SECRET}}\n data = $srs_recipient\n\ninbound_srs_failure:\n driver = redirect\n senders = :\n domains = +local_domains\n # detect inbound bounces which look converted to SRS but are invalid\n condition = ${if inbound_srs {$local_part} {}}\n allow_fail\n data = :fail: Invalid SRS recipient address\n\naliases:' '/etc/exim4/exim4.conf.template'
fi
if ! /usr/local/vesta/bin/v-grep 'remote_forwarded_smtp:' '/etc/exim4/exim4.conf.template' '-q'; then
echo "= Adding \"remote_forwarded_smtp:\" block"
v-sed 'procmail:\n driver = pipe' 'remote_forwarded_smtp:\n driver = smtp\n dkim_domain = DKIM_DOMAIN\n dkim_selector = mail\n dkim_private_key = DKIM_PRIVATE_KEY\n dkim_canon = relaxed\n dkim_strict = 0\n hosts_try_fastopen = \n hosts_try_chunking = !93.188.3.0/24\n message_linelength_limit = 1G\n # modify the envelope from, for mails that we forward\n max_rcpt = 1\n return_path = ${srs_encode {SRS_SECRET} {$return_path} {$original_domain}}\n\nprocmail:\n driver = pipe' '/etc/exim4/exim4.conf.template'
fi
touch /etc/exim4/limit_per_email_account_max_sent_emails_per_hour
touch /etc/exim4/limit_per_email_account_max_recipients
touch /etc/exim4/limit_per_hosting_account_max_sent_emails_per_hour
touch /etc/exim4/limit_per_hosting_account_max_recipients
echo "= Restarting exim4 service"
systemctl restart exim4
if [ $? -ne 0 ]; then
systemctl status exim4
cp /etc/exim4/exim4.conf.template.backup-without-srs /etc/exim4/exim4.conf.template
systemctl restart exim4
echo "=== Patching failed, old exim conf returned, exim4 restarted again."
exit 1
fi
echo "=== SRS support was added successfully. ==="
exit 0

View file

@ -60,8 +60,8 @@ if [ -z "$sys_ip_check" ]; then
/sbin/ip addr add $ip/$cidr dev $interface \
broadcast $broadcast label $iface
# Adding RHEL/CentOS/Fedora startup script
if [ -e "/etc/redhat-release" ]; then
# Adding RHEL/CentOS/Fedora/Amazon startup script
if [ -d "/etc/sysconfig" ]; then
sys_ip="# Added by vesta"
sys_ip="$sys_ip\nDEVICE=$iface"
sys_ip="$sys_ip\nBOOTPROTO=static"

106
bin/v-add-sys-mail-ssl Executable file
View file

@ -0,0 +1,106 @@
#!/bin/bash
# info: copy mail ssl certificate
# options: USER DOMAIN [RESTART]
#
# The function copies user domain SSL to mail SSL directory
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument definition
user=$1
domain=$2
restart=$3
# Includes
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
source $VESTA/conf/vesta.conf
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'USER DOMAIN [RESTART]'
is_format_valid 'user' 'domain'
is_system_enabled "$MAIL_SYSTEM" 'MAIL_SYSTEM'
is_object_valid 'user' 'USER' "$user"
is_object_valid 'web' 'DOMAIN' "$domain"
is_object_value_exist 'web' 'DOMAIN' "$domain" '$SSL'
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Defining certificate location
dom_crt="/home/$user/conf/web/ssl.$domain.pem"
dom_key="/home/$user/conf/web/ssl.$domain.key"
vst_crt="$VESTA/ssl/mail.crt"
vst_key="$VESTA/ssl/mail.key"
# Checking certificate
if [ ! -e "$dom_crt" ] || [ ! -e "$dom_key" ]; then
check_result $E_NOTEXIST "$domain certificate doesn't exist"
fi
# Checking difference
diff $dom_crt $vst_crt >/dev/null 2>&1
if [ $? -ne 0 ]; then
rm -f $vst_crt.old $vst_key.old
mv $vst_crt $vst_crt.old >/dev/null 2>&1
mv $vst_key $vst_key.old >/dev/null 2>&1
cp $dom_crt $vst_crt 2>/dev/null
cp $dom_key $vst_key 2>/dev/null
chown root:mail $vst_crt $vst_key
else
restart=no
fi
# Updating mail certificate
case $MAIL_SYSTEM in
exim) conf='/etc/exim/exim.conf';;
exim4) conf='/etc/exim4/exim4.conf.template';;
esac
if [ -e "$conf" ]; then
sed -e "s|^tls_certificate.*|tls_certificate = $vst_crt|" \
-e "s|^tls_privatekey.*|tls_privatekey = $vst_key|" -i $conf
fi
# Updating imap certificate
conf="/etc/dovecot/conf.d/10-ssl.conf"
if [ ! -z "$IMAP_SYSTEM" ] && [ -e "$conf" ]; then
sed -e "s|ssl_cert.*|ssl_cert = <$vst_crt|" \
-e "s|ssl_key.*|ssl_key = <$vst_key|" -i $conf
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Restarting services
if [ "$restart" != 'no' ]; then
if [ ! -z "$MAIL_SYSTEM" ]; then
$BIN/v-restart-service $MAIL_SYSTEM
fi
if [ ! -z "$IMAP_SYSTEM" ]; then
$BIN/v-restart-service $IMAP_SYSTEM
fi
fi
# Updating vesta.conf
if [ -z "$(grep MAIL_CERTIFICATE $VESTA/conf/vesta.conf)" ]; then
echo "MAIL_CERTIFICATE='$user:$domain'" >> $VESTA/conf/vesta.conf
else
sed -i "s/MAIL_CERTIFICATE.*/MAIL_CERTIFICATE='$user:$domain'/g" \
$VESTA/conf/vesta.conf
fi
# Logging
log_event "$OK" "$ARGUMENTS"
exit

View file

@ -21,7 +21,7 @@ source $VESTA/conf/vesta.conf
# Checking quota package
quota=$(which --skip-alias --skip-functions quota 2>/dev/null)
if [ $? -ne 0 ]; then
if [ -e "/etc/redhat-release" ]; then
if [ -d "/etc/sysconfig" ]; then
yum -y install quota >/dev/null 2>&1
check_result $? "quota package installation failed" $E_UPDATE
else

97
bin/v-add-sys-vesta-ssl Executable file
View file

@ -0,0 +1,97 @@
#!/bin/bash
# info: add vesta ssl certificate
# options: USER DOMAIN [RESTART]
#
# The function copies user domain SSL to vesta SSL directory
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument definition
user=$1
domain=$2
restart=$3
# Includes
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
source $VESTA/conf/vesta.conf
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'USER DOMAIN [RESTART]'
is_format_valid 'user' 'domain'
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
is_object_valid 'user' 'USER' "$user"
is_object_valid 'web' 'DOMAIN' "$domain"
is_object_value_exist 'web' 'DOMAIN' "$domain" '$SSL'
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Defining certificate location
dom_crt="/home/$user/conf/web/ssl.$domain.pem"
dom_key="/home/$user/conf/web/ssl.$domain.key"
vst_crt="$VESTA/ssl/certificate.crt"
vst_key="$VESTA/ssl/certificate.key"
# Checking certificate
if [ ! -e "$dom_crt" ] || [ ! -e "$dom_key" ]; then
check_result $E_NOTEXIST "$domain certificate doesn't exist"
fi
# Checking difference
diff $dom_crt $vst_crt >/dev/null 2>&1
if [ $? -ne 0 ]; then
rm -f $vst_crt.old $vst_key.old
mv $vst_crt $vst_crt.old
mv $vst_key $vst_key.old
cp $dom_crt $vst_crt 2>/dev/null
cp $dom_key $vst_key 2>/dev/null
chown root:mail $vst_crt $vst_key
else
restart=no
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Restarting services
if [ "$restart" != 'no' ]; then
if [ ! -z "$MAIL_SYSTEM" ] && [ -z "$MAIL_CERTIFICATE" ]; then
$BIN/v-restart-service $MAIL_SYSTEM
fi
if [ ! -z "$IMAP_SYSTEM" ] && [ -z "$MAIL_CERTIFICATE" ]; then
$BIN/v-restart-service $IMAP_SYSTEM
fi
if [ ! -z "$FTP_SYSTEM" ]; then
$BIN/v-restart-service "$FTP_SYSTEM"
fi
if [ -e "/var/run/vesta-nginx.pid" ]; then
kill -HUP $(cat /var/run/vesta-nginx.pid)
else
service vesta restart
fi
fi
# Updating vesta.conf
if [ -z "$(grep VESTA_CERTIFICATE $VESTA/conf/vesta.conf)" ]; then
echo "VESTA_CERTIFICATE='$user:$domain'" >> $VESTA/conf/vesta.conf
else
sed -i "s/VESTA_CERTIFICATE.*/VESTA_CERTIFICATE='$user:$domain'/g" \
$VESTA/conf/vesta.conf
fi
# Logging
log_event "$OK" "$ARGUMENTS"
exit

View file

@ -28,41 +28,44 @@ is_package_new() {
}
is_package_consistent() {
source $pkg_dir/$package.pkg
parse_object_kv_list_non_eval $(cat $pkg_dir/$package.pkg)
if [ "$WEB_DOMAINS" != 'unlimited' ]; then
is_format_valid_int $WEB_DOMAINS 'WEB_DOMAINS'
is_int_format_valid $WEB_DOMAINS 'WEB_DOMAINS'
fi
if [ "$WEB_ALIASES" != 'unlimited' ]; then
is_format_valid_int $WEB_ALIASES 'WEB_ALIASES'
is_int_format_valid $WEB_ALIASES 'WEB_ALIASES'
fi
if [ "$DNS_DOMAINS" != 'unlimited' ]; then
is_format_valid_int $DNS_DOMAINS 'DNS_DOMAINS'
is_int_format_valid $DNS_DOMAINS 'DNS_DOMAINS'
fi
if [ "$DNS_RECORDS" != 'unlimited' ]; then
is_format_valid_int $DNS_RECORDS 'DNS_RECORDS'
is_int_format_valid $DNS_RECORDS 'DNS_RECORDS'
fi
if [ "$MAIL_DOMAINS" != 'unlimited' ]; then
is_format_valid_int $MAIL_DOMAINS 'MAIL_DOMAINS'
is_int_format_valid $MAIL_DOMAINS 'MAIL_DOMAINS'
fi
if [ "$MAIL_ACCOUNTS" != 'unlimited' ]; then
is_format_valid_int $MAIL_ACCOUNTS 'MAIL_ACCOUNTS'
is_int_format_valid $MAIL_ACCOUNTS 'MAIL_ACCOUNTS'
fi
if [ "$DATABASES" != 'unlimited' ]; then
is_format_valid_int $DATABASES 'DATABASES'
is_int_format_valid $DATABASES 'DATABASES'
fi
if [ "$CRON_JOBS" != 'unlimited' ]; then
is_format_valid_int $CRON_JOBS 'CRON_JOBS'
is_int_format_valid $CRON_JOBS 'CRON_JOBS'
fi
if [ "$DISK_QUOTA" != 'unlimited' ]; then
is_format_valid_int $DISK_QUOTA 'DISK_QUOTA'
is_int_format_valid $DISK_QUOTA 'DISK_QUOTA'
fi
if [ "$BANDWIDTH" != 'unlimited' ]; then
is_format_valid_int $BANDWIDTH 'BANDWIDTH'
is_int_format_valid $BANDWIDTH 'BANDWIDTH'
fi
if [ "$BACKUPS" != 'unlimited' ]; then
is_format_valid_int $BACKUPS 'BACKUPS'
is_int_format_valid $BACKUPS 'BACKUPS'
fi
is_format_valid_shell $SHELL
is_web_template_valid $WEB_TEMPLATE
is_dns_template_valid $DNS_TEMPLATE
is_proxy_template_valid $PROXY_TEMPLATE
}

View file

@ -46,7 +46,7 @@ fi
#----------------------------------------------------------#
# Cleaning yum cache
if [ -e "/etc/redhat-release" ]; then
if [ -d "/etc/sysconfig" ]; then
yum -q clean all
yum="yum -q -y --noplugins --disablerepo=* --enablerepo=vesta"
else
@ -57,7 +57,7 @@ fi
# Updating php pacakge
if [ -z "$($VESTA/php/bin/php -v|grep 'PHP 5.6')" ]; then
if [ -e "/etc/redhat-release" ]; then
if [ -d "/etc/sysconfig" ]; then
$yum -y update vesta-php
check_result $? "vesta-php package upgrade failed" $E_UPDATE
else
@ -67,7 +67,7 @@ if [ -z "$($VESTA/php/bin/php -v|grep 'PHP 5.6')" ]; then
fi
# Adding vesta-ioncube package
if [ -e "/etc/redhat-release" ]; then
if [ -d "/etc/sysconfig" ]; then
rpm -q vesta-ioncube >/dev/null 2>&1
if [ $? -ne 0 ]; then
$yum -y install vesta-ioncube >/dev/null 2>&1
@ -82,7 +82,7 @@ else
fi
# Adding vesta-softaculous package
if [ -e "/etc/redhat-release" ]; then
if [ -d "/etc/sysconfig" ]; then
rpm -q vesta-softaculous >/dev/null 2>&1
if [ $? -ne 0 ]; then
$yum -y install vesta-softaculous >/dev/null 2>&1

View file

@ -47,6 +47,9 @@ is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_package_full 'WEB_DOMAINS' 'WEB_ALIASES'
is_domain_new 'web' "$domain,$aliases"
is_dir_symlink $HOMEDIR/$user/web
if_dir_exists $HOMEDIR/$user/web/$domain
is_dir_symlink $HOMEDIR/$user/web/$domain
if [ ! -z "$ip" ]; then
is_ip_valid "$ip" "$user"
else
@ -62,7 +65,7 @@ fi
source $USER_DATA/user.conf
# Creating domain directories
mkdir -p $HOMEDIR/$user/web/$domain \
sudo -u $user mkdir -p $HOMEDIR/$user/web/$domain \
$HOMEDIR/$user/web/$domain/public_html \
$HOMEDIR/$user/web/$domain/public_shtml \
$HOMEDIR/$user/web/$domain/document_errors \
@ -79,7 +82,7 @@ ln -f -s /var/log/$WEB_SYSTEM/domains/$domain.*log \
$HOMEDIR/$user/web/$domain/logs/
# Adding domain skeleton
cp -r $WEBTPL/skel/* $HOMEDIR/$user/web/$domain/ >/dev/null 2>&1
sudo -u $user cp -r $WEBTPL/skel/* $HOMEDIR/$user/web/$domain/ >/dev/null 2>&1
for file in $(find "$HOMEDIR/$user/web/$domain/" -type f); do
sed -i "s/%domain%/$domain/g" $file
done
@ -88,9 +91,9 @@ done
chown -R $user:$user $HOMEDIR/$user/web/$domain
chown root:$user /var/log/$WEB_SYSTEM/domains/$domain.* $conf
chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.*
chmod 751 $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$domain/*
chmod 551 $HOMEDIR/$user/web/$domain/stats $HOMEDIR/$user/web/$domain/logs
chmod 644 $HOMEDIR/$user/web/$domain/public_*html/*
sudo -u $user chmod 751 $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$domain/*
sudo -u $user chmod 551 $HOMEDIR/$user/web/$domain/stats $HOMEDIR/$user/web/$domain/logs
sudo -u $user chmod 644 $HOMEDIR/$user/web/$domain/public_*html/*.*
# Addding PHP-FPM backend
if [ ! -z "$WEB_BACKEND" ]; then
@ -112,9 +115,12 @@ if [ "$aliases" = 'none' ]; then
ALIAS=''
else
ALIAS="www.$domain"
if [ ! -z "$aliases" ]; then
ALIAS="$ALIAS,$aliases"
if [ -z "$aliases" ]; then
ALIAS="www.$domain"
else
ALIAS="$aliases"
fi
ip_alias=$(get_ip_alias $domain)
if [ ! -z "$ip_alias" ]; then
ALIAS="$ALIAS,$ip_alias"
@ -133,7 +139,7 @@ if [ ! -z "$PROXY_SYSTEM" ]; then
if [ -z "$proxy_ext" ]; then
PROXY_EXT="jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls"
PROXY_EXT="$PROXY_EXT,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp"
PROXY_EXT="$PROXY_EXT,rtf,js,mp3,avi,mpeg,flv,html,htm"
PROXY_EXT="$PROXY_EXT,rtf,js,mp3,avi,mpeg,flv,woff,woff2"
fi
add_web_config "$PROXY_SYSTEM" "$PROXY_TEMPLATE.tpl"
fi
@ -160,6 +166,9 @@ echo "DOMAIN='$domain' IP='$ip' IP6='' ALIAS='$ALIAS' TPL='$WEB_TEMPLATE'\
STATS='' STATS_USER='' STATS_CRYPT='' U_DISK='0' U_BANDWIDTH='0'\
SUSPENDED='no' TIME='$time' DATE='$date'" >> $USER_DATA/web.conf
# Install unsigned SSL
$BIN/v-install-unsigned-ssl "$domain" "no"
# Restarting web server
$BIN/v-restart-web $restart
check_result $? "Web restart failed" >/dev/null

View file

@ -14,8 +14,7 @@
user=$1
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"
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,woff,woff2"
extentions=${4-$default_extentions}
restart="$5"

View file

@ -120,6 +120,42 @@ check_result $? "Web restart failed" >/dev/null
$BIN/v-restart-proxy $restart
check_result $? "Proxy restart failed" >/dev/null
# Updating system ssl dependencies
if [ ! -z "$VESTA_CERTIFICATE" ]; then
crt_user=$(echo "$VESTA_CERTIFICATE" |cut -f 1 -d :)
crt_domain=$(echo "$VESTA_CERTIFICATE" |cut -f 2 -d :)
if [ "$user" = "$crt_user" ] && [ "$domain" = "$crt_domain" ]; then
$BIN/v-add-sys-vesta-ssl $user $domain >/dev/null 2>&1
fi
fi
if [ ! -z "$MAIL_CERTIFICATE" ]; then
crt_user=$(echo "$MAIL_CERTIFICATE" |cut -f 1 -d :)
crt_domain=$(echo "$MAIL_CERTIFICATE" |cut -f 2 -d :)
if [ "$user" = "$crt_user" ] && [ "$domain" = "$crt_domain" ]; then
$BIN/v-add-sys-mail-ssl $user $domain >/dev/null 2>&1
fi
fi
if [ ! -z "$UPDATE_HOSTNAME_SSL" ] && [ "$UPDATE_HOSTNAME_SSL" = "yes" ]; then
hostname=$(hostname)
if [ "$hostname" = "$domain" ]; then
$BIN/v-update-host-certificate $user $domain
fi
fi
UPDATE_SSL_SCRIPT=''
source $VESTA/conf/vesta.conf
if [ ! -z "$UPDATE_SSL_SCRIPT" ]; then
eval "$UPDATE_SSL_SCRIPT $user $domain"
fi
UPDATE_SSL_SCRIPT2=''
source $VESTA/conf/vesta.conf
if [ ! -z "$UPDATE_SSL_SCRIPT2" ]; then
eval "$UPDATE_SSL_SCRIPT2 $user $domain"
fi
# Logging
log_history "enabled ssl support for $domain"
log_event "$OK" "$ARGUMENTS"

76
bin/v-add-wordpress-admin Normal file
View file

@ -0,0 +1,76 @@
#!/bin/bash
# info: Add a WordPress admin user to a specific domain
# options: DOMAIN USERNAME PASSWORD EMAIL
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
if [ "$#" -lt 4 ]; then
echo "Usage: v-add-wordpress-admin [DOMAIN] [USERNAME] [PASSWORD] [EMAIL]"
exit 1
fi
# Importing system environment
source /etc/profile
SILENT_MODE=1
# Argument definition
domain=$1
username=$2
password=$3
email=$4
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
USER=$user
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/func/domain.sh
if [ -z "$user" ]; then
check_result $E_NOTEXIST "domain $domain doesn't exist"
fi
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '4' "$#" 'DOMAIN USERNAME PASSWORD EMAIL'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
if [ ! -d "/home/$user" ]; then
echo "User doesn't exist";
exit 1;
fi
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
echo "Domain doesn't exist";
exit 1;
fi
if [ ! -f "/home/$user/web/$domain/public_html/wp-config.php" ]; then
echo 'Please install WordPress first.'
exit 1;
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
/usr/local/vesta/bin/v-run-wp-cli $domain user create $username $email --role=administrator --user_pass="$password" --skip-plugins --skip-themes;
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
exit 0;

View file

@ -22,6 +22,9 @@ source $VESTA/func/domain.sh
source $VESTA/func/db.sh
source $VESTA/conf/vesta.conf
if [ ! -z "$NOW" ]; then
BACKUP_LA_LIMIT=50
fi
#----------------------------------------------------------#
# Verifications #
@ -39,6 +42,13 @@ is_backup_enabled
# Action #
#----------------------------------------------------------#
wait_for_backup_if_it_is_not_time_for_backup
# Override backup path
if [ ! -z "$OVERRIDE_BACKUP_PATH" ]; then
BACKUP=$OVERRIDE_BACKUP_PATH
fi
# Set backup directory if undefined
if [ -z "$BACKUP" ]; then
BACKUP=/backup
@ -52,24 +62,25 @@ start_time=$(date '+%s')
subj="$user → backup failed"
email=$(grep CONTACT $VESTA/data/users/admin/user.conf |cut -f 2 -d \')
# Checking load average
la=$(cat /proc/loadavg |cut -f 1 -d ' ' |cut -f 1 -d '.')
i=0
while [ "$la" -ge "$BACKUP_LA_LIMIT" ]; do
echo -e "$(date "+%F %T") Load Average $la"
sleep 60
if [ "$i" -ge "15" ]; then
la_error="LoadAverage $la is above threshold"
echo "$la_error" |$SENDMAIL -s "$subj" $email $notify
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
check_result $E_LA "$la_error"
fi
la=$(cat /proc/loadavg |cut -f 1 -d ' ' |cut -f 1 -d '.')
(( ++i))
done
# Validate available disk space (take usage * 2, due to the backup handling)
let u_account=$(grep "U_DISK=" $VESTA/data/users/$user/user.conf |cut -f 2 -d \')
let u_disk=$(grep "U_DISK=" $VESTA/data/users/$user/user.conf |cut -f 2 -d \')*2
let v_disk=$(($(stat -f --format="%a*%S" $BACKUP)))/1024/1024
if [ "$u_disk" -gt "$v_disk" ]; then
echo "account size : $u_account megabytes" |tee $BACKUP/$user.log
echo "available space on disk: $v_disk megabytes" |tee $BACKUP/$user.log
echo "needed space on disk : $u_disk megabytes" |tee $BACKUP/$user.log
echo "not enough disk space available to perform the backup." |$SENDMAIL -s "$subj" $email $notify
check_result $E_LIMIT "not enough disk space available to perform the backup."
fi
if [ -z "$BACKUP_TEMP" ]; then
BACKUP_TEMP=$BACKUP
fi
# Creating temporary directory
tmpdir=$(mktemp -p /tmp -d)
tmpdir=$(mktemp -p $BACKUP_TEMP -d)
if [ "$?" -ne 0 ]; then
echo "Can't create tmp dir $tmpdir" |$SENDMAIL -s "$subj" $email $notify
@ -132,6 +143,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
i=0
for domain in $web_list; do
wait_for_backup_if_it_is_not_time_for_backup
((i ++))
echo -e "$(date "+%F %T") $domain" |tee -a $BACKUP/$user.log
mkdir -p $tmpdir/web/$domain/conf
@ -142,6 +154,25 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
format_domain_idn
get_domain_values 'web'
# backuping php-fpm conf file
if [[ $TPL == "PHP-FPM-"* ]]; then
fpm_tpl_ver=${TPL:8:2}
fpm_ver="${TPL:8:1}.${TPL:9:1}"
fpm_folder="$fpm_ver/fpm/pool.d"
fpm_path="$fpm_ver/fpm/pool.d/$domain.conf"
if [[ $TPL == *"-ioncube" ]]; then
fpm_folder="$fpm_ver/fpm/pool.d-ioncube"
fpm_path="$fpm_ver/fpm/pool.d-ioncube/$domain.conf"
fi
fpm_original_path="/etc/php/$fpm_path"
fpm_dest_path="$tmpdir/web/$domain/php/$fpm_path"
fpm_dest_folder="$tmpdir/web/$domain/php/$fpm_folder"
if [ -f "$fpm_original_path" ]; then
mkdir -p $fpm_dest_folder
cp $fpm_original_path $fpm_dest_path
fi
fi
# Backup web.conf
cd $tmpdir/web/$domain/
conf="$USER_DATA/web.conf"
@ -212,24 +243,37 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
cp $USER_DATA/ssl/$domain.* vesta/
fi
# Changin dir to documentroot
cd $HOMEDIR/$user/web/$domain
# Define exclude arguments
exlusion=$(echo -e "$WEB" |tr ',' '\n' |grep "^$domain:")
set -f
fargs=()
fargs+=(--exclude='logs/*')
fargs+=(--exclude='./logs/*')
if [ ! -z "$exlusion" ]; then
xdirs="$(echo -e "$exlusion" |tr ':' '\n' |grep -v $domain)"
for xpath in $xdirs; do
fargs+=(--exclude=$xpath/*)
echo "$(date "+%F %T") excluding directory $xpath"
msg="$msg\n$(date "+%F %T") excluding directory $xpath"
# Add ./ at the beginning of the path if the path is in old pattern
if [[ $xpath != ./* ]]; then
xpath=(./$xpath)
fi
if [ -d "$xpath" ]; then
fargs+=(--exclude=$xpath/*)
echo "$(date "+%F %T") excluding directory $xpath"
msg="$msg\n$(date "+%F %T") excluding directory $xpath"
else
echo "$(date "+%F %T") excluding file $xpath"
msg="$msg\n$(date "+%F %T") excluding file $xpath"
fargs+=(--exclude=$xpath)
fi
done
fi
set +f
# Backup files
cd $HOMEDIR/$user/web/$domain
tar -cpf- * ${fargs[@]} |gzip -$BACKUP_GZIP - > $tmpdir/web/$domain/domain_data.tar.gz
tar --anchored -cpf- ${fargs[@]} --exclude={'./','../'} . |gzip -$BACKUP_GZIP - > $tmpdir/web/$domain/domain_data.tar.gz
done
# Print total
@ -305,6 +349,7 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
i=0
for domain in $mail_list; do
wait_for_backup_if_it_is_not_time_for_backup
((i ++))
echo -e "$(date "+%F %T") $domain" |tee -a $BACKUP/$user.log
mkdir -p $tmpdir/mail/$domain/conf
@ -377,6 +422,7 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
conf="$USER_DATA/db.conf"
db_list=$(echo "$db_list" |sed -e "s/ */\ /g" -e "s/^ //")
for database in $db_list; do
wait_for_backup_if_it_is_not_time_for_backup
((i ++))
get_database_values
@ -388,14 +434,34 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
grep "DB='$database'" $conf > vesta/db.conf
dump="$tmpdir/db/$database/$database.$TYPE.sql"
dumpgz="$tmpdir/db/$database/$database.$TYPE.sql.gz"
grants="$tmpdir/db/$database/conf/$database.$TYPE.$DBUSER"
case $TYPE in
mysql) dump_mysql_database ;;
pgsql) dump_pgsql_database ;;
esac
if [ ! -f "$dumpgz" ]; then
# Compress dump
gzip -$BACKUP_GZIP $dump
WAIT_LOOP_ENTERED=0
while true
do
if pgrep -x "mysqldump" > /dev/null
then
WAIT_LOOP_ENTERED=1
echo "Wait other mysqldump to finish"
sleep 1
else
if [ "$WAIT_LOOP_ENTERED" -eq 1 ]; then
echo "We can use mysqldump now"
fi
break
fi
done
case $TYPE in
mysql) dump_mysql_database ;;
pgsql) dump_pgsql_database ;;
esac
# Compress dump
gzip -$BACKUP_GZIP $dump
fi
done
# Print total
@ -445,26 +511,33 @@ if [ "$USER" != '*' ]; then
fi
fargs=()
for xpath in $(echo "$USER" |tr ',' '\n'); do
fargs+=(-not)
fargs+=(-path)
fargs+=("./$xpath*")
echo "$(date "+%F %T") excluding directory $xpath" |\
if [ -d "$xpath" ]; then
fargs+=(--exclude=$xpath/*)
echo "$(date "+%F %T") excluding directory $xpath" |\
tee -a $BACKUP/$user.log
else
echo "$(date "+%F %T") excluding file $xpath" |\
tee -a $BACKUP/$user.log
fargs+=(--exclude=$xpath)
fi
done
IFS=$'\n'
set -f
i=0
for udir in $(ls -a |egrep -v "^conf$|^web$|^dns$|^mail$|^\.\.$|^\.$"); do
for udir in $(ls -a |egrep -v "^conf$|^web$|^dns$|^tmp$|^mail$|^\.\.$|^\.$"); do
exclusion=$(echo "$USER" |tr ',' '\n' |grep "^$udir$")
if [ -z "$exclusion" ]; then
((i ++))
udir_list="$udir_list $udir"
udir_str=$(echo "$udir" |sed -e "s|'|\\\'|g")
udir_list="$udir_list $udir_str"
echo -e "$(date "+%F %T") adding $udir" |tee -a $BACKUP/$user.log
wait_for_backup_if_it_is_not_time_for_backup
# Backup files and dirs
tar -cpf- $udir |gzip -$BACKUP_GZIP - > $tmpdir/user_dir/$udir.tar.gz
tar --anchored -cpf- ${fargs[@]} $udir |gzip -$BACKUP_GZIP - > $tmpdir/user_dir/$udir.tar.gz
fi
done
set +f
@ -499,7 +572,7 @@ local_backup(){
backup_list=$(ls -lrt $BACKUP/ |awk '{print $9}' |grep "^$user\." | grep ".tar")
backups_count=$(echo "$backup_list" |wc -l)
if [ "$BACKUPS" -le "$backups_count" ]; then
backups_rm_number=$((backups_count - BACKUPS))
backups_rm_number=$((backups_count - BACKUPS + 1))
# Removing old backup
for backup in $(echo "$backup_list" |head -n $backups_rm_number); do
@ -575,7 +648,7 @@ ftp_backup() {
fi
# Debug info
echo -e "$(date "+%F %T") Remote: ftp://$HOST$BPATH/$user.$backup_new_date.tar"
echo -e "$(date "+%F %T") Remote: ftp://$HOST/$BPATH/$user.$backup_new_date.tar"
# Checking ftp connection
fconn=$(ftpc)
@ -613,9 +686,19 @@ ftp_backup() {
else
backup_list=$(ftpc "cd $BPATH" "ls" |awk '{print $9}' |grep "^$user\.")
fi
if [ ! -z "$ONLY_ONE_FTP_BACKUP" ]; then
TEMP_BACKUPS=$BACKUPS
BACKUPS=1
echo "=== Set BACKUPS=1"
fi
if [ ! -z "$KEEP_N_FTP_BACKUPS" ]; then
TEMP_BACKUPS=$BACKUPS
BACKUPS=$KEEP_N_FTP_BACKUPS
echo "=== Set BACKUPS=$KEEP_N_FTP_BACKUPS"
fi
backups_count=$(echo "$backup_list" |wc -l)
if [ "$backups_count" -ge "$BACKUPS" ]; then
backups_rm_number=$((backups_count - BACKUPS))
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$//")
echo -e "$(date "+%F %T") Rotated ftp backup: $backup_date" |\
@ -627,6 +710,14 @@ ftp_backup() {
fi
done
fi
if [ ! -z "$ONLY_ONE_FTP_BACKUP" ]; then
BACKUPS=$TEMP_BACKUPS
echo "=== Bringing back old value BACKUPS=$BACKUPS"
fi
if [ ! -z "$KEEP_N_FTP_BACKUPS" ]; then
BACKUPS=$TEMP_BACKUPS
echo "=== Bringing back old value BACKUPS=$BACKUPS"
fi
# Uploading backup archive
if [ "$localbackup" = 'yes' ]; then
@ -769,8 +860,18 @@ sftp_backup() {
backup_list=$(sftpc "cd $BPATH" "ls -l" |awk '{print $9}'|grep "^$user\.")
fi
backups_count=$(echo "$backup_list" |wc -l)
if [ ! -z "$ONLY_ONE_FTP_BACKUP" ]; then
TEMP_BACKUPS=$BACKUPS
BACKUPS=1
echo "=== Set BACKUPS=1"
fi
if [ ! -z "$KEEP_N_FTP_BACKUPS" ]; then
TEMP_BACKUPS=$BACKUPS
BACKUPS=$KEEP_N_FTP_BACKUPS
echo "=== Set BACKUPS=$KEEP_N_FTP_BACKUPS"
fi
if [ "$backups_count" -ge "$BACKUPS" ]; then
backups_rm_number=$((backups_count - BACKUPS))
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.*$//")
echo -e "$(date "+%F %T") Rotated sftp backup: $backup_date" |\
@ -782,6 +883,14 @@ sftp_backup() {
fi
done
fi
if [ ! -z "$ONLY_ONE_FTP_BACKUP" ]; then
BACKUPS=$TEMP_BACKUPS
echo "=== Bringing back old value BACKUPS=$BACKUPS"
fi
if [ ! -z "$KEEP_N_FTP_BACKUPS" ]; then
BACKUPS=$TEMP_BACKUPS
echo "=== Bringing back old value BACKUPS=$BACKUPS"
fi
# Uploading backup archive
echo "$(date "+%F %T") Uploading $user.$backup_new_date.tar"|tee -a $BACKUP/$user.log

6
bin/v-backup-user-now Normal file
View file

@ -0,0 +1,6 @@
#!/bin/bash
export ALLOW_BACKUP_ANYTIME='yes'
export NOW='yes'
nice -n 19 ionice -c 3 /usr/local/vesta/bin/v-backup-user $1

View file

@ -4,6 +4,13 @@
#
# The function backups all system users.
scriptname="v-backup-users"
for pid in $(pidof -x "$scriptname"); do
if [ $pid != $$ ]; then
echo "[$(date)] : $scriptname : Process is already running with PID $pid"
exit 1
fi
done
#----------------------------------------------------------#
# Variable&Function #
@ -17,28 +24,64 @@ source /etc/profile
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
ALLOW_MYSQL_REPAIR=1
if [ $# -ge 1 ]; then
ALLOW_MYSQL_REPAIR=$1
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
$BIN/v-check-vesta-license >/dev/null
log=$VESTA/log/backup.log
# $BIN/v-check-vesta-license >/dev/null
touch $log
if [ ! -z "$NOTIFY_ADMIN_FULL_BACKUP" ]; then
mv $log $log-`date +"%Y-%m-%d--%H:%M:%S"`
fi
# Auto-repair all databases before backuping all accounts
if [ $ALLOW_MYSQL_REPAIR -eq 1 ]; then
nice -n 19 ionice -c 3 mysqlrepair --all-databases --check --auto-repair >> $log 2>&1
fi
if [ -z "$BACKUP_SYSTEM" ]; then
exit
fi
FINAL_STATUS='OK'
i_am_in_backup_all_users=1
for user in $(grep '@' /etc/passwd |cut -f1 -d:); do
if [ ! -f "$VESTA/data/users/$user/user.conf" ]; then
continue;
fi
wait_for_backup_if_it_is_not_time_for_backup
check_suspend=$(grep "SUSPENDED='no'" $VESTA/data/users/$user/user.conf)
log=$VESTA/log/backup.log
if [ ! -z "$check_suspend" ]; then
echo -e "================================" >> $log
echo -e "$user" >> $log
echo -e "--------------------------------\n" >> $log
$BIN/v-backup-user $user >> $log 2>&1
i_am_in_backup_all_users=0
nice -n 19 ionice -c 3 $BIN/v-backup-user $user >> $log 2>&1
STATUS=$?
if [ $STATUS -ne 0 ]; then
FINAL_STATUS='CONTAINS ERRORS !!!'
fi
i_am_in_backup_all_users=1
echo -e "\n--------------------------------\n\n" >> $log
fi
done
if [ ! -z "$NOTIFY_ADMIN_FULL_BACKUP" ]; then
cat $log |$SENDMAIL -s "Full backup report for $HOSTNAME; status=$FINAL_STATUS" "$NOTIFY_ADMIN_FULL_BACKUP" 'yes'
fi
if [ ! -z "$NOTIFY_ADMIN_FULL_BACKUP2" ]; then
cat $log |$SENDMAIL -s "Full backup report for $HOSTNAME; status=$FINAL_STATUS" "$NOTIFY_ADMIN_FULL_BACKUP2" 'yes'
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#

View file

@ -0,0 +1,102 @@
#!/bin/bash
# info: Add a specific email address to exim4 and spamassassin blacklist
# usage: v-blacklist-email-account EMAIL
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
# Determine Debian version and set SpamAssassin service name
release=$(cat /etc/debian_version | tr "." "\n" | head -n1)
if [ "$release" -lt 12 ]; then
SPAMD_SERVICE="spamassassin.service"
else
SPAMD_SERVICE="spamd.service"
fi
DENY_SENDERS_FILE="/etc/exim4/deny_senders"
SPAMASSASSIN_FILE="/etc/spamassassin/local.cf"
# Flags to track changes
SPAMASSASSIN_CHANGED=false
# Function to check if an entry already exists in a file
check_entry_exists() {
local entry=$1
local file=$2
grep -qF "$entry" "$file"
}
# Function to add an entry to a file
add_entry_to_file() {
local entry=$1
local file=$2
echo "$entry" >> "$file"
}
# Display usage if no arguments are provided
if [ $# -lt 1 ]; then
echo "Usage: v-blacklist-email EMAIL"
exit 1
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
EMAIL=$1
# Validate email format
if [[ ! "$EMAIL" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]; then
echo "Invalid email address format."
exit 1
fi
# Prepare entries for Exim4 and SpamAssassin
EXIM_ENTRY="$EMAIL"
SPAMASSASSIN_ENTRY="blacklist_from $EMAIL"
#----------------------------------------------------------#
# Exim4 Blacklist #
#----------------------------------------------------------#
echo "Updating $DENY_SENDERS_FILE..."
if ! check_entry_exists "$EXIM_ENTRY" "$DENY_SENDERS_FILE"; then
add_entry_to_file "$EXIM_ENTRY" "$DENY_SENDERS_FILE"
echo "Added $EXIM_ENTRY to $DENY_SENDERS_FILE."
else
echo "$EXIM_ENTRY already exists in $DENY_SENDERS_FILE."
fi
#----------------------------------------------------------#
# SpamAssassin Blacklist #
#----------------------------------------------------------#
echo "Updating $SPAMASSASSIN_FILE..."
if ! check_entry_exists "$SPAMASSASSIN_ENTRY" "$SPAMASSASSIN_FILE"; then
add_entry_to_file "$SPAMASSASSIN_ENTRY" "$SPAMASSASSIN_FILE"
echo "Added $SPAMASSASSIN_ENTRY to $SPAMASSASSIN_FILE."
SPAMASSASSIN_CHANGED=true
else
echo "$SPAMASSASSIN_ENTRY already exists in $SPAMASSASSIN_FILE."
fi
if [ "$SPAMASSASSIN_CHANGED" == "true" ]; then
systemctl restart "$SPAMD_SERVICE"
echo "SpamAssassin service ($SPAMD_SERVICE) restarted."
fi
#----------------------------------------------------------#
# Done #
#----------------------------------------------------------#
exit 0

View file

@ -0,0 +1,133 @@
#!/bin/bash
# info: Add a domain to exim4 and spamassassin blacklist
# usage: v-blacklist-email-domain DOMAIN SUBDOMAIN(YES/NO)
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
# Determine Debian version and set SpamAssassin service name
release=$(cat /etc/debian_version | tr "." "\n" | head -n1)
if [ "$release" -lt 12 ]; then
SPAMD_SERVICE="spamassassin.service"
else
SPAMD_SERVICE="spamd.service"
fi
DENY_SENDERS_FILE="/etc/exim4/deny_senders"
SPAMASSASSIN_FILE="/etc/spamassassin/local.cf"
# Flags to track changes
SPAMASSASSIN_CHANGED=false
# Function to check if a domain already exists in a file
check_domain_exists() {
local domain=$1
local file=$2
grep -qE "^${domain}$" "$file"
}
# Function to check if a SpamAssassin entry already exists
check_spamassassin_exists() {
local entry=$1
local file=$2
grep -qF "$entry" "$file"
}
# Function to add domain to file
add_domain_to_file() {
local domain=$1
local file=$2
echo "$domain" >> "$file"
}
# Display usage if no arguments are provided
if [ $# -lt 2 ]; then
echo "Usage: v-blacklist-domain DOMAIN SUBDOMAIN(YES/NO)"
exit 1
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
DOMAIN=$1
SUBDOMAIN=${2^^} # Convert to uppercase for consistency (YES/NO)
# Validate SUBDOMAIN parameter
if [[ "$SUBDOMAIN" != "YES" && "$SUBDOMAIN" != "NO" ]]; then
echo "Invalid parameter for SUBDOMAIN. Use YES or NO."
exit 1
fi
# Prepare entries for Exim4
EXIM_ENTRY_MAIN="$DOMAIN"
EXIM_ENTRY_SUB="*.$DOMAIN"
# Prepare entries for SpamAssassin
SPAMASSASSIN_ENTRY_MAIN="blacklist_from *@${DOMAIN}"
SPAMASSASSIN_ENTRY_SUB="blacklist_from *.$DOMAIN"
#----------------------------------------------------------#
# Exim4 Blacklist #
#----------------------------------------------------------#
echo "Updating $DENY_SENDERS_FILE..."
if ! check_domain_exists "$EXIM_ENTRY_MAIN" "$DENY_SENDERS_FILE"; then
add_domain_to_file "$EXIM_ENTRY_MAIN" "$DENY_SENDERS_FILE"
echo "Added $EXIM_ENTRY_MAIN to $DENY_SENDERS_FILE."
else
echo "$EXIM_ENTRY_MAIN already exists in $DENY_SENDERS_FILE."
fi
if [ "$SUBDOMAIN" == "YES" ]; then
if ! check_domain_exists "$EXIM_ENTRY_SUB" "$DENY_SENDERS_FILE"; then
add_domain_to_file "$EXIM_ENTRY_SUB" "$DENY_SENDERS_FILE"
echo "Added $EXIM_ENTRY_SUB to $DENY_SENDERS_FILE."
else
echo "$EXIM_ENTRY_SUB already exists in $DENY_SENDERS_FILE."
fi
fi
#----------------------------------------------------------#
# SpamAssassin Blacklist #
#----------------------------------------------------------#
echo "Updating $SPAMASSASSIN_FILE..."
if ! check_spamassassin_exists "$SPAMASSASSIN_ENTRY_MAIN" "$SPAMASSASSIN_FILE"; then
add_domain_to_file "$SPAMASSASSIN_ENTRY_MAIN" "$SPAMASSASSIN_FILE"
echo "Added $SPAMASSASSIN_ENTRY_MAIN to $SPAMASSASSIN_FILE."
SPAMASSASSIN_CHANGED=true
else
echo "$SPAMASSASSIN_ENTRY_MAIN already exists in $SPAMASSASSIN_FILE."
fi
if [ "$SUBDOMAIN" == "YES" ]; then
if ! check_spamassassin_exists "$SPAMASSASSIN_ENTRY_SUB" "$SPAMASSASSIN_FILE"; then
add_domain_to_file "$SPAMASSASSIN_ENTRY_SUB" "$SPAMASSASSIN_FILE"
echo "Added $SPAMASSASSIN_ENTRY_SUB to $SPAMASSASSIN_FILE."
SPAMASSASSIN_CHANGED=true
else
echo "$SPAMASSASSIN_ENTRY_SUB already exists in $SPAMASSASSIN_FILE."
fi
fi
if [ "$SPAMASSASSIN_CHANGED" == "true" ]; then
systemctl restart "$SPAMD_SERVICE"
echo "SpamAssassin service ($SPAMD_SERVICE) restarted."
fi
#----------------------------------------------------------#
# Done #
#----------------------------------------------------------#
exit 0

View file

@ -60,6 +60,10 @@ if [ ! -z "$check_db" ]; then
exit $E_EXISTS
fi
if [ ! -d "/backup" ]; then
echo "There is no /backup folder, creating it now..."
mkdir /backup
fi
#----------------------------------------------------------#
# Action #

View file

@ -0,0 +1,65 @@
#!/bin/bash
# info: change db password to all wordpress databases
# options:
#
# The command is used for changing db password to all wordpress databases on the server.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Importing system variables
source /etc/profile
# Includes
source $VESTA/func/main.sh
only_user='';
if [ ! -z "$1" ]; then
only_user=$1
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
touch /root/remember-db-user-pass.txt
for user in $(grep '@' /etc/passwd |cut -f1 -d:); do
if [ ! -f "/usr/local/vesta/data/users/$user/user.conf" ]; then
continue;
fi
if [ ! -z "$only_user" ]; then
if [ "$only_user" != "$user" ]; then
continue;
fi
fi
for domain in $(/usr/local/vesta/bin/v-list-web-domains $user plain |cut -f 1); do
if [ -f "/home/$user/web/$domain/public_html/wp-config.php" ]; then
/usr/local/vesta/bin/v-change-database-password-for-wordpress $domain $user
echo "--------------------------------"
fi
done
if [ ! -z "$only_user" ]; then
break;
fi
done
# cat /root/remember-db-user-pass.txt
if [ -f "/root/remember-db-user-pass.txt" ]; then
rm /root/remember-db-user-pass.txt
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit

View file

@ -0,0 +1,132 @@
#!/bin/bash
# info: change database password for wordpress
# options:
#
# The command is used for changing database password for wordpress.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
# Argument definition
domain=$1
# Check if number of arguments is 2
if [ $# -eq 2 ]; then
user=$2
else
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
fi
USER=$user
if [ -z "$user" ]; then
echo "ERROR: Domain $domain not found"
exit 1;
fi
if [ ! -d "/home/$user" ]; then
echo "ERROR: User $user doesn't exist";
exit 1;
fi
# Includes
source /usr/local/vesta/func/main.sh
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
echo "ERROR: Domain doesn't exist";
exit 1;
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
if [ -f "/home/$user/web/$domain/public_html/wp-config.php" ]; then
echo "=== Domain: $domain"
wp_config_path="/home/$user/web/$domain/public_html/wp-config.php"
if grep -q $'\r' $wp_config_path; then
echo "=== removing CRLF from wp-config.php"
tr -d '\r' < $wp_config_path > /tmp/wp-config.php && mv /tmp/wp-config.php $wp_config_path
chown $user:$user $wp_config_path
fi
db_name=$(grep "DB_NAME" $wp_config_path | grep -oP "define\s*\(\s*'DB_NAME'\s*,\s*'\K[^']+")
db_user=$(grep "DB_USER" $wp_config_path | grep -oP "define\s*\(\s*'DB_USER'\s*,\s*'\K[^']+")
if [ -z "$db_name" ]; then
db_name=$(grep "DB_NAME" $wp_config_path | grep -oP "define\s*\(\s*'DB_NAME'\s*,\s*\"\K[^\"]+")
fi
if [ -z "$db_user" ]; then
db_user=$(grep "DB_USER" $wp_config_path | grep -oP "define\s*\(\s*'DB_USER'\s*,\s*\"\K[^\"]+")
fi
new_password=''
found_existing_password=0
if [ -f "/root/remember-db-user-pass.txt" ]; then
db_user_pass=$(grep "$db_user:" /root/remember-db-user-pass.txt)
if [ -n "$db_user_pass" ]; then
new_password=$(echo "$db_user_pass" | cut -d':' -f2)
echo "= Using existing password for $db_user"
found_existing_password=1
fi
fi
if [ -z "$new_password" ]; then
new_password=$(generate_password)
fi
echo "DB name: $db_name"
echo "DB user: $db_user"
echo "New DB password: $new_password"
if [ $found_existing_password -eq 0 ]; then
touch /root/remember-db-user-pass.txt
echo "$db_user:$new_password" >> /root/remember-db-user-pass.txt
chown root:root /root/remember-db-user-pass.txt
chmod 600 /root/remember-db-user-pass.txt
fi
/usr/local/vesta/bin/v-change-database-password "$user" "$db_name" "$new_password"
if [ $? -ne 0 ]; then
echo "*************** ERROR: Failed to change database password ***************"
exit 1;
fi
line="define('DB_PASSWORD', '$new_password');"
chattr -i $wp_config_path
sed -i "s/.*define(.*DB_PASSWORD'.*/$line/" $wp_config_path
new_password_line=$(grep "DB_PASSWORD" $wp_config_path)
echo "New DB password line: $new_password_line"
if [ "$new_password_line" != "$line" ]; then
echo "*************** ERROR: line in wp-config.php is not what we expected ***************"
echo "Expected: $line"
echo "Actual : $new_password_line"
echo "*************** ERROR: Please check wp-config.php manually ***************"
exit 1;
fi
else
echo "ERROR: WP-config.php not found"
exit 1;
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit 0;

71
bin/v-change-dir-www Normal file
View file

@ -0,0 +1,71 @@
#!/bin/bash
# info: Change directory to the public_html folder of a domain
# usage: source v-cd-www DOMAIN
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "This script must be sourced to change the current directory."
echo "Usage: source v-cd-www DOMAIN"
exit 1
fi
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
return 1
fi
# Importing system environment
source /etc/profile
PATH=$PATH:/usr/local/vesta/bin && export PATH
SILENT_MODE=1
# Argument definition
domain=$1
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
if [ -z "$user" ]; then
echo "Domain $domain doesn't exist"
return 1
fi
USER=$user
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/func/domain.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
if [ ! -d "/home/$user" ]; then
echo "User $user doesn't exist"
return 1
fi
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
echo "Domain $domain doesn't have a public_html directory"
return 1
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
cd "/home/$user/web/$domain/public_html"
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
return 0

View file

@ -35,6 +35,9 @@ if [ "$owner" = "$user" ]; then
exit
fi
USER_DATA=$VESTA/data/users/$owner
is_object_unsuspended 'user' 'USER' "$owner"
USER_DATA=$VESTA/data/users/$user
#----------------------------------------------------------#
# Action #
@ -57,11 +60,11 @@ if [ ! -z "$web_data" ]; then
ssl_key=$VESTA/data/users/$owner/ssl/$domain.key
ssl_ca=$VESTA/data/users/$owner/ssl/$domain.ca
ssl_pem=$VESTA/data/users/$owner/ssl/$domain.pem
mv $ssl_crt $VESTA/data/users/$user/ssl/
mv $ssl_key $VESTA/data/users/$user/ssl/
mv $ssl_ca $VESTA/data/users/$user/ssl/ >> /dev/null 2>&1
mv $ssl_pem $VESTA/data/users/$user/ssl/ >> /dev/null 2>&1
rm -f $HOMEDIR/$owner/conf/web/ssl.$domain.*
cp $ssl_crt $VESTA/data/users/$user/ssl/
cp $ssl_key $VESTA/data/users/$user/ssl/
cp $ssl_ca $VESTA/data/users/$user/ssl/ > /dev/null 2>&1
cp $ssl_pem $VESTA/data/users/$user/ssl/ > /dev/null 2>&1
# rm -f $HOMEDIR/$owner/conf/web/ssl.$domain.*
fi
# Check ftp user account
@ -79,10 +82,23 @@ if [ ! -z "$web_data" ]; then
# Move data
mv $HOMEDIR/$owner/web/$domain $HOMEDIR/$user/web/
if [ -d "/hdd/home/$owner/web/$domain" ]; then
$BIN/v-move-folder-and-make-symlink /hdd/home/$owner/web/$domain /hdd/home/$user/web/$domain
fi
# Change ownership
find $HOMEDIR/$user/web/$domain -user $owner \
-exec chown -h $user:$user {} \;
if [ "$SSL" = 'yes' ]; then
sleep 10
rm $ssl_crt
rm $ssl_key
rm $ssl_ca > /dev/null 2>&1
rm $ssl_pem > /dev/null 2>&1
rm -f $HOMEDIR/$owner/conf/web/ssl.$domain.*
fi
# Rebuild config
$BIN/v-unsuspend-web-domain $user $domain no >> /dev/null 2>&1
$BIN/v-rebuild-web-domains $owner no
@ -140,6 +156,10 @@ if [ ! -z "$mail_data" ]; then
# Move data
mv $HOMEDIR/$owner/mail/$domain $HOMEDIR/$user/mail/
if [ -d "/hdd/home/$owner/mail/$domain" ]; then
$BIN/v-move-folder-and-make-symlink /hdd/home/$owner/mail/$domain /hdd/home/$user/mail/$domain
fi
# Change ownership
find $HOMEDIR/$user/mail/$domain -user $owner \
-exec chown -h $user {} \;

View file

@ -62,6 +62,8 @@ str="RULE='$rule' ACTION='$action' PROTOCOL='$protocol' PORT='$port_ext'"
str="$str IP='$ip' COMMENT='$comment' SUSPENDED='no'"
str="$str TIME='$time' DATE='$date'"
oldvalues=$(grep "RULE='$rule'" $VESTA/data/firewall/rules.conf)
# Deleting old rule
sed -i "/RULE='$rule' /d" $VESTA/data/firewall/rules.conf
@ -74,6 +76,14 @@ sort_fw_rules
# Updating system firewall
$BIN/v-update-firewall
if [ "$WEB_SYSTEM" == 'nginx' ] || [ "$PROXY_SYSTEM" == 'nginx' ]; then
if [ "$port_ext" == "80,443" ] && [ "$action" == "DROP" ]; then
NEWIP=$ip
parse_object_kv_list_non_eval "$oldvalues"
sed -i "s|$IP|$NEWIP|g" /etc/nginx/conf.d/block-firewall.conf
systemctl restart nginx
fi
fi
#----------------------------------------------------------#
# Vesta #

View file

@ -28,6 +28,7 @@ PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin"
check_args '2' "$#" 'KEY VALUE'
is_format_valid 'key'
format_no_quotes "$value" 'value'
#----------------------------------------------------------#
# Action #

View file

@ -31,18 +31,16 @@ is_format_valid 'domain'
hostname $domain
# RHEL/CentOS
if [ -e "/etc/redhat-release" ]; then
if [ -d "/etc/sysconfig" ]; then
# RHEL/CentOS/Amazon
touch /etc/sysconfig/network
if [ -z "$(grep HOSTNAME /etc/sysconfig/network)" ]; then
echo "HOSTNAME='$domain'" >> /etc/sysconfig/network
else
sed -i "s/HOSTNAME=.*/HOSTNAME='$domain'/" /etc/sysconfig/network
fi
fi
# Debian/Ubuntu
if [ ! -e "/etc/redhat-release" ]; then
else
# Debian/Ubuntu
echo "$domain" > /etc/hostname
fi

View file

@ -34,48 +34,72 @@ is_ip_valid "$ip"
# Action #
#----------------------------------------------------------#
# Changing nat ip
# Updating IP
if [ -z "$(grep NAT= $VESTA/data/ips/$ip)" ]; then
sed -i "s/^TIME/NAT='$nat_ip'\nTIME/g" $VESTA/data/ips/$ip
old=''
new=$nat_ip
else
update_ip_value '$NAT' "$nat_ip"
fi
# Check ftp system
if [ "$FTP_SYSTEM" = 'vsftpd' ]; then
# Find configuration
if [ -e '/etc/vsftpd/vsftpd.conf' ]; then
conf='/etc/vsftpd/vsftpd.conf'
fi
if [ -e '/etc/vsftpd.conf' ]; then
conf='/etc/vsftpd.conf'
fi
# Update config
if [ -z "$(grep pasv_address $conf)" ]; then
if [ ! -z "$nat_ip" ]; then
echo "pasv_address=$nat_ip" >> $conf
fi
else
if [ ! -z "$nat_ip" ]; then
sed -i "s/pasv_address=.*/pasv_address='$nat_ip'/g" $conf
else
sed -i "/pasv_address/d" $conf
fi
old=$(get_ip_value '$NAT')
new=$nat_ip
sed -i "s/NAT=.*/NAT='$new'/" $VESTA/data/ips/$ip
if [ -z "$nat_ip" ]; then
new=$ip
fi
fi
# Updating WEB configs
if [ ! -z "$old" ] && [ ! -z "$WEB_SYSTEM" ]; then
sed -i "s/$old/$new/" $VESTA/data/users/*/web.conf
for user in $(ls $VESTA/data/users/); do
$BIN/v-rebuild-web-domains $user no
done
$BIN/v-restart-dns $restart
fi
# Updating DNS configs
if [ ! -z "$old" ] && [ ! -z "$DNS_SYSTEM" ]; then
sed -i "s/$old/$new/" $VESTA/data/users/*/dns.conf
sed -i "s/$old/$new/" $VESTA/data/users/*/dns/*.conf
for user in $(ls $VESTA/data/users/); do
$BIN/v-rebuild-dns-domains $user no
done
$BIN/v-restart-dns $restart
fi
# Updating FTP
if [ ! -z "$old" ] && [ ! -z "$FTP_SYSTEM" ]; then
conf=$(find /etc -name $FTP_SYSTEM.conf)
if [ -e "$conf" ]; then
sed -i "s/$old/$new/g" $conf
if [ "$FTP_SYSTEM" = 'vsftpd' ]; then
check_pasv=$(grep pasv_address $conf)
if [ -z "$check_pasv" ] && [ ! -z "$nat_ip" ]; then
echo "pasv_address=$nat_ip" >> $conf
fi
if [ ! -z "$check_pasv" ] && [ -z "$nat_ip" ]; then
sed -i "/pasv_address/d" $conf
fi
if [ ! -z "$check_pasv" ] && [ ! -z "$nat_ip" ]; then
sed -i "s/pasv_address=.*/pasv_address='$nat_ip'/g" $conf
fi
fi
fi
$BIN/v-restart-ftp $restart
fi
# Updating firewall
if [ ! -z "$old" ] && [ ! -z "$FIREWALL_SYSTEM" ]; then
sed -i "s/$old/$new/g" $VESTA/data/firewall/*.conf
$BIN/v-update-firewall
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Restart ftp server
$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'
log_event "$OK" "$ARGUMENTS"

View file

@ -95,13 +95,21 @@ if [ "$update" = 'yes' ] && [ "$restart" != 'no' ]; then
if [ "$service" = 'php' ]; then
if [ "$WEB_SYSTEM" = "nginx" ]; then
service=$(ls /etc/init.d/php*fpm* |cut -f 4 -d / |sed -n 1p)
if [ $(ps --no-headers -o comm 1) == systemd ]; then
service=$(systemctl | grep -o -E "php.*fpm.*\.service")
service=${service//.service/}
else
service=$(ls /etc/init.d/php*fpm* |cut -f 4 -d /)
fi
else
service=$WEB_SYSTEM
fi
fi
service $service restart >/dev/null 2>&1
for single_service in $service; do
service $single_service restart >/dev/null 2>&1
done <<< "$service"
if [ $? -ne 0 ]; then
for config in $dst; do
cat $config.vst.back > $config

View file

@ -16,6 +16,7 @@ force=$3
# Includes
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
source $VESTA/conf/vesta.conf
is_package_avalable() {
@ -23,7 +24,7 @@ is_package_avalable() {
usr_data=$(cat $USER_DATA/user.conf)
IFS=$'\n'
for key in $usr_data; do
eval ${key%%=*}=${key#*=}
parse_object_kv_list_non_eval $key
done
WEB_DOMAINS='0'
@ -35,7 +36,7 @@ is_package_avalable() {
pkg_data=$(cat $VESTA/data/packages/$package.pkg |grep -v TIME |\
grep -v DATE)
eval $pkg_data
parse_object_kv_list_non_eval $pkg_data
# Checking usage agains package limits
if [ "$WEB_DOMAINS" != 'unlimited' ]; then
@ -73,11 +74,15 @@ is_package_avalable() {
check_result $E_LIMIT "Package doesn't cover BANDWIDTH usage"
fi
fi
is_web_template_valid $WEB_TEMPLATE
is_dns_template_valid $DNS_TEMPLATE
is_proxy_template_valid $PROXY_TEMPLATE
}
change_user_package() {
eval $(cat $USER_DATA/user.conf)
eval $(cat $VESTA/data/packages/$package.pkg |egrep -v "TIME|DATE")
parse_object_kv_list_non_eval $(cat $USER_DATA/user.conf)
parse_object_kv_list_non_eval $(cat $VESTA/data/packages/$package.pkg |egrep -v "TIME|DATE")
echo "FNAME='$FNAME'
LNAME='$LNAME'
PACKAGE='$package'

View file

@ -13,6 +13,10 @@
user=$1
password=$2; HIDE=2
# Importing system enviroment as we run this script
# mostly by cron wich not read it by itself
source /etc/profile
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
@ -22,6 +26,9 @@ source $VESTA/conf/vesta.conf
# Verifications #
#----------------------------------------------------------#
if [ "$user" = "root" ]; then
check_result $E_FORBIDEN "Changing root password is forbiden"
fi
check_args '2' "$#" 'USER PASSWORD'
is_format_valid 'user'
is_object_valid 'user' 'USER' "$user"
@ -37,6 +44,10 @@ is_password_valid
echo "$user:$password" | /usr/sbin/chpasswd
md5=$(awk -v user=$user -F : 'user == $1 {print $2}' /etc/shadow)
if [ "$user" = 'admin' ] && [ -e "$VESTA/web/reset.admin" ]; then
rm -f $VESTA/web/reset.admin
fi
#----------------------------------------------------------#
# Vesta #

60
bin/v-change-user-rkey Normal file
View file

@ -0,0 +1,60 @@
#!/bin/bash
# info: change user rkey
# options: USER
#
# The function changes user's RKEY value.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument definition
user=$1
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
if [ "$user" = "root" ]; then
check_result $E_FORBIDEN "Changing root password is forbiden"
fi
check_args '1' "$#" 'USER'
is_format_valid 'user'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
hash=$(generate_password)
d=$(date +%s)
# Changing RKEY value
update_user_value "$user" '$RKEY' "$hash"
#check if RKEYEXP exists
if [ -z "$(grep RKEYEXP $USER_DATA/user.conf)" ]; then
sed -i "s/^RKEY/RKEYEXP='$d'\nRKEY/g" $USER_DATA/user.conf
else
update_user_value "$user" '$RKEYEXP' "$d"
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_history "changed rkey"
log_event "$OK" "$ARGUMENTS"
exit

61
bin/v-change-vesta-port Executable file
View file

@ -0,0 +1,61 @@
#!/bin/bash
# info: change vesta port
# options: port
#
# Function will change vesta port
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument definition
port=$1
if [ -z "$VESTA" ]; then
VESTA="/usr/local/vesta"
fi
# Get current vesta port by reading nginx.conf
oldport=$(grep 'listen' $VESTA/nginx/conf/nginx.conf | awk '{print $2}' | sed "s|;||")
if [ -z "$oldport" ]; then
oldport=8083
fi
# Includes
source $VESTA/func/main.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
# Checking permissions
if [ "$(id -u)" != '0' ]; then
check_result $E_FORBIDEN "You must be root to execute this script"
fi
check_args '1' "$#" 'PORT'
is_int_format_valid "$port" 'port number'
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
sed -i "s|$oldport;|$port;|g" $VESTA/nginx/conf/nginx.conf
sed -i "s|$oldport ssl;|$port ssl;|g" $VESTA/nginx/conf/nginx.conf
if [ -f "/etc/roundcube/plugins/password/config.inc.php" ]; then
sed -i "s|'$oldport'|'$port'|g" /etc/roundcube/plugins/password/config.inc.php
fi
sed -i "s|'$oldport'|'$port'|g" $VESTA/data/firewall/rules.conf
$VESTA/bin/v-update-firewall
systemctl restart fail2ban.service
sed -i "s| $oldport | $port |g" /etc/iptables.rules
systemctl restart vesta
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit 0;

View file

@ -49,7 +49,7 @@ is_ip_valid "$ip" "$user"
# Preparing variables for vhost replace
get_domain_values 'web'
old=$(get_real_ip $IP)
new=$ip
new=$(get_real_ip $ip)
# Replacing vhost
replace_web_config "$WEB_SYSTEM" "$TPL.tpl"

View file

@ -14,8 +14,7 @@ user=$1
domain=$2
domain_idn=$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"
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,woff,woff2"
extentions=${4-$default_extentions}
restart="$5"

View file

@ -0,0 +1,201 @@
#!/bin/bash
# info: interactively delete or change WordPress admin passwords for a given domain
# options: DOMAIN
#
# d → delete user (with content reassignment)
# c → change password (random 10-char alnum)
# s → skip
# x → exit
#----------------------------------------------------------#
# Variable & Function #
#----------------------------------------------------------#
[ "$(whoami)" != "root" ] && { echo "You must be root to run this command."; exit 1; }
source /etc/profile
DOMAIN="$1"
[ -z "$DOMAIN" ] && { echo "Usage: v-change-wp-admins-pass DOMAIN"; exit 1; }
USER="$(/usr/local/vesta/bin/v-search-domain-owner "$DOMAIN")"
[ -z "$USER" ] && { echo "Domain $DOMAIN does not exist."; exit 1; }
WP_PATH="/home/$USER/web/$DOMAIN/public_html"
[ ! -f "$WP_PATH/wp-config.php" ] && { echo "WordPress is not installed on this domain."; exit 1; }
# WP-CLI wrapper
if [ ! -z "$PHP" ]; then
WP_RUN="PHP=$PHP /usr/local/vesta/bin/v-run-wp-cli $DOMAIN --skip-plugins --skip-themes"
else
WP_RUN="/usr/local/vesta/bin/v-run-wp-cli $DOMAIN --skip-plugins --skip-themes"
fi
# random 10-char password
gen_pass() { tr -dc 'A-Za-z0-9' </dev/urandom | head -c 10; }
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
cd "$WP_PATH" || exit 1
echo
echo "WordPress administrators for $DOMAIN:"
echo "-------------------------------------"
if [ -f /home/$USER/web/$DOMAIN/wp-admin-password-change.txt ]; then
rm /home/$USER/web/$DOMAIN/wp-admin-password-change.txt
fi
RUN="$WP_RUN user list --role=administrator --fields=ID,user_login,user_email --format=csv --skip-plugins --skip-themes"
ADMIN_LIST_CSV=$(eval "$RUN")
return_code=$?
if [ $return_code -ne 0 ]; then
echo "WP-CLI error:"
echo "return code: $return_code"
cat /home/$USER/web/$DOMAIN/wp-cli-error.log
exit $return_code
fi
ADMIN_LIST_CSV=$(echo "$ADMIN_LIST_CSV" | tail -n +2)
[ -z "$ADMIN_LIST_CSV" ] && { echo "No administrator accounts found."; exit 0; }
DEFAULT_USER=""
printf "%-6s %-20s %s\n" "ID" "Username" "Email"
while IFS=',' read -r PID PLOGIN PEMAIL; do
printf "%-6s %-20s %s\n" "$PID" "$PLOGIN" "$PEMAIL"
if [ "$PID" = "1" ]; then
DEFAULT_USER="$PLOGIN"
fi
done <<< "$ADMIN_LIST_CSV"
echo
echo "For each admin choose: (d) delete, (c) change password, (s) skip, (x) exit."
# interactive loop
while IFS=',' read -r ID LOGIN EMAIL; do
[ -n "$EMAIL" ] && TARGET="$LOGIN <$EMAIL>" || TARGET="$LOGIN"
while true; do
echo "-------------------------------------"
read -r -p "Action for \"$TARGET\" [d/c/s/x]? " ACT < /dev/tty
skip=0;
case "$ACT" in
[Dd]* )
# read -r -p "Really DELETE \"$TARGET\" ? (y/n, default: y) " CONF < /dev/tty
CONF="y"
if [[ ! "$CONF" =~ ^[Nn]$ ]]; then
# build an array of OTHER admin usernames
mapfile -t OTHER_USERS < <(echo "$ADMIN_LIST_CSV" | awk -F',' -v cur="$ID" '$1!=cur {print $2}')
if [ "${#OTHER_USERS[@]}" -eq 0 ]; then
echo "Cannot delete the only administrator account."
break
fi
if [ "$DEFAULT_USER" = "" ]; then
DEFAULT_USER="${OTHER_USERS[0]}"
fi
echo "Available admin usernames for reassignment: ${OTHER_USERS[*]}"
while true; do
read -r -p "Reassign content to which username? [default: $DEFAULT_USER, s: skip] " REASSIGN < /dev/tty
REASSIGN=${REASSIGN:-$DEFAULT_USER}
DEFAULT_USER=$REASSIGN
if printf '%s\n' "${OTHER_USERS[@]}" | grep -qx "$REASSIGN"; then
break
fi
if [[ "$REASSIGN" =~ ^[Ss]$ ]]; then
echo "Skipping reassignment."
skip=1;
break
fi
if [[ "$REASSIGN" =~ ^[0-9]+$ ]]; then
break
fi
echo "Invalid username. Please choose one of: ${OTHER_USERS[*]}"
done
if [ $skip -eq 1 ]; then
break
fi
# delete by username, reassign by username
RUN="$WP_RUN user delete $ID --reassign=$REASSIGN --yes --skip-plugins --skip-themes"
eval "$RUN"
if [ $? -eq 0 ]; then
echo "$TARGET deleted (content reassigned to $REASSIGN)."
else
cat /home/$USER/web/$DOMAIN/wp-cli-error.log
echo "Failed to delete $TARGET."
fi
else
echo "Deletion cancelled."
fi
break
;;
[Cc]* )
NEW_PASS=$(gen_pass)
RUN="$WP_RUN user update $ID --user_pass=$NEW_PASS --skip-plugins --skip-themes"
eval "$RUN"
if [ $? -eq 0 ]; then
echo "Password for username '$TARGET' changed to: $NEW_PASS"
echo "Password for username '$TARGET' changed to: $NEW_PASS" >> /home/$USER/web/$DOMAIN/wp-admin-password-change.txt
chown $USER:$USER /home/$USER/web/$DOMAIN/wp-admin-password-change.txt
chmod 600 /home/$USER/web/$DOMAIN/wp-admin-password-change.txt
else
cat /home/$USER/web/$DOMAIN/wp-cli-error.log
echo "Failed to change password for $TARGET."
fi
break
;;
[Ss]* )
echo "Skipping $TARGET."
break
;;
[Xx]* )
echo "Exiting."
exit 0
;;
* ) echo "Please answer d, c, s, or x." ;;
esac
done
done <<< "$ADMIN_LIST_CSV"
if [ -f /home/$USER/web/$DOMAIN/wp-admin-password-change.txt ]; then
echo ""
echo ""
echo "-------------------------------------"
echo "For website $DOMAIN - new wp-admin passwords have been set."
echo "-------------------------------------"
cat /home/$USER/web/$DOMAIN/wp-admin-password-change.txt
echo "-------------------------------------"
echo ""
echo ""
read -r -p "Do you want to save the new passwords to a file /home/$USER/web/$DOMAIN/wp-admin-password-change.txt ? (y/n, default: n) " SAVE_PASSWORDS < /dev/tty
if [ -z "$SAVE_PASSWORDS" ]; then
SAVE_PASSWORDS="n"
fi
if [[ $SAVE_PASSWORDS =~ ^[Nn]$ ]]; then
rm /home/$USER/web/$DOMAIN/wp-admin-password-change.txt
fi
fi
#----------------------------------------------------------#
# flush cache and refresh all security salts #
#----------------------------------------------------------#
echo "-------------------------------------"
echo
echo "Flushing cache and refreshing salts..."
RUN="$WP_RUN cache flush"
eval "$RUN"
RUN="$WP_RUN config shuffle-salts WP_CACHE_KEY_SALT --force"
eval "$RUN"
RUN="$WP_RUN config shuffle-salts"
eval "$RUN"
echo "Cache flushed and salts refreshed."
echo
echo "Done."
exit 0

45
bin/v-check-api-key Executable file
View file

@ -0,0 +1,45 @@
#!/bin/bash
# info: check api key
# options: KEY
#
# The function checks a key file in /usr/local/vesta/data/keys/
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
if [ -z "$1" ]; then
echo "Error: key missmatch"
exit 9
fi
key=$(basename $1)
ip=${2-127.0.0.1}
time_n_date=$(date +'%T %F')
time=$(echo "$time_n_date" |cut -f 1 -d \ )
date=$(echo "$time_n_date" |cut -f 2 -d \ )
if [[ -z $key || ${#key} -lt 16 ]]; then
echo "Error: not valid keys"
echo "$date $time api $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
if [ ! -e $VESTA/data/keys/$key ]; then
echo "Error: key missmatch"
echo "$date $time api $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
echo "$date $time api $ip successfully launched" >> $VESTA/log/auth.log
exit

View file

@ -1,162 +0,0 @@
#!/bin/bash
# info: check letsencrypt domain
# options: USER DOMAIN
#
# The function check and validates domain with LetsEncript
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument definition
user=$1
domain=$2
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
# encode base64
encode_base64() {
cat |base64 |tr '+/' '-_' |tr -d '\r\n='
}
# Additional argument formatting
format_domain_idn
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'USER DOMAIN'
is_format_valid 'user' 'domain'
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
if [ ! -e "$USER_DATA/ssl/le.conf" ]; then
check_result $E_NOTEXIST "LetsEncrypt key doesn't exist"
fi
rdomain=$(egrep "'$domain'|'$domain,|,$domain,|,$domain'" $USER_DATA/web.conf)
if [ -z "$rdomain" ]; then
check_result $E_NOTEXIST "domain $domain doesn't exist"
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
source $USER_DATA/ssl/le.conf
api='https://acme-v01.api.letsencrypt.org'
r_domain=$(echo "$rdomain" |cut -f 2 -d \')
key="$USER_DATA/ssl/user.key"
exponent="$EXPONENT"
modulus="$MODULUS"
thumb="$THUMB"
# Defining JWK header
header='{"e":"'$exponent'","kty":"RSA","n":"'"$modulus"'"}'
header='{"alg":"RS256","jwk":'"$header"'}'
# Requesting nonce
nonce=$(curl -s -I "$api/directory" |grep Nonce |cut -f2 -d \ |tr -d '\r\n')
protected=$(echo -n '{"nonce":"'"$nonce"'"}' |encode_base64)
# Defining ACME query (request challenge)
query='{"resource":"new-authz","identifier"'
query=$query':{"type":"dns","value":"'"$domain_idn"'"}}'
payload=$(echo -n "$query" |encode_base64)
signature=$(printf "%s" "$protected.$payload" |\
openssl dgst -sha256 -binary -sign "$key" |encode_base64)
data='{"header":'"$header"',"protected":"'"$protected"'",'
data=$data'"payload":"'"$payload"'","signature":"'"$signature"'"}'
# Sending request to LetsEncrypt API
answer=$(curl -s -i -d "$data" "$api/acme/new-authz")
# Checking http answer status
status=$(echo "$answer" |grep HTTP/1.1 |tail -n1 |cut -f2 -d ' ')
if [[ "$status" -ne "201" ]]; then
check_result $E_CONNECT "LetsEncrypt challenge request $status"
fi
# Parsing domain nonce,token and uri
nonce=$(echo "$answer" |grep Nonce |cut -f2 -d \ |tr -d '\r\n')
protected=$(echo -n '{"nonce":"'"$nonce"'"}' |encode_base64)
token=$(echo "$answer" |grep -A 3 http-01 |grep token |cut -f 4 -d \")
uri=$(echo "$answer" |grep -A 3 http-01 |grep uri |cut -f 4 -d \")
# Adding location wrapper for request challenge
if [ "$WEB_SYSTEM" = 'nginx' ] || [ "$PROXY_SYSTEM" = 'nginx' ]; then
conf="$HOMEDIR/$user/conf/web/nginx.$r_domain.conf_letsencrypt"
sconf="$HOMEDIR/$user/conf/web/snginx.$r_domain.conf_letsencrypt"
if [ ! -e "$conf" ]; then
echo 'location ~ "^/\.well-known/acme-challenge/(.*)$" {' > $conf
echo ' default_type text/plain;' >> $conf
echo ' return 200 "$1.'$thumb'";' >> $conf
echo '}' >> $conf
fi
if [ ! -e "$sconf" ]; then
ln -s "$conf" "$sconf"
fi
else
acme="$HOMEDIR/$user/web/$r_domain/public_html/.well-known/acme-challenge"
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
# Restarting web server
if [ -z "$PROXY_SYSTEM" ]; then
$BIN/v-restart-web
check_result $? "Proxy restart failed" >/dev/null
else
$BIN/v-restart-proxy
$BIN/v-restart-web
check_result $? "Web restart failed" >/dev/null
fi
# Defining ACME query (request validation)
query='{"resource":"challenge","type":"http-01","keyAuthorization"'
query=$query':"'$token.$thumb'","token":"'$token'"}'
payload=$(echo -n "$query" |encode_base64)
signature=$(printf "%s" "$protected.$payload" |\
openssl dgst -sha256 -binary -sign "$key" |encode_base64)
data='{"header":'"$header"',"protected":"'"$protected"'",'
data=$data'"payload":"'"$payload"'","signature":"'"$signature"'"}'
# Sending request to LetsEncrypt API
answer=$(curl -s -i -d "$data" "$uri")
# Checking domain validation status
i=1
status=$(echo $answer |tr ',' '\n' |grep status |cut -f 4 -d \")
location=$(echo "$answer" |grep Location: |awk '{print $2}' |tr -d '\r\n')
while [ "$status" = 'pending' ]; do
answer=$(curl -s -i "$location")
detail="$(echo $answer |tr ',' '\n' |grep detail |cut -f 4 -d \")"
status=$(echo "$answer" |tr ',' '\n' |grep status |cut -f 4 -d \")
sleep 1
i=$((i + 1))
if [ "$i" -gt 60 ]; then
check_result $E_CONNECT "$detail"
fi
done
if [ "$status" = 'invalid' ]; then
detail="$(echo $answer |tr ',' '\n' |grep detail |cut -f 4 -d \")"
check_result $E_CONNECT "$detail"
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit

100
bin/v-check-user-hash Executable file
View file

@ -0,0 +1,100 @@
#!/bin/bash
# info: check user hash
# options: USER HASH [IP]
#
# The function verifies user hash
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument definition
user=$1
hash=$2; HIDE=2
ip=${3-127.0.0.1}
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
time_n_date=$(date +'%T %F')
time=$(echo "$time_n_date" |cut -f 1 -d \ )
date=$(echo "$time_n_date" |cut -f 2 -d \ )
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'USER HASH'
is_format_valid 'user'
# Checking user
if [ ! -d "$VESTA/data/users/$user" ] && [ "$user" != 'root' ]; then
echo "Error: password missmatch"
echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
# Checking user hash
is_hash_valid
# Checking empty hash
if [[ -z "$hash" ]]; then
echo "Error: password missmatch"
echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Parsing user's salt
shadow=$(grep "^$user:" /etc/shadow | cut -f 2 -d :)
if echo "$shadow" | grep -qE '^\$[0-9a-z]+\$[^\$]+\$'
then
salt=$(echo "$shadow" |cut -f 3 -d \$)
method=$(echo "$shadow" |cut -f 2 -d \$)
if [ "$method" -eq '1' ]; then
method='md5'
elif [ "$method" -eq '6' ]; then
method='sha-512'
else
echo "Error: password missmatch"
echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
else
salt=${shadow:0:2}
method='des'
fi
# Checking salt
if [ -z "$salt" ]; then
echo "Error: password missmatch"
echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
# Comparing hashes
if [[ "$shadow" != "$hash" ]]; then
echo "Error: password missmatch"
echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
echo "$date $time $user $ip successfully logged in" >> $VESTA/log/auth.log
exit

View file

@ -82,7 +82,8 @@ if [ -z "$salt" ]; then
fi
# Generating hash
hash=$($BIN/v-generate-password-hash $method $salt <<< $password)
set -o noglob
hash=$($BIN/v-generate-password-hash $method $salt <<< "$password")
if [[ -z "$hash" ]]; then
echo "Error: password missmatch"
echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log

View file

@ -42,7 +42,7 @@ for str in $modules; do
license=$(echo "$str" |cut -f 2 -d \')
if [ ! -z "$license" ]; then
v_host='https://vestacp.com/checkout'
answer=$(curl -s "$v_host/check.php?licence_key=$license&module=$module")
answer=$(curl --max-time 60 -s "$v_host/check.php?licence_key=$license&module=$module")
check_result $? "cant' connect to vestacp.com " 0
echo "$module $license $answer"
if [[ "$answer" != '0' ]]; then

133
bin/v-clean-garbage Normal file
View file

@ -0,0 +1,133 @@
#!/bin/bash
# info: Clean all unnecessary files like logs
# options: NONE
#
# The function is cleaning all unnecessary files like logs
#----------------------------------------------------------#
# Verifications & Variable & Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
echo "===== Before cleaning ====="
df -h
echo "==========================="
# Includes
source /usr/local/vesta/func/main.sh
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# turn off tailf watcher process
if [ -f "/usr/local/bin/tailf_apache_error.php" ]; then
kill $(ps aux | grep 'tailf_apache_error' | grep -v "grep tailf_apache_error" | awk '{print $2}')
fi
if [ -f "/usr/local/bin/tailf_exim.php" ]; then
kill $(ps aux | grep 'tailf_exim' | grep -v "grep tailf_exim" | awk '{print $2}')
fi
find /tmp/ -type f -mtime +7 -delete
rm /var/backups/* > /dev/null 2>&1
rm /var/cache/apt/archives/* > /dev/null 2>&1
cd /var/log
truncate -s 0 xferlog lastlog faillog btmp syslog;
find /var/log/ -name "*.log" -not -path "/var/log/apt/*" -type f -exec truncate -s 0 {} \;
find /var/log/ -name "*.err" -type f -exec truncate -s 0 {} \;
find /var/log/ -name "errors" -type f -exec truncate -s 0 {} \;
find /var/log/ -name "*.info" -type f -exec truncate -s 0 {} \;
find /var/log/ -name "*.warn" -type f -exec truncate -s 0 {} \;
find /var/log/ -type f -name "*.1" -delete
find /var/log/ -type f -name "*.2" -delete
find /var/log/ -type f -name "*.3" -delete
find /var/log/ -type f -name "*.4" -delete
find /var/log/ -type f -name "*.5" -delete
find /var/log/ -type f -name "*.6" -delete
find /var/log/ -type f -name "*.7" -delete
find /var/log/ -type f -name "*.8" -delete
find /var/log/ -type f -name "*.9" -delete
find /var/log/ -name "*.gz" -type f -delete
find /usr/local/vesta/log/ -type f -name "*.log" -exec truncate -s 0 {} \;
find /usr/local/vesta/log/ -type f -not -name "*.log" -delete
find /var/log/exim4/ -type f -exec truncate -s 0 {} \;
truncate -s 0 /*.log > /dev/null 2>&1
rm /panic-*.log > /dev/null 2>&1
rm /var/log/panic-*.log > /dev/null 2>&1
clean_home() {
nice -n 19 ionice -c 3 find $1/*/tmp/ -type f -delete > /dev/null 2>&1
find $1/ -name '.wp-cli' -type d -exec rm -rf {} \; > /dev/null 2>&1
find $1/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1
find $1/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1
find $1/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1
find $1/*/web/*/public_html/wp-content/wpvividbackups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1
find $1/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1
find $1/*/web/*/public_html/wp-content/plugins/ezpz-one-click-backup/backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1
find $1/*/web/*/public_html/wp-content/backups-dup-lite/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1
find $1/*/web/*/public_html/wp-content/cache/ -type f -not -name ".htaccess" -delete > /dev/null 2>&1
find $1/*/web/*/public_html/ -type f -name "*.wpress" -delete > /dev/null 2>&1
nice -n 19 ionice -c 3 find $1/*/tmp/ -type f -mtime +1 -delete > /dev/null 2>&1
nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \;
nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \;
nice -n 19 ionice -c 3 find $1/ -type f -name "*.log" -exec truncate -s 0 {} \;
}
clean_home "/home"
if [ -d "/hdd/home" ]; then
clean_home "/hdd/home"
fi
# Cleaning fail2ban database
fail2ban_running=$(/usr/local/vesta/bin/v-list-sys-services | grep 'fail2ban' | grep -c 'running')
if [ $fail2ban_running -eq 1 ]; then
systemctl stop fail2ban
fi
if [ -f "/var/lib/fail2ban/fail2ban.sqlite3" ]; then
rm /var/lib/fail2ban/fail2ban.sqlite3
if [ -f "/etc/nginx/conf.d/block.conf" ]; then
truncate -s 0 /etc/nginx/conf.d/block.conf
nginx_running=$(/usr/local/vesta/bin/v-list-sys-services | grep 'nginx' | grep -c 'running')
if [ $nginx_running -eq 1 ]; then
systemctl restart nginx
fi
fi
fi
if [ $fail2ban_running -eq 1 ]; then
systemctl start fail2ban
fi
# turn on tailf watcher process
if [ -f "/usr/local/bin/tailf_apache_error.php" ]; then
nohup php /usr/local/bin/tailf_apache_error.php > /var/log/tailf_apache_error.log 2>&1 &
fi
if [ -f "/usr/local/bin/tailf_exim.php" ]; then
nohup php /usr/local/bin/tailf_exim.php > /var/log/tailf_exim.log 2>&1 &
fi
exim_installed=$(/usr/local/vesta/bin/v-list-sys-services | grep -c 'exim')
if [ $exim_installed -gt 0 ]; then
systemctl restart exim4
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
echo ""
echo "***** Garbage cleaned *****"
echo ""
echo "===== After cleaning ======"
df -h
echo "==========================="
log_event "$OK" "$ARGUMENTS"
exit

59
bin/v-clear-fail2ban Normal file
View file

@ -0,0 +1,59 @@
#!/bin/bash
# info: Clean fail2ban database
# options: NONE
#
# The function is cleaning fail2ban database
#----------------------------------------------------------#
# Verifications & Variable & Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# check if fail2ban is installed
fail2ban_installed=$(/usr/local/vesta/bin/v-list-sys-services | grep -c 'fail2ban')
if [ $fail2ban_installed -eq 0 ]; then
echo "Fail2ban is not installed"
exit 1
fi
# Includes
source /usr/local/vesta/func/main.sh
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Cleaning fail2ban database
fail2ban_running=$(/usr/local/vesta/bin/v-list-sys-services | grep 'fail2ban' | grep -c 'running')
if [ $fail2ban_running -eq 1 ]; then
echo "== Stopping fail2ban"
systemctl stop fail2ban
fi
if [ -f "/var/lib/fail2ban/fail2ban.sqlite3" ]; then
echo "== Cleaning fail2ban database"
rm /var/lib/fail2ban/fail2ban.sqlite3
if [ -f "/etc/nginx/conf.d/block.conf" ]; then
echo "== Cleaning nginx block.conf"
truncate -s 0 /etc/nginx/conf.d/block.conf
nginx_running=$(/usr/local/vesta/bin/v-list-sys-services | grep 'nginx' | grep -c 'running')
if [ $nginx_running -eq 1 ]; then
echo "== Restarting nginx"
systemctl restart nginx
fi
fi
fi
if [ $fail2ban_running -eq 1 ]; then
echo "== Starting fail2ban"
systemctl start fail2ban
fi
echo "== Done, fail2ban database cleaned"
log_event "$OK" "$ARGUMENTS"
exit

467
bin/v-clone-website Normal file
View file

@ -0,0 +1,467 @@
#!/bin/bash
# info: Migration tool that will copy whole site from one (sub)domain to another (sub)domain (on the same server)
# options: FROM_DOMAIN TO_DOMAIN
#
# Migration tool that will copy whole site from one (sub)domain to another (sub)domain (on the same server), changing URL in database (it's careful with serialized arrays in database).
# Useful for making staging copy in one command-line.
# Automatic detection of WordPress, automaticaly read DB user, DB name, DB pass, automatic cloning to new database, automatic changing wp-config.php file.
if [ $# -lt 2 ]; then
echo "USAGE: v-clone-website FROM_DOMAIN TO_DOMAIN"
echo "Available parameters:"
echo "--DATABASE_SUFIX=... (will be added to database name)"
echo "--TO_DATABASE=... (this will override --TO_DATABASE_NAME, --TO_DATABASE_USERNAME and --DATABASE_SUFIX)"
echo "--FROM_DATABASE_NAME=..."
echo "--FROM_DATABASE_USERNAME=..."
echo "--FROM_DATABASE_PASSWORD=..."
echo "--CONFIG_FILE=..."
echo "--TO_USER=..."
echo "--TO_DATABASE_NAME=..."
echo "--TO_DATABASE_USERNAME=..."
echo "--TO_DATABASE_PASSWORD=..."
echo "--SITE_SUBFOLDER=..."
echo "--EXCLUDE_UPLOADS=1 (or do not set it)"
exit 1
fi
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
FROM_DOMAIN=$1
TO_DOMAIN=$2
user=$(/usr/local/vesta/bin/v-search-domain-owner "$FROM_DOMAIN")
if [ -z "$user" ]; then
echo "Error: domain $FROM_DOMAIN does not exists"
exit 2
fi
# Importing system environment
source /etc/profile
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/func/db.sh
source /usr/local/vesta/conf/vesta.conf
FROM_DATABASE_NAME=''
FROM_DATABASE_USERNAME=''
FROM_DATABASE_PASSWORD=''
FROM_CONFIG_FILE=''
TO_DATABASE_NAME=''
TO_DATABASE_USERNAME=''
TO_DATABASE_PASSWORD=''
DATABASE_SUFIX='_migrated'
SITE_SUBFOLDER=''
SEARCH_FOR_CONFIGS_DATABASE_NAME=''
SEARCH_FOR_CONFIGS_DATABASE_USERNAME=''
if [ ! -z "$MAX_DBUSER_LEN" ] && [ "$MAX_DBUSER_LEN" -ge 80 ]; then
DATABASE_SUFIX=''
fi
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
# check_args '2' "$#" 'FROM_DOMAIN TO_DOMAIN'
is_domain_format_valid "$FROM_DOMAIN"
is_domain_format_valid "$TO_DOMAIN"
FROM_USER=$user
# take --parameters
source /usr/local/vesta/func/handle_parameters.sh
if [ -z "$SITE_SUBFOLDER" ]; then
r=$(/usr/local/vesta/bin/v-get-database-credentials-of-domain "$FROM_DOMAIN")
else
r=$(/usr/local/vesta/bin/v-get-database-credentials-of-domain "$FROM_DOMAIN" "$SITE_SUBFOLDER")
fi
#echo $r
#exit
eval $r
# take --parameters
source /usr/local/vesta/func/handle_parameters.sh
FROM_FOLDER=$SITE_FOLDER
if [ ! -z "$CONFIG_FILE" ]; then
FROM_CONFIG_FILE=$CONFIG_FILE
fi
if [ ! -z "$FROM_CONFIG_FILE" ]; then
FROM_CONFIG_FILE_FULL_PATH="$FROM_FOLDER/$FROM_CONFIG_FILE"
fi
if [ ! -z "$CONFIG_FILE_FULL_PATH" ]; then
FROM_CONFIG_FILE_FULL_PATH=$CONFIG_FILE_FULL_PATH
fi
if [ ! -f "$FROM_CONFIG_FILE_FULL_PATH" ]; then
echo "Error: FROM_CONFIG_FILE_FULL_PATH $FROM_CONFIG_FILE_FULL_PATH does not exists"
exit 3
fi
IT_IS_WP=0
if [ "$CMS_TYPE" = "wordpress" ]; then
IT_IS_WP=1
fi
if [ -z "$FROM_DATABASE_NAME" ]; then
FROM_DATABASE_NAME=$DATABASE_NAME
fi
if [ -z "$FROM_DATABASE_USERNAME" ]; then
FROM_DATABASE_USERNAME=$DATABASE_USERNAME
fi
if [ -z "$FROM_DATABASE_PASSWORD" ]; then
FROM_DATABASE_PASSWORD=$DATABASE_PASSWORD
fi
if [ -z "$FROM_DATABASE_NAME" ]; then
echo "Error: FROM_DATABASE_NAME is empty"
exit 4
fi
if [ -z "$FROM_DATABASE_USERNAME" ]; then
echo "Error: FROM_DATABASE_USERNAME is empty"
exit 5
fi
if [ -z "$FROM_DATABASE_PASSWORD" ]; then
echo "Error: FROM_DATABASE_PASSWORD is empty"
exit 6
fi
DB_EXISTS=$(check_if_database_exists "$user" "$FROM_DATABASE_NAME")
if [ "$DB_EXISTS" = "no" ]; then
echo "Error: database $FROM_DATABASE_NAME does not exists"
exit 7
fi
FROM_DATABASE_NAME_WITHOUT_PREFIX=$(get_database_name_without_user_prefix "$FROM_USER" "$FROM_DATABASE_NAME")
FROM_DATABASE_USERNAME_WITHOUT_PREFIX=$(get_database_name_without_user_prefix "$FROM_USER" "$FROM_DATABASE_USERNAME")
FROM_DOMAIN_HAS_SSL=0
if [ -f "/home/$FROM_USER/conf/web/ssl.$FROM_DOMAIN.ca" ]; then
FROM_DOMAIN_HAS_SSL=1
fi
FROM_DOMAIN_TPL=$(/usr/local/vesta/bin/v-list-web-domain "$FROM_USER" "$FROM_DOMAIN" | grep 'TEMPLATE:' | awk '{print $2}')
FROM_DOMAIN_PROXY_TPL=$(/usr/local/vesta/bin/v-list-web-domain "$FROM_USER" "$FROM_DOMAIN" | grep 'PROXY:' | awk '{print $2}')
FROM_DOMAIN_PROXY_EXT=$(/usr/local/vesta/bin/v-list-web-domain "$FROM_USER" "$FROM_DOMAIN" | grep 'PROXY EXT:' | cut -d ' ' -f8- | sed "s# #,#g")
# ----------- TO -------------
CREATE_TO_USER=0
CREATE_TO_DOMAIN=0
if [ -z "$TO_USER" ]; then
TO_USER=$(/usr/local/vesta/bin/v-search-domain-owner "$TO_DOMAIN")
if [ -z "$TO_USER" ]; then
TO_USER=$FROM_USER
CREATE_TO_DOMAIN=1
fi
else
if [ ! -d "/home/$TO_USER" ]; then
CREATE_TO_USER=1
fi
if [ ! -d "/home/$TO_USER/web/$TO_DOMAIN/public_html" ]; then
CREATE_TO_DOMAIN=1
fi
fi
TO_FOLDER="/home/$TO_USER/web/$TO_DOMAIN/public_html"
CHECK_PUBLIC_SHTML=$(/usr/local/vesta/bin/v-list-web-domain "$TO_USER" "$TO_DOMAIN" | grep 'SSL:' | grep -c 'single')
if [ $CHECK_PUBLIC_SHTML -eq 1 ]; then
TO_FOLDER="/home/$TO_USER/web/$TO_DOMAIN/public_shtml"
fi
if [ ! -z "$SITE_SUBFOLDER" ]; then
TO_FOLDER="$TO_FOLDER/$SITE_SUBFOLDER"
fi
TO_CONFIG_FILE_FULL_PATH="$TO_FOLDER/$FROM_CONFIG_FILE"
if [ ! -z "$MAX_DBUSER_LEN" ] && [ "$MAX_DBUSER_LEN" -ge 80 ] && [ -z "$DATABASE_SUFIX" ]; then
TO_DATABASE_NAME=$(echo "$TO_DOMAIN" | sed 's#\.#_#g')
TO_DATABASE_NAME="${TO_USER}_$TO_DATABASE_NAME"
TO_DATABASE_USERNAME=$TO_DATABASE_NAME
else
LENGTH_OF_DATABASE_SUFIX=${#DATABASE_SUFIX}
if [ -z "$TO_DATABASE_NAME" ]; then
LENGTH_OF_TO_DATABASE_NAME=${#FROM_DATABASE_NAME}
START_FROM=$((LENGTH_OF_TO_DATABASE_NAME-LENGTH_OF_DATABASE_SUFIX))
CHECK_PREFIX=${FROM_DATABASE_NAME:START_FROM}
if [ "$CHECK_PREFIX" = "${DATABASE_SUFIX}" ]; then
TO_DATABASE_NAME="${TO_USER}_${FROM_DATABASE_NAME_WITHOUT_PREFIX}"
LENGTH_OF_TO_DATABASE_NAME=${#TO_DATABASE_NAME}
CUT_TO=$((LENGTH_OF_TO_DATABASE_NAME-LENGTH_OF_DATABASE_SUFIX))
TO_DATABASE_NAME=${TO_DATABASE_NAME:0:CUT_TO}
else
TO_DATABASE_NAME="${TO_USER}_${FROM_DATABASE_NAME_WITHOUT_PREFIX}${DATABASE_SUFIX}"
fi
fi
if [ -z "$TO_DATABASE_USERNAME" ]; then
LENGTH_OF_TO_DATABASE_USERNAME=${#FROM_DATABASE_USERNAME}
START_FROM=$((LENGTH_OF_TO_DATABASE_USERNAME-LENGTH_OF_DATABASE_SUFIX))
CHECK_PREFIX=${FROM_DATABASE_USERNAME:START_FROM}
if [ "$CHECK_PREFIX" = "${DATABASE_SUFIX}" ]; then
TO_DATABASE_USERNAME="${TO_USER}_${FROM_DATABASE_USERNAME_WITHOUT_PREFIX}"
LENGTH_OF_TO_DATABASE_USERNAME=${#TO_DATABASE_USERNAME}
CUT_TO=$((LENGTH_OF_TO_DATABASE_USERNAME-LENGTH_OF_DATABASE_SUFIX))
TO_DATABASE_USERNAME=${TO_DATABASE_USERNAME:0:CUT_TO}
else
TO_DATABASE_USERNAME="${TO_USER}_${FROM_DATABASE_USERNAME_WITHOUT_PREFIX}${DATABASE_SUFIX}"
fi
fi
fi
if [ ! -z "$TO_DATABASE" ]; then
TO_DATABASE_USERNAME=$TO_DATABASE
TO_DATABASE_NAME=$TO_DATABASE
fi
if [ -z "$TO_DATABASE_PASSWORD" ]; then
TO_DATABASE_PASSWORD=$FROM_DATABASE_PASSWORD
fi
if [ -z "$TO_DATABASE_NAME" ]; then
echo "Error: TO_DATABASE_NAME $TO_DATABASE_NAME is empty"
exit 10
fi
if [ -z "$TO_DATABASE_USERNAME" ]; then
echo "Error: TO_DATABASE_USERNAME $TO_DATABASE_USERNAME is empty"
exit 11
fi
if [ -z "$TO_DATABASE_PASSWORD" ]; then
echo "Error: TO_DATABASE_PASSWORD $TO_DATABASE_PASSWORD is empty"
exit 12
fi
TO_DATABASE_NAME_WITHOUT_PREFIX=$(get_database_name_without_user_prefix "$TO_USER" "$TO_DATABASE_NAME")
TO_DATABASE_USERNAME_WITHOUT_PREFIX=$(get_database_name_without_user_prefix "$TO_USER" "$TO_DATABASE_USERNAME")
TO_DOMAIN_HAS_SSL=0
if [ -f "/home/$TO_USER/conf/web/ssl.$TO_DOMAIN.ca" ]; then
TO_DOMAIN_HAS_SSL=1
fi
SHOULD_INSTALL_SSL=0
if [ $FROM_DOMAIN_HAS_SSL -eq 1 ] && [ $TO_DOMAIN_HAS_SSL -eq 0 ]; then
SHOULD_INSTALL_SSL=1
fi
FROM_FPM_VER=""
if [[ $FROM_DOMAIN_TPL == "PHP-FPM-"* ]]; then
FROM_FPM_TPL_VER=${FROM_DOMAIN_TPL:8:2}
FROM_FPM_VER="${FROM_DOMAIN_TPL:8:1}.${FROM_DOMAIN_TPL:9:1}"
fi
# ----------- CHECK -------------
if [ $IT_IS_WP -eq 0 ]; then
if [ ! -f "/root/Search-Replace-DB/srdb.cli.php" ]; then
if [ ! -f "/usr/bin/git" ]; then
apt-get update > /dev/null 2>&1
apt-get -y install git > /dev/null 2>&1
fi
cd /root
git clone https://github.com/interconnectit/Search-Replace-DB.git
fi
fi
CREATE_TO_DATABASE=0
object=$(grep "DB='$TO_DATABASE_NAME'" $VESTA/data/users/$TO_USER/db.conf)
if [ -z "$object" ]; then
CREATE_TO_DATABASE=1
fi
# ----------- PRINT -------------
echo "==============================================================================="
echo "FROM_DOMAIN = $FROM_DOMAIN"
echo "TO_DOMAIN = $TO_DOMAIN"
echo "FROM_USER = $FROM_USER"
echo "TO_USER = $TO_USER"
echo "SITE_SUBFOLDER = $SITE_SUBFOLDER"
echo "FROM_FOLDER = $FROM_FOLDER"
echo "TO_FOLDER = $TO_FOLDER"
echo "CMS_TYPE = $CMS_TYPE"
echo "IT_IS_WP = $IT_IS_WP"
echo "CONFIG_FILE = $CONFIG_FILE"
echo "FROM_CONFIG_FILE_FULL_PATH = $FROM_CONFIG_FILE_FULL_PATH"
echo "TO_CONFIG_FILE_FULL_PATH = $TO_CONFIG_FILE_FULL_PATH"
echo "FROM_DATABASE_NAME = $FROM_DATABASE_NAME"
echo "TO_DATABASE_NAME = $TO_DATABASE_NAME"
echo "FROM_DATABASE_USERNAME = $FROM_DATABASE_USERNAME"
echo "TO_DATABASE_USERNAME = $TO_DATABASE_USERNAME"
echo "FROM_DATABASE_PASSWORD = $FROM_DATABASE_PASSWORD"
echo "TO_DATABASE_PASSWORD = $TO_DATABASE_PASSWORD"
echo "FROM_DATABASE_NAME_WITHOUT_PREFIX = $FROM_DATABASE_NAME_WITHOUT_PREFIX"
echo "TO_DATABASE_NAME_WITHOUT_PREFIX = $TO_DATABASE_NAME_WITHOUT_PREFIX"
echo "FROM_DATABASE_USERNAME_WITHOUT_PREFIX = $FROM_DATABASE_USERNAME_WITHOUT_PREFIX"
echo "TO_DATABASE_USERNAME_WITHOUT_PREFIX = $TO_DATABASE_USERNAME_WITHOUT_PREFIX"
echo "DATABASE_SUFIX = $DATABASE_SUFIX"
echo "CREATE_TO_USER = $CREATE_TO_USER"
echo "CREATE_TO_DOMAIN = $CREATE_TO_DOMAIN"
echo "CREATE_TO_DATABASE = $CREATE_TO_DATABASE"
echo "SHOULD_INSTALL_SSL = $SHOULD_INSTALL_SSL"
echo "FROM_DOMAIN_TPL = $FROM_DOMAIN_TPL"
echo "FROM_FPM_VER = $FROM_FPM_VER"
echo "FROM_DOMAIN_PROXY_TPL = $FROM_DOMAIN_PROXY_TPL"
echo "FROM_DOMAIN_PROXY_EXT = $FROM_DOMAIN_PROXY_EXT"
echo "SEARCH_FOR_CONFIGS_DATABASE_NAME = $SEARCH_FOR_CONFIGS_DATABASE_NAME"
echo "SEARCH_FOR_CONFIGS_DATABASE_USERNAME = $SEARCH_FOR_CONFIGS_DATABASE_USERNAME"
echo "EXCLUDE_UPLOADS = $EXCLUDE_UPLOADS"
echo "==============================================================================="
read -p "=== Press Enter to continue ==="
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
if [ $CREATE_TO_USER -eq 1 ]; then
pass=$(vesta_generate_pass 10)
echo "=== Create user $TO_USER, pass=$pass"
/usr/local/vesta/bin/v-add-user "$TO_USER" "$pass" "info@$TO_DOMAIN" "default" "Cloned" "site"
fi
if [ $CREATE_TO_DOMAIN -eq 1 ]; then
echo "=== Create domain $TO_DOMAIN"
/usr/local/vesta/bin/v-add-domain "$TO_USER" "$TO_DOMAIN"
rm $TO_FOLDER/index.html
fi
if [ $SHOULD_INSTALL_SSL -eq 1 ]; then
echo "=== Installing LetsEncrypt for domain $TO_DOMAIN"
/usr/local/vesta/bin/v-add-letsencrypt-domain "$TO_USER" "$TO_DOMAIN" "www.$TO_DOMAIN" "yes"
if [ $? -ne 0 ]; then
echo "=== LetsEncrypt installation failed"
fi
fi
if [ ! -z "$FROM_DOMAIN_TPL" ]; then
echo "=== Set $FROM_DOMAIN_TPL template to domain $TO_DOMAIN"
/usr/local/vesta/bin/v-change-web-domain-tpl "$TO_USER" "$TO_DOMAIN" "$FROM_DOMAIN_TPL" "yes"
fi
if [ "$SITE_SUBFOLDER" = ".." ]; then
if [ ! -z "$FROM_FPM_VER" ]; then
POOLD_FILE="/etc/php/$FROM_FPM_VER/fpm/pool.d/$TO_DOMAIN.conf"
echo "=== Removing public_html from open_basedir in $POOLD_FILE"
sed -i "s|/public_html:|:|g" $POOLD_FILE
sed -i "s|/public_shtml:|:|g" $POOLD_FILE
systemctl restart php${FROM_FPM_VER}-fpm
fi
fi
if [ ! -z "$FROM_DOMAIN_PROXY_TPL" ]; then
echo "=== Set $FROM_DOMAIN_PROXY_TPL proxy template to domain $TO_DOMAIN"
/usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$TO_USER" "$TO_DOMAIN" "$FROM_DOMAIN_PROXY_TPL" "$FROM_DOMAIN_PROXY_EXT" "yes"
fi
if [ $CREATE_TO_DATABASE -eq 1 ]; then
echo "=== Create database $TO_DATABASE_NAME"
/usr/local/vesta/bin/v-add-database "$TO_USER" "$TO_DATABASE_NAME_WITHOUT_PREFIX" "$TO_DATABASE_USERNAME_WITHOUT_PREFIX" "$TO_DATABASE_PASSWORD" 'mysql' 'localhost' 'utf8'
fi
echo "=== Dumping database $FROM_DATABASE_NAME"
if [ -d "/root/temp" ]; then
rm -rf /root/temp
fi
mkdir -p /root/temp
cd /root/temp
mysqldump --max_allowed_packet=1024M $FROM_DATABASE_NAME > $FROM_DATABASE_NAME.sql
echo "=== Importing to database $TO_DATABASE_NAME"
mysql $TO_DATABASE_NAME < $FROM_DATABASE_NAME.sql
rm $FROM_DATABASE_NAME.sql
EXCLUDE=''
if [ ! -z "$EXCLUDE_UPLOADS" ]; then
EXCLUDE="--exclude '/wp-content/uploads/*'"
fi
echo "=== Copying files from $FROM_FOLDER to folder $TO_FOLDER"
if [ "$SITE_SUBFOLDER" != ".." ]; then
run="rsync -a --delete $EXCLUDE $FROM_FOLDER/ $TO_FOLDER/"
echo "====== Executing: $run"
eval $run
else
run="rsync -a --delete $EXCLUDE --exclude 'logs/*' $FROM_FOLDER/ $TO_FOLDER/"
echo "====== Executing: $run"
eval $run
fi
echo "=== Chowning to $TO_USER:$TO_USER in folder $TO_FOLDER"
chown -R $TO_USER:$TO_USER $TO_FOLDER
replace_php_config_value "${FROM_DATABASE_NAME}" "${TO_DATABASE_NAME}" "$TO_CONFIG_FILE_FULL_PATH" "yes"
replace_php_config_value "${FROM_DATABASE_USERNAME}" "${TO_DATABASE_USERNAME}" "$TO_CONFIG_FILE_FULL_PATH" "yes"
replace_php_config_value "${FROM_DATABASE_PASSWORD}" "${TO_DATABASE_PASSWORD}" "$TO_CONFIG_FILE_FULL_PATH" "yes"
echo "=== Replacing $FROM_DOMAIN to $TO_DOMAIN by searching in folder $TO_FOLDER"
REGEXP_FROM_DOMAIN="${FROM_DOMAIN//\./\\.}"
grep -rl "$REGEXP_FROM_DOMAIN" $TO_FOLDER | xargs sed -i "s#$REGEXP_FROM_DOMAIN#$TO_DOMAIN#g"
if [ "$FROM_USER" != "$TO_USER" ]; then
echo "=== Replacing /home/$FROM_USER/ to /home/$TO_USER/ by searching in folder $TO_FOLDER"
grep -rl "/home/$FROM_USER/" $TO_FOLDER | xargs sed -i "s#/home/$FROM_USER/#/home/$TO_USER/#g"
fi
if [ ! -z "$SEARCH_FOR_CONFIGS_DATABASE_NAME" ]; then
echo "=== Replacing ${FROM_DATABASE_NAME} to ${TO_DATABASE_NAME} by searching in folder $TO_FOLDER [SEARCH_FOR_CONFIGS_DATABASE_NAME]"
grep -rl "${FROM_DATABASE_NAME}" $TO_FOLDER | xargs sed -i "s#${FROM_DATABASE_NAME}#${TO_DATABASE_NAME}#g"
fi
if [ ! -z "$SEARCH_FOR_CONFIGS_DATABASE_USERNAME" ]; then
DO_SEARCH_FOR_CONFIGS_DATABASE_USERNAME=1;
if [ ! -z "$SEARCH_FOR_CONFIGS_DATABASE_NAME" ] && [ "$SEARCH_FOR_CONFIGS_DATABASE_NAME" = "$SEARCH_FOR_CONFIGS_DATABASE_USERNAME" ]; then
DO_SEARCH_FOR_CONFIGS_DATABASE_USERNAME=0
fi
if [ $DO_SEARCH_FOR_CONFIGS_DATABASE_USERNAME -eq 1 ]; then
echo "=== Replacing ${FROM_DATABASE_USERNAME} to ${TO_DATABASE_USERNAME} by searching in folder $TO_FOLDER [SEARCH_FOR_CONFIGS_DATABASE_USERNAME]"
grep -rl "${FROM_DATABASE_USERNAME}" $TO_FOLDER | xargs sed -i "s#${FROM_DATABASE_USERNAME}#${TO_DATABASE_USERNAME}#g"
fi
fi
if [ $IT_IS_WP -eq 0 ]; then
echo "=== Replacing $FROM_DOMAIN to $TO_DOMAIN in database $TO_DATABASE_NAME"
php /root/Search-Replace-DB/srdb.cli.php -h localhost -n "$TO_DATABASE_NAME" -u "$TO_DATABASE_USERNAME" -p "$TO_DATABASE_PASSWORD" -s "$FROM_DOMAIN" -r "$TO_DOMAIN"
if [ "$FROM_USER" != "$TO_USER" ]; then
echo "=== Replacing /home/$FROM_USER/ to /home/$TO_USER/ in database $TO_DATABASE_NAME"
php /root/Search-Replace-DB/srdb.cli.php -h localhost -n "$TO_DATABASE_NAME" -u "$TO_DATABASE_USERNAME" -p "$TO_DATABASE_PASSWORD" -s "/home/$FROM_USER/" -r "/home/$TO_USER/"
fi
else
echo "=== Replacing $FROM_DOMAIN to $TO_DOMAIN in database $TO_DATABASE_NAME"
/usr/local/vesta/bin/v-run-wp-cli $TO_DOMAIN search-replace "$FROM_DOMAIN" "$TO_DOMAIN" --precise --all-tables --skip-columns=guid --skip-plugins --skip-themes;
if [ "$FROM_USER" != "$TO_USER" ]; then
echo "=== Replacing /home/$FROM_USER/ to /home/$TO_USER/ in database $TO_DATABASE_NAME"
/usr/local/vesta/bin/v-run-wp-cli $TO_DOMAIN search-replace "/home/$FROM_USER/" "/home/$TO_USER/" --precise --all-tables --skip-columns=guid --skip-plugins --skip-themes;
fi
/usr/local/vesta/bin/v-run-wp-cli $TO_DOMAIN cache flush --skip-plugins --skip-themes;
/usr/local/vesta/bin/v-run-wp-cli $TO_DOMAIN config shuffle-salts WP_CACHE_KEY_SALT --force --skip-plugins --skip-themes;
/usr/local/vesta/bin/v-run-wp-cli $TO_DOMAIN config shuffle-salts --skip-plugins --skip-themes;
fi
# ----------- Update Wordfence WAF Path -------------
# Path to .user.ini file in the new domain directory
user_ini="/home/$TO_USER/web/$TO_DOMAIN/public_html/.user.ini"
# Check if .user.ini exists
if [ -f "$user_ini" ]; then
echo "Updating .user.ini with new path..."
# Change path from old domain to new domain
sed -i "s|/home/.*/public_html|/home/$TO_USER/web/$TO_DOMAIN/public_html|g" $user_ini
# Check if replacement was successful and update .user.ini
if [ $? -eq 0 ]; then
echo ".user.ini updated successfully."
else
echo "Failed to update .user.ini file."
fi
fi
echo "===== DONE ===="
echo "You can visit http://$TO_DOMAIN/"
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit

634
bin/v-commander Normal file
View file

@ -0,0 +1,634 @@
#!/bin/bash
numargs=$#
SHOWHEADER=0
if [ $numargs -eq 0 ]; then
SHOWHEADER=1
fi
if [ $numargs -eq 1 ] && [ "$1" = "q" ]; then
SHOWHEADER=1
fi
source /etc/profile
PATH=$PATH:/usr/local/vesta/bin && export PATH
if [ $SHOWHEADER -eq 1 ]; then
echo "======================= mvVesta-commander ================================"
fi
if [ -f /root/kernelupdate ]; then
rm /root/kernelupdate
fi
apt_updated=0
apt_upgraded=0
quit_on_empty=0
if [ $SHOWHEADER -eq 1 ]; then
hostname
if [ -f "/root/current-status.txt" ]; then
echo "------------------ WAS LONG TIME AGO ------------------"
cat /root/current-status.txt
truncate -s 0 /root/current-status.txt
fi
echo -n 'Debian ' >> /root/current-status.txt && cat /etc/debian_version >> /root/current-status.txt
php -v | grep '^PHP' >> /root/current-status.txt
/usr/local/vesta/bin/v-list-sys-services >> /root/current-status.txt
/usr/local/vesta/bin/v-list-sys-web-status | grep "Server MPM:" >> /root/current-status.txt
w | grep 'load average' >> /root/current-status.txt
df -h | grep "/$" >> /root/current-status.txt
echo "------------------------ NOW ------------------------"
cat /root/current-status.txt
echo "-----------------------------------------------------"
echo "(press 'h' for help)"
echo ""
fi
check_status() {
echo "=============================================================="
hostname
echo "------------------------ WAS ------------------------"
cat /root/current-status.txt
echo "------------------------ NOW ------------------------"
hostname
echo -n 'Debian ' && cat /etc/debian_version
php -v | grep '^PHP'
/usr/local/vesta/bin/v-list-sys-services
/usr/local/vesta/bin/v-list-sys-web-status | grep "Server MPM:"
w | grep 'load average'
df -h | grep "/$"
echo "-----------------------------------------------------"
}
myhelp() {
echo "---------- Press: -----------"
echo "a = Activate Email rate limit"
echo "b = bash"
echo "c = check status"
echo "d = df -h"
echo "e = make sure Apache is in mpm_event"
echo "f = free -h"
echo "g = apt-get upgrade"
echo "h = help"
echo "m = install php-memcached"
echo "p = set version of php as default"
echo "q = quit"
echo "r = reboot"
echo "s = download sury.org apt-get key"
echo "n = download nginx gpg key"
echo "freexian = add Freexian repository"
echo "t = clean the trash"
echo "u = apt-get update"
echo "v = update myVesta"
echo "vo = update myVesta without 'apt-get update'"
echo "w = w"
echo "-----------------------------"
echo "inst v = install myVesta"
echo "inst p = install multi-php"
echo "inst pgw = install php-gate"
echo "inst r = install new Roundcube"
echo "inst memcached = install memcached"
echo "inst redis = install Redis"
echo "inst nginx-rate-limit = install nginx-rate-limit templates"
echo "dis fb = stop and disable fail2ban"
echo "dis dove = stop and disable dovecot"
echo "dis spam = stop and disable spamassassin"
echo "dis clam = stop and disable ClamAV"
echo "p 7.0 = set default php 7.0"
echo "p 7.3 = set default php 7.3"
echo "p 7.4 = set default php 7.4"
echo "p def = set proper default php"
echo "e def = set mpm_event if needed"
echo "m def = install php-memcached if needed"
echo "check fc = check if FreshClam is up"
echo "-----------------------------"
echo "enable-ssh-root-password-login = Allow root password authentication via SSH"
echo "id_rsa = generate id_rsa and id_rsa.pub if it does not exist and show id_rsa.pub"
echo "-----------------------------"
}
apt_update() {
echo "============================="
echo "== running: apt-get update"
release=$(cat /etc/debian_version | tr "." "\n" | head -n1)
if [ "$release" -lt 10 ]; then
apt-get update
else
apt-get update --allow-releaseinfo-change
fi
apt_updated=1
}
COUNTER=0
HAS_PARAMETERS=0
while true
do
COUNTER=$((COUNTER + 1))
if [ $COUNTER -le $numargs ]; then
HAS_PARAMETERS=1
answer=$1
shift
else
if [ $HAS_PARAMETERS -eq 1 ]; then
exit;
fi
read -p 'What to do: ' answer
fi
if [ "$answer" = 'prompt' ] || [ "$answer" = 'PROMPT' ]; then
echo "============================="
echo "hostname: $HOSTNAME"
read -p 'What to do [or press Enter to continue]: ' answer
fi
if [ "$answer" = '' ] && [ $quit_on_empty -eq 1 ]; then
answer='q'
fi
if [ "$answer" = 'quit-on-empty' ]; then
echo "== the script will quit on next enter"
quit_on_empty=1
HAS_PARAMETERS=0
fi
if [ "$answer" = 'a' ] || [ "$answer" = 'A' ]; then
mv /etc/exim4/exim4.conf.template /etc/exim4/exim4.conf.template-backup
cp /usr/local/vesta/install/debian/12/exim/exim4.conf.template /etc/exim4/exim4.conf.template
touch /etc/exim4/limit_per_email_account_max_sent_emails_per_hour
touch /etc/exim4/limit_per_email_account_max_recipients
touch /etc/exim4/limit_per_hosting_account_max_sent_emails_per_hour
touch /etc/exim4/limit_per_hosting_account_max_recipients
check_grep=$(grep -c '#SPAMASSASSIN' /etc/exim4/exim4.conf.template-backup)
if [ "$check_grep" -eq 0 ]; then
sed -i "s|#SPAMASSASSIN|SPAMASSASSIN|g" /etc/exim4/exim4.conf.template
fi
check_grep=$(grep -c '#SPAM_SCORE' /etc/exim4/exim4.conf.template-backup)
if [ "$check_grep" -eq 0 ]; then
sed -i "s|#SPAM_SCORE|SPAM_SCORE|g" /etc/exim4/exim4.conf.template
fi
check_grep=$(grep -c '#CLAMD' /etc/exim4/exim4.conf.template-backup)
if [ "$check_grep" -eq 0 ]; then
sed -i "s|#CLAMD|CLAMD|g" /etc/exim4/exim4.conf.template
fi
systemctl restart exim4
echo "Email rate limit activated."
fi
if [ "$answer" = 'u' ] || [ "$answer" = 'U' ]; then
apt_update
fi
if [ "$answer" = 'g' ] || [ "$answer" = 'G' ]; then
echo "============================="
echo "== running: apt-get upgrade"
if [ $apt_upgraded -eq 0 ]; then
cp /var/log/apt/history.log /var/log/apt/history-`date +"%Y%m%d%H%M%S"`.log
truncate -s 0 /var/log/apt/history.log
fi
apt-get -y --with-new-pkgs upgrade
apt-get -y dist-upgrade
apt_upgraded=1
kernelupdate=$(grep -c 'linux-image-' /var/log/apt/history.log)
dbusupdate=$(grep -c ' dbus:a' /var/log/apt/history.log)
if [ $kernelupdate -gt 0 ] || [ $dbusupdate -gt 0 ] || [ -f "/run/reboot-required" ] || [ -f "/var/run/reboot-required" ]; then
touch /root/kernelupdate
echo "== kernel is updated, reboot is required!"
fi
fi
if [ "$answer" = 'c' ] || [ "$answer" = 'C' ]; then
check_status
fi
if [ "$answer" = 's' ] || [ "$answer" = 'S' ]; then
if [ -f "/etc/apt/trusted.gpg.d/php.gpg" ]; then
echo "============================="
echo "== renewing sury.org gpg key"
wget -nv -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
fi
fi
if [ "$answer" = 'n' ] || [ "$answer" = 'N' ]; then
if [ -f "/etc/apt/sources.list.d/nginx.list" ]; then
echo "============================="
echo "== renewing nginx gpg key"
apt-get update
apt-get -y install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list
fi
fi
if [ "$answer" = 'freexian' ] || [ "$answer" = 'FREEXIAN' ]; then
if [ "$release" -lt 11 ]; then
echo "============================="
echo "== adding Freexian repository"
apt-get update
apt-get install lsb-release
wget https://deb.freexian.com/extended-lts/pool/main/f/freexian-archive-keyring/freexian-archive-keyring_2022.06.08_all.deb && sudo dpkg -i freexian-archive-keyring_2022.06.08_all.deb
cat /etc/apt/sources.list
mv /etc/apt/sources.list /etc/apt/sources.list.old
echo "deb http://deb.freexian.com/extended-lts `lsb_release -cs` main contrib non-free" > /etc/apt/sources.list
rm /etc/apt/sources.list.d/hetzner*
else
echo "== Freexian is not supported on Debian 11 or higher"
fi
fi
if [ "$answer" = 'e def' ] || [ "$answer" = 'E DEF' ]; then
release=$(cat /etc/debian_version | tr "." "\n" | head -n1)
echo "============================="
echo "== checking if we need mpm_event mode"
echo "== detected Debian $release"
if [ "$release" -eq 10 ] || [ "$release" -eq 11 ] || [ -f "/root/switch-apache-to-event-mode.sh" ]; then
isevent=$(/usr/local/vesta/bin/v-list-sys-web-status | grep -c "Server MPM: event")
if [ $isevent -eq 0 ]; then
echo "== Apache should be switched to mpm_event mode"
answer='e'
else
echo "== Apache is already in mpm_event mode"
fi
fi
fi
if [ "$answer" = 'e' ] || [ "$answer" = 'E' ]; then
echo "============================="
echo "== switching to mpm_event mode"
apt-get -y remove libapache2-mod-php*
a2dismod ruid2
a2dismod suexec
a2dismod php5.6
a2dismod php7.0
a2dismod php7.1
a2dismod php7.2
a2dismod php7.3
a2dismod php7.4
a2dismod php8.0
a2dismod php8.1
a2dismod php8.2
a2dismod mpm_prefork
a2enmod mpm_event
systemctl restart apache2
fi
if [ "$answer" = 'dis fb' ] || [ "$answer" = 'DIS FB' ]; then
echo "============================="
echo "== disabling fail2ban"
systemctl stop fail2ban
systemctl disable fail2ban
systemctl status fail2ban
fi
if [ "$answer" = 'dis dove' ] || [ "$answer" = 'DIS DOVE' ]; then
echo "============================="
echo "== disabling dovecot"
systemctl stop dovecot.service
systemctl stop dovecot.socket
systemctl disable dovecot.service
fi
if [ "$answer" = 'dis clam' ] || [ "$answer" = 'DIS CLAM' ]; then
echo "============================="
echo "== disabling ClamAV"
systemctl stop clamav-daemon.service
systemctl disable clamav-daemon.service
systemctl stop clamav-daemon.socket
systemctl disable clamav-daemon.socket
systemctl stop clamav-freshclam.service
systemctl disable clamav-freshclam.service
sed -i "s/^CLAMD =/#CLAMD =/g" /etc/exim4/exim4.conf.template
systemctl restart exim4
fi
if [ "$answer" = 'dis spam' ] || [ "$answer" = 'DIS SPAM' ]; then
echo "============================="
echo "== disabling SpamAssassin"
release=$(cat /etc/debian_version | tr "." "\n" | head -n1)
if [ "$release" -lt 12 ]; then
systemctl stop spamassassin.service
systemctl disable spamassassin.service
else
systemctl stop spamd.service
systemctl disable spamd.service
fi
sed -i "s/^SPAMASSASSIN =/#SPAMASSASSIN =/g" /etc/exim4/exim4.conf.template
sed -i "s/^SPAM_SCORE =/#SPAM_SCORE =/g" /etc/exim4/exim4.conf.template
systemctl restart exim4
fi
if [ "$answer" = 'p' ] || [ "$answer" = 'P' ]; then
echo "============================="
echo "== changing default php version"
update-alternatives --config php
echo "--- NEW ---"
php -v | grep '^PHP'
fi
if [ "$answer" = 'p 7.0' ] || [ "$answer" = 'P 7.0' ]; then
echo "============================="
echo "== changing default php version to 7.0"
update-alternatives --set php /usr/bin/php7.0
echo "--- NEW ---"
php -v | grep '^PHP'
fi
if [ "$answer" = 'p 7.3' ] || [ "$answer" = 'P 7.3' ]; then
echo "============================="
echo "== changing default php version to 7.3"
update-alternatives --set php /usr/bin/php7.3
echo "--- NEW ---"
php -v | grep '^PHP'
fi
if [ "$answer" = 'p 7.4' ] || [ "$answer" = 'P 7.4' ]; then
echo "============================="
echo "== changing default php version to 7.4"
update-alternatives --set php /usr/bin/php7.4
echo "--- NEW ---"
php -v | grep '^PHP'
fi
if [ "$answer" = 'p def' ] || [ "$answer" = 'P DEF' ]; then
echo "============================="
echo "== checking if we need to change default php version"
automode=$(update-alternatives --display php | grep -c 'auto mode')
echo "============================="
if [ $automode -ge 1 ]; then
echo "=== php auto mode detected"
release=$(cat /etc/debian_version | tr "." "\n" | head -n1)
echo "== detected Debian $release"
if [ "$release" -eq 8 ]; then
echo "== set default php 5"
update-alternatives --set php /usr/bin/php5
fi
if [ "$release" -eq 9 ]; then
echo "== set default php 7.0"
update-alternatives --set php /usr/bin/php7.0
fi
if [ "$release" -eq 10 ]; then
echo "== set default php 7.3"
update-alternatives --set php /usr/bin/php7.3
fi
if [ "$release" -eq 11 ]; then
echo "== set default php 7.4"
update-alternatives --set php /usr/bin/php7.4
fi
echo "--- NEW ---"
php -v | grep '^PHP'
else
echo "== php is already in manual mode"
php -v | grep '^PHP'
fi
fi
if [ "$answer" = 'v' ] || [ "$answer" = 'V' ]; then
echo "============================="
echo "== updating myVesta"
if [ -f "/usr/local/vesta/bin/v-update-myvesta" ]; then
/usr/local/vesta/bin/v-update-myvesta
else
number_of_files=$(ls /var/cache/apt/archives/vesta_.* 2>/dev/null | wc -l)
if [ $number_of_files -gt 0 ]; then
rm /var/cache/apt/archives/vesta_* > /dev/null 2>&1
fi
apt-get update -o Dir::Etc::sourcelist="sources.list.d/vesta.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" > /usr/local/vesta/log/update-$package.log 2>&1
apt-get install --reinstall vesta
fi
fi
if [ "$answer" = 'vo' ] || [ "$answer" = 'VO' ]; then
echo "============================="
echo "== updating myVesta (without 'apt-get update')"
number_of_files=$(ls /var/cache/apt/archives/vesta_.* 2>/dev/null | wc -l)
if [ $number_of_files -gt 0 ]; then
rm /var/cache/apt/archives/vesta_* > /dev/null 2>&1
fi
apt-get install --reinstall vesta
fi
if [ "$answer" = 'vor' ] || [ "$answer" = 'VOR' ]; then
echo "============================="
echo "== updating myVesta (without apt-get update and without reinstall)"
number_of_files=$(ls /var/cache/apt/archives/vesta_.* 2>/dev/null | wc -l)
if [ $number_of_files -gt 0 ]; then
rm /var/cache/apt/archives/vesta_* > /dev/null 2>&1
fi
apt-get install vesta
fi
if [ "$answer" = 't' ] || [ "$answer" = 'T' ]; then
echo "============================="
echo "== cleaning trash"
df -m
echo "------"
ps -Af | grep tailf | grep -v "grep tailf"
echo "------"
/usr/local/vesta/bin/v-clean-garbage
echo "--------------"
df -m
echo "--------------"
ps -Af | grep tailf | grep -v "grep tailf"
fi
if [ "$answer" = 'm def' ] || [ "$answer" = 'M DEF' ]; then
phpupdate=$(grep -c 'php' /var/log/apt/history.log)
if [ $phpupdate -gt 0 ]; then
answer='m'
fi
fi
if [ "$answer" = 'm' ] || [ "$answer" = 'M' ]; then
echo "============================="
echo "== installing php-memcache modules"
apt-get install -y $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcache ")
apt-get install -y $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcached ")
fi
if [ "$answer" = 'd' ] || [ "$answer" = 'D' ]; then
echo "============================="
echo "== running: df -h"
df -h
fi
if [ "$answer" = 'f' ] || [ "$answer" = 'F' ]; then
echo "============================="
echo "== running: free -h"
free -h
fi
if [ "$answer" = 'w' ] || [ "$answer" = 'W' ]; then
echo "== running: free -h"
w
fi
if [ "$answer" = 'inst p' ] || [ "$answer" = 'INST P' ]; then
echo "============================="
echo "== installing new PHP versions"
cd /root
wget -nv -O /root/vesta-inst-php.sh https://c.myvestacp.com/tools/multi-php-install.sh
chmod u+x ./vesta-inst-php.sh
mcedit ./vesta-inst-php.sh
sudo ./vesta-inst-php.sh
fi
if [ "$answer" = 'inst pgw' ] || [ "$answer" = 'INST PGW' ]; then
echo "============================="
echo "== Installing phpgate"
wget -nv http://dl.myvestacp.com/vesta/install-phpgate.sh -O /root/install-phpgate.sh
chmod u+x /root/install-phpgate.sh
/root/install-phpgate.sh
fi
if [ "$answer" = 'inst memcache' ] || [ "$answer" = 'inst memcached' ] || [ "$answer" = 'INST MEMCACHE' ] || [ "$answer" = 'INST MEMCACHED' ]; then
echo "============================="
echo "== Installing memcached"
memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9])
apt-get update
apt-get -y install memcached
apt-get -y install $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcache ")
apt-get -y install $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcached ")
if [ $memory -lt 15000000 ]; then
sed -i "s/-m 64/-m 256/" /etc/memcached.conf
else
sed -i "s/-m 64/-m 1024/" /etc/memcached.conf
fi
systemctl restart memcached
echo "== memcached installed."
echo "-----------------------"
fi
if [ "$answer" = 'inst redis' ] || [ "$answer" = 'INST REDIS' ]; then
echo "============================="
echo "== Installing Redis"
memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9])
apt-get update
apt-get install -y redis-server
apt-get install $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-redis ")
sed -i "s|^supervised no|supervised systemd|g" /etc/redis/redis.conf
sed -i "s|^save |# save |g" /etc/redis/redis.conf
sed -i 's|^# save ""|save ""|g' /etc/redis/redis.conf
if [ $memory -lt 15000000 ]; then
sed -i "s|^# maxmemory .*|maxmemory 256m|g" /etc/redis/redis.conf
else
sed -i "s|^# maxmemory .*|maxmemory 1g|g" /etc/redis/redis.conf
fi
sed -i "s|^# maxmemory-policy .*|maxmemory-policy allkeys-lru|g" /etc/redis/redis.conf
systemctl restart redis
redis-cli info memory
echo "== Redis installed."
echo "-------------------"
fi
if [ "$answer" = 'inst nginx-rate-limit' ] || [ "$answer" = 'INST NGINX-RATE-LIMIT' ]; then
echo "============================="
echo "== Installing inst nginx-rate-limit templates"
curl -O https://c.myvestacp.com/tools/rate-limit-tpl/install_rate_limit_tpl.sh
bash install_rate_limit_tpl.sh
echo "== nginx-rate-limit templates installed."
echo "-------------------"
fi
if [ "$answer" = 'check fc' ] || [ "$answer" = 'CHECK FC' ]; then
echo "== Checking if FreshClam is up"
clamavup=$(/usr/local/vesta/bin/v-list-sys-services | grep 'clamav-daemon' | grep -c 'running')
freshclamdown=$(/usr/local/vesta/bin/v-list-sys-services | grep 'clamav-freshclam' | grep -c 'off')
if [ $clamavup -eq 1 ] && [ $freshclamdown -eq 1 ]; then
echo "== Starting FreshClam"
systemctl enable clamav-freshclam.service
systemctl start clamav-freshclam.service
fi
fi
if [ "$answer" = 'enable-ssh-root-password-login' ] || [ "$answer" = 'ENABLE-SSH-ROOT-PASSWORD-LOGIN' ]; then
sed -i "s|^PermitRootLogin .*|PermitRootLogin yes|g" /etc/ssh/sshd_config
sed -i "s|^#PermitRootLogin .*|PermitRootLogin yes|g" /etc/ssh/sshd_config
systemctl restart sshd
echo "--- New settings ---"
grep '^PermitRoot' /etc/ssh/sshd_config
echo "--------------------"
echo "Port 22 opened in Firewall for all IP addresses."
/usr/local/vesta/bin/v-unsuspend-firewall-rule "11"
echo "--------------------"
echo "Type 'passwd' in the terminal to set the root password."
echo "--------------------"
fi
if [ "$answer" = 'r' ] || [ "$answer" = 'R' ]; then
echo "============================="
echo "== Rebooting the server"
reboot
fi
if [ "$answer" = 'b' ] || [ "$answer" = 'B' ]; then
echo "============================="
echo "== Running bash"
bash
fi
if [ "$answer" = 'q' ] || [ "$answer" = 'Q' ]; then
echo "============================="
echo "== Exiting... bye bye :)"
exit 0
fi
if [ "$answer" = 'h' ] || [ "$answer" = 'H' ]; then
myhelp
fi
if [ "$answer" = 'inst v' ] || [ "$answer" = 'INST V' ]; then
echo "============================="
echo "== installing myVesta"
release=$(cat /etc/debian_version | tr "." "\n" | head -n1)
if [ "$release" -lt 10 ]; then
apt-get update
else
apt-get update --allow-releaseinfo-change
fi
apt-get -y --with-new-pkgs upgrade && apt-get -y dist-upgrade
apt-get -y install curl wget mc git sudo dnsutils screen
cd ~
curl -O http://c.myvestacp.com/vst-install-debian.sh
sudo bash vst-install-debian.sh
source /etc/profile
PATH=$PATH:/usr/local/vesta/bin && export PATH
fi
if [ "$answer" = 'inst r' ] || [ "$answer" = 'INST R' ]; then
echo "============================="
echo "== Installing new Roundcube"
wget -nv https://c.myvestacp.com/tools/install-new-roundcube.sh -O /root/install-new-roundcube.sh
chmod u+x /root/install-new-roundcube.sh
mcedit /root/install-new-roundcube.sh
/root/install-new-roundcube.sh
fi
if [ "$answer" = 'id_rsa' ] || [ "$answer" = 'ID_RSA' ]; then
if [ ! -f "/root/.ssh/id_rsa.pub" ]; then
ssh-keygen -q -t rsa -N '' -C "$HOSTNAME" -b 4096 -f /root/.ssh/id_rsa 2>/dev/null <<< y >/dev/null
fi
echo "=== YOUR id_rsa.pub IS BELOW ==="
cat /root/.ssh/id_rsa.pub
echo "======"
fi
done

View file

@ -43,7 +43,7 @@ fi
# Checking destination path
rpath=$(readlink -f "$dst_file")
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
echo "Error: ivalid destination path $dst_file"
echo "Error: invalid destination path $dst_file"
exit 2
fi

View file

@ -35,7 +35,7 @@ check_args '2' "$#" 'MODULE LICENSE'
# Activating license
v_host='https://vestacp.com/checkout'
answer=$(curl -s $v_host/cancel.php?licence_key=$license)
answer=$(curl --max-time 60 -s $v_host/cancel.php?licence_key=$license)
check_result $? "cant' connect to vestacp.com " $E_CONNECT
# Checking server answer

View file

@ -0,0 +1,69 @@
#!/bin/bash
# info: delete database if domain has database
# options: DOMAIN
#
# The function for deleting database if domain has database
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
# Argument definition
domain=$1
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
USER=$user
# Includes
source /usr/local/vesta/func/main.sh
if [ -z "$user" ]; then
check_result $E_NOTEXIST "domain $domain doesn't exist"
fi
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
RET=$OK
# echo "================================="
r=$(/usr/local/vesta/bin/v-get-database-credentials-of-domain $domain)
# echo $r
eval $r
# echo "================================="
if [ ! -z "$DATABASE_NAME" ]; then
echo "=== v-delete-database $USER $DATABASE_NAME"
/usr/local/vesta/bin/v-delete-database $USER $DATABASE_NAME
if [ $? -ne 0 ]; then
echo "=== v-delete-database failed"
RET=$E_NOTEXIST
fi
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
log_event "$RET" "$ARGUMENTS"
exit

View file

@ -37,9 +37,10 @@ is_object_unsuspended 'user' 'USER' "$user"
if [ ! -z "$WEB_SYSTEM" ]; then
str=$(grep "DOMAIN='$domain'" $USER_DATA/web.conf)
if [ ! -z "$str" ]; then
$BIN/v-delete-database-of-domain $domain
domain_found='yes'
$BIN/v-delete-web-domain $user $domain 'no'
check_result $? "can't suspend web" > /dev/null
check_result $? "can't delete web" > /dev/null
fi
fi
@ -49,7 +50,7 @@ if [ ! -z "$DNS_SYSTEM" ]; then
if [ ! -z "$str" ]; then
domain_found='yes'
$BIN/v-delete-dns-domain $user $domain 'no'
check_result $? "can't suspend dns" > /dev/null
check_result $? "can't delete dns" > /dev/null
fi
fi
@ -59,7 +60,7 @@ if [ ! -z "$MAIL_SYSTEM" ]; then
if [ ! -z "$str" ]; then
domain_found='yes'
$BIN/v-delete-mail-domain $user $domain
check_result $? "can't suspend mail" > /dev/null
check_result $? "can't delete mail" > /dev/null
fi
fi

View file

@ -53,6 +53,11 @@ $iptables -D fail2ban-$chain $b 2>/dev/null
# Changing permissions
chmod 660 $conf
# nginx deny rules conf
if [ "$chain" = "WEB" ] && [ -f "/etc/nginx/conf.d/block.conf" ]; then
sed -i "/deny $ip;/d" /etc/nginx/conf.d/block.conf
systemctl reload nginx
fi
#----------------------------------------------------------#
# Vesta #

View file

@ -34,12 +34,21 @@ is_object_valid '../../data/firewall/rules' 'RULE' "$rule"
# Action #
#----------------------------------------------------------#
oldvalues=$(grep "RULE='$rule'" $VESTA/data/firewall/rules.conf)
# Deleting rule
sed -i "/RULE='$rule' /d" $VESTA/data/firewall/rules.conf
# Updating system firewall
$BIN/v-update-firewall
if [ "$WEB_SYSTEM" == 'nginx' ] || [ "$PROXY_SYSTEM" == 'nginx' ]; then
parse_object_kv_list_non_eval "$oldvalues"
if [ "$PORT" == "80,443" ] && [ "$ACTION" == "DROP" ]; then
sed -i "\#$IP#d" /etc/nginx/conf.d/block-firewall.conf
systemctl restart nginx
fi
fi
#----------------------------------------------------------#
# Vesta #

View file

@ -0,0 +1,165 @@
#!/bin/bash
# info: delete inactive WordPress plugins and themes
# options: DOMAIN
#----------------------------------------------------------#
# Variable & Function #
#----------------------------------------------------------#
[ "$(whoami)" != "root" ] && { echo "You must be root to run this command."; exit 1; }
source /etc/profile
DOMAIN="$1"
[ -z "$DOMAIN" ] && { echo "Usage: v-delete-inactive-wordpress-plugins-and-themes DOMAIN"; exit 1; }
USER="$(/usr/local/vesta/bin/v-search-domain-owner "$DOMAIN")"
[ -z "$USER" ] && { echo "Domain $DOMAIN does not exist."; exit 1; }
WP_PATH="/home/$USER/web/$DOMAIN/public_html"
[ ! -f "$WP_PATH/wp-config.php" ] && { echo "WordPress is not installed on this domain."; exit 1; }
# WP-CLI wrapper
if [ ! -z "$PHP" ]; then
WP_RUN="PHP=$PHP /usr/local/vesta/bin/v-run-wp-cli $DOMAIN --skip-plugins --skip-themes"
else
WP_RUN="/usr/local/vesta/bin/v-run-wp-cli $DOMAIN --skip-plugins --skip-themes"
fi
quarantined=0;
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
cd "$WP_PATH" || exit 1
echo "Inactive WordPress plugins for $DOMAIN:"
echo "-------------------------------------"
RUN="$WP_RUN plugin list --format=csv --skip-plugins --skip-themes"
PLUGINS_LIST_CSV=$(eval "$RUN")
return_code=$?
if [ $return_code -ne 0 ]; then
echo "WP-CLI error:"
echo "return code: $return_code"
cat /home/$USER/web/$DOMAIN/wp-cli-error.log
exit $return_code
fi
PLUGINS_LIST_CSV=$(echo "$PLUGINS_LIST_CSV" | tail -n +2)
DEACTIVATED_PLUGINS_LIST_CSV=""
if [ ! -z "$PLUGINS_LIST_CSV" ]; then
printf "%-30s %-20s %-20s %-20s %-20s %-20s\n" "name" "status" "update" "version" "update_version" "auto_update"
while IFS=',' read -r NAME STATUS UPDATE VERSION UPDATE_VERSION AUTO_UPDATE; do
if [ "$STATUS" = "inactive" ]; then
printf "%-30s %-20s %-20s %-20s %-20s %-20s\n" "$NAME" "$STATUS" "$UPDATE" "$VERSION" "$UPDATE_VERSION" "$AUTO_UPDATE"
DEACTIVATED_PLUGINS_LIST_CSV="$DEACTIVATED_PLUGINS_LIST_CSV\n$NAME"
fi
done <<< "$PLUGINS_LIST_CSV"
else
echo "No plugins found."
fi
if [ ! -z "$DEACTIVATED_PLUGINS_LIST_CSV" ]; then
echo ""
read -r -p "Do you want to move inactive plugins to quarantine? (y/n, default: y): " RESPONSE < /dev/tty
if [ "$RESPONSE" == "y" ] || [ "$RESPONSE" == "Y" ] || [ -z "$RESPONSE" ]; then
while IFS=',' read -r NAME STATUS UPDATE VERSION UPDATE_VERSION AUTO_UPDATE; do
if [ "$STATUS" = "inactive" ]; then
folder="/home/$USER/web/$DOMAIN/public_html/wp-content/plugins/$NAME"
file="/home/$USER/web/$DOMAIN/public_html/wp-content/plugins/$NAME.php"
if [ -d "$folder" ] || [ -f "$file" ]; then
destination_base_folder="/srv/wp-deactivated-plugins/$DOMAIN"
if [ -d "$folder" ]; then
source_path="$folder"
destination_path="$destination_base_folder/$NAME"
elif [ -f "$file" ]; then
source_path="$file"
destination_path="$destination_base_folder/$NAME.php"
fi
mkdir -p $destination_base_folder
chown $USER:$USER $destination_base_folder
mv $source_path $destination_path
if [ -d "$destination_path" ]; then
echo "= Folder $source_path moved to $destination_path"
quarantined=1;
fi
if [ -f "$destination_path" ]; then
echo "= File $source_path moved to $destination_path"
quarantined=1;
fi
else
echo "=== ERROR: Folder $folder or file $file not found - it does not exist?"
fi
fi
done <<< "$PLUGINS_LIST_CSV"
fi
fi
echo ""
echo "Inactive WordPress themes for $DOMAIN:"
echo "-------------------------------------"
RUN="$WP_RUN theme list --format=csv --skip-plugins --skip-themes"
THEMES_LIST_CSV=$(eval "$RUN")
return_code=$?
if [ $return_code -ne 0 ]; then
echo "WP-CLI error:"
echo "return code: $return_code"
cat /home/$USER/web/$DOMAIN/wp-cli-error.log
exit $return_code
fi
THEMES_LIST_CSV=$(echo "$THEMES_LIST_CSV" | tail -n +2)
DEACTIVATED_THEMES_LIST_CSV=""
if [ ! -z "$THEMES_LIST_CSV" ]; then
printf "%-30s %-20s %-20s %-20s %-20s %-20s\n" "name" "status" "update" "version" "update_version" "auto_update"
while IFS=',' read -r NAME STATUS UPDATE VERSION UPDATE_VERSION AUTO_UPDATE; do
if [ "$STATUS" = "inactive" ]; then
printf "%-30s %-20s %-20s %-20s %-20s %-20s\n" "$NAME" "$STATUS" "$UPDATE" "$VERSION" "$UPDATE_VERSION" "$AUTO_UPDATE"
DEACTIVATED_THEMES_LIST_CSV="$DEACTIVATED_THEMES_LIST_CSV\n$NAME"
fi
done <<< "$THEMES_LIST_CSV"
else
echo "No themes found."
fi
if [ ! -z "$DEACTIVATED_THEMES_LIST_CSV" ]; then
echo ""
read -r -p "Do you want to move inactive themes to quarantine? (y/n, default: y): " RESPONSE < /dev/tty
if [ "$RESPONSE" == "y" ] || [ "$RESPONSE" == "Y" ] || [ -z "$RESPONSE" ]; then
while IFS=',' read -r NAME STATUS UPDATE VERSION UPDATE_VERSION AUTO_UPDATE; do
if [ "$STATUS" = "inactive" ]; then
folder="/home/$USER/web/$DOMAIN/public_html/wp-content/themes/$NAME"
if [ -d "$folder" ]; then
destination_base_folder="/srv/wp-deactivated-themes/$DOMAIN"
source_path="$folder"
destination_path="$destination_base_folder/$NAME"
mkdir -p $destination_base_folder
chown $USER:$USER $destination_base_folder
mv $source_path $destination_path
if [ -d "$destination_path" ]; then
echo "= Folder $source_path moved to $destination_path"
quarantined=1;
fi
else
echo "=== ERROR: Folder $folder not found - it does not exist?"
fi
fi
done <<< "$THEMES_LIST_CSV"
fi
fi
echo ""
if [ $quarantined -eq 1 ]; then
echo "= All deactivated plugins and themes moved to quarantine."
echo "= You can find them in /srv/wp-deactivated-plugins/$DOMAIN and /srv/wp-deactivated-themes/$DOMAIN"
else
echo "= No deactivated plugins or themes found."
fi
exit 0;

View file

@ -53,6 +53,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then
sed -i "/^$account@$domain_idn:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/accounts
rm -rf $HOMEDIR/$user/mail/$domain/$account
fi

View file

@ -51,12 +51,15 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then
rm -f /etc/$MAIL_SYSTEM/domains/$domain_idn
rm -rf $HOMEDIR/$user/conf/mail/$domain
rm -rf $HOMEDIR/$user/mail/$domain_idn
if [ -d "/hdd/home/$user/mail/$domain_idn" ]; then
rm -rf /hdd/home/$user/mail/$domain_idn
fi
fi
# Deleting dkim dns record
if [ "$DKIM" = 'yes' ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then
records=$($BIN/v-list-dns-records $user $domain plain)
dkim_records=$(echo "$records" |grep -w '_domainkey' | cut -f 1 -d ' ')
dkim_records=$(echo "$records" |grep -w '_domainkey' |cut -f 1)
for id in $dkim_records; do
$BIN/v-delete-dns-record $user $domain $id
done

View file

@ -48,7 +48,7 @@ fi
# Deleting dns record
if [ ! -z "$DNS_SYSTEM" ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then
records=$($BIN/v-list-dns-records $user $domain plain)
dkim_records=$(echo "$records" |grep -w '_domainkey' | cut -f 1 -d ' ')
dkim_records=$(echo "$records" |grep -w '_domainkey' | awk '{print $1}')
for id in $dkim_records; do
$BIN/v-delete-dns-record $user $domain $id
done

127
bin/v-delete-mails Normal file
View file

@ -0,0 +1,127 @@
#!/bin/bash
# info: delete old emails (by mtime) for user/domain/account, with optional scope
# usage: v-delete-mails USER DOMAIN ACCOUNT MTIME_DAYS|all SCOPE
# SCOPE: all clean every Maildir folder (cur, new, tmp, custom subfolders)
# trash clean only Trash/Junk/Spam folders
# load Vesta functions & config
source "$VESTA/func/main.sh"
source "$VESTA/conf/vesta.conf"
# read arguments
user="$1"
domain="$2"
account="$3"
mtime="$4"
scope="$5"
# verify argument count
check_args '5' "$#" 'USER DOMAIN ACCOUNT MTIME_DAYS|all SCOPE'
# validate scope
if [[ "$scope" != "all" && "$scope" != "trash" ]]; then
echo "ERROR: SCOPE must be 'all' or 'trash'."
exit 1
fi
# validate logical combinations
if [[ "$user" == "all" ]]; then
if [[ "$domain" != "all" || "$account" != "all" ]]; then
echo "ERROR: When USER is 'all', both DOMAIN and ACCOUNT must be 'all'."
exit 1
fi
elif [[ "$domain" == "all" && "$account" != "all" ]]; then
echo "ERROR: When DOMAIN is 'all', ACCOUNT must also be 'all'."
exit 1
fi
# build a detailed summary for the warning
declare -a summary_parts
if [[ "$user" == "all" ]]; then
summary_parts+=("all users")
else
summary_parts+=("user '$user'")
fi
if [[ "$domain" == "all" ]]; then
summary_parts+=("all domains")
else
summary_parts+=("domain '$domain'")
fi
if [[ "$account" == "all" ]]; then
summary_parts+=("all accounts")
else
summary_parts+=("account '$account'")
fi
# join with commas
summary=$(printf ", %s" "${summary_parts[@]}")
summary=${summary:2}
# only warn if any of them is 'all' or if mtime is 'all'
if [[ "$mtime" == "all" || "$user" == "all" || "$domain" == "all" || "$account" == "all" ]]; then
echo "WARNING: This will delete emails older than '$mtime' days for ${summary}."
read -p "Are you sure? (yes/no): " confirm
[[ "$confirm" != "yes" ]] && { echo "Aborted."; exit 1; }
fi
# function to delete emails
delete_emails() {
local u="$1" d="$2" a="$3"
local maildir="/home/$u/mail/$d/$a"
[[ ! -d "$maildir" ]] && return
echo "→ Cleaning '$a@$d' (user: $u), scope: $scope, mtime: $mtime"
# build find predicates
if [[ "$scope" == "all" ]]; then
folder_expr=( -path "*/cur/*" -o -path "*/new/*" -o -path "*/tmp/*" )
else
folder_expr=( -ipath "*/trash/*" -o -ipath "*/junk/*" -o -ipath "*/spam/*" )
fi
# assemble and run find
if [[ "$mtime" == "all" ]]; then
find "$maildir" -type f \( "${folder_expr[@]}" \) -print -delete 2>/dev/null
else
find "$maildir" -type f \( "${folder_expr[@]}" \) -mtime +"$mtime" -print -delete 2>/dev/null
fi
}
# collect users
if [[ "$user" == "all" ]]; then
users=$(v-list-users plain | awk '{print $1}')
else
users="$user"
fi
# iterate through users, domains, accounts
for u in $users; do
if [[ "$domain" == "all" ]]; then
domains=$(v-list-mail-domains "$u" plain | awk '{print $1}')
else
domains="$domain"
fi
for d in $domains; do
if [[ "$account" == "all" ]]; then
accounts=$(v-list-mail-accounts "$u" "$d" plain | awk '{print $1}')
else
accounts="$account"
fi
for a in $accounts; do
delete_emails "$u" "$d" "$a"
done
done
done
# restart dovecot to refresh mailbox state
systemctl restart dovecot
# log the action (status first, then message)
log_event "$OK" "Deleted emails (>$mtime days, scope=$scope) for $user $domain $account"
exit 0

75
bin/v-delete-sys-mail-ssl Executable file
View file

@ -0,0 +1,75 @@
#!/bin/bash
# info: delete sys vesta user ssl certificate
# options: NONE
#
# The script disables user domain ssl synchronization
#----------------------------------------------------------#
# Variable & Function #
#----------------------------------------------------------#
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
vst_crt="$VESTA/ssl/certificate.crt"
vst_key="$VESTA/ssl/certificate.key"
# Updating mail certificate
case $MAIL_SYSTEM in
exim) conf='/etc/exim/exim.conf';;
exim4) conf='/etc/exim4/exim4.conf.template';;
esac
if [ -e "$conf" ]; then
sed -e "s|^tls_certificate.*|tls_certificate = $vst_crt|" \
-e "s|^tls_privatekey.*|tls_privatekey = $vst_key|" -i $conf
fi
# Updating imap certificate
conf="/etc/dovecot/conf.d/10-ssl.conf"
if [ ! -z "$IMAP_SYSTEM" ] && [ -e "$conf" ]; then
sed -e "s|ssl_cert.*|ssl_cert = <$vst_crt|" \
-e "s|ssl_key.*|ssl_key = <$vst_key|" -i $conf
fi
# Moving old certificates
if [ -e "$VESTA/ssl/mail.crt" ]; then
mv -f $VESTA/ssl/mail.crt $VESTA/ssl/mail.crt.old
fi
if [ -e "VESTA/ssl/mail.key" ]; then
mv $VESTA/ssl/mail.key VESTA/ssl/mail.key.old
fi
# Updating vesta.conf value
sed -i "/MAIL_CERTIFICATE=/ d" $VESTA/conf/vesta.conf
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Restarting services
if [ "$restart" != 'no' ]; then
if [ ! -z "$MAIL_SYSTEM" ]; then
$BIN/v-restart-service $MAIL_SYSTEM
fi
if [ ! -z "$IMAP_SYSTEM" ]; then
$BIN/v-restart-service $IMAP_SYSTEM
fi
fi
# Logging
log_event "$OK" "$ARGUMENTS"
exit

37
bin/v-delete-sys-vesta-ssl Executable file
View file

@ -0,0 +1,37 @@
#!/bin/bash
# info: delete sys vesta user ssl certificate
# options: NONE
#
# The script disables user domain ssl synchronization
#----------------------------------------------------------#
# Variable & Function #
#----------------------------------------------------------#
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Updating vesta.conf value
sed -i "/VESTA_CERTIFICATE=/ d" $VESTA/conf/vesta.conf
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit

View file

@ -94,6 +94,9 @@ fi
# Deleting user directories
chattr -i $HOMEDIR/$user/conf
rm -rf $HOMEDIR/$user
if [ -d "/hdd/home/$user" ]; then
rm -rf /hdd/home/$user
fi
rm -f /var/spool/mail/$user
rm -f /var/spool/cron/$user
rm -f /var/spool/cron/crontabs/$user

View file

@ -32,6 +32,8 @@ case $system in
DNS_REC) is_format_valid 'id' ;;
*) is_format_valid 'object'
esac
is_format_valid 'user'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"

View file

@ -56,6 +56,31 @@ fi
get_domain_values 'web'
local_ip=$(get_real_ip $IP)
# Deleting FPM conf
fpmconf="/etc/php5/fpm/pool.d/$domain.conf"
if [ -f "$fpmconf" ]; then
rm $fpmconf
echo "Deleted: $fpmconf" >> /usr/local/vesta/log/system.log
fi
for PHPV in /etc/php/*; do
if [ -d "${PHPV}" ]; then
# PHPVER=$(basename ${PHPV})
POOLD="${PHPV}/fpm/pool.d"
fpmconf="$POOLD/$domain.conf"
if [ -f "$fpmconf" ]; then
rm $fpmconf
echo "Deleted: $fpmconf" >> /usr/local/vesta/log/system.log
fi
POOLD="${PHPV}/fpm/pool.d-ioncube"
fpmconf="$POOLD/$domain.conf"
if [ -f "$fpmconf" ]; then
rm $fpmconf
echo "Deleted: $fpmconf" >> /usr/local/vesta/log/system.log
fi
fi
done
# Deleting domain from web.conf
sed -i "/DOMAIN='$domain'/ d" $USER_DATA/web.conf
@ -105,6 +130,9 @@ rm -f /var/log/$WEB_SYSTEM/domains/$domain.error*
# Deleting directory
rm -rf $HOMEDIR/$user/web/$domain
if [ -d "/hdd/home/$user/web/$domain" ]; then
rm -rf /hdd/home/$user/web/$domain
fi
#----------------------------------------------------------#

View file

@ -57,8 +57,14 @@ fi
# Deleting old certificate
tmpdir=$(mktemp -p $HOMEDIR/$user/web/$domain/private -d)
rm -f $HOMEDIR/$user/conf/web/ssl.$domain.*
mv $USER_DATA/ssl/$domain.* $tmpdir
rm -f $HOMEDIR/$user/conf/web/ssl.$domain.ca
rm -f $HOMEDIR/$user/conf/web/ssl.$domain.crt
rm -f $HOMEDIR/$user/conf/web/ssl.$domain.key
rm -f $HOMEDIR/$user/conf/web/ssl.$domain.pem
mv $USER_DATA/ssl/$domain.ca $tmpdir
mv $USER_DATA/ssl/$domain.crt $tmpdir
mv $USER_DATA/ssl/$domain.key $tmpdir
mv $USER_DATA/ssl/$domain.pem $tmpdir
chown -R $user:$user $tmpdir

View file

@ -0,0 +1,64 @@
#!/bin/bash
# info: delete PHP files from WordPress uploads folder
# options: DOMAIN
#----------------------------------------------------------#
# Variable & Function #
#----------------------------------------------------------#
[ "$(whoami)" != "root" ] && { echo "You must be root to run this command."; exit 1; }
source /etc/profile
DOMAIN="$1"
[ -z "$DOMAIN" ] && { echo "Usage: v-delete-wordpress-uploads-php-files DOMAIN"; exit 1; }
USER="$(/usr/local/vesta/bin/v-search-domain-owner "$DOMAIN")"
[ -z "$USER" ] && { echo "Domain $DOMAIN does not exist."; exit 1; }
WP_PATH="/home/$USER/web/$DOMAIN/public_html"
[ ! -f "$WP_PATH/wp-config.php" ] && { echo "WordPress is not installed on this domain."; exit 1; }
quarantined=0;
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
cd "$WP_PATH" || exit 1
files=$(find wp-content/uploads/ -type f -name "*.php")
if [ -z "$files" ]; then
echo "= No PHP files found in WordPress uploads folder."
exit 0;
fi
echo "= Found PHP files in WordPress uploads folder for domain $DOMAIN :"
echo "-------------------------------------"
echo "$files"
echo "-------------------------------------"
read -r -p "Do you want to move these files to quarantine? (y/n, default: y): " RESPONSE < /dev/tty
if [ "$RESPONSE" == "y" ] || [ "$RESPONSE" == "Y" ] || [ -z "$RESPONSE" ]; then
for file in $files; do
source_file="/home/$USER/web/$DOMAIN/public_html/$file"
destination_file="/srv/wp-uploads-php-files-quarantine/$DOMAIN/$file"
destination_folder=$(dirname "$destination_file")
mkdir -p "$destination_folder"
chown $USER:$USER "$destination_folder"
mv "$source_file" "$destination_file"
echo "= File $source_file moved to $destination_file"
quarantined=1;
done
chown -R $USER:$USER "/srv/wp-uploads-php-files-quarantine/$DOMAIN"
fi
echo ""
if [ $quarantined -eq 1 ]; then
echo "= All PHP files moved to quarantine."
echo "= You can find them in /srv/wp-uploads-php-files-quarantine/$DOMAIN"
else
echo "= No PHP files found in WordPress uploads folder."
fi
exit 0;

86
bin/v-desinfect-wordpress Normal file
View file

@ -0,0 +1,86 @@
#!/bin/bash
# info: disinfect a WordPress site with several maintenance commands
# options: DOMAIN
# -------------------------------------------------------- #
# variables and checks #
# -------------------------------------------------------- #
if [ "$(whoami)" != "root" ]; then
echo "You must be root to run this command."
exit 1
fi
# make sure all Vesta helper scripts are reachable
export PATH="/usr/local/vesta/bin:$PATH"
source /etc/profile
domain="$1"
if [ -z "$domain" ]; then
echo "Usage: v-desinfect-wp DOMAIN"
exit 1
fi
user=$(/usr/local/vesta/bin/v-search-domain-owner "$domain")
if [ -z "$user" ]; then
echo "Domain $domain does not exist."
exit 1
fi
if [ ! -f "/usr/local/vesta/bin/v-wf-malware-hyperscan-with-remediate" ]; then
echo "= WordFence CLI is not installed. Installing..."
/usr/local/vesta/bin/v-install-wordfence-cli
fi
# absolute paths to maintenance scripts, in desired order
declare -a tasks=(
"/usr/local/vesta/bin/v-change-database-password-for-wordpress"
"/usr/local/vesta/bin/v-change-wordpress-admin-passwords"
"/usr/local/vesta/bin/v-fix-wordpress-core"
"/usr/local/vesta/bin/v-delete-inactive-wordpress-plugins-and-themes"
"/usr/local/vesta/bin/v-delete-wordpress-uploads-php-files"
"/usr/local/vesta/bin/v-wf-malware-hyperscan-with-remediate"
"INTERACTIVE=1 /usr/local/vesta/bin/v-wf-malware-hyperscan-with-remediate"
)
# -------------------------------------------------------- #
# execution strategy #
# -------------------------------------------------------- #
echo
read -r -p "Run all maintenance steps automatically? (y/n) " run_all < /dev/tty
if [[ "$run_all" =~ ^[Yy]$ ]]; then
echo "Running all maintenance steps for $domain"
automatic=true
else
echo
echo "Selective mode. You will be asked for each step."
automatic=false
fi
for cmd in "${tasks[@]}"; do
if [ ! -x "$cmd" ]; then
echo "Command $cmd not found or not executable, skipping."
continue
fi
if [ "$automatic" = false ]; then
while true; do
read -r -p "Run $(basename "$cmd") for $domain? (y/n) " yn < /dev/tty
case "$yn" in
[Yy]* ) break ;;
[Nn]* ) echo "Skipping $(basename "$cmd")."; continue 2 ;;
* ) echo "Please answer y or n." ;;
esac
done
fi
echo
echo "=== $(basename "$cmd") $domain ==="
"$cmd" "$domain"
done
echo
echo "Done."
exit 0

102
bin/v-df-snapshot-diff Normal file
View file

@ -0,0 +1,102 @@
#!/bin/bash
# info: Make a diff between two snapshots of the disk usage
# options: FILE1 FILE2
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Let's declare three associative arrays
declare -A FILE1
declare -A FILE2
declare -A FILED
file1=$1
file2=$2
if [[ ! "$file1" =~ ^/usr/local/vesta/data/df/snapshot-.*\.txt$ ]]; then
file1="/usr/local/vesta/data/df/$file1"
fi
if [[ ! "$file2" =~ ^/usr/local/vesta/data/df/snapshot-.*\.txt$ ]]; then
file2="/usr/local/vesta/data/df/$file2"
fi
if [ ! -f "$file1" ]; then
echo "File $file1 not found"
exit 1
fi
if [ ! -f "$file2" ]; then
echo "File $file2 not found"
exit 1
fi
timestamp=$(date +%Y-%m-%d-%H-%M-%S)
mkdir -p /usr/local/vesta/data/df-diff
file0="/usr/local/vesta/data/df-diff/diff-$timestamp.txt"
file0s="/usr/local/vesta/data/df-diff/diff-size-sorted-$timestamp.txt"
file0f="/usr/local/vesta/data/df-diff/diff-folder-sorted-$timestamp.txt"
touch $file0
# Let's load the first file and fill the array FILE1
while IFS=$'\t' read SIZE DIRECTORY; do
# Skip blank lines or lines that are not in the correct format
[[ -z "$DIRECTORY" ]] && continue
[[ "$DIRECTORY" = "total" ]] && continue
# Insert values into the array
FILE1["$DIRECTORY"]="$SIZE"
done < "$file1"
# Let's load the second file and fill the array FILE2
while IFS=$'\t' read SIZE DIRECTORY; do
# Skip blank lines or lines that are not in the correct format
[[ -z "$DIRECTORY" ]] && continue
[[ "$DIRECTORY" = "total" ]] && continue
# Insert values into the array
FILE2["$DIRECTORY"]="$SIZE"
done < "$file2"
# We iterate through FILE1 and look for the matching key in FILE2
for k in "${!FILE1[@]}"; do
if [[ -v FILE2["$k"] ]]; then
# If there is the same folder (KEY) in FILE2
DIFF=$(( ${FILE2[$k]} - ${FILE1[$k]} ))
FILED["$k"]=$DIFF
echo -e "${DIFF}\t${k}" >> $file0
else
# If the folder (KEY) is not found in FILE2
FILED["$k"]=${FILE1["$k"]}
echo -e "${FILE1["$k"]}\t${k}" >> $file0
fi
done
# sorted by size
sort -nr -k1,1 $file0 > $file0s
# sorted by folders
while IFS=$'\t' read SIZE DIRECTORY; do
[[ -z "$DIRECTORY" ]] && continue
[[ "$DIRECTORY" = "total" ]] && continue
echo -e "$DIRECTORY\t${FILED["$DIRECTORY"]}" >> $file0f
done < "$file2"
chmod 600 $file0 $file0s $file0f
chown root:root $file0 $file0s $file0f
echo "Done."
echo "You can do:"
echo "mcview $file0"
echo "mcview $file0s"
echo "mcview $file0f"
echo "--------------------------------"
echo "Here is the first 30 lines of the diff, sorted by size (descending, in MB):"
head -n 30 $file0s
echo "--------------------------------"
echo "Here is the first 30 lines of the diff, sorted by folders (in MB):"
head -n 30 $file0f
echo "--------------------------------"
exit 0

View file

@ -0,0 +1,11 @@
#!/bin/bash
# info: Clean up old snapshots of the disk usage
# options: NONE
folder="/usr/local/vesta/data/df"
mkdir -p $folder
find $folder -type f -mtime +30 -delete
folder="/usr/local/vesta/data/df-diff"
mkdir -p $folder
find $folder -type f -mtime +30 -delete

52
bin/v-df-snapshot-make Normal file
View file

@ -0,0 +1,52 @@
#!/bin/bash
# info: Make a snapshot of the disk usage
# options: NONE
folder="/usr/local/vesta/data/df"
mkdir -p $folder
timestamp=$(date +%Y-%m-%d-%H-%M-%S)
du --max-depth=1 -m -x / > $folder/snapshot-$timestamp.txt
du --max-depth=6 -m -x /home > $folder/snapshot-temp.txt
for i in {2..7}; do
while IFS= read -r line; do
count=0
for (( j=0; j<${#line}; j++ )); do
if [[ ${line:j:1} == "/" ]]; then
((count++))
fi
done
if [ $count -eq $i ]; then
printf '%s\n' "$line" >> $folder/snapshot-$timestamp.txt
fi
done < $folder/snapshot-temp.txt
done
rm $folder/snapshot-temp.txt
if [ -d "/hdd" ]; then
du --max-depth=7 -m -x /hdd > $folder/snapshot-temp.txt
for i in {1..8}; do
while IFS= read -r line; do
count=0
for (( j=0; j<${#line}; j++ )); do
if [[ ${line:j:1} == "/" ]]; then
((count++))
fi
done
if [ $count -eq $i ]; then
printf '%s\n' "$line" >> $folder/snapshot-$timestamp.txt
fi
done < $folder/snapshot-temp.txt
done
rm $folder/snapshot-temp.txt
fi
du --max-depth=1 -m -x /var/lib/mysql >> $folder/snapshot-$timestamp.txt
du --max-depth=1 -m -x /var/log >> $folder/snapshot-$timestamp.txt
chmod 600 $folder/snapshot-$timestamp.txt
chown root:root $folder/snapshot-$timestamp.txt
exit 0

90
bin/v-edit-domain-php-ini Normal file
View file

@ -0,0 +1,90 @@
#!/bin/bash
# info: Edit php.ini for certain domain
# options: DOMAIN
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
SILENT_MODE=1
# Argument definition
domain=$1
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
USER=$user
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/func/domain.sh
if [ -z "$user" ]; then
check_result $E_NOTEXIST "domain $domain doesn't exist"
fi
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
if [ ! -d "/home/$user" ]; then
# echo "User doesn't exist";
exit 1;
fi
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
# echo "Domain doesn't exist";
exit 1;
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
fpm_ver=$(/usr/local/vesta/bin/v-get-php-version-of-domain $domain)
if [ -z "$fpm_ver" ]; then
echo "PHP version for domain $domain could not be determined."
exit 1
fi
config_file="/etc/php/${fpm_ver}/fpm/pool.d/${domain}.conf"
if command -v mcedit >/dev/null; then
mcedit "$config_file"
else
nano "$config_file"
fi
echo "Restarting PHP-FPM service for PHP version ${fpm_ver}"
systemctl restart php${fpm_ver}-fpm
if [ $? -ne 0 ]; then
systemctl status php${fpm_ver}-fpm
echo "========================="
echo ""
echo "ERROR: php${fpm_ver}-fpm restart failed - please re-run the command and fix the problem !!!"
echo ""
exit $E_RESTART;
else
echo "The PHP-FPM service for PHP version ${fpm_ver} has been restarted successfully."
fi
echo ""
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
exit 0;

70
bin/v-edit-php-ini Normal file
View file

@ -0,0 +1,70 @@
#!/bin/bash
# info: Edit php.ini for a specific PHP version
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Includes
source $VESTA/func/main.sh
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# List available PHP versions and store them into an array
mapfile -t php_versions < <(/usr/local/vesta/bin/v-list-php)
echo "Available PHP versions:"
PS3="Please select the PHP version you want to edit php.ini for: "
select php_version in "${php_versions[@]}"; do
if [[ -n $php_version ]]; then
break
else
echo "Invalid choice. Please try again."
fi
done
# Define path to the php.ini file
php_ini_path="/etc/php/${php_version}/fpm/php.ini"
# Check if php.ini exists for the selected version
if [[ ! -f "$php_ini_path" ]]; then
echo "The php.ini file for the selected PHP version ($php_version) does not exist."
exit 1
fi
# Determine the text editor to use
if command -v mcedit >/dev/null 2>&1; then
editor_cmd="mcedit"
elif command -v nano >/dev/null 2>&1; then
editor_cmd="nano"
else
echo "No supported text editor found. Please install 'mcedit' or 'nano'."
exit 1
fi
# Open php.ini for the chosen PHP version in the selected editor
echo "Opening $php_ini_path in editor $editor_cmd..."
$editor_cmd "$php_ini_path"
# Restart the PHP-FPM service for the selected version
echo "Restarting the PHP-FPM service for PHP version $php_version..."
systemctl restart php${php_version}-fpm
if [ $? -ne 0 ]; then
systemctl status php${php_version}-fpm
echo "========================="
echo ""
echo "ERROR: php${php_version}-fpm restart failed - please re-run the command and fix the problem !!!"
echo ""
exit $E_RESTART;
else
echo "The PHP-FPM service for PHP version ${php_version} has been restarted successfully."
fi
#----------------------------------------------------------#
# Exit #
#----------------------------------------------------------#
exit 0;

View file

@ -0,0 +1,31 @@
#!/bin/bash
# info: ensure that pool.d folders are not empty
# options:
#
# The function ensure that pool.d folders are not empty
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Includes
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
ensure_poold_folders_not_empty
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit

View file

@ -82,7 +82,7 @@ fi
# Extracting ziped archive
if [ ! -z "$(echo $src_file |grep -i '.zip')" ]; then
sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
sudo -u $user unzip "$src_file" -d "$dst_dir" >/dev/null 2>&1
sudo -u $user unzip -o "$src_file" -d "$dst_dir" >/dev/null 2>&1
rc=$?
fi

17
bin/v-file-replace-string Normal file
View file

@ -0,0 +1,17 @@
#!/usr/bin/php
<?php
include ("/usr/local/vesta/func/main.php");
include ("/usr/local/vesta/func/string.php");
myvesta_check_args (3, 'find replace file');
echo "Find: ".$find."\n";
echo "Replace: ".$replace."\n";
echo "File: ".$file."\n";
$r=myvesta_replace_in_file($find, $replace, $file);
if ($r) echo "Replacing done!\n";
myvesta_exit(0);

View file

@ -0,0 +1,35 @@
#!/bin/bash
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1;
fi
if [ -f "/tmp/patched" ]; then rm /tmp/patched; fi;
echo "=== Fixing php.ini files to have the correct disable_functions line"
export NOTFOUNDVAL="exec,system,passthru,shell_exec"
export LINEBEGINSWITH="disable_functions ="
export NEWVAL="disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,exec,system,passthru,shell_exec,proc_open,popen"
find /etc/php/*/fpm/ -type f -name "php.ini" -exec grep -L "$NOTFOUNDVAL" {} \; | xargs sh -c 'found=0; for arg do if [ ! -f "$arg.disable_patching" ]; then if [ $found -eq 0 ]; then echo "== Fixing existing lines"; found=1; touch /tmp/patched; fi; echo "= Patching $arg"; sed -i "s|^$LINEBEGINSWITH.*|$NEWVAL|g" $arg; fi; done' _
export NOTFOUNDVAL2="^$LINEBEGINSWITH"
export REMOVELINETHATCONTAINS=$LINEBEGINSWITH
find /etc/php/*/fpm/ -type f -name "php.ini" -exec grep -L "$NOTFOUNDVAL2" {} \; | xargs sh -c 'found=0; for arg do if [ ! -f "$arg.disable_patching" ]; then if [ $found -eq 0 ]; then echo "== Adding missing lines"; found=1; touch /tmp/patched; fi; echo "= Patching $arg"; sed -i "s|.*$REMOVELINETHATCONTAINS.*||g" $arg; echo "$NEWVAL" >> $arg; fi; done' _
if [ -f "/tmp/patched" ]; then
rm /tmp/patched
echo "== Restarting all PHP-FPM services"
systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | xargs systemctl restart
echo "=== Everything done."
else
echo "=== Everything is already correct."
fi
exit 0;

View file

@ -0,0 +1,62 @@
#!/bin/bash
# info:
# This script will fix files permissions for desired user (if ownership is lost or files have wrong chmod)
# options: user
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ] && [ "$whoami" != "admin" ] ; then
echo "You must be root or admin to execute this script";
exit 1;
fi
# Argument definition
user=$1
# Includes
source $VESTA/func/main.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'USER'
is_format_valid 'user'
is_object_valid 'user' 'USER' "$user"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
find /home/$user/conf/mail/ -type d -exec chown Debian-exim:mail {} \;
find /home/$user/conf/mail/*/ -type f -exec chown Debian-exim:mail {} \;
find /home/$user/conf/mail/*/ -name "passwd" -type f -exec chown dovecot:mail {} \;
find /home/$user/mail/ -type d -exec chown $user:mail {} \;
find /home/$user/mail/*/ -type d -exec chown $user:mail {} \;
find /home/$user/mail/*/ -type f -exec chown $user:mail {} \;
find /home/$user/mail/*/ -type d -exec chmod u+rwx {} \;
find /home/$user/mail/*/ -type d -exec chmod g+rwx {} \;
find /home/$user/mail/*/ -type f -exec chmod u+rw {} \;
find /home/$user/mail/*/ -type f -exec chmod g+rw {} \;
find /home/$user/mail/*/ -maxdepth 1 -type d -exec chmod g-rwx {} \;
find /home/$user/conf/dns/ -type f -exec chown root:bind {} \;
find /home/$user/conf/ -type d -exec chown root:root {} \;
for domain in $(/usr/local/vesta/bin/v-list-web-domains $user plain |cut -f 1); do
/usr/local/vesta/bin/v-fix-website-permissions $domain $user
echo "--------------------------------"
done
echo "Done, permissions fixed for user: $user"
# Logging
log_event "$OK" "$ARGUMENTS"
exit

View file

@ -0,0 +1,161 @@
#!/bin/bash
# info: Fixing chown and chmod permissions for a website
# options: DOMAIN [USER]
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
# Argument definition
domain=$1
# Check if number of arguments is 2
if [ $# -eq 2 ]; then
user=$2
else
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
fi
USER=$user
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/conf/vesta.conf
if [ -z "$user" ]; then
check_result $E_NOTEXIST "domain $domain doesn't exist"
fi
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
if [ ! -d "/home/$user" ]; then
echo "Error: Folder /home/$user doesn't exist";
exit 1;
fi
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
echo "Error: Folder /home/$user/web/$domain/public_html doesn't exist";
exit 1;
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Going to domain directory
cd /home/$USER/web/$domain
# Ownership check
if [ -z "$SKIP_OWNERSHIP_CHECK" ] && [ -f "public_html/index.php" ]; then
owner=$(stat -c '%U' "public_html/index.php")
if [ "$owner" = "root" ] || [ "$owner" = "www-data" ]; then
echo "Skipping permission fix for $domain, because v-lock-wordpress is used (index.php is owned by $owner)"
exit 1
fi
fi
echo "Updating permissions and ownership for /home/$USER/web/$domain/"
php_chmod_allowed=1
if [ -f "/home/php_chmod_disabled" ]; then
php_chmod_allowed=0
fi
if [ -f "/home/$USER/php_chmod_disabled" ]; then
php_chmod_allowed=0
fi
if [ -f "/home/$USER/web/php_chmod_disabled" ]; then
php_chmod_allowed=0
fi
if [ -f "/home/$USER/web/$domain/php_chmod_disabled" ]; then
php_chmod_allowed=0
fi
# === General files and directories permissions ===
if [ "$php_chmod_allowed" -eq 1 ]; then
# New way of fixing permissions
# Fixing permissions
find public_html/ -type d ! -perm 755 -exec chmod 755 {} +
find public_html/ -type f ! \( -name "*.php" -o -name "*.env" \) ! -perm 644 -exec chmod 644 {} +
# Fixing ownership
find public_html/ -type d ! -user $USER -exec chown $USER:$USER {} +
find public_html/ -type f ! \( -name "*.php" -o -name "*.env" \) ! -user $USER -exec chown $USER:$USER {} +
else
# Old way of fixing permissions
# Fixing permissions
find public_html/ -type d ! -perm 755 -exec chmod 755 {} +
find public_html/ -type f ! -perm 644 -exec chmod 644 {} +
# Fixing ownership
find public_html/ -type d ! -user $USER -exec chown $USER:$USER {} +
find public_html/ -type f ! -user $USER -exec chown $USER:$USER {} +
fi
# === PHP and .env permissions ===
if [ "$php_chmod_allowed" -eq 1 ]; then
php_chmod="600"
if [ "$WEB_SYSTEM" = 'nginx' ]; then
php_chmod="644"
fi
if [ -f "/home/php_chmod" ]; then
php_chmod=$(cat /home/php_chmod)
fi
if [ -f "/home/$USER/php_chmod" ]; then
php_chmod=$(cat /home/$USER/php_chmod)
fi
if [ -f "/home/$USER/web/php_chmod" ]; then
php_chmod=$(cat /home/$USER/web/php_chmod)
fi
if [ -f "/home/$USER/web/$domain/php_chmod" ]; then
php_chmod=$(cat /home/$USER/web/$domain/php_chmod)
fi
# Setting chmod 600 for all .php and .env files
echo "= Setting chmod $php_chmod for all .php and .env files"
# Fixing permissions
find -type f \( -name "*.php" -o -name "*.env" \) ! -perm $php_chmod -exec chmod $php_chmod {} +
# Fixing ownership
find -type f \( -name "*.php" -o -name "*.env" \) ! -user $USER -exec chown $USER:$USER {} +
fi
# === Symlinks ownership ===
symlink_chown_allowed=1
if [ -f "/home/symlink_chown_disabled" ]; then
symlink_chown_allowed=0
fi
if [ -f "/home/$USER/symlink_chown_disabled" ]; then
symlink_chown_allowed=0
fi
if [ -f "/home/$USER/web/symlink_chown_disabled" ]; then
symlink_chown_allowed=0
fi
if [ -f "/home/$USER/web/$domain/symlink_chown_disabled" ]; then
symlink_chown_allowed=0
fi
if [ "$symlink_chown_allowed" -eq 1 ]; then
find -type l ! -user $USER -exec chown -h $USER:$USER {} +
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
echo "Permissions for $domain have been successfully updated."
exit 0

View file

@ -0,0 +1,41 @@
#!/bin/bash
# info: fix website permissions for all websites
# options:
#
# The command is used for fixing website permissions for all websites on the server.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Importing system variables
source /etc/profile
# Includes
source $VESTA/func/main.sh
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
for user in $(grep '@' /etc/passwd |cut -f1 -d:); do
if [ ! -f "/usr/local/vesta/data/users/$user/user.conf" ]; then
continue;
fi
for domain in $(/usr/local/vesta/bin/v-list-web-domains $user plain |cut -f 1); do
/usr/local/vesta/bin/v-fix-website-permissions $domain $user
echo "--------------------------------"
done
done
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit

View file

@ -0,0 +1,44 @@
#!/bin/bash
# info: fix website permissions for all websites
# options:
#
# The command is used for fixing website permissions for all websites on the server.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Importing system variables
source /etc/profile
# Includes
source $VESTA/func/main.sh
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
touch /usr/local/vesta/log/fix-website-permissions-for-all-websites-only-php.log
truncate -s 0 /usr/local/vesta/log/fix-website-permissions-for-all-websites-only-php.log
for user in $(grep '@' /etc/passwd |cut -f1 -d:); do
if [ ! -f "/usr/local/vesta/data/users/$user/user.conf" ]; then
continue;
fi
for domain in $(/usr/local/vesta/bin/v-list-web-domains $user plain |cut -f 1); do
/usr/local/vesta/bin/v-fix-website-permissions-only-php $domain $user >> /usr/local/vesta/log/fix-website-permissions-for-all-websites-only-php.log 2>&1
echo "--------------------------------" >> /usr/local/vesta/log/fix-website-permissions-for-all-websites-only-php.log
done
done
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit

View file

@ -0,0 +1,121 @@
#!/bin/bash
# info: Fixing PHP and .env permissions and ownership for a website
# options: DOMAIN [USER]
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
# Argument definition
domain=$1
# Check if number of arguments is 2
if [ $# -eq 2 ]; then
user=$2
else
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
fi
USER=$user
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/conf/vesta.conf
if [ -z "$user" ]; then
check_result $E_NOTEXIST "domain $domain doesn't exist"
fi
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
if [ ! -d "/home/$user" ]; then
echo "Error: Folder /home/$user doesn't exist";
exit 1;
fi
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
echo "Error: Folder /home/$user/web/$domain/public_html doesn't exist";
exit 1;
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Going to domain directory
cd /home/$USER/web/$domain
# Ownership check
if [ -z "$SKIP_OWNERSHIP_CHECK" ] && [ -f "public_html/index.php" ]; then
owner=$(stat -c '%U' "public_html/index.php")
if [ "$owner" = "root" ] || [ "$owner" = "www-data" ]; then
echo "Skipping permission fix for $domain, because v-lock-wordpress is used (index.php is owned by $owner)"
exit 1
fi
fi
echo "Updating PHP and .env permissions and ownership for /home/$USER/web/$domain/"
php_chmod_allowed=1
if [ -f "/home/php_chmod_disabled" ]; then
php_chmod_allowed=0
fi
if [ -f "/home/$USER/php_chmod_disabled" ]; then
php_chmod_allowed=0
fi
if [ -f "/home/$USER/web/php_chmod_disabled" ]; then
php_chmod_allowed=0
fi
if [ -f "/home/$USER/web/$domain/php_chmod_disabled" ]; then
php_chmod_allowed=0
fi
# === PHP and .env permissions ===
if [ "$php_chmod_allowed" -eq 1 ]; then
php_chmod="600"
if [ "$WEB_SYSTEM" = 'nginx' ]; then
php_chmod="644"
fi
if [ -f "/home/php_chmod" ]; then
php_chmod=$(cat /home/php_chmod)
fi
if [ -f "/home/$USER/php_chmod" ]; then
php_chmod=$(cat /home/$USER/php_chmod)
fi
if [ -f "/home/$USER/web/php_chmod" ]; then
php_chmod=$(cat /home/$USER/web/php_chmod)
fi
if [ -f "/home/$USER/web/$domain/php_chmod" ]; then
php_chmod=$(cat /home/$USER/web/$domain/php_chmod)
fi
# Setting chmod 600 for all .php and .env files
echo "= Setting chmod $php_chmod for all .php and .env files"
# Fixing permissions
find -type f \( -name "*.php" -o -name "*.env" \) ! -perm $php_chmod -exec chmod $php_chmod {} +
# Fixing ownership
find -type f \( -name "*.php" -o -name "*.env" \) ! -user $USER -exec chown $USER:$USER {} +
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
echo "PHP and .env permissions and ownership for $domain have been successfully updated."
exit 0

115
bin/v-fix-wordpress-core Normal file
View file

@ -0,0 +1,115 @@
#!/bin/bash
# info: fix compromised wp-admin and wp-includes
# options: DOMAIN [CACHE_DIR]
#
# Replaces wp-admin and wp-includes with clean copies that match
# the WordPress core version detected on the site.
#
# Example:
# v-fix-wp-core example.com
# v-fix-wp-core example.com /srv/wp-cache
#----------------------------------------------------------#
# Variable & Function #
#----------------------------------------------------------#
# Arguments
DOMAIN="$1"
CACHE_DIR="${2-/srv/wp-cache}" # default cache location
QUARANTINE_DIR="/srv/wp-quarantine"
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN [CACHE_DIR]'
is_format_valid 'domain'
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
TMP_DIR="$(mktemp -d /tmp/wpfix.XXXXXX)" # temp workspace
trap 'rm -rf "$TMP_DIR"' EXIT
# 1etermine WP version
if [ -z "$PHP" ]; then
WP_VERSION="$(/usr/local/vesta/bin/v-run-wp-cli "$DOMAIN" core version | tr -d '[:space:]')"
else
WP_VERSION="$(PHP=$PHP /usr/local/vesta/bin/v-run-wp-cli "$DOMAIN" core version | tr -d '[:space:]')"
fi
check_result $? "cannot detect WP version" > /dev/null
if [ -z "$WP_VERSION" ]; then
check_result 1 "empty WP version string"
fi
echo "Detected WordPress version $WP_VERSION"
# 2ind site owner and path
USER="$(/usr/local/vesta/bin/v-search-domain-owner "$DOMAIN")"
check_result $? "cannot find domain owner" > /dev/null
SITE_PATH="/home/$USER/web/$DOMAIN/public_html"
if [ ! -d "$SITE_PATH" ]; then
check_result 1 "site path $SITE_PATH does not exist"
fi
# ensure cached core is present
CACHE_PATH="$CACHE_DIR/$WP_VERSION"
if [ ! -d "$CACHE_PATH/wp-admin" ] || [ ! -d "$CACHE_PATH/wp-includes" ]; then
echo "Cache for $WP_VERSION missing, downloading ZIP..."
mkdir -p "$CACHE_PATH"
ZIP_URL="https://wordpress.org/wordpress-${WP_VERSION}.zip"
ZIP_FILE="$TMP_DIR/wp.zip"
curl -fSL "$ZIP_URL" -o "$ZIP_FILE"
check_result $? "download failed" > /dev/null
unzip -q "$ZIP_FILE" -d "$TMP_DIR"
check_result $? "unzip failed" > /dev/null
mv "$TMP_DIR/wordpress/wp-admin" "$CACHE_PATH/"
mv "$TMP_DIR/wordpress/wp-includes" "$CACHE_PATH/"
cp "$TMP_DIR/wordpress"/*.php "$CACHE_PATH/"
fi
# backup current core folders
TIMESTAMP="$(date +%Y%m%d%H%M%S)"
BACKUP_DIR="$QUARANTINE_DIR/$DOMAIN/backup-core-$TIMESTAMP"
mkdir -p "$BACKUP_DIR"
mv "$SITE_PATH/wp-admin" "$BACKUP_DIR/"
mv "$SITE_PATH/wp-includes" "$BACKUP_DIR/"
for f in "$SITE_PATH"/*.php; do
[[ $(basename "$f") == "wp-config.php" ]] && continue
mv "$f" "$BACKUP_DIR/"
done
if [ -f "$SITE_PATH/.user.ini" ]; then
mv "$SITE_PATH/.user.ini" "$BACKUP_DIR/"
fi
# chown -R www-data:www-data "$BACKUP_DIR"
check_result $? "backup failed" > /dev/null
echo "Old core folders moved to $BACKUP_DIR"
# deploy clean core
rsync -a --delete "$CACHE_PATH/wp-admin/" "$SITE_PATH/wp-admin/"
rsync -a --delete "$CACHE_PATH/wp-includes/" "$SITE_PATH/wp-includes/"
check_result $? "rsync failed" > /dev/null
for corephp in "$CACHE_PATH"/*.php; do
base=$(basename "$corephp")
[ "$base" = "wp-config.php" ] && continue
rsync -a "$corephp" "$SITE_PATH/$base"
done
# fix permissions
SKIP_OWNERSHIP_CHECK=1 /usr/local/vesta/bin/v-fix-website-permissions $DOMAIN
# chown -R www-data:www-data "$BACKUP_DIR"
echo "Done, core WP files, wp-admin and wp-includes replaced for $DOMAIN"
exit

View file

@ -23,6 +23,7 @@ HASH=$(keygen)
if [ ! -d ${KEYS} ]; then
mkdir ${KEYS}
chmod 0770 ${KEYS}
fi
if [[ -e ${KEYS}${HASH} ]] ; then

View file

@ -67,7 +67,7 @@ fi
args_usage='DOMAIN EMAIL COUNTRY STATE CITY ORG UNIT [ALIASES] [FORMAT]'
check_args '7' "$#" "$args_usage"
is_format_valid 'domain_alias' 'format'
is_format_valid 'domain' 'alias' 'format'
#----------------------------------------------------------#

View file

@ -0,0 +1,181 @@
#!/bin/bash
# info: get database credentials and other basic data of domain
# options: DOMAIN [SUBFOLDER]
#
# The function get database credentials and other basic data of domain.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Argument definition
DOMAIN=$1
SUBFOLDER=''
if [ $# -gt 1 ]; then
SUBFOLDER=$2
fi
# Importing system environment
source /etc/profile
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/func/db.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN [SUBFOLDER]'
is_domain_format_valid "$DOMAIN"
USER=$(/usr/local/vesta/bin/v-search-domain-owner "$DOMAIN")
if [ -z "$USER" ]; then
echo "Error: domain $DOMAIN does not exists"
exit 2
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
PUBLIC_HTML='public_html';
CHECK_PUBLIC_SHTML=$(/usr/local/vesta/bin/v-list-web-domain "$USER" "$DOMAIN" | grep 'SSL:' | grep -c 'single')
if [ $CHECK_PUBLIC_SHTML -eq 1 ]; then
PUBLIC_HTML='public_shtml';
fi
SITE_FOLDER="/home/$USER/web/$DOMAIN/$PUBLIC_HTML"
if [ ! -z "$SUBFOLDER" ]; then
SITE_FOLDER="${SITE_FOLDER}/${SUBFOLDER}"
fi
CMS_TYPE=''
if [ -f "$SITE_FOLDER/wp-config.php" ]; then
CMS_TYPE='wordpress'
CONFIG_FILE="wp-config.php"
CONFIG_FILE_FULL_PATH="$SITE_FOLDER/$CONFIG_FILE"
fi
if [ -f "$SITE_FOLDER/configuration.php" ]; then
CMS_TYPE='joomla'
CONFIG_FILE="configuration.php"
CONFIG_FILE_FULL_PATH="$SITE_FOLDER/$CONFIG_FILE"
fi
if [ -f "$SITE_FOLDER/system/engine/model.php" ]; then
check_grep=$(grep -c 'OpenCart' $SITE_FOLDER/system/engine/model.php)
if [ "$check_grep" -gt 0 ]; then
CMS_TYPE='opencart'
CONFIG_FILE="$PUBLIC_HTML/config.php"
SUBFOLDER='..'
SITE_FOLDER="${SITE_FOLDER}/.."
CONFIG_FILE_FULL_PATH="$SITE_FOLDER/$CONFIG_FILE"
fi
fi
if [ "$CMS_TYPE" = "wordpress" ]; then
CONFIG_FILE_FULL_PATH_BACKUP="${CONFIG_FILE_FULL_PATH}_backup"
cp $CONFIG_FILE_FULL_PATH $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|//.*$||g" $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|\"|'|g" $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|('|( '|g" $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|');|' );|g" $CONFIG_FILE_FULL_PATH_BACKUP
DATABASE_NAME=$(grep 'DB_NAME' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
DATABASE_USERNAME=$(grep 'DB_USER' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
DATABASE_PASSWORD=$(grep 'DB_PASSWORD' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
DATABASE_HOSTNAME=$(grep 'DB_HOST' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
rm $CONFIG_FILE_FULL_PATH_BACKUP
fi
if [ "$CMS_TYPE" = "joomla" ]; then
CONFIG_FILE_FULL_PATH_BACKUP="${CONFIG_FILE_FULL_PATH}_backup"
cp $CONFIG_FILE_FULL_PATH $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|//.*$||g" $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|='|= '|g" $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|= '| = '|g" $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s| =| =|g" $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|';$|'|g" $CONFIG_FILE_FULL_PATH_BACKUP
DATABASE_NAME=$(grep 'public $db ' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $4}' | sed -e "s/^'//" -e "s/'$//")
DATABASE_USERNAME=$(grep 'public $user ' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $4}' | sed -e "s/^'//" -e "s/'$//")
DATABASE_PASSWORD=$(grep 'public $password ' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $4}' | sed -e "s/^'//" -e "s/'$//")
DATABASE_HOSTNAME=$(grep 'public $host ' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $4}' | sed -e "s/^'//" -e "s/'$//")
rm $CONFIG_FILE_FULL_PATH_BACKUP
fi
if [ "$CMS_TYPE" = "opencart" ]; then
CONFIG_FILE_FULL_PATH_BACKUP="${CONFIG_FILE_FULL_PATH}_backup"
cp $CONFIG_FILE_FULL_PATH $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|//.*$||g" $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|('|( '|g" $CONFIG_FILE_FULL_PATH_BACKUP
sed -i "s|');|' );|g" $CONFIG_FILE_FULL_PATH_BACKUP
DATABASE_NAME=$(grep 'DB_DATABASE' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
DATABASE_USERNAME=$(grep 'DB_USERNAME' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
DATABASE_PASSWORD=$(grep 'DB_PASSWORD' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
DATABASE_HOSTNAME=$(grep 'DB_HOST' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
rm $CONFIG_FILE_FULL_PATH_BACKUP
fi
if [ ! -z "$DATABASE_NAME" ]; then
DATABASE_NAME_WITHOUT_USER_PREFIX=$(get_database_name_without_user_prefix "$USER" "$DATABASE_NAME")
fi
if [ ! -z "$DATABASE_USERNAME" ]; then
DATABASE_USERNAME_WITHOUT_USER_PREFIX=$(get_database_name_without_user_prefix "$USER" "$DATABASE_USERNAME")
fi
DATABASE_NAME_WITHOUT_USER_PREFIX=$(escape_shell_quote $DATABASE_NAME_WITHOUT_USER_PREFIX)
echo "DATABASE_NAME_WITHOUT_USER_PREFIX=$DATABASE_NAME_WITHOUT_USER_PREFIX"
DATABASE_USERNAME_WITHOUT_USER_PREFIX=$(escape_shell_quote $DATABASE_USERNAME_WITHOUT_USER_PREFIX)
echo "DATABASE_USERNAME_WITHOUT_USER_PREFIX=$DATABASE_USERNAME_WITHOUT_USER_PREFIX"
DATABASE_NAME=$(escape_shell_quote $DATABASE_NAME)
echo "DATABASE_NAME=$DATABASE_NAME"
DATABASE_USERNAME=$(escape_shell_quote $DATABASE_USERNAME)
echo "DATABASE_USERNAME=$DATABASE_USERNAME"
DATABASE_PASSWORD=$(escape_shell_quote $DATABASE_PASSWORD)
echo "DATABASE_PASSWORD=$DATABASE_PASSWORD"
DATABASE_HOSTNAME=$(escape_shell_quote $DATABASE_HOSTNAME)
echo "DATABASE_HOSTNAME=$DATABASE_HOSTNAME"
CONFIG_FILE_FULL_PATH=$(escape_shell_quote $CONFIG_FILE_FULL_PATH)
echo "CONFIG_FILE_FULL_PATH=$CONFIG_FILE_FULL_PATH"
CONFIG_FILE=$(escape_shell_quote $CONFIG_FILE)
echo "CONFIG_FILE=$CONFIG_FILE"
CMS_TYPE=$(escape_shell_quote $CMS_TYPE)
echo "CMS_TYPE=$CMS_TYPE"
SITE_FOLDER=$(escape_shell_quote $SITE_FOLDER)
echo "SITE_FOLDER=$SITE_FOLDER"
SUBFOLDER=$(escape_shell_quote $SUBFOLDER)
echo "SITE_SUBFOLDER=$SUBFOLDER"
USER=$(escape_shell_quote $USER)
echo "SITE_USER=$USER"
if [ "$CMS_TYPE" = "'opencart'" ]; then
echo "SEARCH_FOR_CONFIGS_DATABASE_NAME=1"
echo "SEARCH_FOR_CONFIGS_DATABASE_USERNAME=1"
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit

70
bin/v-get-dns-config Normal file
View file

@ -0,0 +1,70 @@
#!/bin/bash
# info: Get domain DNS config.db file content
# options: DOMAIN
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
SILENT_MODE=1
# Argument definition
domain=$1
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
USER=$user
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/func/domain.sh
if [ -z "$user" ]; then
check_result $E_NOTEXIST "domain $domain doesn't exist"
fi
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
if [ ! -d "/home/$user" ]; then
# echo "User doesn't exist";
exit 1;
fi
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
# echo "Domain doesn't exist";
exit 1;
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
DNS_FILE="/home/$user/conf/dns/$domain.db"
if [ -f "$DNS_FILE" ]; then
cat "$DNS_FILE"
else
echo "DNS configuration file for $domain does not exist."
exit 1
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
exit 0;

View file

@ -0,0 +1,72 @@
#!/bin/bash
# info: Check PHP version used for certain domain
# options: DOMAIN
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
whoami=$(whoami)
if [ "$whoami" != "root" ]; then
echo "You must be root to execute this script"
exit 1
fi
# Importing system environment
source /etc/profile
SILENT_MODE=1
# Argument definition
domain=$1
user=$(/usr/local/vesta/bin/v-search-domain-owner $domain)
USER=$user
# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/func/domain.sh
if [ -z "$user" ]; then
check_result $E_NOTEXIST "domain $domain doesn't exist"
fi
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'DOMAIN'
is_format_valid 'domain'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
if [ ! -d "/home/$user" ]; then
# echo "User doesn't exist";
exit 1;
fi
if [ ! -d "/home/$user/web/$domain/public_html" ]; then
# echo "Domain doesn't exist";
exit 1;
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
TPL=$(/usr/local/vesta/bin/v-list-web-domain $user $domain shell | grep 'TEMPLATE:' | awk '{print $2}')
if [[ $TPL == "PHP-FPM-"* ]]; then
fpm_tpl_ver=${TPL:8:2}
fpm_ver="${TPL:8:1}.${TPL:9:1}"
echo "$fpm_ver"
exit 0;
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
exit 1;

118
bin/v-get-user-salt Executable file
View file

@ -0,0 +1,118 @@
#!/bin/bash
# info: get user salt
# options: USER [IP] [FORMAT]
#
# The function provides users salt
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument definition
user=$1
ip=${2-127.0.0.1}
format=${3-shell}
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
time_n_date=$(date +'%T %F')
time=$(echo "$time_n_date" |cut -f 1 -d \ )
date=$(echo "$time_n_date" |cut -f 2 -d \ )
# JSON list function
json_list() {
echo '{'
echo ' "'$user'": {
"METHOD": "'$method'",
"SALT": "'$salt'",
"TIME": "'$time'",
"DATE": "'$date'"
}'
echo '}'
}
# SHELL list function
shell_list() {
echo "METHOD: $method"
echo "SALT: $salt"
}
# PLAIN list function
plain_list() {
echo -e "$method\t$salt"
}
# CSV list function
csv_list() {
echo "METHOD,SALT"
echo "$method, $salt"
}
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'USER [IP] [SALT]'
is_format_valid 'user'
# Checking user
if [ ! -d "$VESTA/data/users/$user" ]; then
echo "Error: password missmatch"
echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Parsing user's salt
shadow=$(grep "^$user:" /etc/shadow | cut -f 2 -d :)
if echo "$shadow" | grep -qE '^\$[0-9a-z]+\$[^\$]+\$'
then
salt=$(echo "$shadow" |cut -f 3 -d \$)
method=$(echo "$shadow" |cut -f 2 -d \$)
if [ "$method" -eq '1' ]; then
method='md5'
elif [ "$method" -eq '6' ]; then
method='sha-512'
else
echo "Error: password missmatch"
echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
else
salt=${shadow:0:2}
method='des'
fi
if [ -z "$salt" ]; then
echo "Error: password missmatch"
echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log
exit 9
fi
# Listing data
case $format in
json) json_list ;;
plain) plain_list ;;
csv) csv_list ;;
shell) shell_list ;;
esac
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
exit

27
bin/v-grep Normal file
View file

@ -0,0 +1,27 @@
#!/bin/bash
# info: calling myvesta_grep PHP function
# options: PARAMETERS
#
# The function is calling myVesta PHP replacement for GNU 'grep' command (but without regular expression)
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
if [ "$1" == "--stdin" ] && [ -p /dev/stdin ]; then
STDIN=$(cat -)
if [ ! -z "$STDIN" ]; then
shift;
echo "$STDIN" | php /usr/local/vesta/func/bash-to-php-interpreter.php '--stdin' 'myvesta_grep' "$@"
exit $?
fi
fi
if [ "$1" == "--stdin" ]; then
shift;
php /usr/local/vesta/func/bash-to-php-interpreter.php '--stdin' 'myvesta_grep' "$@"
else
php /usr/local/vesta/func/bash-to-php-interpreter.php 'myvesta_grep' "$@"
fi
exit $?

Some files were not shown because too many files have changed in this diff Show more