FreshRSS Portal is a Javascript portal, composed by feed widgets, similar to the old iGoogle or Netvibes.
Any help is appreciated, on everything, I'm not a front-end developer.
Just unzip the latest release (or build it by yourself) and put it somewhere, the only back-end needed is FreshRSS itself.
- Put the build files in a directory on the same web-server of FreshRSS
- On the FreshRSS instance enable the API access.
- The go to index.html.
You can install the FreshRSS Portal anywhere (ie: in another server), you have to configure Access-Control
headers and allow the OPTION method in the webserver. It works even in your hard disk, but the icon generator won't work, because of security policies on opening "local" files.
For example in Nginx you have to add somthing like:
location ~ ^/api/greader.php(/.+)?$ {
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
add_header 'Access-Control-Max-Age' '86400' always;
add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
if ($request_method = 'OPTIONS' ) {
return 200;
}
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
# By default, the variable PATH_INFO is not set under PHP-FPM
# But FreshRSS API greader.php need it. If you have a “Bad Request” error, double check this var!
# NOTE: the separate $path_info variable is required. For more details, see:
# https://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
From fastcgi_split_path_info
and under is taken from the official documentation for Nginx.
This configuration handle the special case for the Google Reader API, allowing the invoking of the API from outside the server (see Access-Control-Allow-Origin
), return 200 for OPTIONS
call and allow caching of the preflight results.
This is a re-implementation of the original ttportal, but this time in React and for FreshRSS.
- React
- FontAwesome for the icons
- Tailwind CSS for styling utility classes
At 1920x1080, dark mode:
At 1600x900, light mode:
At 1280x720, dark mode: