Просмотр исходного кода

Update Docs (#4836)

* Upgrade info

* Update info regariding rest api

* Remove duplicate echo

* Mute output

* Make some more minor changes

* Update comment v-quick-install-app

* FIx error

* Check if it becomes more reabable

* Change order

* Include all missing commands

* Fix formatting error

* Update CLI info
Jaap Marcus 1 год назад
Родитель
Сommit
0782deba27

+ 1 - 1
bin/v-add-web-domain

@@ -6,7 +6,7 @@
 #
 # This function adds virtual host to a server. In cases when ip is
 # undefined in the script, "default" template will be used. The alias of
-# www.domain.tld type will be automatically assigned to the domain unless
+# `www.domain.tld` type will be automatically assigned to the domain unless
 # "none" is transmited as argument. If ip have associated dns name, this
 # domain will also get the alias domain-tpl.$ipname. An alias with the ip
 # name is useful during the site testing while dns isn't moved to server yet.

+ 7 - 6
bin/v-quick-install-app

@@ -3,12 +3,13 @@
 //# info: Install Quick Install Web App via CLI
 //# options: action [user] [domain] [app] [options ...]
 //#
-//# example: v-quick-install-app install admin domain.com wordpress email="info@hestiacp" password="123456" username="admin" site_name="HestiaCP Demo" install_directory="/" language="nl_NL" php_version="8.2" database_create="true"
-//# example: v-quick-install-app apps
-//# example: v-quick-install-app options admin domain.com wordpress
-//# Install Quick Install Web App via CLI run v-quick-install-app apps for supported apps.
-//# v-quick-install-app options for the app options and v-quick-install-app install to install the app
-//# Please note app names are case sensitive
+//# example: v-quick-install-app install admin domain.com WordPress email="info@hestiacp" password="123456" username="admin" site_name="HestiaCP Demo" install_directory="/" language="nl_NL" php_version="8.2" database_create="true"
+//# example: v-quick-install-app app
+//# example: v-quick-install-app options admin domain.com WordPress
+//#
+//# - The v-quick-install-app install command is used to automate the installation of web applications on a server managed by Hestia Control Panel.
+//# - The v-quick-install-app app command is used to retrieve a list of web applications that can be quickly installed through the v-quick-install-app install command in the Hestia Control Panel. This command provides a convenient overview of supported applications and their versions, allowing users to choose which application they would like to deploy on their server. The names of the applications are case sensitive.
+//# - v-quick-install-app options admin domain.com WordPress list all the options available for the specified web application. This command provides a list of all the required and optional fields that need to be filled in when installing the application. The command also provides the default values for each field, if available.
 
 use Symfony\Component\Console\Application;
 use Symfony\Component\Console\Input\InputArgument;

+ 0 - 4
docs/docs/introduction/best-practices.md

@@ -4,10 +4,6 @@ Managing a server is not easy. Here are some best practices you should try to ad
 
 ## Use a regular user
 
-::: danger Never run a web or mail domain with the **admin** user
-By default, the **admin** user has elevated privileges. This can pose a **security threat** to your server. For example, if you run WordPress under your **admin** user and a vulnerability is found in WordPress or a plugin, a malicious user might be able to run commands as **root**!
-:::
-
 Before adding any web or mail domain on your server, you should create a regular user. To do this, you can refer to our [User Management Guide](../user-guide/users#adding-a-user).
 
 ## Enable two-factor authentication (2FA) for the _admin_ user

+ 8 - 3
docs/docs/introduction/getting-started.md

@@ -10,7 +10,7 @@ The installer needs to be run as **root**, either directly from the terminal or
 
 ::: warning
 Hestia must be installed on top of a fresh operating system installation to ensure proper functionality.
-If on a VPS/KVM, and there is already an admin account, either delete that default admin ID, or use `--force` to continue with the installation. See custom installation below for further details.
+See custom installation below for further details.
 :::
 
 |                      | Minimum                                    | Recommended                          |
@@ -112,6 +112,10 @@ To choose what software gets installed, you can provide flags to the installatio
 -h, --help Print this help
 ```
 
+:::tip
+Option --multiphp (Multi PHP) also accepts a comma seperated list of PHP versions. For example: --multiphp 8.3,8.4 will install PHP8.3 and PHP8.4
+:::
+
 #### Example
 
 ```bash
@@ -124,13 +128,14 @@ bash hst-install.sh \
 	--apache no \
 	--named no \
 	--clamav no \
-	--spamassassin no
+	--spamassassin no \
+	--multiphp '8.2,8.3,8.4'
 ```
 
 This command will install Hestia in French with the following software:
 
 - Nginx Web Server
-- PHP-FPM Application Server
+- PHP-FPM Application Server (PHP version 8.2, 8.3 and 8.4)
 - MariaDB Database Server
 - IPtables Firewall + Fail2Ban Intrusion prevention software
 - Vsftpd FTP Server

+ 429 - 50
docs/docs/reference/cli.md

@@ -44,6 +44,23 @@ v-add-backup-host b2 bucketName keyID applicationKey
 
 Add a new remote backup location. Currently SFTP, FTP and Backblaze are supported
 
+## v-add-backup-host-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-add-backup-host-restic)
+
+add backup host
+
+**Options**: `TYPE` `HOST` `USERNAME` `PASSWORD` `[PATH]` `[PORT]`
+
+**Examples**:
+
+```bash
+v-add-backup-host sftp backup.acme.com admin 'P4$$w@rD'
+v-add-backup-host b2 bucketName keyID applicationKey
+```
+
+Add a new remote backup location. Currently SFTP, FTP and Backblaze are supported
+
 ## v-add-cron-hestia-autoupdate
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-add-cron-hestia-autoupdate)
@@ -61,7 +78,7 @@ that can be downloaded from apt or git.
 
 add cron job
 
-**Options**: `USER` `MIN` `HOUR` `DAY` `MONTH` `WDAY` `COMMAND` `[JOB]` `[RESTART]`
+**Options**: `USER` `MIN` `HOUR` `DAY` `MONTH` `WDAY` `CRON_COMMAND` `[JOB]` `[RESTART]`
 
 **Examples**:
 
@@ -264,7 +281,7 @@ Add "yes" as last parameter to restart nginx
 
 add firewall blocking rule
 
-**Options**: `IP` `CHAIN`
+**Options**: `IPV4_CIDR` `CHAIN`
 
 **Examples**:
 
@@ -312,7 +329,7 @@ This function adds new ipset to system firewall
 
 add firewall rule
 
-**Options**: `ACTION` `IP` `PORT` `[PROTOCOL]` `[COMMENT]` `[RULE]`
+**Options**: `ACTION` `IPV4_CIDR` `PORT` `[PROTOCOL]` `[COMMENT]` `[RULE]`
 
 **Examples**:
 
@@ -702,6 +719,20 @@ add IP address to API allow list
 v-add-sys-api-ip 1.1.1.1
 ```
 
+## v-add-sys-cgroups
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-add-sys-cgroups)
+
+Enable cgroup support for user
+
+**Options**: –
+
+**Examples**:
+
+```bash
+v-add-sys-cgroup
+```
+
 ## v-add-sys-dependencies
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-add-sys-dependencies)
@@ -843,6 +874,16 @@ Install SnappyMail webmail client
 
 This function installs the SnappyMail webmail client.
 
+## v-add-sys-ssh-jail
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-add-sys-ssh-jail)
+
+add system ssh jail
+
+**Options**: –
+
+This function enables ssh jailed environment.
+
 ## v-add-sys-web-terminal
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-add-sys-web-terminal)
@@ -997,7 +1038,7 @@ v-add-web-domain admin wonderland.com 192.18.22.43 yes www.wonderland.com
 
 This function adds virtual host to a server. In cases when ip is
 undefined in the script, "default" template will be used. The alias of
-<www.domain.tld> type will be automatically assigned to the domain unless
+`www.domain.tld` type will be automatically assigned to the domain unless
 "none" is transmited as argument. If ip have associated dns name, this
 domain will also get the alias domain-tpl.$ipname. An alias with the ip
 name is useful during the site testing while dns isn't moved to server yet.
@@ -1135,7 +1176,7 @@ adding ssl for domain
 **Examples**:
 
 ```bash
-v-add-web-domain-ssl admin example.com /home/admin/conf/web/example.com
+v-add-web-domain-ssl admin example.com /tmp/folder/contains/certificate/files/
 ```
 
 This function turns on SSL support for a domain. Parameter ssl_dir is a path
@@ -1249,6 +1290,38 @@ v-backup-user admin yes
 
 This function is used for backing up user with all its domains and databases.
 
+## v-backup-user-config
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-backup-user-config)
+
+backup system user config only
+
+**Options**: `USER` `NOTIFY`
+
+**Examples**:
+
+```bash
+v-backup-user admin yes
+```
+
+This function is used for backing up user with all its domains and databases.
+
+## v-backup-user-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-backup-user-restic)
+
+backup system user with all its objects to restic backup
+
+**Options**: `USER` `NOTIFY`
+
+**Examples**:
+
+```bash
+v-backup-user admin yes
+```
+
+This function is used for backing up user with all its domains and databases.
+
 ## v-backup-users
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-backup-users)
@@ -1259,13 +1332,29 @@ backup all users
 
 This function backups all system users.
 
+## v-backup-users-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-backup-users-restic)
+
+backup all users
+
+**Options**: –
+
+**Examples**:
+
+```bash
+v-backup-users
+```
+
+This function backups all system users.
+
 ## v-change-cron-job
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-change-cron-job)
 
 change cron job
 
-**Options**: `USER` `JOB` `MIN` `HOUR` `DAY` `MONTH` `WDAY` `COMMAND`
+**Options**: `USER` `JOB` `MIN` `HOUR` `DAY` `MONTH` `WDAY` `CRON_COMMAND`
 
 **Examples**:
 
@@ -1493,7 +1582,7 @@ This function of changing domain ownership.
 
 change firewall rule
 
-**Options**: `RULE` `ACTION` `IP` `PORT` `[PROTOCOL]` `[COMMENT]`
+**Options**: `RULE` `ACTION` `IPV4_CIDR` `PORT` `[PROTOCOL]` `[COMMENT]`
 
 **Examples**:
 
@@ -2579,6 +2668,22 @@ v-delete-backup-host sftp
 
 This function deletes ftp backup host
 
+## v-delete-backup-host-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-delete-backup-host-restic)
+
+delete backup ftp server
+
+**Options**: –
+
+**Examples**:
+
+```bash
+v-delete-backup-host sftp
+```
+
+This function deletes ftp backup host
+
 ## v-delete-cron-hestia-autoupdate
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-delete-cron-hestia-autoupdate)
@@ -2818,7 +2923,7 @@ This function disables FastCGI cache for nginx
 
 delete firewall blocking rule
 
-**Options**: `IP` `CHAIN`
+**Options**: `IPV4_CIDR` `CHAIN`
 
 **Examples**:
 
@@ -3238,6 +3343,16 @@ delete ip adresss from allowed ip list api
 v-delete-sys-api-ip 1.1.1.1
 ```
 
+## v-delete-sys-cgroups
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-delete-sys-cgroups)
+
+delete all cgroups
+
+**Options**: –
+
+This function disables cgroups
+
 ## v-delete-sys-filemanager
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-delete-sys-filemanager)
@@ -3337,6 +3452,26 @@ disable system wide smtp relay support
 
 options:
 
+## v-delete-sys-snappymail
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-delete-sys-snappymail)
+
+Delete SnappyMail webmail client
+
+**Options**: –
+
+This function removes the SnappyMail webmail client.
+
+## v-delete-sys-ssh-jail
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-delete-sys-ssh-jail)
+
+delete system ssh jail
+
+**Options**: –
+
+This function disables ssh jailed environment
+
 ## v-delete-sys-web-terminal
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-delete-sys-web-terminal)
@@ -3806,18 +3941,20 @@ This function download back-up from remote server
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-dump-database)
 
-Dumps database contents in STDIN / file
+Dumps database contents in STDIN or file optional file can be compressed
 
-**Options**: `USER` `DATABASE` `[FILE]`
+**Options**: `USER` `DATABASE` `[FILE]` `[COMPRESSION]`
 
 **Examples**:
 
 ```bash
 v-dump-database user user_databse > test.sql
-example: v-dump-database user user_databse file
+example: v-dump-database user user_databse file gzip
+example: v-dump-database user user_databse file zstd
 ```
 
-Dumps database in STDIN or /backup/user.database.type.sql
+Dumps database in STDIN or file (/backup/user.database.type.sql)
+For compression gzip or zstd is supported by default plain sql is used
 
 ## v-dump-site
 
@@ -3876,15 +4013,6 @@ generate api key
 
 This function creates a key file in $HESTIA/data/keys/
 
-## v-generate-debug-report
-
-[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-generate-debug-report)
-
-**Options**:
-
-Includes
-shellcheck source=/etc/hestiacp/hestia.conf
-
 ## v-generate-password-hash
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-generate-password-hash)
@@ -3896,7 +4024,7 @@ generate password hash
 **Examples**:
 
 ```php
-		v-generate-password-hash sha-512 rAnDom_string yourPassWord
+v-generate-password-hash sha-512 rAnDom_string yourPassWord
 ```
 
 This function generates password hash
@@ -4057,29 +4185,39 @@ Based on sk-import-cpanel-backup-to-vestacp
 Credits: Maks Usmanov (skamasle) and contributors:
 Thanks to <https://github.com/Skamasle/sk-import-cpanel-backup-to-vestacp/graphs/contributors>
 
+## v-import-database
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-import-database)
+
+import database
+
+**Options**: `USER` `DB` `PATH`
+
+**Examples**:
+
+```bash
+v-import-database alice mydb /full/path/to.sql
+```
+
+This function for importing database.
+
 ## v-import-directadmin
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-import-directadmin)
 
 Import DirectAdmin backup to a new user
 
+**Options**:
+
 **Examples**:
 
 ```bash
 v-import-directadmin /backup/backup.tar.gz
 ```
 
-What will be imported from DirectAdmin backups:
-
-1. The user account information
-2. The domains structure included all the files from `public_html` and/or `private_html`
-3. All databases
-   - **WARNING**: Only the first user with password will be imported because of HestiCP limits.
-4. All the e-mail accounts including the e-mails.
-
-Based on sk-da-importer and v-import-cpanel
+Based on sk-da-importer
 Credits: Maks Usmanov (skamasle), Jaap Marcus (jaapmarcus) and contributors:
-Thanks to <https://github.com/Skamasle/sk-import-cpanel-backup-to-vestacp/graphs/contributors>
+Thanks to <https://github.com/Skamasle/sk_da_importer/graphs/contributors>
 
 ## v-insert-dns-domain
 
@@ -4183,6 +4321,22 @@ v-list-backup-host local
 
 This function for obtaining the list of backup host parameters.
 
+## v-list-backup-host-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-list-backup-host-restic)
+
+list backup host
+
+**Options**: `TYPE` `[FORMAT]`
+
+**Examples**:
+
+```bash
+v-list-backup-host local
+```
+
+This function for obtaining the list of backup host parameters.
+
 ## v-list-cron-job
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-list-cron-job)
@@ -5067,6 +5221,22 @@ v-list-user-backup-exclusions admin
 
 This function for obtaining the backup exclusion list
 
+## v-list-user-backup-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-list-user-backup-restic)
+
+backup system user with all its objects
+
+**Options**: `USER` `NOTIFY`
+
+**Examples**:
+
+```bash
+v-backup-user admin yes
+```
+
+This function is used for backing up user with all its domains and databases.
+
 ## v-list-user-backups
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-list-user-backups)
@@ -5083,6 +5253,38 @@ v-list-user-backups admin
 
 This function for obtaining the list of available user backups.
 
+## v-list-user-backups-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-list-user-backups-restic)
+
+backup system user with all its objects
+
+**Options**: `USER` `NOTIFY`
+
+**Examples**:
+
+```bash
+v-backup-user admin yes
+```
+
+This function is used for backing up user with all its domains and databases.
+
+## v-list-user-files-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-list-user-files-restic)
+
+backup system user with all its objects
+
+**Options**: `USER` `SNAPSHOT` `FOLDER`
+
+**Examples**:
+
+```bash
+v-backup-user admin yes
+```
+
+This function is used for backing up user with all its domains and databases.
+
 ## v-list-user-ips
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-list-user-ips)
@@ -5123,7 +5325,7 @@ list user notifications
 v-list-user-notifications admin
 ```
 
-This function for getting the list notifications
+This function for getting the notifications list
 
 ## v-list-user-ns
 
@@ -5436,31 +5638,25 @@ v-purge-nginx-cache user domain.tld
 
 This function purges nginx cache.
 
-## v-quick-install-app app
-
-[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-quick-install-app)
-
-list available web applications for quick installation
-
-**Options**:
-
-The `v-quick-install-app app` command is used to retrieve a list of web applications that can be quickly installed through the `v-quick-install-app install` command in the Hestia Control Panel. This command provides a convenient overview of supported applications and their versions, allowing users to choose which application they would like to deploy on their server. The names of the applications are case sensitive.
-
-## v-quick-install-app install
+## v-quick-install-app
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-quick-install-app)
 
-quickly install web applications
+Install Quick Install Web App via CLI
 
-**Options**: `[USER] [DOMAIN] [APP_TYPE] [APP_OPTIONS]`
+**Options**: `ACTION` `[USER]` `[DOMAIN]` `[APP]` `[OPTIONS` `...]`
 
-**Examples of WordPress installation**:
+**Examples**:
 
-```bash
-v-quick-install-app install username example.com WordPress username="wp_user" email="wp_user@example.com" password="wp_user_password" site_name="Site name" database_host="localhost" database_name="db" database_user="user"
+```php
+v-quick-install-app install admin domain.com WordPress email="info@hestiacp" password="123456" username="admin" site_name="HestiaCP Demo" install_directory="/" language="nl_NL" php_version="8.2" database_create="true"
+ example: v-quick-install-app app
+ example: v-quick-install-app options admin domain.com WordPress
 ```
 
-The `v-quick-install-app` command is used to automate the installation of web applications on a server managed by Hestia Control Panel. This function helps users quickly deploy applications by specifying a few parameters instead of manually going through the installation process.
+- The v-quick-install-app install command is used to automate the installation of web applications on a server managed by Hestia Control Panel.
+- The v-quick-install-app app command is used to retrieve a list of web applications that can be quickly installed through the v-quick-install-app install command in the Hestia Control Panel. This command provides a convenient overview of supported applications and their versions, allowing users to choose which application they would like to deploy on their server. The names of the applications are case sensitive.
+- v-quick-install-app options admin domain.com WordPress list all the options available for the specified web application. This command provides a list of all the required and optional fields that need to be filled in when installing the application. The command also provides the default values for each field, if available.
 
 ## v-rebuild-all
 
@@ -5797,6 +5993,23 @@ v-restore-cron-job USER BACKUP CRON [NOTIFY]
 This function allows the user to restore a single cron job
 from a backup archive.
 
+## v-restore-cron-job-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-cron-job-restic)
+
+restore single cron job
+
+**Options**: `USER` `SNAPSHOT` `[NOTIFY]`
+
+**Examples**:
+
+```bash
+v-restore-cron-job USER BACKUP [NOTIFY]
+```
+
+This function allows the user to restore a cron jobs
+from a snapshot.
+
 ## v-restore-database
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-database)
@@ -5814,6 +6027,24 @@ v-restore-database USER BACKUP DATABASE [NOTIFY]
 This function allows the user to restore a single database
 from a backup archive.
 
+## v-restore-database-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-database-restic)
+
+restore Database
+
+**Options**: `USER` `SNAPSHOT` `DATABASE`
+
+**Examples**:
+
+```bash
+v-restore-database-restic user snapshot user_database
+example: v-restore-database-restic user snapshot 'user_database,user_database2'
+example: v-restore-database-restic user snapshot '*'
+```
+
+This function for restoring database from restic snapshot.
+
 ## v-restore-dns-domain
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-dns-domain)
@@ -5831,6 +6062,38 @@ v-restore-dns-domain USER BACKUP DOMAIN [NOTIFY]
 This function allows the user to restore a single DNS domain
 from a backup archive.
 
+## v-restore-dns-domain-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-dns-domain-restic)
+
+restore DNS domain
+
+**Options**: `USER` `SNAPSHOT` `DOMAIN`
+
+**Examples**:
+
+```bash
+v-restore-user user snapshot domain.com
+```
+
+This function for restoring database from restic snapshot.
+
+## v-restore-file-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-file-restic)
+
+restore file or folder
+
+**Options**: `USER` `SNAPSHOT` `PATH`
+
+**Examples**:
+
+```bash
+v-restore-user user snapshot path
+```
+
+This function for restoring database from restic snapshot.
+
 ## v-restore-mail-domain
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-mail-domain)
@@ -5848,6 +6111,24 @@ v-restore-mail-domain USER BACKUP DOMAIN [NOTIFY]
 This function allows the user to restore a single mail domain
 from a backup archive.
 
+## v-restore-mail-domain-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-mail-domain-restic)
+
+restore WEB domain
+
+**Options**: `USER` `SNAPSHOT` `DOMAIN`
+
+**Examples**:
+
+```bash
+v-restore-mail-domain-restic user snapshot domain.com
+example: v-restore-mail-domain-restic user snapshot 'domain.com,domain2.com'
+example: v-restore-mail-domain-restic user snapshot '*'
+```
+
+This function for restoring database from restic snapshot.
+
 ## v-restore-user
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-user)
@@ -5865,6 +6146,38 @@ v-restore-user admin 2019-04-22_01-00-00.tar
 This function for restoring user from backup. To be able to restore the backup,
 the archive needs to be placed in /backup.
 
+## v-restore-user-full-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-user-full-restic)
+
+restore user via Restic
+
+**Options**: `USER` `SNAPSHOT` `KEY`
+
+**Examples**:
+
+```bash
+v-restore-user-full-restic user snapshot key
+```
+
+Full user restore from a non existing user
+
+## v-restore-user-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-user-restic)
+
+restore user via Restic
+
+**Options**: `USER` `SNAPSHOT` `WEB` `DNS` `MAIL` `DB` `CRON` `UDIR`
+
+**Examples**:
+
+```bash
+v-restore-user-restic user snapshot
+```
+
+This function for restoring database from restic snapshot.
+
 ## v-restore-web-domain
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-web-domain)
@@ -5882,6 +6195,24 @@ v-restore-web-domain USER BACKUP DOMAIN [NOTIFY]
 This function allows the user to restore a single web domain
 from a backup archive.
 
+## v-restore-web-domain-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-restore-web-domain-restic)
+
+restore WEB domain
+
+**Options**: `USER` `SNAPSHOT` `DOMAIN`
+
+**Examples**:
+
+```bash
+v-restore-web-domain-restic user snapshot domain.com
+example: v-restore-web-domain-restic user snapshot 'domain.com,domain2.com'
+example: v-restore-web-domain-restic user snapsho '*'
+```
+
+This function for restoring database from restic snapshot.
+
 ## v-revoke-api-key
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-revoke-api-key)
@@ -5962,6 +6293,22 @@ v-schedule-user-backup-download admin 2019-04-22_01-00-00.tar
 
 This function for scheduling user backup creation.
 
+## v-schedule-user-backup-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-schedule-user-backup-restic)
+
+schedule user backup creation
+
+**Options**: `USER`
+
+**Examples**:
+
+```bash
+v-schedule-user-backup admin
+```
+
+This function for scheduling user backup creation.
+
 ## v-schedule-user-restore
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-schedule-user-restore)
@@ -5978,6 +6325,22 @@ v-schedule-user-restore 2019-04-22_01-00-00.tar
 
 This function for scheduling user backup restoration.
 
+## v-schedule-user-restore-restic
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-schedule-user-restore-restic)
+
+schedule user backup restoration
+
+**Options**: `USER` `BACKUP` `[WEB]` `[DNS]` `[MAIL]` `[DB]` `[CRON]` `[UDIR]`
+
+**Examples**:
+
+```bash
+v-schedule-user-restore 2019-04-22_01-00-00.tar
+```
+
+This function for scheduling user backup restoration.
+
 ## v-search-command
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-search-command)
@@ -7078,6 +7441,22 @@ v-update-user-backup-exclusions admin /tmp/backup_exclusions
 
 This function for updating backup exclusion list
 
+## v-update-user-cgroup
+
+[Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-update-user-cgroup)
+
+update user disk quota
+
+**Options**: `USER`
+
+**Examples**:
+
+```bash
+v-update-user-cgroup admin
+```
+
+The functions upates cgroup, cpu, ram ,... for specific user
+
 ## v-update-user-counters
 
 [Source](https://github.com/hestiacp/hestiacp/blob/release/bin/v-update-user-counters)

+ 2 - 1
docs/docs/server-administration/backup-restore.md

@@ -182,8 +182,9 @@ or
 v-backup-user-restic username
 ```
 
-::warning
+:::warning
 A new restic repository is initiated on the first time you run this command. An encryption key is generated at the same time in /usr/local/hestia/data/users/{users}/restic.conf. Please make sure to backup this file somewhere incase the server gets comprimised or the user gets deleted. Without this "secret" key we don't provide any method to restore the user data. This is the reason why we alway advice to keep the orignal backup still working.
+:::
 
 ### Other methods
 

+ 22 - 0
docs/docs/server-administration/os-upgrades.md

@@ -18,6 +18,15 @@ apt update && apt upgrade
 
 Follow system instructions to upgrade your OS. When done, make sure to check that the files in `/etc/apt/sources.list.d` are not hashed out. If they are, remove the hash and run `apt update && apt upgrade` again.
 
+## Debian 11 Bullseye to Debian 112 Bookworm
+
+### Exim config
+
+```bash
+rm -f /etc/exim4/exim4.conf.template
+cp -f /usr/local/hestia/install/deb/exim/exim4.conf.4.95.template /etc/exim4/exim4.conf.template
+```
+
 ## Debian 10 Buster to Debian 11 Bullseye
 
 ### SHA512 password encryption
@@ -41,6 +50,19 @@ Comment out [line 29](https://github.com/hestiacp/hestiacp/blob/1ff8a4e5207aae1e
 
 No issues have been found in the past.
 
+## Ubuntu 22.04 Jammy to Ubuntu 24.04 Noble
+
+::: tip
+Verify that MariaDB is running at least version 11.4. If not, first upgrade to this version in your current operating system! After that, comment out the line in `/etc/apt/sources.list.d/mariadb.list` and then upgrade your OS.
+:::
+
+### Exim4 config
+
+```bash
+rm -f /etc/exim4/exim4.conf.template
+cp -f /usr/local/hestia/install/deb/exim/exim4.conf.4.95.template /etc/exim4/exim4.conf.template
+```
+
 ## Ubuntu 20.04 Focal to Ubuntu 22.04 Jammy
 
 ::: tip

+ 41 - 7
docs/docs/server-administration/rest-api.md

@@ -16,29 +16,63 @@ Yes, you can disable the API via the server settings. The file will be deleted f
 
 ## Password vs API key vs access keys
 
+### Access keys
+
+- User-specific.
+- Can limit permissions. For example only `v-purge-nginx-cache`.
+- Ability to disable login via other methods but still allow the use of api keys
+- Can be restricted to admin user only or allowed for all users
+
 ### Password
 
+:::danger
+Method has been Deprecated
+:::
+
 - Should only be used by the admin user.
 - Changing the admin password requires updating it everywhere it’s used.
 - Allowed to run all commands.
 
 ### API key
 
+:::danger
+Method has been Deprecated
+:::
+
 - Should only be used by the admin user.
 - Changing the admin password does not have consequences.
 - Allowed to run all commands.
 
-### Access keys
-
-- User-specific.
-- Can limit permissions. For example only `v-purge-nginx-cache`.
-- Ability to disable login via other methods but still allow the use of api keys
-- Can be restricted to admin user only or allowed for all users.
-
 ## Setup access/secret key authentication
 
 To create an access key, follow [the guide in our documentation](../user-guide/account#api-access-keys).
 
+:::tip
+Or create it with the following commad. To create a acccess that requires administrator permissions create the api key via the initial admin user!
+:::
+
+```bash
+v-add-access-key 'admin' 'profile' test json
+```
+
+If you want to use the api key with all commands supported use
+
+```bash
+v-add-access-key 'admin' '*' test json
+```
+
+### Creating own API key profiles
+
+Create a new file in `/usr/local/hestia/data/api/` with the following contents
+
+```bash
+ROLE='admin'
+COMMANDS='v-list-web-domains,v-add-web-domain,v-list-web-domain'
+```
+
+- Role: user or admin.
+- Commands: Comma seperated list with all the command you require.
+
 If the software you are using already supports the hash format, use `ACCESS_KEY:SECRET_KEY` instead of your old API key.
 
 ## Create an API key

+ 1 - 2
docs/docs/user-guide/account.md

@@ -27,9 +27,8 @@ If you do not have an authenticator app, here are a couple of recommendations.
 - iCloud Keychain – [Windows](https://9to5mac.com/2022/07/25/icloud-passwords-windows-2fa-code/), [macOS](https://9to5mac.com/2021/11/16/use-safari-password-manager-and-2fa-autofill/), [iOS](https://9to5mac.com/2022/03/07/use-ios-15-2fa-code-generator-plus-autofill-iphone/)
 - [Tofu Authenticator](https://www.tofuauth.com/) – Open-source, iOS only
 - [Aegis Authenticator](https://getaegis.app/) – Open-source, Android only
-- [Google Authenticator](https://googleauthenticator.net/)
+- [Google Authenticator](https://support.google.com/accounts/answer/1066447?hl=en&co=GENIE.Platform%3DAndroid)
 - [Microsoft Authenticator](https://www.microsoft.com/en-ca/security/mobile-authenticator-app)
-- [Authy](https://authy.com/) – Free, has a cloud sync feature
 - [1Password](https://1password.com/) – Paid password manager
 - [Bitwarden](https://bitwarden.com/) – Password manager. 2FA in premium plan only
 - [Vaultwarden](https://docs.cloudron.io/apps/vaultwarden) (AGPL, [self-hosted](https://hub.docker.com/r/vaultwarden/server)), optionally with [Bitwarden](https://linuxiac.com/how-to-install-vaultwarden-password-manager-with-docker) clients