From 72f60aa7364e22264051861217334c7a464e3d1c Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Sun, 22 Aug 2021 08:58:18 +0200 Subject: [PATCH] Fix --- doc/DISCLAIMER.md | 2 +- doc/DISCLAIMER_fr.md | 49 ++++++++++++++++++++++++++++++++++++++++++++ manifest.json | 10 ++++----- scripts/backup | 2 +- scripts/restore | 12 ++++------- scripts/upgrade | 10 ++++----- 6 files changed, 65 insertions(+), 20 deletions(-) create mode 100644 doc/DISCLAIMER_fr.md diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md index 48b5c67..641ec82 100644 --- a/doc/DISCLAIMER.md +++ b/doc/DISCLAIMER.md @@ -2,7 +2,7 @@ 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. ## Redirect type diff --git a/doc/DISCLAIMER_fr.md b/doc/DISCLAIMER_fr.md new file mode 100644 index 0000000..722058c --- /dev/null +++ b/doc/DISCLAIMER_fr.md @@ -0,0 +1,49 @@ +**Ajoutez un lien sur votre panneau d'utilisateur redirigeant vers une autre page ou application, qui peut être protégée derrière votre panneau pour certains**. + +Il peut s'agir d'une redirection invisible, d'un lien externe, d'une autre application sur votre réseau local, d'un reverse proxy vers une application ou un conteneur Docker... Certaines applications peuvent même être protégées derrière votre panneau (ce qui signifie que vous devrez vous connecter- pour y accéder). La seule limite est votre imagination - et NGINX ;). + +Cette application ajoute uniquement un fichier de configuration NGINX avec la règle `redirect` ou `proxy_pass` et une tuile YunoHost. Rien de plus. + +## Type de redirection + +### Redirection visible + +La barre d'adresse du visiteur va changer. Utile pour ajouter un lien utilisateur vers un autre site Web + + votre-domaine.com -> autre-domaine.net + vous-domaine.com/foo -> autre-domaine.net/bar + +### Redirection invisible (proxy) + +La barre d'adresse du visiteur restera la même. Principalement utilisé pour servir le serveur Web local pour une application personnelle. + + vous-domaine.com/foo -> http://172.0.0.1:8080/app + +**IMPORTANT :** le fichier `redirect.conf` devra peut-être être mis à jour en fonction de votre situation ! + +**AVERTISSEMENT :** De nombreuses applications ne prennent pas en charge la redirection vers un chemin différent en raison de liens relatifs ! Cela signifie que certaines applications hébergées par exemple sur http://127.0.0.1:5050/app/ DOIVENT être redirigées vers http://domain.tld/app/ et NON vers http://domain.tld/someotherapp/ + +*Exemple concret :* le conteneur Odoo Docker fonctionne sur http://127.0.0.1:8069/. Vous ne pourrez pas le rediriger vers http://domain.tld/odoo/ ! Il faut le rediriger vers la racine, donc par exemple http://odoo.domain.tld/ + +## Redirection publique ou privée + +En cas de redirection privée, l'application sera disponible uniquement pour les utilisateurs connectés. Cela peut être utile si vous souhaitez protéger derrière le SSO une application de votre réseau local ou du serveur (par exemple, un conteneur Docker ou une application qui n'a pas de gestion des utilisateurs ou de protection par mot de passe). + +**IMPORTANT :** Assurez-vous que l'application que vous souhaitez protéger NE PEUT PAS être accessible via son port ou un autre lien direct. Sinon, votre application ne sera protégée que dans YunoHost mais sera toujours disponible via son lien direct. Dans le cas d'un conteneur Docker, le port du conteneur devra être local (par exemple, -p 127.0.0.1:9000:9000). + +## Exemples de cas + +- **Création d'une tuile pour un conteneur Docker** avec un port local (par exemple, -p 127.0.0.1:PORT:PORT) : redirection proxy vers http://127.0.0.1:PORT-OF-THE-CONTAINER/ + +- **Redirection vers un site externe** : redirection visible vers l'URL + +- [CozyCloud derrière YunoHost ?](https://forum.cozy.io/t/cozy-cloud-sous-yunohost/616/11) + +- **Créer une vignette et protéger les applications difficiles à packager nativement (ou pour le prototypage)** + + +**_N'hésitez pas à [partager vos exemples de cas et vos fichiers Nginx personnalisés sur le forum](https://forum.yunohost.org/t/2182)._** + +## Crédits + +Inspiré du travail de [scith](https://github.com/scith). diff --git a/manifest.json b/manifest.json index 23ecefe..67113cb 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "id": "redirect", "packaging_format": 1, "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" }, "version": "1.0.0~ynh5", @@ -55,10 +55,10 @@ "fr": "Type de redirection" }, "choices": { - "public_302" : "Visible redirect (302, temporary). Everybody will be able to access it.", - "public_301" : "Visible redirect (301, permanent). Everybody will be able to access it.", - "public_proxy": "Proxy, invisible (nginx proxy_pass). Everybody will be able to access it.", - "private_proxy": "Proxy, invisible (nginx proxy_pass). Only accessible for allowed users." + "public_302": "Visible redirect (302, temporary). Everybody will be able to access it.", + "public_301": "Visible redirect (301, permanent). Everybody will be able to access it.", + "public_proxy": "Proxy, invisible (NGINX proxy_pass). Everybody will be able to access it.", + "private_proxy": "Proxy, invisible (NGINX proxy_pass). Only accessible for allowed users." }, "default": "public_302" } diff --git a/scripts/backup b/scripts/backup index cc3bbed..01b1bbe 100644 --- a/scripts/backup +++ b/scripts/backup @@ -22,7 +22,7 @@ ynh_print_info --message="Loading installation settings..." # Retrieve arguments app=$YNH_APP_INSTANCE_NAME -domain=$(ynh_app_setting_get $app domain) +domain=$(ynh_app_setting_get --app=$app --key=domain) #================================================= # BACKUP THE NGINX CONFIGURATION diff --git a/scripts/restore b/scripts/restore index c333112..1cade86 100644 --- a/scripts/restore +++ b/scripts/restore @@ -21,10 +21,10 @@ ynh_abort_if_errors # Retrieve arguments app=$YNH_APP_INSTANCE_NAME -domain=$(ynh_app_setting_get "$app" domain) -path_url=$(ynh_app_setting_get "$app" path) -redirect_type=$(ynh_app_setting_get "$app" redirect_type) -redirect_path=$(ynh_app_setting_get "$app" redirect_path) +domain=$(ynh_app_setting_get --app=$app --key=domain) +path_url=$(ynh_app_setting_get --app=$app --key=path) +redirect_type=$(ynh_app_setting_get --app=$app --key=redirect_type) +redirect_path=$(ynh_app_setting_get --app=$app --key=redirect_path) # Validate redirect path url_regex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]' @@ -41,10 +41,6 @@ ynh_restore_file "$NGINX_CONF" # SETUP SSOWAT #================================================= -if [[ "$is_public" -eq 0 ]] -then # Remove the public access - ynh_app_setting_delete "$app" skipped_uris -fi # Make app public if necessary if [ "$redirect_type" != "private_proxy" ] then diff --git a/scripts/upgrade b/scripts/upgrade index 7b9df56..92e31c0 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -15,10 +15,10 @@ source /usr/share/yunohost/helpers # Retrieve arguments app=$YNH_APP_INSTANCE_NAME -domain=$(ynh_app_setting_get "$app" domain) -path_url=$(ynh_app_setting_get "$app" path) -redirect_type=$(ynh_app_setting_get "$app" redirect_type) -redirect_path=$(ynh_app_setting_get "$app" redirect_path) +domain=$(ynh_app_setting_get --app=$app --key=domain) +path_url=$(ynh_app_setting_get --app=$app --key=path) +redirect_type=$(ynh_app_setting_get --app=$app --key=redirect_type) +redirect_path=$(ynh_app_setting_get --app=$app --key=redirect_path) #================================================= # ENSURE DOWNWARD COMPATIBILITY @@ -43,7 +43,7 @@ then fi if [ "$is_public" = "0" ] && [ "$redirect_type" != "proxy" ]; then - echo "WARNING: You previously had a 'supposedly' private 301 or 302 redirection ... but it was found that it was public all along and it is not easy to create such a private redirection. Your 301 or 302 redirection will be re-flagged as public..." >&2 + echo "WARNING: You previously had a 'supposedly' private 301 or 302 redirection... but it was found that it was public all along and it is not easy to create such a private redirection. Your 301 or 302 redirection will be re-flagged as public..." >&2 is_public=1 fi