diff --git a/check_process b/check_process index 86d519e..a94739b 100644 --- a/check_process +++ b/check_process @@ -5,7 +5,7 @@ is_public=1 ; Checks pkg_linter=1 - setup_sub_dir=0 + setup_sub_dir=1 setup_root=1 setup_nourl=0 setup_private=1 diff --git a/conf/nginx.conf b/conf/nginx.conf index f98a6c8..c3ced7e 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -1,28 +1,36 @@ -location / { +#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; +location __PATH__/ { # Path to source alias __FINALPATH__/; - index index.php; + # index.php is a router, it contains a lot of routes: + # / is serving the home page, /update is refreshing all feeds, etc. + # So we need to rewrite all URLs to give them to the router inside index.php + rewrite ^__PATH__/.*$ __PATH__/index.php?$args; - try_files $uri /public/$uri /index.php; + # feeds favicons and thumbnails are stored in subfolder data + location ~ ^__PATH__/((favicons|thumbnails)/.+)$ { + try_files __PATH__/data/$1 =404; + } + # statics assets are stored in public folder + location ~ ^__PATH__/(.*\.(js|ico|gif|jpg|png|css|map|asc|txt|svg|xml|webmanifest)).*$ { + try_files __PATH__/public/$1 =404; + } + + # Regex to match PHP files location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock; fastcgi_index index.php; include fastcgi_params; - fastcgi_param REMOTE_USER $remote_user; - fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param REMOTE_USER $remote_user; + fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $request_filename; } - location ~ ^/(favicons|thumbnails)/.*$ { - try_files $uri /data/$uri; - } - - location ~* ^/(data\/logs|data\/sqlite|config\.ini|\.ht) { - deny all; - } + # Include SSOWAT user panel. + include conf.d/yunohost_panel.conf.inc; } diff --git a/manifest.json b/manifest.json index 0cabc5e..6eccdff 100644 --- a/manifest.json +++ b/manifest.json @@ -34,6 +34,12 @@ "name": "domain", "type": "domain" }, + { + "name": "path", + "type": "path", + "example": "/selfoss", + "default": "/selfoss" + }, { "name": "is_public", "type": "boolean", diff --git a/scripts/install b/scripts/install index 50511ab..d804d35 100755 --- a/scripts/install +++ b/scripts/install @@ -21,7 +21,7 @@ ynh_abort_if_errors #================================================= domain=$YNH_APP_ARG_DOMAIN -path_url="/" +path_url=$YNH_APP_ARG_PATH is_public=$YNH_APP_ARG_IS_PUBLIC app=$YNH_APP_INSTANCE_NAME