Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


RSS-Bridge - a good complement to Fresh RSS


  • https://github.com/RSS-Bridge/rss-bridge

    RSS-Bridge is a tool to generate feeds that are consumed by feed readers and feed aggregators.
    Generates feeds from Twitter, Youtube, Wikipedia, Instagram, Pinterest and many more.

    Want to leave feedly and co. But in Feedly I can follow twitter accounts.
    I know https://twitrss.me/ but it is not sure how long that service will exist.


  • https://forum.cloudron.io/post/3344
    Easy to set up & run in a LAMP app


  • Yesss to this!!

    RSS Feeds from popular sites to track them with Tiny Tiny RSS etc. I neeeeed this in my hectic online life being calmed by Cloudron.

    And probably the best README.md I've ever seen on GitHub!
    (see the Rant heading at the bottom)

    Save us all from having to scroll & browse so many websites & platforms - reclaim RSS! 💪 :

    Will probably try a LAMP App version if the packaged versions doesn't come soon, but I see an educational and time-recover factor value in this for all Sys Admins and online workers with a zillion tabs & webapps to track and wondering where the day went. 🙏


    Examples


  • Thanks for this. I will use it. 🚀


  • @necrevistonnezr OK, that was easy - to a point - thanks for the links 🙂

    Repeating here for those as time-poor:

    1. Create a LAMP App at rss-bridge.yourdomain.com`
    2. https://github.com/RSS-Bridge/rss-bridge/wiki/Installation
    3. Click last stable release
    4. Download from the link at the bottom of the page.
    5. Unzip
    6. Connect to SFTP & upload the contents to /public
      • I create a /tmp folder and put the original Cloudron created index.php and a copy of the downloaded .zip file in there too for reference.
    7. Open the LAMP Terminal in Cloudron and enter
      • chown -R www-data /app/data/public/cache
    8. For htaccess password protection: (maybe there's a way to do this with LDAP?)
      • htpasswd -c /app/data/public/.htpasswd yourusernamehere
    9. Add this to .htaccess:
      AuthUserFile /app/data/public/.htpasswd
      AuthType Basic
      AuthName "Please contact the site admin for details"
      Require valid-user
    10. Visit https://rss-bridge.yourdomain.com - tada!
    11. App level user, password config, cache config etc:

    Now, this is where I got stuck. What I can't seem to figure out though is how to get Twitter search feeds working. They seem to work on other public servers, so guessing it's a config issue.

    Anyone have any luck and suggestions with "Twitter Bridge"?

    Let me know any recommended updates to the steps above and I'll Edit.


  • It seems that either way, with .htccess & .htpassword — or the app's config of a user/password through config.ini.php (instructions in https://github.com/RSS-Bridge/rss-bridge/wiki/Custom-Configuration) — that Cloudron thinks the app is "Not responding"

    @girish feature, bug or my imagination?

  • Staff

    @marcusquinn I think because the app is password protected, the healthcheck route will now not return a 200 and will return 401/403. This is why Cloudron thinks it is not responding.

    Can you try something like this - https://cloudron.io/documentation/apps/lamp/#health-check


  • @girish Thanks! Opted for the .htaccess solution from the link so it survives updates without accidental overwriting. Restarting the app now shows as "Running" in the Cloudron Dashboard.

    My Twitter Bridge issue remains though. Anyone else having any luck with this? I'm guessing it's using CURL on an open port so not a firewall issue but that's just a guess.

    Would be super handy to get this running for social media monitoring key accounts and keywords since a lot of marketing nowadays is being a good quick responder to mentions and related chat.


  • @girish seems I might have found the problem and it seems like it might be a Cloudron config issue?

    The full error I get:

    Bridge returned error 0! (18480)
    2020-08-06T02:25:12+00:00
    
    Twitter @marcuswquinn was unable to receive or process the remote website's content!
    Error message: `The requested resource cannot be found!
    Please make sure your input parameters are correct!
    cUrl error: malformed (3)
    PHP error: Undefined offset: 0`
    Query string: `action=display&bridge=Twitter&context=By+username&u=marcuswquinn&_cache_timeout=300&format=Html`
    Version: `dev.2020-02-26`
    
  • Staff

    @marcusquinn said in RSS-Bridge - a good complement to Fresh RSS:

    PHP error: Undefined offset: 0`

    This seems to imply that something in the config file wants an array (offset 0) but maybe you gave a string? Could it be?


  • @girish I can't see anything to do with offset in the config but here's the config.default.ini.php. I wonder if it needs something for the [proxy] settings?

    ; <?php exit; ?> DO NOT REMOVE THIS LINE
    
    ; This file contains the default settings for RSS-Bridge. Do not change this
    ; file, it will be replaced on the next update of RSS-Bridge! You can specify
    ; your own configuration in 'config.ini.php' (copy this file).
    
    [system]
    
    ; Defines the timezone used by RSS-Bridge
    ; Find a list of supported timezones at
    ; https://www.php.net/manual/en/timezones.php
    ; timezone = "UTC" (default)
    timezone = "UTC"
    
    [cache]
    
    ; Defines the cache type used by RSS-Bridge
    ; "file" = FileCache (default)
    type = "file"
    
    ; Allow users to specify custom timeout for specific requests.
    ; true  = enabled
    ; false = disabled (default)
    custom_timeout = false
    
    [admin]
    ; Advertise an email address where people can reach the administrator.
    ; This address is displayed on the main page, visible to everyone!
    ; ""    = Disabled (default)
    email = ""
    
    [proxy]
    
    ; Sets the proxy url (i.e. "tcp://192.168.0.0:32")
    ; ""    = Proxy disabled (default)
    url = ""
    
    ; Sets the proxy name that is shown on the bridge instead of the proxy url.
    ; ""    = Show proxy url
    name = "Hidden proxy name"
    
    ; Allow users to disable proxy usage for specific requests.
    ; true  = enabled
    ; false = disabled (default)
    by_bridge = false
    
    [authentication]
    
    ; Enables authentication for all requests to this RSS-Bridge instance.
    ;
    ; Warning: You'll have to upgrade existing feeds after enabling this option!
    ;
    ; true  = enabled
    ; false = disabled (default)
    enable = false
    
    ; The username for authentication. Insert this name when prompted for login.
    username = ""
    
    ; The password for authentication. Insert this password when prompted for login.
    ; Use a strong password to prevent others from guessing your login!
    password = ""
    
    [error]
    
    ; Defines how error messages are returned by RSS-Bridge
    ;
    ; "feed" = As part of the feed (default)
    ; "http" = As HTTP error message
    ; "none" = No errors are reported
    output = "feed"
    
    ; Defines how often an error must occur before it is reported to the user
    report_limit = 1
    
    ; --- Cache specific configuration ---------------------------------------------
    
    [SQLiteCache]
    file = "cache.sqlite"
    
    [MemcachedCache]
    host = "localhost"
    port = 11211
    
    

  • Hallelujah! Fixed in the latest version:

    Here's what the results in Thunderbird look like for this interesting dude:

    55832f16-1dc5-4b2a-83bc-2991fa87a284-image.png

    d99fe32e-fb97-443d-8833-a2f462611169-image.png

    The whole point of this is to reduce all social media following to being RSS feeds. Zero distraction, just what you need to follow and nothing else.

    Workaround for the same issue with Instagram usernames too for interest:

    Basically, rss-bridge works on Cloudron - although not every bridge always works completely as there's a cat & mouse game with some sites changing things.

    Worth packaging as an App IMHO, and probably an easy enough one for anyone more experienced that I at that since there's no DB to think about. Definitely pull the code from the latest master stream on GitHub.

    Lastly, if you have any issues, delete the contents of /cache because it's very cache-happy and that would need emptying to truly re-test any changes. Mostly should be set & forget though.


  • Anyone up for packaging this?


  • I couldn't, day (and night) job keeps me too busy - but I do think it would be a very easy one for anyone that can since it's just file-based.