复制文件时必须一并复制隐藏的 .htaccess 文件,否则可能无法正常运行;升级时不能删除 data/ 目录,且需同步更新 config.ini 中的新选项;需自行配置 cron 或 systemd timer 调用 /update 或 cliupdate.php,否则订阅不会自动更新;用 Git 获取源码时还需执行 composer install 和 npm 依赖安装与构建
把文件(含隐藏的 .htaccess)复制到 PHP 站点根目录,并确保 data/cache、data/favicons、data/logs、data/thumbnails、data/sqlite 可写;如需自定义配置,将 config-example.ini 重命名为 config.ini 后编辑README 未说明硬件要求;只需能运行 PHP 的服务器即可,未提及 GPU 或显存。
用 PHP 写的自托管 RSS 阅读器与聚合应用,把网站和社交更新集中到一处
自托管的网页版 RSS 阅读器,可聚合新闻源、实时流和多种内容源,适合想自己掌控订阅数据的用户。
核心能力
- 聚合多个网站与社交平台的订阅更新
- 支持导入 OPML 文件迁移订阅源
- 通过 cron 或 systemd timer 定时抓取更新
- 支持 SQLite 等多种数据库,表结构自动创建
- 提供 Android 第三方客户端 Reader For Selfoss
容易踩的坑
- 2.19最新正式版2022-10-12 · 2022-10-12 12:41 UTC
This version requires PHP
5.67.2 (see known regressions section) or newer. It is also likely the last version to support PHP 7.Known regressions
- Values in
config.inicontaining special characters need to be quoted. Will be fixed by https://github.com/fossar/selfoss/commit/ba9339372a7bc0678c6c1f74336406ab1bbb4ecb. - Updating sources that already contain items will fail on PHP < 7.2.0. Will be fixed by https://github.com/fossar/selfoss/commit/d6e9bc8b01a7d58630772f6dc9938e88a28be706.
- Updating RSS sources without a valid date fails. Will be fixed by #1385.
New features
- Thumbnails can be disabled (#897)
- Reddit spout replaced fragile imgur heuristics with previews provided by the JSON API (#1033)
- Experimental support for using selfoss offline was added. Note that this is only available in secure contexts, that is, over HTTPS, and can be very buggy. (#1014)
- Long articles that do not fit on a single screen will no longer be arranged into columns, allowing for smoother reading experience (#1081)
- Diaspora share button was added, you can enable it with
d. (#1121) - “Copy to clipboard” share button was added, you can enable it with
c. (#1142) - Native sharer is available in secure contexts in browsers that support it. You can enable it by adding
atosharekey in your config. (#1035) - Data directory can be configured (#1043)
- New spout for searching Twitter (e.g. following hashtags) was added. (#1213)
- Added option
reading_speed_wpmfor showing estimated reading time, set it to the number of words you can read in a minute. (#1232) - Added option
db_socketfor connecting to MySQL database through UNIX domain. (#1284) - Search query is now part of URL. (#1216)
- A page that will pre-fill a form for adding a source with URL has been added. You can find it on
https://yourselfossurl.com/manage/sources/add?url=some-feed-url. (#1310, #254) - Search will be carried out using regular expressions when the search query is wrapped in forward slashes, e.g.
/regex/. The expression syntax is database specific. (#1205) - YouTube spout now supports following playlists. (#1260)
- Confirmation is now required when leaving the setting page with unsaved source changes. (#1300)
- Add link from settings page to individual sources and vice versa. (#1329, #1340)
- Tag colour can be now changed using keyboard. (#1335)
- YouTube spout now supports all YouTube URLs that provide feeds. (#1273)
- Add
open_in_background_taboption to try to make v shortcut open articles in a background tab (does not work in Chromium-based browsers). (#1354) - GitHub sources now include author. (#1367)
- Values in
- 2.182018-03-05 · 2018-03-05 16:13 UTC
查看更新说明
New features
- Full-text RSS spout is now able to extract content from PDFs (#897)
- URL is no longer cleaned when changing spout (#906)
- It is possible to set tag or source to be opened after user logs in (#927)
- Displaying multiple images from tweets with galleries is supported (#934)
- Quoted tweets are supported (#934)
- Logging destination can be changed (#1004)
Bug fixes
- Fixed Full-text RSS spout (#897)
- It is now unlikely that the client browser gets outdated JS or CSS (#907) On Lighttpd, you might need to update your configuration.
- Fixed back button not working correctly on small screens (#906)
- When using PostgreSQL, vacuuming is left to the database (#906)
- Items from different spouts but with the same uid will not be ignored anymore (#906)
- GitHub spout was modified to correctly escape the data (#906)
- YouTube spout was changed to allow wider range of URLs (#915)
- The items without a date will no longer be added again after clean-up (#914)
- Changed favicon fetcher for RSS spout to be more resilient (#920)
- Tweets are no longer truncated (#934)
- Using arrow keys in photo galleries will no longer change opened item (#942)
- Facebook spout is finally working again (#936)
- PSR-4 autoloading is now used, fixing the compatibility with custom spouts. If you use custom spouts, please make sure to check compliance. (#959)
Other changes
- Fixed compatibility with PHP 7.2 (#1005)
- Improved translations (#932, #981, #985, #1003)
- Changed library for handling ico files (#926)
- Upgraded FancyBox, the gallery looks much slicker now (#942)
- For developers: JavaScript libraries now have to be obtained using NPM (#942)
- Login is now done using AJAX, a step towards progressive web app (#931)
- Guzzle is used for HTTP requests making them more reliable (#936)
- Ironed out some inconsistencies in database schema (#955)
- For developers: JavaScript client code is now checked using eslint (#951)
- Increased resolution of the favicon (#961)
- Added warning when autoloader is missing (#957)
- Removed redundant alt attribute from favicons (#978)
- Favicons are now easier to click on mobile ([#992](https://git
- 2.172017-03-17 · 2017-03-17 09:00 UTC
查看更新说明
New features
- Spout title can be fetched automatically (#851)
- selfoss is now navigable (#869)
- Refreshing the sources using the button no longer blocks the user interface (#846)
- State of the items is synced periodically (#846)
- Added option for sharing with Wallabag 2 (#887)
Notable changes
- Composer is used for dependency management, if you downloaded selfoss from git repository you will need to use composer for installing dependencies. (#845)
- Simplified detecting selfoss root URL which should fix some cookie problems (#889)
- Made the
db_portconfiguration key optional (#843) - Migrated to
.htaccessto Apache 2.4 syntax (#833)
Bug fixes
- Fixed YouTube spout (#842)
- DeviantArt, Reddit, Golem and Twitter spouts changed to use HTTPS (#835)
- Fixed reddit spout redirects (#835)
- Fixed Wordpress emoji size on HTTPS sites (#835)
- Fixed twitter links when tweet contains
<(#852) - Fixed encoding problems caused by camo (#826)
- Fixed “$HTTP_RAW_POST_DATA is deprecated” error when updating a single source (#841)
- Fixed twitter spout error reporting (#847)
- Improved error reporting for reddit spout (#860)
- Removed the need for MySQL 5.6; MySQL 5.5.3 or greater is now required again (#863)
- Made RSS feed generated by selfoss valid (#862)
- Fixed #774 “Incorrectly calculated offset for loading new items” (#869)
- Fixed code listings overflowing to different column (#889)
- 2.162016-11-18 · 2016-11-18 18:55 UTC
查看更新说明
- update Datebase bug on db change to version 9
- clean the Golem.de content a little bit
- allow to collapse/expand filter list
- fix a problem with "tags list" height on collapse/expand filter list
- fix styling issues
- fix read count of secondary tags
- fix and update language files
- fix php 7 bug
- link item source to source listing
- heise spout: Use HTTPS to retrieve feeds
- added the scroll_to_article_header option
- spouts\twitter: Add support for private feeds
- fetch and show emoji icons
- fix reddit spout
- prevents window.opener vulnerability
- 2.152016-04-15 · 2016-04-15 19:01 UTC
查看更新说明
- improved handling of load list errors
- Bugfix: f3/Web: workaround CURLOPT_FOLLOWLOCATION not allowed when open_basedir is set
- Bugfix: MySQL update time default field
- improvement of translations
- Add spout "RSS Feed (with enclosures)" to support feed enclosures
- Added keyboard shortcut to refresh sources (Shift+r)
- add support for private (@) and hidden (#) tags
- Optimize SQL request to look for icon usage
- Bugfix: Restore pgsql compatibility
- Bugfix: fix tags filtering
- Remove useless debug log
- tweak browser icons
- add toolbar color from Chrome for Android
- added new auto_collapse option
- added rewrite rule for ACME well known location. (folder for lets encrypt)
- improve accesibility of selfoss
- added no-referrer meta tag
- Bugfix: fixed the search offset
- Bugfix: fixed the "active" flag in the sources list
- Rename floIcon constructors for PHP 7 support
- indicator of below the fold unread entries
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
selfoss 2.20-SNAPSHOT
selfoss is a multipurpose RSS reader and feed aggregation web application. It allows you to easily follow updates from different web sites, social networks and other platforms, all in single place. It is written in PHP, allowing you to run it basically anywhere.
For more information visit our web site.
Status
selfoss is currently maintained by Jan Tojnar in his free time. Due to the limited capacity, maintenance is prioritized over new features. Pull requests are welcome, see the Contributing guide.
Download
- Stable releases – if you just want to use selfoss.
- Development builds – if you want to try unreleased features or bug fixes, or help testing them. Hosted by Cloudsmith
- Git-tracked source code – if you want to join selfoss development. Some assembly required.
Installation
- Copy all files of this directory (IMPORTANT: also copy the invisible
.htaccessfiles) to a document root of a PHP server. - Make the directories
data/cache,data/favicons,data/logs,data/thumbnailsanddata/sqlitewriteable. - Insert database access data in
config.ini(see below). You do not need to change anything if you want to use SQLite. - You do not need to create the database tables, they will be created automatically (ensure that your database user is allowed to create triggers).
- Create cronjob or systemd timer for updating feeds and point it to https://yourselfossurl.com/update via wget or curl. You can also execute the
cliupdate.phpfrom command line.
If you obtained selfoss using Git, some more steps will be required. See the development section.
For further questions or on any problem use our support forum: https://forum.selfoss.aditu.de/
Configuration
No configuration is needed to use selfoss but you can customize the settings as follows:
- Rename
config-example.initoconfig.ini. - Edit
config.iniand delete any lines you do not wish to override. - See https://selfoss.aditu.de/ for examples.
Update
- Backup your database and your
data/directory. - (IMPORTANT: do NOT delete the
data/directory) delete all old files and directories excluding the directorydata/and the fileconfig.ini - Copy all new files and directories excluding the
data/directory (IMPORTANT: also copy the invisible.htaccessfiles) to your selfoss root. - Consult the NEWS file to learn about backwards incompatible changes.
- Clean your browser cache.
- Insert your current database connection and your individual configuration in
config.ini. Important: we change theconfig.iniand add new options in newer versions. You have to update theconfig.initoo. - The database will be updated automatically (ensure that your database user is allowed to create triggers).
If you obtained selfoss using Git, some more steps might be required. See the development section.
For further questions or on any problem use our support forum: https://selfoss.aditu.de/forum
Support
- Issue tracker for reporting problems and requesting new features
- Forum for general questions about usage
- Chat on Gitter (or
#selfoss:matrix.orgmirror) for discussing selfoss development or just about anything
OPML import
Selfoss supports importing OPML files. Find the OPML export in the old application, it is usually located somewhere in settings. Then visit the page https://yourselfossurl.com/opml and upload it there.
Third-party Apps
We recommend Reader For Selfoss for Android devices.
Development
Selfoss uses composer and npm for installing external libraries. When you clone the repository you have to issue composer install to retrieve the external sources.
For the client side, you will also need JavaScript dependencies installed by calling npm install in the client/ directory. You can use npm run install-dependencies as a shortcut for installing both sets of dependencies.
We use Parcel (installed by the command above) to build the client side of selfoss. Every time anything in client/ directory changes, you will need to run npm run build for the client to be built and installed into the public directory. When developing, you can also use npm run dev; it will watch for asset changes, rebuild the bundles as needed, and reload selfoss automatically. Upon switching between npm run dev and npm run build, you may need to delete client/.cache.
If you want to create a package with all the dependencies bundled, you can run npm run dist command to produce a zipball.
Every patch is expected to adhere to our coding style, which is checked automatically by CI. You can install the checkers locally using npm run install-dependencies, and then run the checks using npm run check before submitting a pull request. There is also npm run fix, that will attempt to fix the formatting.
Credits
selfoss was created by Tobias Zeising, and the source code is licensed under the GNU General Public licence version 3, or (at your option) any later version.
Some parts of the source code can be licensed under version 3 only, we are currently trying to resolve it.
The package with bundled dependencies might be distributed under version 3 only.
Very special thanks to all contributors of pull requests here on GitHub, as well as translators on Weblate. Your improvements are awesome!
Special thanks to the great programmers of these libraries used by selfoss:
- SimplePie
- WideImage
- htmLawed
- PHP Universal Feed Generator
- Elphin IcoFileLoader
- Graby
- FullTextRSS filters
- yet-another-react-lightbox
- Tracy
Icon made by http://blackbooze.com/
Package repository hosting is graciously provided by Cloudsmith. Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that enables your organization to create, store and share packages in any format, to any place, with total confidence.