mirror of
https://github.com/YunoHost-Apps/grav_ynh.git
synced 2024-09-03 19:16:01 +02:00
Merge pull request #108 from YunoHost-Apps/ssh-ftp
Add SSH and SFTP access settings
This commit is contained in:
commit
9904f98be0
9 changed files with 153 additions and 12 deletions
|
@ -30,9 +30,10 @@ A modern open source flat-file CMS
|
|||
* You can access the administration panel at `yourdomain.tld/path/admin`. Users created within YunoHost can log in, provided their were given the appropriate permissions:
|
||||
* To make users administrators, give them the `grav.admin` permission.
|
||||
* To allow users to log in, without extended rights, give them the `grav.user` permission.
|
||||
* Grav provides a command line interface. Refer to its documentation, but you will need to specifically call for the PHP version currently used for the app:
|
||||
* Go to your app's directory: `cd /var/www/grav` (or `grav__2`, etc. if you have multiple ones)
|
||||
* `php7.3 bin/grav ...` or `php7.3 bin/gpm ...`
|
||||
* Grav offers an SSH or SFTP access, which can be enabled in its YunoHost admin configuration panel.
|
||||
* You can thus use its GPM command line binary.
|
||||
Refer to is documentation, but bear in mind you need to call it by specifying the PHP version used by the app:
|
||||
`php7.3 bin/grav ...` or `php7.3 bin/gpm ...`
|
||||
* You can install plugins through the admin panel, or through the GPM.
|
||||
* If installing Grav at the root of a domain, bear in mind that paths starting by `/yunohost` are reserved.
|
||||
|
||||
|
|
|
@ -30,9 +30,10 @@ Un CMS moderne basé sur des fichiers plats
|
|||
* Vous pouvez accéder au panneau d'adminstration à l'adresse `votredomaine.tld/votrechemin/admin`. Les utilisateurs créés dans YunoHost peuvent se connecter, à condition de leur avoir octroyé la permission adéquate:
|
||||
* `grav.admin` pour qu'ils soient administrateur de Grav ;
|
||||
* `grav.user` pour qu'ils puissent se connecter, mais sans droit étendu.
|
||||
* Grav dispose d'une interface par ligne de commande. Référez-vous à sa documentation, mais sachez que vous devrez préciser la version de PHP utilisée par l'app:
|
||||
* Allez dans le répertoire de Grav: `cd /var/www/grav` (ou `grav__2`, etc. si vous avez de multiples instances)
|
||||
* `php7.3 bin/grav ...` ou `php7.3 bin/gpm ...`
|
||||
* Grav offre un accès par SSH ou SFTP, activable dans le panneau de configuration de l'application dans l'administration de YunoHost.
|
||||
* Vous pouvez ainsi utiliser sa ligne de commande GPM.
|
||||
Référez-vous à sa documentation, mais sachez que vous devrez préciser la version de PHP utilisée par l'app:
|
||||
`php7.3 bin/grav ...` ou `php7.3 bin/gpm ...`
|
||||
* Vous pouvez installer les extensions soit via le panneau d'administration, soit via GPM.
|
||||
* Si vous installez Grav à la racin d'un domaine, sachez que les chemins d'accès commançant par `/yunohost` sont réservés.
|
||||
|
||||
|
|
19
config_panel.toml
Normal file
19
config_panel.toml
Normal file
|
@ -0,0 +1,19 @@
|
|||
version = "1.0"
|
||||
|
||||
[main]
|
||||
name = "Grav configuration"
|
||||
|
||||
[main.sftp]
|
||||
name = "SSH and SFTP access"
|
||||
|
||||
[main.sftp.with_sftp]
|
||||
ask = "Do you need an SSH and SFTP access?"
|
||||
type = "boolean"
|
||||
default = false
|
||||
|
||||
[main.sftp.password]
|
||||
ask = "Set a password for the SSH and SFTP access"
|
||||
type = "password"
|
||||
optional = true
|
||||
visible = "with_sftp"
|
||||
help = "If a password already exists, leave blank and it will not be replaced."
|
|
@ -1,8 +1,9 @@
|
|||
* You can access the administration panel at `yourdomain.tld/path/admin`. Users created within YunoHost can log in, provided their were given the appropriate permissions:
|
||||
* To make users administrators, give them the `grav.admin` permission.
|
||||
* To allow users to log in, without extended rights, give them the `grav.user` permission.
|
||||
* Grav provides a command line interface. Refer to its documentation, but you will need to specifically call for the PHP version currently used for the app:
|
||||
* Go to your app's directory: `cd /var/www/grav` (or `grav__2`, etc. if you have multiple ones)
|
||||
* `php7.3 bin/grav ...` or `php7.3 bin/gpm ...`
|
||||
* Grav offers an SSH or SFTP access, which can be enabled in its YunoHost admin configuration panel.
|
||||
* You can thus use its GPM command line binary.
|
||||
Refer to is documentation, but bear in mind you need to call it by specifying the PHP version used by the app:
|
||||
`php7.3 bin/grav ...` or `php7.3 bin/gpm ...`
|
||||
* You can install plugins through the admin panel, or through the GPM.
|
||||
* If installing Grav at the root of a domain, bear in mind that paths starting by `/yunohost` are reserved.
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
* Vous pouvez accéder au panneau d'adminstration à l'adresse `votredomaine.tld/votrechemin/admin`. Les utilisateurs créés dans YunoHost peuvent se connecter, à condition de leur avoir octroyé la permission adéquate:
|
||||
* `grav.admin` pour qu'ils soient administrateur de Grav ;
|
||||
* `grav.user` pour qu'ils puissent se connecter, mais sans droit étendu.
|
||||
* Grav dispose d'une interface par ligne de commande. Référez-vous à sa documentation, mais sachez que vous devrez préciser la version de PHP utilisée par l'app:
|
||||
* Allez dans le répertoire de Grav: `cd /var/www/grav` (ou `grav__2`, etc. si vous avez de multiples instances)
|
||||
* `php7.3 bin/grav ...` ou `php7.3 bin/gpm ...`
|
||||
* Grav offre un accès par SSH ou SFTP, activable dans le panneau de configuration de l'application dans l'administration de YunoHost.
|
||||
* Vous pouvez ainsi utiliser sa ligne de commande GPM.
|
||||
Référez-vous à sa documentation, mais sachez que vous devrez préciser la version de PHP utilisée par l'app:
|
||||
`php7.3 bin/grav ...` ou `php7.3 bin/gpm ...`
|
||||
* Vous pouvez installer les extensions soit via le panneau d'administration, soit via GPM.
|
||||
* Si vous installez Grav à la racin d'un domaine, sachez que les chemins d'accès commançant par `/yunohost` sont réservés.
|
||||
|
|
|
@ -13,3 +13,38 @@ pkg_dependencies="php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-mbstring php${
|
|||
#=================================================
|
||||
# EXPERIMENTAL HELPERS
|
||||
#=================================================
|
||||
|
||||
ynh_system_user_add_group() {
|
||||
# Declare an array to define the options of this helper.
|
||||
local legacy_args=uhs
|
||||
local -A args_array=([u]=username= [g]=groups=)
|
||||
local username
|
||||
local groups
|
||||
|
||||
# Manage arguments with getopts
|
||||
ynh_handle_getopts_args "$@"
|
||||
groups="${groups:-}"
|
||||
|
||||
local group
|
||||
for group in $groups; do
|
||||
usermod -a -G "$group" "$username"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
ynh_system_user_del_group() {
|
||||
# Declare an array to define the options of this helper.
|
||||
local legacy_args=uhs
|
||||
local -A args_array=([u]=username= [g]=groups=)
|
||||
local username
|
||||
local groups
|
||||
|
||||
# Manage arguments with getopts
|
||||
ynh_handle_getopts_args "$@"
|
||||
groups="${groups:-}"
|
||||
|
||||
local group
|
||||
for group in $groups; do
|
||||
gpasswd -d "$username" "$group"
|
||||
done
|
||||
}
|
||||
|
|
72
scripts/config
Normal file
72
scripts/config
Normal file
|
@ -0,0 +1,72 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC STARTING
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# RETRIEVE ARGUMENTS
|
||||
#=================================================
|
||||
|
||||
final_path=$(ynh_app_setting_get $app final_path)
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC GETTERS FOR TOML SHORT KEY
|
||||
#=================================================
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC VALIDATORS FOR TOML SHORT KEYS
|
||||
#=================================================
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC SETTERS FOR TOML SHORT KEYS
|
||||
#=================================================
|
||||
|
||||
set__password() {
|
||||
if [ "$password" == "" ]
|
||||
then
|
||||
ynh_app_setting_set --app=$app --key=password --value="$password"
|
||||
fi
|
||||
}
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
|
||||
ynh_app_config_validate() {
|
||||
_ynh_app_config_validate
|
||||
|
||||
if [ "${changed[with_sftp]}" == "true" ] && [ $with_sftp -eq 1 ] && [ "$password" == "" ]
|
||||
then
|
||||
ynh_die --message="You need to set a password to enable SSH and SFTP"
|
||||
fi
|
||||
}
|
||||
|
||||
ynh_app_config_apply() {
|
||||
_ynh_app_config_apply
|
||||
|
||||
if [ "${changed[with_sftp]}" == "true" ] && [ $with_sftp -eq 1 ]
|
||||
then
|
||||
ynh_system_user_add_group --username=$app --groups="sftp.app ssh.app"
|
||||
usermod --shell /bin/bash $app
|
||||
|
||||
if [ ! "$password" == "" ]
|
||||
then
|
||||
chpasswd <<< "${app}:${password}"
|
||||
fi
|
||||
elif [ "${changed[with_sftp]}" == "true" ] && [ $with_sftp -eq 0 ]
|
||||
then
|
||||
ynh_system_user_del_group --username=$app --groups="sftp.app ssh.app"
|
||||
usermod --shel /usr/sbin/nologin $app
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
ynh_app_config_run $1
|
|
@ -48,6 +48,8 @@ ynh_app_setting_set --app=$app --key=domain --value=$domain
|
|||
ynh_app_setting_set --app=$app --key=path --value=$path_url
|
||||
ynh_app_setting_set --app=$app --key=admin --value=$admin
|
||||
ynh_app_setting_set --app=$app --key=language --value=$language
|
||||
ynh_app_setting_set --app=$app --key=with_sftp --value="false"
|
||||
ynh_app_setting_set --app=$app --key=password --value=$(ynh_string_random)
|
||||
|
||||
#=================================================
|
||||
# INSTALL DEPENDENCIES
|
||||
|
|
|
@ -25,6 +25,9 @@ language=$(ynh_app_setting_get --app=$app --key=language)
|
|||
fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint)
|
||||
fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage)
|
||||
|
||||
with_sftp=$(ynh_app_setting_get --app=$app --key=with_sftp)
|
||||
password=$(ynh_app_setting_get --app=$app --key=password)
|
||||
|
||||
#=================================================
|
||||
# CHECK VERSION
|
||||
#=================================================
|
||||
|
@ -79,6 +82,12 @@ if [ -z "$fpm_usage" ]; then
|
|||
ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage
|
||||
fi
|
||||
|
||||
# If with_sftp or password don't exist, create them
|
||||
if [ -z "$with_sftp" ] || [ -z "$password" ]; then
|
||||
ynh_app_setting_set --app=$app --key=with_sftp --value="false"
|
||||
ynh_app_setting_set --app=$app --key=password --value=$(ynh_string_random)
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
|
|
Loading…
Reference in a new issue