{
  "$type": "com.whtwnd.blog.entry",
  "content": "# I love RSS\n\n\nIf you are like me and love RSS, I highly recommend hosting your own RSS Feed aggregator. A fellow community member in the TechnoTim discord (Thanks Blade) introduced me to FressRSS. It is free, lightweight, relatively easy to work with, and fully customizable. Though, it seems I like to do things the \"hard way\" and decided against using the docker image.  So if you are looking for the fire and forget method you get with docker, then you are in the wrong place. \n\n# Install\n\nhttps://github.com/FreshRSS/FreshRSS/releases/tag/1.21.0\n\nFirst, lets install our LAMP stack\n\n## LAMP Stack\n\n```bash\nsudo apt install apache2 libapache2-mod-php mariadb-server php-curl php-mbstring php-mysql php-zip php-xml \n```\n\n## MySQL Secure Install\nOnce this has been completed, move to running mysql_secure_installation\n\n```bash\nsudo mysql_secure_installation\n```\n\n1. Enter Current Password for Root  (mysql/mariadb root user). If none, just press enter. However, I recommend setting your root password at this step. Just makes life easier later.\n2. Switch to Unix_Socket authentication? (Y)\n3. Change root password? (N, you already set one in step 1)\n4. Remove Anonymous Users? (Y)\n5. Remove Remote Root Login? (Y-this disallows the ability to connect, remotely, to the db instance as root)\n6. Remote Test Databases? (Y, don't need it)\n7. Reload Privileges? (Y)\n\n## Create Database for FreshRSS\n\n```sql\nCREATE DATABASE freshrss;\n\nCREATE USER 'freshrss'@'localhost' IDENTIFIED BY 'yourpasswordhere';\n\nGRANT ALL PRIVILEGES ON freshrss.* to freshrss@localhost;\n\n```\n\n## Clone FreshRSS Repo\n\n```bash\ngit clone https://github.com/FreshRSS/FreshRSS.git\n\n```\n\n## Change Ownership on FreshRSS Directory \n\n```bash\nsudo chown -R yourlocaluser:yourlocaluser FreshRSS\n```\n\n## Change ownership on data directory\n\n\n```bash\nsudo chown -R www-data:www-data data\n```\n\n## Edit 000-default.conf in /etc/apache2/sites-enabled\n\n\n```bash\nsudo nano /etc/appache2/sites-enabled/000-default.conf\n\n\n## Change , in this file, DocumentRoot to where you have cloned the FreshRSS Repo, but add the P directoy\n\nServerAdmin webmaster@localhost\nDocumentRoot /var/www/FreshRSS/p\n\n```\n\n## Configure/Finish install of FreshRSS\n\nGo to your server site \"http://192.168.x.xxx/i\" and follow the install steps using database user and password you created in the previous steps\n\n# Post-Install\n\nOut of the box, my FreshRSS instance was not auto-refreshing my feeds. This made it pointless to use, honestly, and I almost just deleted the vm. However, I was shown a method via the following doc:\n\nhttps://freshrss.github.io/FreshRSS/en/admins/08_FeedUpdates.html\n\nIn here, you can either create a cronjob or actually use systemd to create trigger and service to do the refreshing for you. Here is the example files (the trigger and service itself) that I created. Your's may vary depending on your install path and/or your user.\n\nfreshrss.service\n```bash\n \n[Unit]                           \nDescription=FreshRSS get new content        \nWants=freshrss.timer                                               \n[Service]                                            \nUser=www-data                                        \nType=simple                                                                      \nExecStart=/usr/bin/php /var/www/FreshRSS/app/actualize_script.php\n```\n\nfreshrss.trigger\n```shell\n[Unit]                                                                           \nDescription=FreshRSS get new content                                                                               \n[Timer]                                                                          \nOnBootSec=30s                                                                    \nOnCalendar=*:0/20                                                                                                  \n[Install]                                                              \nWantedBy=timers.target\n```\n\nOnce these have been created in /etc/systemd/system, enable the timer with `systemctl enable freshrss.timer` followed by reloading the systemd config with `systemctl daemon-reload`.",
  "createdAt": "2023-06-23",
  "title": "FreshRSS RSS Feed Aggregator",
  "visibility": "public"
}