mirror of
https://github.com/YunoHost-Apps/reverseproxy_ynh.git
synced 2024-09-03 20:16:23 +02:00
Fix linter warnings
This commit is contained in:
parent
a3e72e8412
commit
346fb7fa57
8 changed files with 86 additions and 27 deletions
15
README.md
15
README.md
|
@ -1,8 +1,11 @@
|
||||||
# Redirect App
|
# Redirect App for Yunohost
|
||||||
|
|
||||||
|
[![Integration level](https://dash.yunohost.org/integration/redirect.svg)](https://dash.yunohost.org/appci/app/redirect) ![](https://ci-apps.yunohost.org/ci/badges/redirect.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/redirect.maintain.svg)
|
||||||
|
[![Install Redirect with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=redirect)
|
||||||
|
|
||||||
**Add a link on your user panel redirecting to another page or app, which can be protected behind your panel for some**.
|
**Add a link on your user panel redirecting to another page or app, which can be protected behind your panel for some**.
|
||||||
|
|
||||||
It could be an invisible redirect, an external link, another app on your local network, a reverse proxy to an app or a Docker container... Some apps can be even be protected behind your panel (meaning that you will have to log-in to access them). The only limit is your imagination - and Nginx ;).
|
It could be an invisible redirect, an external link, another app on your local network, a reverse proxy to an app or a Docker container... Some apps can be even be protected behind your panel (meaning that you will have to log-in to access them). The only limit is your imagination - and NGINX ;).
|
||||||
|
|
||||||
This app only adds a Nginx configuration file with `redirect` or `proxy_pass` rule, and a YunoHost tile. Nothing more.
|
This app only adds a Nginx configuration file with `redirect` or `proxy_pass` rule, and a YunoHost tile. Nothing more.
|
||||||
|
|
||||||
|
@ -10,20 +13,18 @@ This app only adds a Nginx configuration file with `redirect` or `proxy_pass` ru
|
||||||
|
|
||||||
### Visible redirect
|
### Visible redirect
|
||||||
|
|
||||||
Visitor's address bar will change. Helpfull to add a user link to another
|
Visitor's address bar will change. Helpfull to add a user link to another website
|
||||||
website
|
|
||||||
|
|
||||||
you-domain.com -> another-domain.net
|
you-domain.com -> another-domain.net
|
||||||
you-domain.com/foo -> another-domain.net/bar
|
you-domain.com/foo -> another-domain.net/bar
|
||||||
|
|
||||||
### Invisible (proxy) redirect
|
### Invisible (proxy) redirect
|
||||||
|
|
||||||
Visitor's address bar will remain the same. Mostly use to serve local webserver
|
Visitor's address bar will remain the same. Mostly use to serve local webserver for a personnal application.
|
||||||
for a personnal application.
|
|
||||||
|
|
||||||
you-domain.com/foo -> http://172.0.0.1:8080/app
|
you-domain.com/foo -> http://172.0.0.1:8080/app
|
||||||
|
|
||||||
**IMPORTANT:** the redirect.conf file might need to be updated according to your situation!
|
**IMPORTANT:** the `redirect.conf` file might need to be updated according to your situation!
|
||||||
|
|
||||||
**WARNING:** Many apps do not support being redirected to a different path due to relative links! This means that some apps being hosted for example on http://127.0.0.1:5050/app/ HAVE TO be redirected to http://domain.tld/app/ and NOT http://domain.tld/someotherapp/
|
**WARNING:** Many apps do not support being redirected to a different path due to relative links! This means that some apps being hosted for example on http://127.0.0.1:5050/app/ HAVE TO be redirected to http://domain.tld/app/ and NOT http://domain.tld/someotherapp/
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
upgrade=1
|
upgrade=1
|
||||||
backup_restore=1
|
backup_restore=1
|
||||||
multi_instance=1
|
multi_instance=1
|
||||||
incorrect_path=0
|
|
||||||
port_already_use=0
|
port_already_use=0
|
||||||
change_url=0
|
change_url=0
|
||||||
;;; Options
|
;;; Options
|
||||||
|
|
|
@ -2,19 +2,19 @@
|
||||||
"name": "Redirect",
|
"name": "Redirect",
|
||||||
"id": "redirect",
|
"id": "redirect",
|
||||||
"packaging_format": 1,
|
"packaging_format": 1,
|
||||||
"requirements": {
|
|
||||||
"yunohost": ">= 3.8"
|
|
||||||
},
|
|
||||||
"description": {
|
"description": {
|
||||||
"en": "Create a redirection or a proxy to another path.",
|
"en": "Create a redirection or a proxy to another path.",
|
||||||
"fr": "Créer une redirection ou un proxy vers un autre emplacement"
|
"fr": "Créer une redirection ou un proxy vers un autre emplacement"
|
||||||
},
|
},
|
||||||
"version": "1.0.0~ynh4",
|
"version": "1.0.0~ynh5",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"url": "https://github.com/YunoHost-Apps/redirect_ynh",
|
"url": "https://github.com/YunoHost-Apps/redirect_ynh",
|
||||||
"maintainer": {
|
"maintainer": {
|
||||||
"name": "alexAubin",
|
"name": "alexAubin",
|
||||||
"email": "alex.aubin@mailoo.org"
|
"email": "alex.aubin@mailoo.org"
|
||||||
|
},
|
||||||
|
"requirements": {
|
||||||
|
"yunohost": ">= 3.8.1"
|
||||||
},
|
},
|
||||||
"multi_instance": true,
|
"multi_instance": true,
|
||||||
"services": [
|
"services": [
|
||||||
|
@ -53,6 +53,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "redirect_type",
|
"name": "redirect_type",
|
||||||
|
"type": "string",
|
||||||
"ask": {
|
"ask": {
|
||||||
"en": "Redirect type",
|
"en": "Redirect type",
|
||||||
"fr": "Type de redirection"
|
"fr": "Type de redirection"
|
||||||
|
|
|
@ -18,10 +18,21 @@ ynh_abort_if_errors
|
||||||
#=================================================
|
#=================================================
|
||||||
# LOAD SETTINGS
|
# LOAD SETTINGS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_print_info --message="Loading installation settings..."
|
||||||
|
|
||||||
# Retrieve arguments
|
# Retrieve arguments
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
domain=$(ynh_app_setting_get $app domain)
|
domain=$(ynh_app_setting_get $app domain)
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# BACKUP THE NGINX CONFIGURATION
|
||||||
|
#=================================================
|
||||||
|
|
||||||
# Copy the conf files
|
# Copy the conf files
|
||||||
ynh_backup "/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
ynh_backup "/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."
|
||||||
|
|
|
@ -27,19 +27,20 @@ redirect_type=$YNH_APP_ARG_REDIRECT_TYPE
|
||||||
redirect_path=$YNH_APP_ARG_REDIRECT_PATH
|
redirect_path=$YNH_APP_ARG_REDIRECT_PATH
|
||||||
|
|
||||||
# Check domain/path availability
|
# Check domain/path availability
|
||||||
ynh_webpath_register $app $domain $path_url
|
ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url
|
||||||
|
|
||||||
# Validate redirect path
|
# Validate redirect path
|
||||||
url_regex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
|
url_regex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
|
||||||
[[ ! $redirect_path =~ $url_regex ]] && ynh_die "Invalid destination: $redirect_path" 1
|
[[ ! $redirect_path =~ $url_regex ]] && ynh_die "Invalid destination: $redirect_path" 1
|
||||||
|
|
||||||
# Save extra settings
|
# Save extra settings
|
||||||
ynh_app_setting_set $app redirect_type "$redirect_type"
|
ynh_app_setting_set --app=$app --key=redirect_type --value=$redirect_type
|
||||||
ynh_app_setting_set $app redirect_path "$redirect_path"
|
ynh_app_setting_set --app=$app --key=redirect_path --value=$redirect_path
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CONFIGURE NGINX
|
# CONFIGURE NGINX
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Configuring NGINX web server..." --weight=1
|
||||||
|
|
||||||
# Nginx configuration
|
# Nginx configuration
|
||||||
for FILE in $(ls ../conf/nginx-*.conf)
|
for FILE in $(ls ../conf/nginx-*.conf)
|
||||||
|
@ -63,13 +64,24 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
# CONFIGURE SSOWAT
|
# CONFIGURE SSOWAT
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Configuring permissions..." --weight=2
|
||||||
|
|
||||||
# Make app public if necessary
|
# Make app public if necessary
|
||||||
if [ "$redirect_type" != "private_proxy" ]
|
if [ "$redirect_type" != "private_proxy" ]
|
||||||
then
|
then
|
||||||
# unprotected_uris allows SSO credentials to be passed anyway.
|
# unprotected_uris allows SSO credentials to be passed anyway.
|
||||||
ynh_app_setting_set "$app" unprotected_uris "/"
|
ynh_permission_update --permission="main" --add="visitors"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Reload Nginx and regenerate SSOwat conf
|
#=================================================
|
||||||
systemctl reload nginx
|
# RELOAD NGINX
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reloading NGINX web server..." --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_script_progression --message="Installation of $app completed" --last
|
||||||
|
|
|
@ -11,13 +11,28 @@ source /usr/share/yunohost/helpers
|
||||||
#=================================================
|
#=================================================
|
||||||
# LOAD SETTINGS
|
# LOAD SETTINGS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Loading installation settings..." --weight=1
|
||||||
|
|
||||||
# Retrieve arguments
|
# Retrieve arguments
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
domain=$(ynh_app_setting_get $app domain)
|
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# REMOVE NGINX CONFIGURATION
|
||||||
|
#=================================================
|
||||||
|
|
||||||
# Remove configuration files
|
# Remove configuration files
|
||||||
ynh_secure_remove /etc/nginx/conf.d/$domain.d/$app.conf
|
ynh_secure_remove /etc/nginx/conf.d/$domain.d/$app.conf
|
||||||
|
|
||||||
# Restart services
|
#=================================================
|
||||||
systemctl reload nginx
|
# RELOAD NGINX AND PHP-FPM
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reloading NGINX web server..." --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_script_progression --message="Removal of $app completed" --last
|
||||||
|
|
|
@ -45,8 +45,18 @@ ynh_restore_file "$NGINX_CONF"
|
||||||
if [ "$redirect_type" != "private_proxy" ]
|
if [ "$redirect_type" != "private_proxy" ]
|
||||||
then
|
then
|
||||||
# unprotected_uris allows SSO credentials to be passed anyway.
|
# unprotected_uris allows SSO credentials to be passed anyway.
|
||||||
ynh_app_setting_set "$app" unprotected_uris "/"
|
ynh_permission_update --permission="main" --add="visitors"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Reload Nginx and regenerate SSOwat conf
|
#=================================================
|
||||||
systemctl reload nginx
|
# RELOAD NGINX AND PHP-FPM
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reloading NGINX web server..." --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_script_progression --message="Restoration completed for $app" --last
|
||||||
|
|
|
@ -114,8 +114,18 @@ fi
|
||||||
if [ "$redirect_type" != "private_proxy" ]
|
if [ "$redirect_type" != "private_proxy" ]
|
||||||
then
|
then
|
||||||
# unprotected_uris allows SSO credentials to be passed anyway.
|
# unprotected_uris allows SSO credentials to be passed anyway.
|
||||||
ynh_app_setting_set "$app" unprotected_uris "/"
|
ynh_permission_update --permission="main" --add="visitors"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Reload Nginx and regenerate SSOwat conf
|
#=================================================
|
||||||
systemctl reload nginx
|
# RELOAD NGINX
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reloading NGINX web server..." --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_script_progression --message="Upgrade of $app completed" --last
|
||||||
|
|
Loading…
Reference in a new issue