Sign inSign up

matthk72/selfoss-wf

By matthk72

•Updated about 19 hours ago

Selfoss RSS reader with a newspaper-style webfront UI, all in one container

Image
0

50K+

matthk72/selfoss-wf repository overview

⁠selfoss + webfront — your personal "Morning Post"

All-in-one Docker image that bundles the selfoss⁠ RSS reader with the newspaper-style Selfoss-Webfront⁠ UI. Selfoss fetches and stores the full text of your RSS feeds; the webfront turns them into a good-looking personal newspaper. The recommended way to run it is the docker-compose stack⁠ in the repository (which adds a MySQL database and ready-made configuration), but the image also works standalone against your own database.

⁠What's inside

ComponentVersion
Selfoss2.19 (official release)
Selfoss-Webfrontnewspaper UI, Bootstrap 4.6.2 + jQuery 3.7.1
Base imagephp:8.3-apache
  • Multi-arch: linux/amd64 and linux/arm64 (works on 64-bit Raspberry Pi)
  • Feeds are refreshed automatically every 15 minutes (SELFOSS_UPDATE_INTERVAL, set 0 to disable)
  • The HTML_UnEncode SQL function the webfront needs is installed automatically at container start
PortService
80the newspaper (webfront)
8080selfoss feed management UI

⁠Quick start

You need a MySQL (or MariaDB) database with a database and user for selfoss, e.g.:

CREATE DATABASE selfoss CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
CREATE USER 'selfoss'@'%' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON selfoss.* TO 'selfoss'@'%';

Then start the image (replace the host and password with yours):

docker run -d --name selfoss-wf \
  -p 80:80 -p 8080:8080 \
  -e SWF_DB_HOST=mysql.example.com \
  -e SWF_DB_NAME=selfoss \
  -e SWF_DB_USER=selfoss \
  -e SWF_DB_PASSWORD=your-password \
  -e SELFOSS_DB_HOST=mysql.example.com \
  -e SELFOSS_DB_DATABASE=selfoss \
  -e SELFOSS_DB_USERNAME=selfoss \
  -e SELFOSS_DB_PASSWORD=your-password \
  -v selfoss-data:/var/www/html/data \
  matthk72/selfoss-wf:latest
  • Open http://<host>:8080/ and add your feeds in selfoss. Use the RSS Feed (with FullTextRss) type to get full articles instead of teasers, and give each source one of your category tags.
  • The newspaper is then available at http://<host>/.

For a complete stack (image + MySQL 8.4 + configuration templates + .env), use the docker-compose setup⁠ from the repository.

⁠Environment variables

VariablePurposeDefault
SWF_DB_HOST / SWF_DB_NAME / SWF_DB_USER / SWF_DB_PASSWORDdatabase used by the webfrontlocalhost / selfoss / selfoss / –
SELFOSS_DB_HOST / SELFOSS_DB_DATABASE / SELFOSS_DB_USERNAME / SELFOSS_DB_PASSWORD / SELFOSS_DB_PORTdatabase used by selfoss (overrides config.ini)–
SELFOSS_UPDATE_INTERVALseconds between automatic feed updates900

⁠Volumes and configuration

  • /var/www/html/data — selfoss data (logs, favicons, thumbnails). Drop your config.ini here or mount it (-v ./config.ini:/var/www/html/data/config.ini); see the selfoss documentation⁠ for all options.
  • The webfront's look (newspaper name, the 11 category tags, refresh intervals) is configured in /var/www/webfront/includes/constants.php — mount your own copy to customize it. The tag names must match the tags you assigned to your selfoss sources.
⁠Configuring the database

Two equivalent ways:

  1. Environment variables (as in the quick start above) — they override the ini file.
  2. Classic db_* values in config.ini (db_type, db_host, db_database, db_username, db_password, db_port) — the selfoss-native way.

Whichever you choose, make sure the configuration is complete: without any db_* values, selfoss falls back to its default db_type=sqlite and will fail with an internal server error.

⁠Using an existing database

If you point this image at a database from an older selfoss/webfront installation, everything keeps working — sources, items and starred articles are picked up as they are. One note on the HTML_UnEncode function the webfront uses for combining duplicate articles: it is installed automatically at startup, but if your database already contains a copy created by a database admin account (common in older manual installs), the installer cannot replace it — you may see a privilege error in the container log. That message is harmless: the existing function is used. To refresh the function with the current definition, run db/HTML_UnEncode.sql once as database admin.

⁠Tags

  • 2.0.2, 2.0 — current release
  • latest — tracks the most recent release

⁠Source, issues, license

⁠Sample feeds

Below are some of the feeds I am using. Be aware that some work a bit better than others, and the more active ones (BBC, Yahoo, CNBC) tend to drown the ones with more quality stuff but that update less often. Some content gets nicely fully downloaded, some feeds don't work so well and only teasers get retrieved or the formatting is a bit off.

Many feeds have also other categories available, simply look at the URLs and see how you could possibly modify them to find an overview page, or just with trial and error.

⁠English Feeds
FeedCategoryComment
Airway⁠Aviation
Airways Magazine⁠Aviation
AsiaTimes⁠World
AsiaTimes⁠China(there are many categories, just adapt according to your interest)
AutoSport⁠Sport
BBC News⁠World(see https://www.bbc.co.uk/news/10628494#userss⁠ for different feeds)
BGR⁠Technology
Channel News Asia⁠Asia
CNBC⁠World(International)
CNBC⁠Business
CNBC⁠Travel
CNBC⁠Asia
CNBC⁠World(Europe)
CNBC⁠Business
CNBC⁠Technology
Engadget⁠Technology
FIA⁠Sport
HKG Living⁠HKG
IBT⁠Worldthey have various categories like sports/science/technology
Leeham News⁠Aviation
Little white lies⁠Film
Movieweb⁠Film
NASA⁠Science
Nature⁠Science
Out of Town⁠Travel
Politico⁠WorldEconomy⁠, Defense⁠
RT⁠World
RTHK⁠HKG
Science Daily⁠Science
SCMP⁠Various(most content is paid, with some free stuff. It only loads teasers here)
Seattle Times⁠Aviation
TechRadar⁠Technology
The Intercept⁠World
VoxEU⁠Business
Wired News⁠Technology
Yahoo News⁠World
⁠German Feeds
FeedCategoryComment
aeroTelegraph⁠Aviation
Blick⁠Swiss
Formula 1⁠Sport
SRF⁠Sport

⁠Credits

The docker is based on Pamplemousse/dockerfiles⁠ which created a standalone Selfoss docker. I added my instance of the webfront and packaged it with a MySQL database to get it all in one package.

Tag summary

Content type

Image

Digest

sha256:3a50d6373…

Size

182.8 MB

Last updated

about 19 hours ago

docker pull matthk72/selfoss-wf