Skip to main content
50% off all plans, limited time. Starting at $2.48/mo
FreshRSS

FreshRSS

FreshRSS is a self-hosted, open-source RSS feed aggregator prioritizing user control, privacy, and performance. Supports multiple users, Fever API, Google Reader API, OPML import/export, and mobile apps. AGPL-3.0 licensed with 15,000+ GitHub stars.

At a glance

License AGPL-3.0 Version Latest OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4

Access FreshRSS

  • Open in your browser: https://<IP>
  • A self-signed SSL certificate is installed by default.
  • Your browser will display a certificate warning on first access. Proceed to the website to continue.

Login

Credentials are stored in: /root/freshrss/.env

Retrieve credentials:

grep -E 'ADMIN_(USERNAME|PASSWORD)' /root/freshrss/.env

Credentials can be changed after logging in.

Important Files & Directories

  • Install Path: /root/freshrss
  • Compose File: /root/freshrss/docker-compose.yml
  • Environment File: /root/freshrss/.env
  • Nginx Config: /etc/nginx/sites-available/freshrss
  • SSL Certificate: /etc/nginx/ssl/freshrss.crt
  • SSL Key: /etc/nginx/ssl/freshrss.key
  • Data Volume: /var/lib/docker/volumes/freshrss_data/
  • Extensions Volume: /var/lib/docker/volumes/freshrss_extensions/
  • Database Volume: /var/lib/docker/volumes/freshrss_db/

Managing the Stack

Change into the installation directory:

cd /root/freshrss

Start:

docker compose up -d

Stop:

docker compose down

Restart:

docker compose restart

Logs:

docker compose logs -f

Managing Nginx

Check configuration:

nginx -t

Restart Nginx:

systemctl restart nginx

Reload Nginx:

systemctl reload nginx

Check status:

systemctl status nginx

Enabling SSL with a Domain

1. Point your domain to the server IP.

2. Edit Nginx config and replace server_name _; with your domain (server_name <your-domain>) for both HTTP (port 80) and HTTPS (port 443) blocks:

vim /etc/nginx/sites-available/freshrss

3. Install Certbot:

apt install -y certbot python3-certbot-nginx

4. Run the following command to generate a valid Let's Encrypt certificate:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

5. Replace SSL paths in Nginx config :

vim /etc/nginx/sites-available/freshrss

# Before:
    # ssl_certificate     /etc/nginx/ssl/freshrss.crt;
    # ssl_certificate_key /etc/nginx/ssl/freshrss.key;
# After:
    # ssl_certificate     /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

6. Reload Nginx to apply the changes:

systemctl reload nginx

7. Edit the /root/freshrss/.env file to set your domain name: BASE_URL=https://yourdoamin.com

8. Recreate the services:

cd /root/freshrss
docker compose up -d

9. Open your browser and visit: https://yourdomain.com


More in Self Hosted

Related apps.

Deploy FreshRSS now. From $2.48/mo.