selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Flus logo

Self-host Flus

v3.0.1

Feed reader and social bookmarking platform

ReleaseOpen SourceAGPL-3.0
Updated3 hours ago
LanguagePHP
Setup difficultyAdvanced
MobileResponsive
Stars
177
Ports
8000 (HTTP development server), 443 (HTTPS production server)
Requires
Composer, Nginx, PHP, PostgreSQL
Install with Build from Source
Web accessibility stream showing links from several sources grouped by dayReading tab showing Journal, To read, Read links, Sources and a list of streams

What is Flus?

Flus is a self-hosted web application for collecting, organizing, annotating, and sharing links from around the web. It combines feed aggregation (RSS, Atom, JSON), read-later functionality, and social bookmarking into a single platform. Users can follow blogs, podcasts, and video channels, organize links into thematic streams called "fils", annotate links with notes and tags, and share collections publicly or privately. The software includes a powerful search engine, tracking parameter detection in URLs, OPML import/export, full data export, Atom feed sharing, Mastodon integration, and a REST API for developers. It can be installed on a server with PHP 8.2+, Nginx, and PostgreSQL 13+, or run via Docker Compose for development. A browser extension for Firefox and Chrome and an installable mobile web app are available. The project is licensed under AGPL-3.0 and offers a hosted service at flus.fr with free pricing.

Should you self-host Flus?

Flus scores 47/100 on selfhost.directory (how scoring works) and ranks #41 of 85 in Feed Reader. It has 177 GitHub stars.

It shipped 16 stable releases in the past year. The latest, v3.0.1, came out on 28 October 2026. New versions land roughly every 2 weeks.

Setup is advanced: plan for several services and some ongoing maintenance. It is AGPL-3.0-licensed and written mostly in PHP.

Its closest alternative on selfhost.directory is RSSHub (85/100, 46 704 stars). It scores higher overall, so compare the two before you pick. See Flus vs RSSHub side by side.

Features

  • Atom feed sharing
  • Browser Extension
  • Collections and annotations
  • Feed Aggregation
  • Feed retention policies
  • Full data export
  • Mastodon Integration
  • OPML Import/Export
  • Private instance mode
  • Read-later lists
  • REST API
  • Search and privacy
  • Social sharing
  • Thematic streams (fils)Added in v3.0

Flus README

How to install Flus

Install Flus with Build from Source

Environment variables
APP_ENVIRONMENT, APP_SECRET_KEY, APP_SUPPORT_EMAIL, APP_HOST, APP_PORT, DB_HOST, DB_NAME, DB_PORT, DB_USERNAME, DB_PASSWORD, APP_MAILER, SMTP_FROM, SMTP_HOST, SMTP_PORT, SMTP_AUTH, SMTP_AUTH_TYPE, SMTP_USERNAME, SMTP_PASSWORD, SMTP_SECURE, and many more (see env.sample)

cd /var/www/

git clone https://github.com/flusio/Flus.git

cd Flus

flus# git checkout TAG

flus$ composer install --no-dev --optimize-autoloader

flus# cp env.sample .env flus# vim .env

flus# chown -R www-data:www-data . flus# chmod 400 .env

flus# sudo -u www-data php cli migrations setup --seed

Configure Nginx with HTTPS (see docs/production.md for full config)

Requires git, Nginx, PHP 8.2+, Composer, PostgreSQL 13+ on the server. PHP needs intl, gettext, pcntl, gd (WebP), pdo, pdo_pgsql extensions. Must be served over HTTPS.

How to configure Flus

  • APP_BILETO_API_TOKENBileto API token

    Bileto API token

  • APP_BILETO_URLBileto support server URL

    Bileto support server URL

  • APP_BRANDFlusCustom brand name for the instance

    Custom brand name for the instance

  • APP_DEMOfalseEnable demo mode with nightly data reset

    Enable demo mode with nightly data reset

    values: true, false

  • APP_ENVIRONMENTdevelopmentApplication environment (development/production)

    Application environment (development/production)

    values: development, production

  • APP_FEED_WHAT_IS_NEWhttps://github.com/flusio/Flus/releases.atomCustom feed for "What's new?" link

    Custom feed for "What's new?" link

  • APP_HOSTlocalhostThe (sub)domain which will serve Flus

    The (sub)domain which will serve Flus

  • APP_MAILERsmtpMailer type (smtp or mail)

    Mailer type (smtp or mail)

    values: smtp, mail

  • APP_OPEN_REGISTRATIONStrueWhether to allow public registrations

    Whether to allow public registrations

    values: true, false

  • APP_PATH/Subpath to serve Flus on (optional)

    Subpath to serve Flus on (optional)

  • APP_PLAUSIBLE_URLPlausible analytics server URL

    Plausible analytics server URL

  • APP_PORT8000Port for the application (defaults to 443 in production)

    Port for the application (defaults to 443 in production)

  • APP_REGISTRATION_CAPTCHAfalseEnable captcha on registration form

    Enable captcha on registration form

    values: true, false

  • APP_SECRET_KEYchange-meSecret key for the application (generate with `php cli system secret`)

    Secret key for the application (generate with `php cli system secret`)

  • APP_SERVER_IPSComma-separated server IPs for YouTube rate limiting

    Comma-separated server IPs for YouTube rate limiting

  • APP_SUBSCRIPTIONS_HOSTSubscriptions service host (for flus.fr only)

    Subscriptions service host (for flus.fr only)

  • APP_SUBSCRIPTIONS_PRIVATE_KEYSubscriptions service private key

    Subscriptions service private key

  • APP_SUPPORT_EMAILexample@flus.ioSupport email address used for default user creation and support emails

    Support email address used for default user creation and support emails

  • CLI_LOCALEDefault locale for CLI commands

    Default locale for CLI commands

  • DB_HOSTdatabaseDatabase host

    Database host

  • DB_NAMEflus_productionDatabase name (default: flus_production in production)

    Database name (default: flus_production in production)

  • DB_PASSWORDpostgresDatabase password

    Database password

  • DB_PORT5432Database port

    Database port

  • DB_USERNAMEpostgresDatabase username

    Database username

  • FEEDS_LINKS_KEEP_MAXIMUMMaximum links to keep per feed

    Maximum links to keep per feed

    values: >=1

  • FEEDS_LINKS_KEEP_MINIMUM0Minimum links to keep per feed

    Minimum links to keep per feed

    values: >=0

  • FEEDS_LINKS_KEEP_PERIODRetention period for feed links in months

    Retention period for feed links in months

    values: >=1

  • JOB_FEEDS_SYNC_COUNT1Number of jobs to synchronize feeds

    Number of jobs to synchronize feeds

  • JOB_LINKS_SYNC_COUNT1Number of jobs to synchronize links

    Number of jobs to synchronize links

  • SMTP_AUTHtrueWhether to use SMTP authentication

    Whether to use SMTP authentication

    values: true, false

  • SMTP_AUTH_TYPELOGINSMTP authentication type

    SMTP authentication type

    values: CRAM-MD5, LOGIN, PLAIN, XOAUTH2

  • SMTP_FROMnoreply@example.comEmail address for transactional emails

    Email address for transactional emails

  • SMTP_HOSTmailpitSMTP server hostname

    SMTP server hostname

  • SMTP_PASSWORDSMTP password

    SMTP password

  • SMTP_PORT1025SMTP server port

    SMTP server port

  • SMTP_SECUREtlsSMTP security (ssl or tls)

    SMTP security (ssl or tls)

    values: ssl, tls

  • SMTP_USERNAMESMTP username

    SMTP username

Flus releases & version history

More in Bookmarks & Link Sharing

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…