Browse Source

Merge branch 'main' into feature/osal

Ernesto Nicolás Carrea 5 years ago
parent
commit
340ae41227

+ 1 - 0
.github/FUNDING.yml

@@ -0,0 +1 @@
+custom: ["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ST87LQH2CHGLA"]

+ 85 - 26
CONTRIBUTING.md

@@ -1,47 +1,106 @@
-Code Contributions & Pull Requests - Guidelines
+Hestia Control Panel - Contribution Guidelines
 -----------------------
 
-All pull requests must include a brief but descriptive title, and a description of the changes that you've made with as much detail as possible. **Only include commits that are related to your feature, bug fix, or patch in your pull request.**
-
-## Code formatting and comments:
+Ways to contribute
+-----------------------
+- **Beta testing**:
+    - Download and install builds from the `beta` branch. Provide feedback to our developers and file any issues that you come across on [GitHub](https://www.github.com/hestiacp/hestiacp/issues).<br>
+    `v-update-sys-hestia-git hestiacp beta install` will install the latest beta build from our GitHub repository.
+- **Code review and bug fixes**:
+    - Read over the code and if you notice errors (even spelling mistakes), submit a pull request with your fixes.
+- **New features**:
+    - Is there an awesome feature that you'd love to see included? While our development team tries to fulfill all reasonable requests, it can take time to implement new features depending on the amount of work involved. Submit a pull request with your code and if your idea is approved, we'll review and test it for inclusion with an upcoming release.
+- **Translations**:
+    - If you are a non-English speaker and would like to improve the quality of the translations used in Hestia Control Panel's web interface, please review the `.php` files found under `hestiacp/web/inc/i18n` and submit a pull request or open an issue report [GitHub](https://www.github.com/hestiacp/hestiacp/issues) highlighting the issue with the current translation so that it can be corrected.
+- **Donations**:
+    - If you're not a developer but you still want to make a contribution, you can make a donation to the Hestia Control Panel project to further its development (or if you'd just like to buy our developers a lunch, we'd appreciate that too). We currently accept dontations through [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ST87LQH2CHGLA).
+
+Development Guidelines
+-----------------------
+### Code formatting and comments
 We ask that you follow existing naming schemes and coding conventions where possible, and that you add comments in your source code where appropriate to aid other developers in debugging and understanding your code in the future.
 
-## Squashing commits for smaller changes:
-When submitting a pull request with multiple smaller commits which are related to the same issue (or file), we ask that you please **squash your commits** in order to keep the project's commit history clean and easy to follow for other developers.
-
-## Working with branches:
-Development for this project takes place in branches to effectively develop, manage, and test new features and code changes, helping to ensure that each release meets high quality standards. Our primary branches are as follows:
+### Workflow and process
+Development for this project takes place in branches to effectively develop, manage, and test new features and code changes. Our tiered approach allows us to closely control the quality of code as it is checked in for inclusion.
 
-### Primary branches:
+We have three primary or "evergreen" branches, which exist throughout our product's lifetime. Please refer to the following table for a description:
 
-* `develop`: Active development code for the the next version of Hestia Control Panel, considered to be unstable.
-* `beta`: Feature locked code for the next release, which receives fixes only and goes through feedback and testing.
-* `release`: Code in this branch aligns with the latest packages available on our APT repositories.
+| Branch        | Description     | Cycle           |
+|---------------|:---------------:|:---------------:|
+| `main`        | Contains a snapshot of the latest development code.<br>**Not intended for production use and may be unstable.** | Daily  |
+| `beta`        | Contains a snapshot of the next version which is currently in testing.<br>**Not intended for production but should be highly stable.**  | Weekly |
+| `release`     | Contains a snapshot of the latest stable release.<br>**Intended for production use. Same code as packages in repository.** | Monthly |
 
-### I want to contribute some code to Hestia Control Panel, where do I start?
+### Creating a new branch and submitting pull requests
+The first step is to create a fork of the `hestiacp/hestiacp` repository under your account so that you may submit pull requests and patches via GitHub. 
 
-First, create a new branch for your work based on the `develop` branch to ensure that you have the latest commits in your local repository, which will help make sure that your pull requests only contain the commits that are necessary. 
+Once you've created your fork, clone the repository to your computer and make sure that you've checked out the `main` branch. **Always** create a new topic branch for you work. When submitting pull requests it is important that you target the correct branch to ensure that your changes are properly integrated and tested based on our release schedule. When creating a new branch, we ask that you please adhere to the following naming conventions as much as possible:
 
-When creating your branches, **please adhere to the following naming conventions:**
-
-- **Prefix:** `bugfix/` or `feature/` based on the type of submission.
+### Branch naming convention:
+- **Prefix:** `topic/` (such as **bugfix**, **feature**, **refactor**, etc.)
 - **ID**: `888` (GitHub Issue ID if an issue exists) -or- `2020-07` (Year-Month if an issue does not already exist)
 - **Separator:** `_` (underscore)
 - **Title:** `my-awesome-patch`
 
 Branch name examples:
 * `feature/777_my-awesome-new-feature` or `feature/2020-07_my-other-new-feature`
-* `bugfix/000_some-bug-fix` or `bugfix/2020-07_this-feature-is-broken`
+* `fix/000_some-bug-fix` or `fix/2020-07_this-feature-is-broken`
+* `refactor/2020-07_v-change-domain-owner`
+* `test/2020-07_mail-domain-ssl`
 
-Once your code is complete and you have reviewed it for errors, submit a pull request to the correct integration branch:
+### Squashing commits for smaller changes
+When submitting a pull request with multiple smaller commits which are related to the same file or issue, we ask that you please **squash your commits** whenever appropriate in order to keep the project's commit history clean and easy to follow for other developers.
 
-* `staging/fixes`: bugfix/ branches will merge to this branch when they have been tested/verified.
-* `staging/features`: feature/ branches will merge to this branch when they have been tested/verified.
+### What happens when I submit a pull request?
+- Our internal development team will review your work and validate your request.
+- Your changes will be tested to ensure that there are no issues.
+- If changes need to be made, you will be notified via GitHub.
+- Once approved, your code will be merged to the appropriate `staging/*` branch based on the chart below:
 
-All `staging` branches will integrate to `develop` to form the next release of Hestia Control Panel. Once all features and fixes planned for the release are merged, the code will then be pushed to the `beta` branch where it is feature locked, assigned a version number, and will receive thorough testing before being pushed to the `release` branch with new packages being pushed to APT.
+All pull requests must include a brief but descriptive title, and a description of the changes that you've made with as much detail as possible. **Only include commits that are related to your feature, bug fix, or patch in your pull request.**
 
-**Please ensure that all pull requests meet the guidelines listed above; those that do not will be rejected and sent back for review.**
+| Topic branches:              | Primary Target:             | Final destination:                    | 
+| -----------------------------|:---------------------------:|:-------------------------------------:|
+| **`feature/*`**              | `staging/features`          | `main`                                |
+| **`fix/*`**                  | `staging/fixes`             | `main` **and** `beta` *or* `release`  |
+| **`refactor/*`**             | `staging/refactoring`       | `main`                                |
+| **`test/*`**                 | `staging/tests`             | `main`                                |
+| **`doc/*`**                  | `staging/docs`              | `main`, `beta`, *or* `release`        |
 
-Donations
+Our development and release cycles
 -----------------------
-If you would like to make a donation to the Hestia Control Panel project to further its development (or if you'd like to buy our developers a lunch), please feel free to do so via [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ST87LQH2CHGLA).
+### During the development cycle:
+- `topic/*` branches are submitted to our team via a pull request. Your changes will be reviewed and tested, and if all appropriate quality assurance checks pass the branch will be merged to the corresponding `staging/*` branch.
+
+- `staging/*` branches merge into `main` at various intervals throughout the development process.
+
+- When all planned features and fixes have been merged to `main`, the code is tested for regressions and bugs.
+
+- A snapshot of `main` is pushed to a temporary branch called `staging/refactoring`, and final code review, refactoring, and optimization takes place. Once complete, `staging/refactoring` merges back to `main` bringing the codebase up-to-date. All other `staging/*` branches synchronize with `main` at this time.
+
+- After final validation checks pass, our development team signs off on the release and the code is pushed from `main` to `beta`.
+
+### During the release cycle:
+- **What happens when code moves from `main` to `beta`**:<br>
+    - **No new feature requests will be approved**.
+    - `main` will receive an increment in it's version number signaling the start of a new development cycle.
+    - `fix/*` topic branches/commits will be cherry picked to `beta` as necessary.
+    - `staging/docs` will merge into `beta` prior to the code being pushed to `release` to bring documentation and supporting files up-to-date.
+
+- If all quality assurance checks pass, our development team will then:
+    - Sign off on the code in `beta`.
+    - Push the code to the `release` branch and create a corresponding version tag.
+    - Compile new packages and publish them to our APT repository. 
+    - **Notes:**
+        - `release` always contains the highest released version of Hestia Control Panel.
+        - For major releases, a `release/vX.x` branch will be created for maintenance and servicing purposes.
+
+
+
+
+Thank you!
+-----------------------
+We appreciate **all** contributions no matter what size; your feedback and input directly shapes the future of Hestia Control Panel and we could not do it without your support.
+
+Thank you for your time and we look forward to seeing your pull requests,<br>
+The Hestia Control Panel development team

+ 2 - 2
README.md

@@ -71,7 +71,7 @@ If you've run into a problem, [file a new issue report via GitHub](https://githu
 
 Contributions
 =============================
-If you would like to contribute to the project, please [read our Contribution Guidelines](https://github.com/hestiacp/hestiacp/blob/master/CONTRIBUTING.md) for a brief overview of our development process and standards.
+If you would like to contribute to the project, please [read our Contribution Guidelines](https://github.com/hestiacp/hestiacp/blob/release/CONTRIBUTING.md) for a brief overview of our development process and standards.
 
 Copyright
 =============================
@@ -87,4 +87,4 @@ Copyright
 
 License
 =============================
-Hestia Control Panel is licensed under [GPL v3](https://github.com/hestiacp/hestiacp/blob/master/LICENSE) license, and is based on the [VestaCP](https://www.vestacp.com/) project.<br>
+Hestia Control Panel is licensed under [GPL v3](https://github.com/hestiacp/hestiacp/blob/release/LICENSE) license, and is based on the [VestaCP](https://www.vestacp.com/) project.<br>

+ 3 - 3
bin/v-add-user-composer

@@ -46,9 +46,9 @@ if [ -f "$COMPOSER_BIN" ]; then
     exit
 fi
 
-[ -z "$(readlink -f "$COMPOSER_DIR" | egrep "^$HOMEDIR/$user/")" ] && check_result $E_FORBIDEN "Path outside of user homedir (Composer dir)"
-[ -z "$(readlink -f "$COMPOSER_BIN" | egrep "^$HOMEDIR/$user/")" ] && check_result $E_FORBIDEN "Path outside of user homedir (Composer bin)"
-[ -z "$(readlink -f "$HOMEDIR/$user/.config/" | egrep "^$HOMEDIR/$user/")" ] && check_result $E_FORBIDEN "Path outside of user homedir (.conf)"
+[ -z "$(readlink -m "$COMPOSER_DIR" | egrep "^$HOMEDIR/$user/")" ] && check_result $E_FORBIDEN "Path outside of user homedir (Composer dir)"
+[ -z "$(readlink -m "$COMPOSER_BIN" | egrep "^$HOMEDIR/$user/")" ] && check_result $E_FORBIDEN "Path outside of user homedir (Composer bin)"
+[ -z "$(readlink -m "$HOMEDIR/$user/.config/" | egrep "^$HOMEDIR/$user/")" ] && check_result $E_FORBIDEN "Path outside of user homedir (.conf)"
 
 mkdir -p "$COMPOSER_DIR"
 chown $user: "$COMPOSER_DIR"

+ 1 - 1
install/deb/filemanager/filegator/configuration.php

@@ -6,7 +6,7 @@ $dist_config['public_path'] = '/fm/';
 $dist_config['frontend_config']['app_name'] = 'File Manager - Hestia Control Panel';
 $dist_config['frontend_config']['logo'] = '../images/logo.png';
 $dist_config['frontend_config']['editable'] = ['.txt', '.css', '.js', '.ts', '.html', '.php', '.py',
-        '.yml', '.xml', '.md', '.log', '.csv', '.conf', '.config', '.ini', '.scss', '.sh', '.env', '.example' ];
+        '.yml', '.xml', '.md', '.log', '.csv', '.conf', '.config', '.ini', '.scss', '.sh', '.env', '.example', '.htaccess'];
 $dist_config['frontend_config']['guest_redirection'] = '/login/' ;
 $dist_config['frontend_config']['upload_max_size'] = 1024 * 1024 * 1024;
 

+ 7 - 0
install/hst-install-debian.sh

@@ -324,6 +324,13 @@ if [ ! -e '/usr/bin/wget' ]; then
     check_result $? "Can't install wget"
 fi
 
+# Checking curl
+if [ ! -e '/usr/bin/curl' ]; then
+    echo "[ * ] Installing curl..."
+    apt-get -y install curl >> $LOG
+    check_result $? "Can't install curl"
+fi
+
 # Checking dirmngr
 if [ ! -e '/usr/bin/dirmngr' ]; then
     echo "[ * ] Installing dirmngr..."

+ 7 - 0
install/hst-install-ubuntu.sh

@@ -306,6 +306,13 @@ if [ ! -e '/usr/bin/wget' ]; then
     check_result $? "Can't install wget"
 fi
 
+# Checking curl
+if [ ! -e '/usr/bin/curl' ]; then
+    echo "[ * ] Installing curl..."
+    apt-get -y install curl >> $LOG
+    check_result $? "Can't install curl"
+fi
+
 # Check if apt-transport-https is installed
 if [ ! -e '/usr/lib/apt/methods/https' ]; then
     echo "[ * ] Installing apt-transport-https..."

+ 1 - 1
install/upgrade/manual/migrate_mpm_event.sh

@@ -54,7 +54,7 @@ if ! lsof -Pi :9000 -sTCP:LISTEN -t >/dev/null; then
         sed -i "s/listen = 127.0.0.1:.*/listen = 127.0.0.1:9000/g" /etc/php/7.3/fpm/pool.d/www.conf
     else
         # Copy www.conf file
-        cp -f $HESTIA_INSTALL_DIR/php-fpm/www.conf /etc/php/7.3/fpm/pool.d/
+        cp -f /usr/local/hestia/install/deb/php-fpm/www.conf /etc/php/7.3/fpm/pool.d/
     fi
     # Restart php7.3 fpm service.
     systemctl restart php7.3-fpm

+ 167 - 167
web/inc/i18n/el.php

@@ -2,30 +2,30 @@
 /**
  * HestiaCP interface translation in Greek.
  * Translation by Cemendur.
- * Last update: 2/02/2017 by ArisC
+ * Last update: 8 July 2020 by ioannidesalex
  *
  */
 
 $LANG['el'] = array(
     'Packages'  => 'Πακέτα',
-    'IP'  => 'Δίκτυο',
+    'IP'  => 'IP',
     'Graphs'  => 'Γραφήματα',
     'Statistics'  => 'Στατιστικά',
-    'Log'  =>  'Αρχείο',
+    'Log'  =>  'Αρχείο Καταγραφής',
     'Server'  => 'Διακομιστής',
     'Services'  => 'Υπηρεσίες',
-    'Firewall' => 'Firewall',
+    'Firewall' => 'Τείχος Προστασίας',
     'Updates'  => 'Ενημερώσεις',
     'Log in'  => 'Σύνδεση',
     'Log out'  => 'Αποσύνδεση',
 
     'USER'  => 'ΧΡΗΣΤΗΣ',
-    'WEB'  => 'WEB',
+    'WEB'  => 'ΙΣΤΟΣΕΛΙΔΑ',
     'DNS'  => 'DNS',
-    'MAIL'  => 'MAIL',
-    'DB'  => 'DB',
+    'MAIL'  => 'ΤΑΧΥΔΡΟΜΕΙΟ',
+    'DB'  => 'ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ',
     'CRON'  => 'CRON',
-    'BACKUP'  => 'BACKUP',
+    'BACKUP'  => 'ΑΝΤΙΓΡΑΦΟ ΑΣΦΑΛΕΙΑΣ',
 
     'LOGIN'  => 'ΣΥΝΔΕΣΗ',
     'RESET PASSWORD'  => 'ΕΠΑΝΑΦΟΡΑ ΚΩΔΙΚΟΥ ΠΡΟΣΒΑΣΗΣ',
@@ -33,27 +33,27 @@ $LANG['el'] = array(
     'PACKAGE'  => 'ΠΑΚΕΤΑ',
     'RRD'  => 'RRD',
     'STATS'  => 'ΣΤΑΤΙΣΤΙΚΑ',
-    'LOG'  => 'ΑΡΧΕΙΟ',
+    'LOG'  => 'ΑΡΧΕΙΟ ΚΑΤΑΓΡΑΦΗΣ',
     'UPDATES'  => 'ΕΝΗΜΕΡΩΣΕΙΣ',
-    'FIREWALL'  => 'FIREWALL',
-    'SERVER'  => 'SERVER',
+    'FIREWALL'  => 'ΤΕΙΧΟΣ ΠΡΟΣΤΑΣΙΑΣ',
+    'SERVER'  => 'ΔΙΑΚΟΜΙΣΤΗΣ',
     'MEMORY'  => 'ΜΝΗΜΗ',
     'DISK'  => 'ΔΙΣΚΟΣ',
     'NETWORK'  => 'ΔΙΚΤΥΟ',
-    'Web Log Manager'  => 'Web Log Manager',
+    'Web Log Manager'  => 'Διαχείριση Καταγραφών',
 
     'no notifications'  => 'Δεν υπάρχουν ειδοποιήσεις',
 
-    'Add User'  => 'Προσθέστε χρήστη',
-    'Add Domain'  => 'Προσθέστε πεδίο ορισμού',
-    'Add Web Domain'  => 'Προσθέστε Web πεδίο ορισμού',
-    'Add DNS Domain'  => 'Προσθέστε DNS πεδίο ορισμού',
-    'Add DNS Record'  => 'Προσθέστε Εγγραφή DNS',
-    'Add Mail Domain'  => 'Προσθέστε Mail πεδίο ορισμού',
-    'Add Mail Account'  => 'Προσθέστε Λογαριασμό Mail',
-    'Add Database'  => 'Προσθέστε Βάση Δεδομένων',
-    'Add Cron Job'  => 'Προσθέστε Cron Job',
-    'Create Backup'  => 'Δημιουργήστε αντίγραφο ασφαλείας',
+    'Add User'  => 'Προσθήκη Χρήστη',
+    'Add Domain'  => 'Προσθήκη Domain',
+    'Add Web Domain'  => 'Προσθήκη Domain Ιστοσελίδας',
+    'Add DNS Domain'  => 'Προσθήκη DNS Domain',
+    'Add DNS Record'  => 'Προσθήκη Εγγραφής DNS',
+    'Add Mail Domain'  => 'Προσθήκη Domain Ταχυδρομείου',
+    'Add Mail Account'  => 'Προσθήκη Λογαριασμού Ταχυδρομείου',
+    'Add Database'  => 'Προσθήκη Βάσης Δεδομένων',
+    'Add Cron Job'  => 'Προσθήκη Εργασίας Cron',
+    'Create Backup'  => 'Δημιουργία Αντίγραφου Ασφαλείας',
     'Configure'  => 'Ρύθμιση',
     'Restore All'  => 'Επαναφορά Όλων',
     'Add Package'  => 'Προσθήκη Πακέτου',
@@ -73,80 +73,80 @@ $LANG['el'] = array(
     'Submit'  => 'Υποβολή',
 
     'toggle all'  => 'Εναλλαγή όλων',
-    'apply to selected'  => 'εφαρμογή επιλεγμένων',
-    'rebuild'  => 'επαναδημιουργία',
-    'rebuild web'  => 'επαναδημιουργία web',
-    'rebuild dns'  => 'επαναδημιουργία dns',
-    'rebuild mail'  => 'επαναδημιουργία mail',
-    'rebuild db'  => 'επαναδημιουργία db',
-    'rebuild cron'  => 'επαναδημιουργία cron',
-    'update counters'  => 'ενημέρωση μετρητών',
-    'suspend'  => 'αποκλεισμός',
-    'unsuspend'  => 'άρση αποκλεισμού',
-    'delete'  => 'διαγραφή',
-    'show per user'  => 'εμφάνιση ανά χρήστη',
-    'login as'  => 'είσοδος ως',
-    'logout'  => 'αποσύνδεση',
-    'edit'  => 'επεξεργασία',
-    'open webstats'  => 'άνοιγμα στατιστικών web',
-    'view logs'  => 'δείτε τα αρχεία καταγραφής',
-    'list records'  => 'εμφάνιση %s εγγραφών',
-    'add record'  => 'προσθήκη εγγραφής',
-    'list accounts'  => 'εμφάνιση %s λογαριασμών',
-    'add account'  => 'προσθήκη λογαριασμού',
-    'open webmail'  => 'άνοιγμα webmail',
+    'apply to selected'  => 'Εφαρμογή επιλεγμένων',
+    'rebuild'  => 'Επαναδημιουργία',
+    'rebuild web'  => 'Επαναδημιουργία ιστοσελίδας',
+    'rebuild dns'  => 'Επαναδημιουργία dns',
+    'rebuild mail'  => 'Επαναδημιουργία ταχυδρομείου',
+    'rebuild db'  => 'Επαναδημιουργία βάσης δεδομένων',
+    'rebuild cron'  => 'Επαναδημιουργία cron',
+    'update counters'  => 'Ενημέρωση μετρητών',
+    'suspend'  => 'Αποκλεισμός',
+    'unsuspend'  => 'Άρση αποκλεισμού',
+    'delete'  => 'Διαγραφή',
+    'show per user'  => 'Εμφάνιση ανά χρήστη',
+    'login as'  => 'Είσοδος ως',
+    'logout'  => 'Αποσύνδεση',
+    'edit'  => 'Επεξεργασία',
+    'open webstats'  => 'Άνοιγμα στατιστικών web',
+    'view logs'  => 'Εμφάνιση αρχείων καταγραφής',
+    'list records'  => 'Εμφάνιση %s εγγραφών',
+    'add record'  => 'Προσθήκη εγγραφής',
+    'list accounts'  => 'Εμφάνιση %s λογαριασμών',
+    'add account'  => 'Προσθήκη λογαριασμού',
+    'open webmail'  => 'Άνοιγμα webmail',
     'list fail2ban' => 'Διαχείριση αποκλεισμένων IP',
-    'open %s'  => 'άνοιγμα %s',
-    'download'  => 'λήψη',
-    'restore'  => 'επαναφορά',
-    'configure restore settings'  => 'επεξεργασία ρυθμίσεων επαναφοράς',
-    'stop'  => 'τερματισμός',
-    'start'  => 'εκκίνηση',
-    'restart'  => 'επανεκκίνηση',
-    'update'  => 'ενημέρωση',
-    'generate'  => 'δημιουργήστε',
+    'open %s'  => 'Άνοιγμα %s',
+    'download'  => 'Λήψη',
+    'restore'  => 'Επαναφορά',
+    'configure restore settings'  => 'Επεξεργασία ρυθμίσεων επαναφοράς',
+    'stop'  => 'Τερματισμός',
+    'start'  => 'Εκκίνηση',
+    'restart'  => 'Επανεκκίνηση',
+    'update'  => 'Ενημέρωση',
+    'generate'  => 'Δημιουργία',
     'Generate CSR' => 'Δημιουργήστε CSR',
     'reread IP' => 'Ενημέρωση IP',
-    'enable autoupdate' => 'ενεργοποίηση autoupdate',
-    'disable autoupdate' => 'απενεργοποίηση autoupdate',
-    'turn on notifications' => 'ενεργοποίηση ειδοπ.',
-    'turn off notifications' => 'απενεργοποίηση ειδοπ.',
-    'configure' => 'configure',
+    'enable autoupdate' => 'Ενεργοποίηση αυτόματων ενημερώσεων',
+    'disable autoupdate' => 'Απενεργοποίηση αυτόματων ενημερώσεων',
+    'turn on notifications' => 'Ενεργοποίηση ειδοποιήσεων',
+    'turn off notifications' => 'Απενεργοποίηση ειδοποιήσεων',
+    'configure' => 'Ρύθμιση',
 
     'Adding User'  => 'Προσθήκη Χρήστη',
     'Editing User'  => 'Επεξεργασία Χρήστη',
-    'Adding Domain'  => 'Προσθήκη πεδίο ορισμού',
-    'Editing Domain'  => 'Επεξεργασία πεδίο ορισμού',
-    'Adding DNS Domain'  => 'Προσθήκη DNS πεδίο ορισμού',
-    'Editing DNS Domain'  => 'Επεξεργασία DNS πεδίο ορισμού',
+    'Adding Domain'  => 'Προσθήκη Domain',
+    'Editing Domain'  => 'Επεξεργασία Domain',
+    'Adding DNS Domain'  => 'Προσθήκη DNS Domain',
+    'Editing DNS Domain'  => 'Επεξεργασία DNS Domain',
     'Adding DNS Record'  => 'Προσθήκη Εγγραφής DNS',
     'Editing DNS Record'  => 'Επεξεργασία Εγγραφής DNS',
-    'Adding Mail Domain'  => 'Προσθήκη Mail πεδίο ορισμού',
-    'Editing Mail Domain'  => 'Επεξεργασία Mail πεδίο ορισμού',
-    'Adding Mail Account'  => 'Προσθήκη Λογαριασμού Mail',
-    'Editing Mail Account'  => 'Επεξεργασία Λογαριασμού Mail',
-    'Adding database'  => 'Προσθήκη database',
-    'Editing Cron Job'  => 'Επεξεργασία Cron Job',
-    'Adding Cron Job'  => 'Προσθήκη Cron Job',
+    'Adding Mail Domain'  => 'Προσθήκη Domain Ταχυδρομείου',
+    'Editing Mail Domain'  => 'Επεξεργασία Domain Ταχυδρομείου',
+    'Adding Mail Account'  => 'Προσθήκη Λογαριασμού Ταχυδρομείου',
+    'Editing Mail Account'  => 'Επεξεργασία Λογαριασμού Ταχυδρομείου',
+    'Adding database'  => 'Προσθήκη Βάσης Δεδομένων',
+    'Editing Cron Job'  => 'Επεξεργασία Εργασίας Cron',
+    'Adding Cron Job'  => 'Προσθήκη Εργασίας Cron',
     'Editing Database'  => 'Επεξεργασία Βάσης Δεδομένων',
     'Adding Package'  => 'Προσθήκη Πακέτου',
     'Editing Package'  => 'Επεξεργασία Πακέτου',
     'Adding IP address'  => 'Προσθήκη Διεύθυνσης IP',
     'Editing IP Address'  => 'Επεξεργασία Διεύθυνσης IP',
-    'Editing Backup Exclusions' => 'Επεξεργασία εξαιρέσεων αντιγράφου ασφαλείας',
+    'Editing Backup Exclusions' => 'Επεξεργασία Εξαιρέσεων Αντιγράφου Ασφαλείας',
     'Generating CSR' => 'Δημιουργία CSR',
     'Listing'  => 'Εμφάνιση',
     'Search Results'  => 'Αναζήτηση Αποτελεσμάτων',
     'Adding Firewall Rule' => 'Προσθήκη Κανόνα Τείχους Προστασίας',
     'Editing Firewall Rule' => 'Επεξεργασία Κανόνα Τείχους Προστασίας',
-    'Adding IP Address to Banlist' => 'Προσθήκη Διεύθυνσης IP στη λίστα απαγόρευσης',
+    'Adding IP Address to Banlist' => 'Προσθήκη Διεύθυνσης IP στη Λίστα Απαγόρευσης',
 
     'active'  => 'ενεργό',
     'spnd'  => 'ανεσταλμένο',
     'suspended'  => 'ανεσταλμένο',
     'running'  => 'εκτελείται',
     'stopped'  => 'τερματισμένο',
-    'outdated'  => 'ανενημέρωτο',
+    'outdated'  => 'μη ενημερωμένο',
     'updated'  => 'ενημερωμένο',
 
     'yes'  => 'ναι',
@@ -164,50 +164,50 @@ $LANG['el'] = array(
     'minutes'  => 'λεπτά',
     'month'  => 'μήνας',
     'package'  => 'πακέτο',
-    'Bandwidth'  => 'εύρος ζώνης',
+    'Bandwidth'  => 'Eύρος Zώνης',
     'Disk'  => 'Δίσκος',
-    'Web'  => 'Web',
-    'Mail'  => 'Mail',
+    'Web'  => 'Ιστοσελίδα',
+    'Mail'  => 'Ταχυδρομείο',
     'Databases'  => 'Βάσεις Δεδομένων',
-    'User Directories'  => 'Κατάλογοι Χρήστη',
-    'Template'  => 'Template',
-    'Web Template'  => 'Web Template',
-    'Backend Template'  => 'Backend Template',
-    'Proxy Template' =>'Proxy Template',
-    'DNS Template'  => 'DNS Template',
-    'Web Domains'  => 'Web Domains',
+    'User Directories'  => 'Φάκελοι Χρήστη',
+    'Template'  => 'Πρότυπο',
+    'Web Template'  => 'Πρότυπο Ιστοσελίδας',
+    'Backend Template'  => 'Πρότυπο Παρασκηνίου',
+    'Proxy Template' =>'Πρότυπο Διαμεσολαβητή',
+    'DNS Template'  => 'Πρότυπο DNS',
+    'Web Domains'  => 'Domains Ιστοσελίδας',
     'SSL Domains'  => 'SSL Domains',
-    'Web Aliases'  => 'Ψευδώνυμα Web',
+    'Web Aliases'  => 'Ψευδώνυμα Ιστοσελίδας',
     'per domain'  => 'ανά domain',
     'DNS Domains'  => 'DNS Domains',
     'DNS domains'  => 'DNS domains',
     'DNS records'   => 'Εγγραφές DNS',
     'Name Servers'  => 'Διακομιστές Ονομάτων',
-    'Mail Domains'  => 'Mail Domains',
-    'Mail Accounts'  => 'Λογαριασμοί Mail',
-    'Cron Jobs'  => 'Cron Jobs',
+    'Mail Domains'  => 'Domains Ταχυδρομείου',
+    'Mail Accounts'  => 'Λογαριασμοί Ταχυδρομείου',
+    'Cron Jobs'  => 'Εργασίες Cron',
     'SSH Access'  => 'Πρόσβαση SSH',
-    'IP Address'  => 'IP Address',
+    'IP Address'  => 'Διεύθυνση IP',
     'IP Addresses'  => 'Διευθύνσεις IP',
     'Backups'  => 'Αντίγραφα Ασφαλείας',
     'Backup System'  => 'Σύστημα Αντιγράφων Ασφαλείας',
-    'backup exclusions' => 'εξαιρέσεις αντιγράφου ασφαλείας',
-    'template'  => 'template',
+    'backup exclusions' => 'Εξαιρέσεις αντιγράφου ασφαλείας',
+    'template'  => 'Πρότυπο',
     'SSL Support'  => 'Υποστήριξη SSL',
-    'SSL Home Directory'  => 'Αρχικός Κατάλογος SSL',
-    'Lets Encrypt Support'  => 'Lets Encrypt Support',
+    'SSL Home Directory'  => 'Αρχικός Φάκελος SSL',
+    'Lets Encrypt Support'  => 'Υποστήριξη Lets Encrypt',
     'Lets Encrypt'  => 'Lets Encrypt',
-    'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes',
-    'Proxy Support'  => 'Υποστήριξη Proxy',
-    'Proxy Extensions'  => 'Πρόσθετα Proxy',
-    'Web Statistics'  => 'Στατιστικά Web',
+    'Your certificate will be automatically issued in 5 minutes' => 'Το πιστοποιητικό σας θα εκδωθεί αυτόματα σε 5 λεπτά',
+    'Proxy Support'  => 'Υποστήριξη Διαμεσολαβητή',
+    'Proxy Extensions'  => 'Πρόσθετα Διαμεσολαβητή',
+    'Web Statistics'  => 'Στατιστικά Ιστοσελίδας',
     'Additional FTP Account'  => 'Επιπρόσθετος Λογαριασμός FTP',
-    'Path'  => 'Path',
+    'Path'  => 'Μονοπάτι',
     'SOA'  => 'SOA',
     'TTL'  => 'TTL',
     'Expire'  => 'Λήγει',
     'Records'  => 'Εγγραφές',
-    'Serial'  => 'Serial',
+    'Serial'  => 'Σειριακός',
     'Catchall email'  => 'Catchall email',
     'AntiVirus Support'  => 'Υποστήριξη AntiVirus',
     'AntiSpam Support'  => 'Υποστήριξη AntiSpam',
@@ -216,22 +216,22 @@ $LANG['el'] = array(
     'Quota'  => 'Ποσοστό',
     'Autoreply'  => 'Αυτόματη απάντηση',
     'Forward to'  => 'Προώθηση σε',
-    'Do not store forwarded mail' => 'Μη αποθήκευση των προωθημένων mail',
+    'Do not store forwarded mail' => 'Μη αποθήκευση προωθημένων μηνυμάτων ταχυδρομείου',
     'IMAP hostname'  => 'IMAP hostname',
-    'IMAP port'  => 'IMAP port',
-    'IMAP security'  => 'IMAP security',
-    'IMAP auth method'  => 'IMAP auth method',
+    'IMAP port'  => 'Θύρα IMAP',
+    'IMAP security'  => 'Ασφάλεια IMAP',
+    'IMAP auth method'  => 'Μέθοδος πιστοποίησης IMAP',
     'SMTP hostname'  => 'SMTP hostname',
-    'SMTP port'  => 'SMTP port',
-    'SMTP security'  => 'SMTP security',
-    'SMTP auth method'  => 'SMTP auth method',
+    'SMTP port'  => 'Θύρα SMTP',
+    'SMTP security'  => 'Ασφάλεια SMTP',
+    'SMTP auth method'  => 'Μέθοδος πιστοποίησης SMTP',
     'STARTTLS'  => 'STARTTLS',
-    'Normal password'  => 'Normal password',
+    'Normal password'  => 'Κωδικός πρόσβασης',
     'database'  => 'βάση δεδομένων',
     'User'  => 'Χρήστης',
     'Host'  => 'Host',
     'Charset'  => 'Charset',
-    'Min'  => 'Λεπ',
+    'Min'  => 'Λεπτό',
     'Hour'  => 'Ώρα',
     'Day'  => 'Ημέρα',
     'Month'  => 'Μήνας',
@@ -242,83 +242,83 @@ $LANG['el'] = array(
     'SYS'  => 'SYS',
     'Domains'  => 'Domains',
     'Status'  => 'Κατάσταση',
-    'shared'  => 'shared',
-    'dedicated'  => 'dedicated',
+    'shared'  => 'Κοινόχρηστο',
+    'dedicated'  => 'Αποκλειστικό',
     'Owner' => 'Ιδιοκτήτης',
     'Users'  => 'Χρήστες',
     'Load Average'  => 'Μέσος Όρος Φόρτου',
     'Memory Usage'  => 'Χρήση Μνήμης',
-    'APACHE2 Usage'  => 'APACHE2 Usage',
+    'APACHE2 Usage'  => 'Χρήση APACHE2',
     'HTTPD Usage'  => 'Χρήση HTTPD',
     'NGINX Usage'  => 'Χρήση NGINX',
     'MySQL Usage on localhost'  => 'Χρήση της MySQL στο localhost',
     'PostgreSQL Usage on localhost'  => 'Χρήση της PostgreSQL στο localhost',
-    'Bandwidth Usage eth0'  => 'Χρήση Bandwidth eth0',
-    'Bandwidth Usage eth1'  => 'Χρήση Bandwidth eth1',
-    'Exim Usage'  => 'Exim Usage',
+    'Bandwidth Usage eth0'  => 'Χρήση Εύρους Ζώνης eth0',
+    'Bandwidth Usage eth1'  => 'Χρήση Εύρους Ζώνης eth1',
+    'Exim Usage'  => 'Χρήση Exim',
     'FTP Usage'  => 'Χρήση FTP ',
     'SSH Usage'  => 'Χρήση SSH',
-    'reverse proxy'  => 'reverse proxy',
-    'web server'  => 'διακομιστής web ',
-    'dns server'  => 'διακομιστής dns',
-    'mail server'  => 'διακομιστής mail',
-    'pop/imap server'  => 'διακομιστής pop/imap',
-    'email antivirus'  => 'antivirus ηλεκτρονικής αλληλογραφίας',
-    'email antispam'  => 'antispam ηλεκτρονικής αλληλογραφίας',
-    'database server'  => 'διακομιστής βάσης δεδομένων',
-    'ftp server'  => 'διακομιστής ftp',
-    'job scheduler'  => 'job scheduler',
-    'firewall'  => 'firewall',
-    'brute-force monitor'  => 'brute-force monitor',
-    'CPU'  => 'CPU',
+    'reverse proxy'  => 'Διαμεσολαβητής',
+    'web server'  => 'Διακομιστής ιστοσελίδας ',
+    'dns server'  => 'Διακομιστής dns',
+    'mail server'  => 'Διακομιστής ταχυδρομείου',
+    'pop/imap server'  => 'Διακομιστής pop/imap',
+    'email antivirus'  => 'Antivirus ηλεκτρονικής αλληλογραφίας',
+    'email antispam'  => 'Antispam ηλεκτρονικής αλληλογραφίας',
+    'database server'  => 'Διακομιστής βάσης δεδομένων',
+    'ftp server'  => 'Διακομιστής ftp',
+    'job scheduler'  => 'Χρονοδρομολογητής εργασίας',
+    'firewall'  => 'Τείχος προστασίας',
+    'brute-force monitor'  => 'Παρακολούθηση brute-force',
+    'CPU'  => 'Επεξεργαστής',
     'Memory'  => 'Μνήμη',
-    'Uptime'  => 'χρόνος λειτουργίας',
-    'core package'  => 'πακέτο πυρήνα',
-    'php interpreter'  => 'διερμηνέας php',
-    'internal web server'  => 'εσωτερικός web server',
+    'Uptime'  => 'Χρόνος λειτουργίας',
+    'core package'  => 'Πακέτο πυρήνα',
+    'php interpreter'  => 'Διερμηνέας php',
+    'internal web server'  => 'Εσωτερικός web server',
     'Version'  => 'Έκδοση',
     'Release'  => 'Κυκλοφορία',
     'Architecture'  => 'Αρχιτεκτονική',
     'Object'  => 'Αντικείμενο',
     'Username'  => 'Όνομα Χρήστη',
     'Password'  => 'Κωδικός',
-    'Email'  => 'Email',
+    'Email'  => 'Ηλεκτρονικό Ταχυδρομείο',
     'Package'  => 'Πακέτο',
     'Language'  => 'Γλώσσα',
     'First Name'  => 'Όνομα',
     'Last Name'  => 'Επώνυμο',
-    'Send login credentials to email address'  => 'αποστολή των διαπιστευτηρίων εισόδου στην διεύθυνση ηλεκτρονικού ταχυδρομείου',
-    'Default Template'  => 'Προεπιλεγμένο Template',
-    'Default Name Servers'  => 'Προεπιλεγμένοι Name Servers',
-    'Domain'  => 'πεδίο ορισμού',
+    'Send login credentials to email address'  => 'Αποστολή των διαπιστευτηρίων εισόδου στη διεύθυνση ηλεκτρονικού ταχυδρομείου',
+    'Default Template'  => 'Προεπιλεγμένο Πρότυπο',
+    'Default Name Servers'  => 'Προεπιλεγμένοι Διακομιστές Ονομάτων',
+    'Domain'  => 'Domain',
     'DNS Support'  => 'Υποστήριξη DNS',
-    'Mail Support'  => 'Υποστήριξη Mail',
+    'Mail Support'  => 'Υποστήριξη Ταχυδρομείου',
     'Advanced options'  => 'Προχωρημένες επιλογές',
-    'Basic options'  => 'Basic options',
+    'Basic options'  => 'Βασικές επιλογές',
     'Aliases'  => 'Ψευδώνυμα',
     'SSL Certificate'  => 'Πιστοποιητικό SSL',
     'SSL Key'  => 'Κλειδί SSL',
-    'SSL Certificate Authority / Intermediate'  => 'Αρχή Πιστοποιητικού SSL  / Ενδιάμεσος',
+    'SSL Certificate Authority / Intermediate'  => 'Αρχή Πιστοποιητικού SSL / Ενδιάμεσος',
     'SSL CSR' => 'SSL CSR',
-    'optional'  => 'προεραιτικό',
+    'optional'  => 'προαιρετικό',
     'internal' => 'εσωτερικό',
     'Statistics Authorization'  => 'Εξουσιοδότηση Στατιστικών',
     'Statistics Auth'  => 'Εξουσιοδότηση Στατιστικών',
     'Account'  => 'Λογαριασμός',
-    'Prefix will be automaticaly added to username'  => 'Πρόθεμα %s θα προστεθεί αυτόματα στο όνομα χρήστη',
+    'Prefix will be automaticaly added to username'  => 'Το πρόθεμα %s θα προστεθεί αυτόματα στο όνομα χρήστη',
     'Send FTP credentials to email'  => 'Αποστολή διαπιστευτηρίων FTP στη διεύθυνση ηλεκτρονικού ταχυδρομείου',
     'Expiration Date'  => 'Ημερομηνία Λήξης',
     'YYYY-MM-DD'  => 'ΕΕΕΕ-MM-ΗΗ',
-    'Name servers'  => 'Name servers',
+    'Name servers'  => 'Διακομιστές ονομάτων',
     'Record'  => 'Εγγραφή',
     'IP or Value'  => 'IP ή Τιμή',
     'Priority'  => 'Προτεραιότητα',
     'Record Number' => 'Αριθμός Εγγραφής',
     'in megabytes'  => 'σε megabytes',
     'Message'  => 'Μήνυμα',
-    'use local-part'  => 'χρήση τοπικού-μέρους',
+    'use local-part'  => 'Xρήση τοπικού μέρους',
     'one or more email addresses'  => 'μία ή περισσότερες διευθύνσεις ηλεκτρονικού ταχυδρομείου',
-    'Prefix will be automaticaly added to database name and database user'  => 'Πρόθεμα %s θα προστεθεί στο όνομα της βάσης δεδομένων και στον χρήστη της.',
+    'Prefix will be automaticaly added to database name and database user'  => 'Το πρόθεμα %s θα προστεθεί αυτόματα στο όνομα της βάσης δεδομένων και στο όνομα χρήστη',
     'Database'  => 'Βάση Δεδομένων',
     'Type'  => 'Τύπος',
     'Minute'  => 'Λεπτό',
@@ -326,28 +326,28 @@ $LANG['el'] = array(
     'Package Name'  => 'Όνομα Πακέτου',
     'Netmask'  => 'Μάσκα Δικτύου',
     'Interface'  => 'Διεπαφή',
-    'Shared'  => 'Διαμοιραζόμενα',
-    'Assigned user'  => 'Assigned user',
-    'Assigned domain'  => 'Assigned domain',
-    'NAT IP association' => 'NAT IP association',
-    'shell'  => 'κέλυφος',
-    'web domains'  => 'web domains',
-    'web aliases'  => 'Ψευδώνυμα web',
+    'Shared'  => 'Κοινόχρηστα',
+    'Assigned user'  => 'Ανάθεση χρήστη',
+    'Assigned domain'  => 'Aνάθεση domain',
+    'NAT IP association' => 'Συνδεδεμένο NAT IP',
+    'shell'  => 'Κέλυφος',
+    'web domains'  => 'Domains ιστοσελίδας',
+    'web aliases'  => 'Ψευδώνυμα ιστοσελίδας',
     'dns records'  => 'Εγγραφές dns',
-    'mail domains'  => 'mail domains',
-    'mail accounts'  => 'Λογαριασμοί mail',
+    'mail domains'  => 'Domains ταχυδρομείου',
+    'mail accounts'  => 'Λογαριασμοί ταχυδρομείου',
     'accounts'  => 'λογαριασμοί',
     'databases'  => 'βάσεις δεδομένων',
-    'cron jobs'  => 'cron jobs',
+    'cron jobs'  => 'εργασίες cron',
     'backups'  => 'αντίγραφα ασφαλείας',
     'quota'  => 'ποσοστό',
     'day of week'  => 'ημέρα της εβδομάδας',
-    'cmd'  => 'cmd',
+    'cmd'  => 'εντολή',
     'users'  => 'χρήστες',
     'domains'  => 'domains',
     'aliases'  => 'ψευδώνυμα',
     'records'  => 'εγγραφές',
-    'jobs'  => 'jobs',
+    'jobs'  => 'εργασίες',
     'username'  => 'όνομα χρήστη',
     'password'  => 'κωδικός πρόσβασης',
     'type'  => 'τύπος',
@@ -358,7 +358,7 @@ $LANG['el'] = array(
     'IP address'  => 'διεύθυνση IP',
     'netmask'  => 'μάσκα δικτύου',
     'interface'  => 'διεπαφή',
-    'assigned user'  => 'assigned user',
+    'assigned user'  => 'ανάθεση χρήστη',
     'ns1'  => 'ns1',
     'ns2'  => 'ns2',
     'user'  => 'χρήστης',
@@ -368,37 +368,37 @@ $LANG['el'] = array(
     'account'  => 'λογαριασμός',
     'ssl certificate'  => 'πιστοποιητικό ssl',
     'ssl key'  => 'κλειδί ssl',
-    'stats user password'  => 'στατιστικά χρήστης κωδικός πρόσβασης',
-    'stats username'  => 'στατιστικά όνομα χρήστη',
-    'stats password'  => 'στατιστικά κωδικός πρόσβασης',
+    'stats user password'  => 'κωδικός πρόσβασης στατιστικών χρήστη',
+    'stats username'  => 'όνομα χρήστη στατιστικών',
+    'stats password'  => 'κωδικός πρόσβασης στατιστικών',
     'ftp user password'  => 'κωδικός πρόσβασης χρήστη ftp',
     'ftp user'  => 'χρήστης ftp',
     'Last 70 lines of %s.%s.log' => 'Τελευταίες 70 γραμμές του %s.%s.log',
-    'AccessLog' => 'AccessLog',
-    'ErrorLog' => 'ErrorLog',
-    'Download AccessLog' => 'Λήψη AccessLog',
-    'Download ErrorLog' => 'Λήψη ErrorLog',
+    'AccessLog' => 'Καταγραφές Πρόσβασης',
+    'ErrorLog' => 'Καταγραφές Σφαλμάτων',
+    'Download AccessLog' => 'Λήψη Καταγραφών Πρόσβασης',
+    'Download ErrorLog' => 'Λήψη Καταγραφών Σφαλμάτων',
     'Country' => 'Χώρα',
     '2 letter code' => 'κωδικός 2 χαρακτήρων',
     'State / Province' => 'Πολιτεία / Επαρχία',
     'City / Locality' => 'Πόλη / Περιοχή',
-    'Organization' => 'Οργάνωση',
+    'Organization' => 'Οργανισμός',
     'Action' => 'Ενέργεια',
     'Protocol' => 'Πρωτόκολλο',
     'Port' => 'Θύρα',
     'Comment' => 'Σχόλιο',
     'Banlist' => 'Λίστα απαγόρευσης',
     'ranges are acceptable' => 'εύρος είναι αποδεκτό',
-    'CIDR format is supported' => 'To format CIDR υποστηρίζεται',
-    'ACCEPT' => 'ACCEPT',
-    'DROP' => 'DROP',
+    'CIDR format is supported' => 'Η μορφή CIDR υποστηρίζεται',
+    'ACCEPT' => 'ΑΠΟΔΟΧΗ',
+    'DROP' => 'ΑΠΟΡΡΙΨΗ',
     'TCP' => 'TCP',
     'UDP' => 'UDP',
     'ICMP' => 'ICMP',
     'SSH' => 'SSH',
     'FTP' => 'FTP',
     'HESTIA' => 'HESTIA',
-    'Add one more Name Server' => 'Προσθέστε ένα ακόμη Name Server',
+    'Add one more Name Server' => 'Προσθέστε ένα ακόμη Διακομιστή Ονομάτων',
 
     'web domain' => 'web domain',
     'dns domain' => 'dns domain',

+ 2 - 2
web/inc/i18n/ru.php

@@ -769,7 +769,7 @@ $LANG['ru'] = array(
     'Manage SSH keys' => 'Управление ключами SSH',
  
     //Header 
-    'Fm' => 'файлы',
+    'Fm' => 'Файлы',
     //PHP Cli
     'PHP CLI Version' => 'Версия PHP для CLI',
 
@@ -830,7 +830,7 @@ $LANG['ru'] = array(
     'Restart' => 'Перезапуск',
     'Mail Server' => 'Почтовый сервер',
     'Enabled multi PHP versions' => 'Включенные версии PHP',
-    'Service' => 'обслуживание',
+    'Service' => 'Службы',
     'Description' => 'Описание',
     
     //header