FreshRSS (Docker)
Originally Posted 2/23/24; Last Updated 4/27/24
Intro
Update 4/27/24: I no longer use Docker to host Freshrss as I kept running into weird issues. I have instead manually installed it, which you can read about here. I wanted to leave this here though as a lot of the beginning steps will be the same, and just in case anyone else rather install through docker
So I made a post here about what RSS Feeds are, and mentioned a few online options like Feedly and This Old Reader. Since making that post, I've since switched over to using FreshRSS and wanted to make a post on how to get that up and running, or at least, how I've done so.
I want to mention a couple of things off the bat though. Firstly, the simplest way to use an RSS feed reader would be using online sites like Feedly or This Old Reader. I'd recommend this option if you just want to start using RSS Feeds with as little hassle as possible.
I personally use FreshRSS because I enjoyed getting that setup and like self hosting things. But with self hosting usually comes a lot of difficulty where if there's a random issue, it's on you to figure it out. The other thing with FreshRSS is if you want to access it from outside of your home, you'll need to either create a VPN to your home network (the easiest way being tailscale) or create a reverse proxy similar to how I did with Foundry VTT. In this tutorial, I'll be discussing how to get it setup with Tailscale as I think that's the easiest and safer option.
With all that said, let's get started. An overview of the steps will be listed below, followed by more in depth instructions.
Note: After writing all of this out, I've realized there's a lot more here and a lot of variables at play. I don't think any of it is terribly difficult, but it can be overwhelming if this is all brand new to you.
Give Your Computer a Static IP Address
A Quick Explanation
To give a brief overview on what an IP Address is: each device connected to the internet is assigned an IP address by whatever they're connecting to to receive internet. So when your phone/ computer connects to your wifi at home, your router is assigning it a specific IP address. If you then go to school or work and connect to the wifi there, the router at that location is giving your device a different IP address. For home use, the most common IP address range used is the 192.168.0.0/16 range. This typically means every device connected to your network will have an IP address like 192.168.1.x, where x is anything from 2 to 254. The reason it's 2 to 254 is typically your router would have the IP address 192.168.1.1.
Now, by default, each device connected to the internet will only have an IP Lease for a certain amount of time (I want to say typically a day or two). Once that lease is up, the router will assign a new IP address to the device. I believe the reason for this is a mix of security and also to make sure there are always IP addresses available. If it kept IP addresses permanent for forever, each time you got rid of an old device it's IP address could never be used again. Or if a friend came over, their IP address would become unavailable to anyone else for forever. It's better generally to have them expire so the router can reuse that number for other devices that are currently connected.
The router might by chance assign a device the same IP address, but often it's different. This is a problem as the way you'll be accessing FreshRSS is by typing in your computers IP address. It's much easier if that's the same number each time, and so we need to set a Static IP Address.
How to Assign a Static IP Address
Unfortunately, the specifics here are going to vary based on who made your router. It also might not be possible for you to access these settings if you live in a place where you don't have access to the network equipment yourself (such as an apartment complex with internet included). Or even if you're just using the gear provided by your Internet Service Provider (ISP), you might not have access to these settings. But, assuming you have access to this, the following steps should get you there:
- Open Command Prompt (or terminal I believe if you're on Mac/ linux)
- In windows, just search for "Command Prompt"
- To note: You're doing this on the computer that you want to be running FreshRSS
- Type in "ipconfig /all" (or "ifconfig -a" if you're on Mac/ linux I believe)(don't include the "")
- Press enter
- You're looking for "Default Gateway". This should be your routers IP address. You'll also want to note the ipv4 address, as well as the "Physical Address" on Windows,
or "ether" information on linux, and either keep command prompt up or write it down for later.
- Typically, the default gateway is going to be 192.168.1.1 for most people.
- Go into a web browser, and in the address bar, type in the default gateway address (so, for example, 192.168.1.1) and press enter
- You should be greeted with a login screen.This is the first place things get a bit tricky. If you've never accessed your router before, you probably don't know your login information. For some routers, they'll tell you their login info on the bottom of them, on a sticker that would also have model number, serial number, and that sort of information. For others, you could just google "Default login for ___" and put in whatever make/ model router you have.
- Once you're logged in, you're going to want to find where the setting is for setting a static IP address. This again differs based on manufacturer and even router. Googling "How to set
static IP for computer with a _ router" with your router make and model would hopefully point you in the right direction.
- For me with a Linksys router, I'd have to go to "Connectivity", "Local Network", and then "DHCP Reservations" I believe. My memory is a bit hazy as I have a Raspberry Pihole setup which takes care of this for me.
- Once you've found where to put in a static IP address, it's time to put in the reservation. Depending on your router, you might have a list of already connected devices, and it might
just let you reserve the IP based off of that. If so, then that's great! Find your computer and reserve it. If not, it should be asking for a "MAC Address" and "IP address",
as well as a hostname most likely. The "MAC Address" is the "Physical Address" or "ether" number from step 4. typically it's in a form like 78:6D:EB:11:6A:01.
The "IP Address" is the "IPv4" address you found earlier. And the hostname can be whatever you want to title it so you remember what device this is.
- Honestly, if you can find a YouTube video or step by step directions for your specific router, this process will be a lot simpler.
- Once you type that information in, make sure to press "Save" or "apply" or whatever buttons are there to apply what you've done.
This should be it once everything saves. You can make sure your reservation is still there by logging out and logging back into the router (closing your web browser and reopening it should do the trick there). If it's not there, you might've forgotten to click save or apply somewhere. If it is, then you should be all set. If for some reason in the future you type in your computers IP address, and you get an error or nothing loads, I'd suggest double checking that your computers IP address is the same as what you set it to. You'd just type "ipconfig" back into command prompt (if you're on windows), and checking the ipv4 address is what you set it to. Checking ipconfig immediately after reserving the IP address does not confirm it's reserved, as your computer will hold onto it's old IP address reservation until it expires (usually in a day or two).
If you want to immediately check your computer is getting the correct IP address, you can run command prompt as an administrator (if you searched for Command Prompt in windows, it's one of the options listed. Right clicking should also give you this option), and type in "ipconfig /flushdns" and press enter. After confirmation that happened, type in "ipconfig /release" and press enter. After confirmation that worked, type in "ipconfig /renew". Now when you check "ipconfig", you should see the ipv4 address you setup.
How to Setup FreshRSS
There are a couple of ways to setup FreshRSS, and it'll largely depend on your operating system. You can see the installation instructions here. The easiest way to get FreshRSS up and running, at least to me, is to install it via Docker. Docker is a program that allows you to run other programs inside of containers on your computer. I find it useful for running things like FreshRSS because if a program is available for Docker, it usually comes with a default configuration that just works. This is in comparison to manually installing/ setting up a program and needing to set the configuration yourself. I'll be talking mostly about the process on an Ubuntu (Linux) computer, as that's what I have.
Installing Docker
So, I was looking around online about how to install Docker by checking out their official steps, as well as checking out other articles, and I become a bit confused, as I didn't remember doing any of the amount of steps suggested there to install Docker. Now, it's been a while since I've done it so it's possible I forgot, but there just seemed to be a lot of steps here I was forgetting. Honestly I was sitting here thinking "Why did I even bother with Docker if it took this many steps?" But then I remembered snap exists. Also, while writing parts further down, I realized that within FreshRSS' install instructions they mention how to install docker in one line. That command is as follows:
A quick note, any of the time i'm talking about running commands, unless otherwise specified, I'm talking about within command prompt or terminal. You typically press enter after each line.
Update 4/22/24 - I just had to reinstall Freshrss because I was reinstalling docker, and it turend into a cow. Despite removing docker completely, and reinstalling it from scratch, it appears that some parts of dockers remained on my sytem. I kept having weird issues where it would say Freshrss wasn't found, or couldn't access certain parts of it. A lot of the suggestions I saw online thought the reverse proxy was causing the issue, but I doubted that due to running it on localhost. I kept working on it, and despite removing docker multiple times via snap and other tools, it didn't remove the image of Freshrss. So I then removed the image, reinstalled freshrss, and it worked fine. For anyone else who might have to do this, make sure to delete the container, volume, and image when reinstalling something in Docker. The commands are:
Update 4/22/24 cont. - You'd just have to replace "image" with "volume" or "container" and if it gives you a problem it's either just "freshrss" rather than "freshrss/freshrss", or you might have to stop the freshrss/freshrss container first. The command for that is:
Update 4/22/24 cont. - I don't know if it matters, but I also removed the container first, then volume, then image.
Installing Snap
Snap is a command you can run in ubuntu (I'm not sure about other operating systems) and it'll install a program for you instantly. It's pretty nice, and they have a whole store here you can check out. If I had to guess, this is probably how I installed docker if the one line install didn't work from above. There is an explanation here on how to install it. Basically, if you need to install snap, you do the following commands:
Then to install docker, it's just
Like I said, it's been a while since I've installed Docker, so I can't quite remember what I did before. I'd try the install instructions from FreshRSS first to see if that works, and if not then try snap. If that doesn't work, you can try the installation instructions found here which seem to be pretty thorough.
Installing FreshRSS
With Docker installed, installing FreshRSS is simple.
First, in command line, put in the following code and press enter:
Then, you just put in the following commands into the terminal. You'll need to copy and paste this entire thing rather than pressing enter after each line. I'm pulling this information from the Quick Run section of the installation instructions here. You'll need to change the "TZ" to whatever timezone you're in. You can find a list of how to write it here.:
After that, FreshRSS should start. To access it, in a web browser in the address bar, type in localhost:8080 and press enter. This should load FreshRSS' setup pages which should walk you through setting it up. And that should be it!
Accessing FreshRSS While On Your Home Network
While you're on the computer that's running FreshRSS, you can type in "localhost:8080" into a web browser in the address bar and you should be able to access it that way. If you're on your home network, but on a different computer, you need to type in the computers static IP address (that's running FreshRSS) with :8080 at the end to access it. So say the computer running FreshRSS you set to have IP address 192.168.1.23. You would type "192.168.1.23:8080" into your web browser (without the "") and it should bring you to FreshRSS.
Accessing FreshRSS Outside of Your Home Network (Optional)
The easiest way to do this would be by setting up Tailscale on the same computer that's running FreshRSS, which I explained in an article here. You can set it up so you advertise the subnet your computer is on to use the same IP address as you typed previously, or you could instead type in the IP address that Tailscale assigns to your computer. You can view the address for each machine on your Tailscale network by going here. You'd just have to add the :8080 to the end of the address.
This can become super simple too if you're on a smart phone. You'd download the tailscale app, and when you'd want to access FreshRSS while away from home, you'd go into the app, press the button to connect, and then in your web browser type in the IP address with :8080 at the end. To make things even easier, most web browsers have a way to add a link to your home screen (on firefox it literally says "Add to Home Screen") once you go to whatever site you want to save. If you do that, then all you'd have to do is turn on tailscale, then click on the FreshRSS app icon you saved and it'll bring you straight there without having to remember the number. You can also create a homescreen bookmark/ app icon of FreshRSS when you connect via the home IP address if you're on your home network, so you don't have to remember the IP Address Tailscale assigned your computer, or the IP Address you assigned your computer.
I'll mention there is one other way you can access FreshRSS from outside of your network, and that's using a reverse proxy, which I talk about here. I don't recommend this version unless you absolutely need to, as it's a big pain to setup and keep secure.
Using FreshRSS
I find using FreshRSS pretty straight forward. You can click the "+" button next to "Subscription Management" to add new feeds. You can go into "Subscription Management" to create categories to keep all of your RSS feeds organized. Also in Subscription Management, you can export your RSS feeds which I'd recommend doing once you get it setup how you like, because it's always good to have backups in case FreshRSS stops working for you one day. To find RSS feeds, for this blog I've tried to make it easy by making links you can right click and copy to paste into RSS feed readers. Other sites hopefully have the RSS Symbol for you to copy and paste. For sites where you can't easily find how to get an RSS feed, I'd suggest Googling around (such as "how do I get the rss feed for _") or reaching out to the site owners. I wrote a blog post here about some artists I follow via RSS.
Wrap Up
After typing all of this out I've realized there's a lot more to this than I originally thought there was. It was one of those things that after setting it up, I've rarely had to think about maintenance for it and so to me it seemed like an easy thing to set and forget, but get a lot of use out of. Let me know if you run into any issues, or if I missed anything here. Or, just let me know your thoughts in general! Feel free to reach out to steventanzimedia@gmail.com