{"id":1726,"date":"2020-05-13T21:24:34","date_gmt":"2020-05-14T01:24:34","guid":{"rendered":"https:\/\/lowtek.ca\/roo\/?p=1726"},"modified":"2020-05-13T21:24:34","modified_gmt":"2020-05-14T01:24:34","slug":"hello-freshrss","status":"publish","type":"post","link":"https:\/\/lowtek.ca\/roo\/2020\/hello-freshrss\/","title":{"rendered":"Hello FreshRSS"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1727\" src=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss.png\" alt=\"\" width=\"2326\" height=\"725\" srcset=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss.png 2326w, https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-500x156.png 500w, https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-1024x319.png 1024w, https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-768x239.png 768w, https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-1536x479.png 1536w, https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-2048x638.png 2048w, https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-1200x374.png 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p>Well, it was time for a new RSS feed reader &#8211; and <a href=\"https:\/\/freshrss.org\/\">FreshRSS<\/a> was the best choice for me. The kind folk at <a href=\"https:\/\/www.linuxserver.io\/\">linuxserver.io<\/a> maintain a <a href=\"https:\/\/fleet.linuxserver.io\/image?name=linuxserver\/freshrss\">container<\/a> for it, and it fits nicely into my <a href=\"https:\/\/fleet.linuxserver.io\/image?name=linuxserver\/letsencrypt\">nginx<\/a> setup.<\/p>\n<p>Moving to a new tool for anything will have an adjustment period, it would be nice if the user experience was identical &#8211; but there is also something to be said about trying new things. Different isn&#8217;t always bad, change can be for the better.<\/p>\n<p>Setting it up on a <a href=\"https:\/\/freshrss.github.io\/FreshRSS\/en\/admins\/06_LinuxInstall.html\">basic linux install<\/a> looks simple, but I would suggest that adopting a container version is even easier. FreshRSS bootstraps and has a guided setup for first run (first connect on the web). You can even pick a <a href=\"https:\/\/en.wikipedia.org\/wiki\/SQLite\">sqlite database<\/a> and avoid any database setup. It supports <a href=\"https:\/\/en.wikipedia.org\/wiki\/OPML\">OPML<\/a> import, which many other RSS feed readers support as well &#8211; so getting your feeds in or out of FreshRSS is easy.<\/p>\n<p>My initial kick the tires install, I use the no-database required sqlite configuration. This worked well, but as I already run MySQL for <a href=\"https:\/\/lowtek.ca\/roo\/2019\/wordpress-migration\/\">my wordpress installs<\/a>, why not use the same data store?<\/p>\n<p>This is very easy &#8211; and the MySQL is also running in a container. The linux install covers how to setup your database, but as I&#8217;m using a container version I need to make one change to the setup &#8211; because &#8216;localhost&#8217; isn&#8217;t the source of the network traffic to the container. (this is the use of &#8216;%&#8217; instead of &#8216;localhost&#8217; as shown below)<\/p>\n<pre class=\"lang:default decode:true \">mysql&gt; CREATE USER 'freshrss'@'%' IDENTIFIED BY 'SECRET-PASSWORD-PHRASE';\r\nQuery OK, 0 rows affected (0.01 sec)\r\n\r\nmysql&gt; CREATE DATABASE `freshrss`;\r\nQuery OK, 1 row affected (0.00 sec)\r\n\r\nmysql&gt; GRANT ALL privileges ON `freshrss`.* TO 'freshrss'@'%';\r\nQuery OK, 0 rows affected (0.00 sec)\r\n\r\nmysql&gt; FLUSH PRIVILEGES;\r\nQuery OK, 0 rows affected (0.00 sec)<\/pre>\n<p>While allowing access from any host is a bit security scary, the container is already isolated to a private network so I&#8217;ve got layers of protection already.<\/p>\n<p>During the web first run setup you have to then configure the database appropriately.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1728\" src=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-mysql.png\" alt=\"\" width=\"918\" height=\"792\" srcset=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-mysql.png 918w, https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-mysql-500x431.png 500w, https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2020\/05\/freshrss-mysql-768x663.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p>That&#8217;s probably the most complicated part of the setup. Now it&#8217;s just a matter of creating a user, and importing the OPML of my feeds and away I go.<\/p>\n<p>Of course the new FreshRSS is going to &#8216;discover&#8217; loads of new unread articles I&#8217;ve already read &#8211; and also for feeds I&#8217;ve been ignoring, not load enough unread articles. Oh well. So for a short while I run both &#8211; marking large chunks of articles as read in the new system, and burning down ones that were missed by the new system in the old one. It&#8217;s a one time hit and it gives me a chance to tweak some of the user setup configuration.<\/p>\n<p>I&#8217;m only a day or so into using FreshRSS &#8211; but I&#8217;m adapting quickly to the differences. I will shout out to the Android app <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.seazon.feedme&amp;hl=en\">FeedMe<\/a> which supports FreshRSS very nicely, once you <a href=\"https:\/\/freshrss.github.io\/FreshRSS\/en\/users\/06_Mobile_access.html\">enable the mobile API<\/a>.<\/p>\n<p>I will say that the themes are quite nice, I&#8217;m still getting use to the layout differences between it and the previous reader I was using. No regrets in making the switch to FreshRSS.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well, it was time for a new RSS feed reader &#8211; and FreshRSS was the best choice for me. The kind folk at linuxserver.io maintain a container for it, and it fits nicely into my nginx setup. Moving to a new tool for anything will have an adjustment period, it would be nice if the &hellip; <a href=\"https:\/\/lowtek.ca\/roo\/2020\/hello-freshrss\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Hello FreshRSS&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-1726","post","type-post","status-publish","format-standard","hentry","category-computing"],"_links":{"self":[{"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/posts\/1726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/comments?post=1726"}],"version-history":[{"count":2,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/posts\/1726\/revisions"}],"predecessor-version":[{"id":1730,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/posts\/1726\/revisions\/1730"}],"wp:attachment":[{"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/media?parent=1726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/categories?post=1726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/tags?post=1726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}