mirror of
https://github.com/YunoHost-Apps/reverseproxy_ynh.git
synced 2024-09-03 20:16:23 +02:00
Fix
This commit is contained in:
parent
a42766ca97
commit
72f60aa736
6 changed files with 65 additions and 20 deletions
|
@ -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 ;).
|
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
|
## Redirect type
|
||||||
|
|
||||||
|
|
49
doc/DISCLAIMER_fr.md
Normal file
49
doc/DISCLAIMER_fr.md
Normal file
|
@ -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).
|
|
@ -3,7 +3,7 @@
|
||||||
"id": "redirect",
|
"id": "redirect",
|
||||||
"packaging_format": 1,
|
"packaging_format": 1,
|
||||||
"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~ynh5",
|
"version": "1.0.0~ynh5",
|
||||||
|
@ -57,8 +57,8 @@
|
||||||
"choices": {
|
"choices": {
|
||||||
"public_302": "Visible redirect (302, temporary). Everybody will be able to access it.",
|
"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_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.",
|
"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."
|
"private_proxy": "Proxy, invisible (NGINX proxy_pass). Only accessible for allowed users."
|
||||||
},
|
},
|
||||||
"default": "public_302"
|
"default": "public_302"
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ 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=$app --key=domain)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP THE NGINX CONFIGURATION
|
# BACKUP THE NGINX CONFIGURATION
|
||||||
|
|
|
@ -21,10 +21,10 @@ ynh_abort_if_errors
|
||||||
|
|
||||||
# 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)
|
||||||
path_url=$(ynh_app_setting_get "$app" path)
|
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||||
redirect_type=$(ynh_app_setting_get "$app" redirect_type)
|
redirect_type=$(ynh_app_setting_get --app=$app --key=redirect_type)
|
||||||
redirect_path=$(ynh_app_setting_get "$app" redirect_path)
|
redirect_path=$(ynh_app_setting_get --app=$app --key=redirect_path)
|
||||||
|
|
||||||
# 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\+&@#/%=~_|]'
|
||||||
|
@ -41,10 +41,6 @@ ynh_restore_file "$NGINX_CONF"
|
||||||
# SETUP SSOWAT
|
# 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
|
# Make app public if necessary
|
||||||
if [ "$redirect_type" != "private_proxy" ]
|
if [ "$redirect_type" != "private_proxy" ]
|
||||||
then
|
then
|
||||||
|
|
|
@ -15,10 +15,10 @@ source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
# 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)
|
||||||
path_url=$(ynh_app_setting_get "$app" path)
|
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||||
redirect_type=$(ynh_app_setting_get "$app" redirect_type)
|
redirect_type=$(ynh_app_setting_get --app=$app --key=redirect_type)
|
||||||
redirect_path=$(ynh_app_setting_get "$app" redirect_path)
|
redirect_path=$(ynh_app_setting_get --app=$app --key=redirect_path)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# ENSURE DOWNWARD COMPATIBILITY
|
# ENSURE DOWNWARD COMPATIBILITY
|
||||||
|
|
Loading…
Reference in a new issue