SSD Nodes Learn Hosting plans →

சிறிய VPS-க்கு சிறந்த self-hosted RSS reader எது?

Miniflux, FreshRSS, CommaFeed, yarr மற்றும் Tiny Tiny RSS ஆகியவற்றை ஒப்பிடுகிறோம். RAM பயன்பாடு, database தேவைகள் மற்றும் API ஆதரவு குறித்த விரிவான தகவல்களைப் பெறுங்கள்.

சிறிய VPS-க்கு எந்த self-hosted RSS reader பொருத்தமானது

சிறிய VPS-ல் நிறுவுவதற்கு Miniflux சிறந்த self-hosted RSS reader ஆகும். இது PostgreSQL-உடன் இணைந்து இயங்கும் ஒரே ஒரு Go binary கோப்பு மட்டுமே. இது Fever மற்றும் Google Reader API-களை ஆதரிப்பதால், மூன்றாம் தரப்பு மொபைல் செயலிகளை இதனுடன் இணைக்க முடியும். மேலும், ஒரு upgrade செய்வதற்கு docker compose pull கட்டளையைப் பயன்படுத்தினால் போதுமானது. உங்களுக்கு கூடுதல் வசதிகள் (extensions) தேவைப்பட்டால் மற்றும் SQLite-ஐ உள்ளடக்கிய ஒரே ஒரு container-ல் இயங்க வேண்டும் எனில், FreshRSS-ஐத் தேர்ந்தெடுக்கவும்.

VPS-ல் சேமிப்பகத்தை ஒதுக்கத் தகுதியான ஐந்து RSS reader-கள்: Miniflux, FreshRSS, CommaFeed, yarr மற்றும் Tiny Tiny RSS. இந்த பக்கம் அவற்றுக்கிடையேயான உண்மையான வேறுபாடுகளை ஒப்பிடுகிறது: ஒவ்வொன்றும் பயன்படுத்தும் memory அளவு, கட்டாயமாக்கப்படும் database, உங்கள் மொபைல் செயலிக்குத் தேவையான sync API மற்றும் upgrade செய்யும் போது நடப்பவை. இங்குள்ள ஒவ்வொரு புள்ளிவிவரமும் அந்தந்த திட்டத்தால் வெளியிடப்பட்டது அல்லது எளிய கணக்கீட்டின் மூலம் பெறப்பட்டது; எது என்பது உரையில் குறிப்பிடப்பட்டுள்ளது. இதில் எதுவுமே உங்கள் வன்பொருளுக்கான (hardware) benchmark அல்ல, எனவே docker stats மூலம் உங்கள் server-ல் நீங்களே அளவீடு செய்து பார்க்கவும்.

ஐந்து வாசகர்கள், தலா ஒரு பத்தி

Miniflux Go மொழியில் எழுதப்பட்டுள்ளது மற்றும் ஒரே statically compiled binary-ஆக வெளிவருகிறது. இதன் ஆவணங்கள் ஒரு முக்கியமான தேவையைத் தெளிவாகக் கூறுகின்றன: இது "PostgreSQL-உடன் மட்டுமே இயங்கும்". இதில் SQLite வசதி இல்லை. இது REST API, Fever-உடன் இணக்கமான API மற்றும் Google Reader-உடன் இணக்கமான API ஆகியவற்றை வழங்குகிறது; மேலும் OPML import மற்றும் export வசதியும் உண்டு. முழு உரைத் தேடல் (Full text search) PostgreSQL மூலம் கையாளப்படுகிறது, இதனால்தான் தரவுத்தளம் (database) கட்டாயமான ஒன்றாக உள்ளது.

FreshRSS PHP-ல் இயங்குகிறது மற்றும் web server மற்றும் application இரண்டையும் உள்ளடக்கிய ஒரே container-ஆகச் செயல்படுகிறது. SQLite இதன் இயல்புநிலை தரவுத்தளம் என்பதால் கூடுதல் service தேவையில்லை; பெரிய அளவிலான நிறுவல்களுக்கு PostgreSQL மற்றும் MySQL ஆதரிக்கப்படுகின்றன. இது Google Reader API மற்றும் Fever API ஆகியவற்றுடன் பேசுகிறது. இதை நிறுவுவது பற்றி எங்கள் FreshRSS on a VPS வழிகாட்டியில் ஏற்கனவே விவரிக்கப்பட்டுள்ளதால், இந்த பக்கம் அதை மீண்டும் கூறாமல் ஒப்பிடுகிறது.

CommaFeed என்பது Quarkus-ல் இயங்கும் Java application ஆகும், இதன் அமைப்பு Google Reader-ஐப் பிரதிபலிக்கிறது. இதன் தரவுத்தளம் run time-ல் அல்லாமல் build time-லேயே தேர்ந்தெடுக்கப்படுகிறது, எனவே இந்தத் திட்டம் ஒவ்வொரு தரவுத்தளத்திற்கும் ஒரு image-ஐ வெளியிடுகிறது: athou/commafeed:latest-h2 என்பது embedded H2 தரவுத்தளத்திற்கும், athou/commafeed:latest-postgresql என்பது PostgreSQL-க்கும், மேலும் MySQL மற்றும் MariaDB-க்கான பிற variants-களும் உள்ளன. அந்த tags அனைத்தும் natively compiled builds ஆகும், மேலும் -jvm suffix என்பது JVM-ல் இயங்கும் variants-களைக் குறிக்கிறது. இது REST API மற்றும் Fever-உடன் இணக்கமான API-ஐ வழங்குகிறது, மேலும் 7.3.0 பதிப்பிலிருந்து (ஆகஸ்ட் 2026) Google Reader-உடன் இணக்கமான API-யும் இதில் உள்ளது.

yarr (yet another rss reader) என்பது SQLite-ஐ உள்ளடக்கிய ஒரே Go binary ஆகும், இதற்கு எந்த container-ம் தேவையில்லை. சாதாரண ./yarr என்பது 127.0.0.1:7070-ல் கேட்கிறது (listens). இதன் flags மிகச் சிறியவை: -addr 0.0.0.0:7070 -auth alice:secret என்பது கடவுச்சொல்லுடன் network-க்கு இதைத் திறக்கிறது, மற்றும் -db /data/yarr.db என்பது தரவுத்தளத்தை நீங்கள் விரும்பும் இடத்தில் வைக்க உதவுகிறது. இதில் Fever-உடன் இணக்கமான API உள்ளது. இதன் புதிய tagged release v2.9 ஆகும், இது செப்டம்பர் 2026-ல் வெளியானது, அக்டோபர் 2026-ல் சரிபார்க்கப்பட்டது; ஜூன் மாதத்தில் v2.7 மற்றும் ஜூலையில் v2.8 வெளியானதைத் தொடர்ந்து, இது மீண்டும் தீவிரமாக உருவாக்கப்பட்டு வருகிறது.

Tiny Tiny RSS இந்த ஐந்திலும் பழமையானது மற்றும் இயங்குவதற்கு அதிக வளம் தேவைப்படுவது. tt-rss.org-ல் இருந்த அசல் திட்டம் நவம்பர் 1, 2025 அன்று நிறுத்தப்பட்டது, அதன் வளர்ச்சி இப்போது github.com/tt-rss/tt-rss-ல் உள்ள ஒரு community fork-ல் தொடர்கிறது, அதன் ஆவணங்களே இப்போது அதிகாரப்பூர்வமான அமைப்பாகும். அந்த அமைப்பில் நான்கு services உள்ளன: ஒரு PostgreSQL container, ஒரு PHP-FPM application container, feeds-ஐப் பெறும் ஒரு தனி updater container, மற்றும் முன்னால் ஒரு nginx container. இந்த அமைப்பு "PostgreSQL-ஐப் பயன்படுத்துகிறது" என்று ஆவணங்கள் தெளிவாகக் கூறுகின்றன. இதற்குச் சொந்தமான JSON API உள்ளது, இதை அதன் Android client மற்றும் பல மூன்றாம் தரப்பு செயலிகள் பயன்படுத்துகின்றன. Fever இதில் இல்லை.

ஒவ்வொரு stack-க்கும் தேவைப்படும் memory அளவு

கீழே கொடுக்கப்பட்டுள்ள எண்கள் அளவீடுகள் அல்ல, இவை ஒதுக்கீடுகள் (budgets) மட்டுமே. சிறிய VPS-ல் ஒவ்வொரு stack-ம் இருக்க வேண்டிய அதிகபட்ச memory அளவு இது. CommaFeed-ன் எண் அந்தத் திட்டத்தின் அதிகாரப்பூர்வ வெளியீட்டில் குறிப்பிடப்பட்டுள்ளது, இது container-ன் அளவை 256 MB-க்குள் கட்டுப்படுத்துகிறது. மற்றவை, feed fetcher-க்குத் தேவையான கூடுதல் இடத்தையும் சேர்த்து கணக்கிடப்பட்ட உச்சவரம்புகள் ஆகும்; ஏனெனில் refresh cycle தொடங்கும் போது அதன் பயன்பாடு திடீரென அதிகரிக்கும்.

விளக்கப்படம்Memory ceiling per reader stack, in MB
இந்த விளக்கப்படத்தின் தரவு
[
  {
    "label": "yarr (SQLite)",
    "containers": 1,
    "mem_limit_mb": 128
  },
  {
    "label": "FreshRSS (SQLite)",
    "containers": 1,
    "mem_limit_mb": 256
  },
  {
    "label": "CommaFeed (H2)",
    "containers": 1,
    "mem_limit_mb": 256
  },
  {
    "label": "Miniflux + Postgres",
    "containers": 2,
    "mem_limit_mb": 320
  },
  {
    "label": "Tiny Tiny RSS",
    "containers": 4,
    "mem_limit_mb": 640
  }
]

yarr மிகக் குறைந்த அளவான 128 MB-ல் இயங்குகிறது. ஏனெனில் இது ஒரே ஒரு binary மற்றும் ஒரு SQLite file-ஐ மட்டுமே கொண்டுள்ளது; இதற்குத் தனி database server-ஓ அல்லது language runtime-ஓ தேவையில்லை. Miniflux-க்கு 2 containers-ல் மொத்தம் 320 MB தேவைப்படுகிறது, இதில் பெரும்பகுதி Miniflux-ஐ விட PostgreSQL-க்கே செலவாகிறது. Tiny Tiny RSS இதில் விதிவிலக்கானது; இது 4 containers-ல் 640 MB-ஐப் பயன்படுத்துகிறது. ஏனெனில் இதில் application, updater, database மற்றும் web server என நான்கு தனித்தனி process-கள் நான்கு தனித்தனி heaps-ஐப் பயன்படுத்துகின்றன.

இவற்றை வெறும் எதிர்பார்ப்புகளாகக் கொள்ளாமல், உண்மையான வரம்புகளாக (limits) அமைக்கவும். Docker Compose-ல் memory வரம்புகள் என்ற பகுதி, இதற்கான syntax மற்றும் ஒரு container அதன் உச்சவரம்பை அடையும் போது என்ன நடக்கும் என்பதை விளக்குகிறது. வரம்பு இல்லாத ஒரு container, memory நிறைந்திருக்கும் போது சரியாகச் செயல்படாது: kernel ஒரு process-ஐத் தேர்ந்தெடுத்து அதை நிறுத்திவிடும் (kill). பெரும்பாலும், அந்தச் சிக்கலை உருவாக்கிய container-ஐ விட, வேறொரு முக்கியமான process-ஐயே kernel நிறுத்திவிடும்.

ஒவ்வொரு reader-ம் கட்டாயப்படுத்தும் database

இந்த ஐந்து மென்பொருட்களுக்கும் இடையே உள்ள மிகப்பெரிய செயல்பாட்டு வேறுபாடு அவற்றின் database-ல் தான் உள்ளது. பயனர் இடைமுகத்தில் (user interface) உள்ள மாற்றங்களை விட இது முக்கியமான முடிவு; ஏனெனில், இதுவே உங்கள் backup நடைமுறையையும், upgrade செய்யும் போது ஏற்படும் அபாயத்தையும் தீர்மானிக்கிறது.

Miniflux மற்றும் அதிகாரப்பூர்வ Tiny Tiny RSS அமைப்பு ஆகியவற்றிற்கு PostgreSQL தேவைப்படுகிறது. இது சிறந்த full text search வசதியையும், பாதுகாப்பான concurrent writes-ஐயும் வழங்குகிறது. இதற்கு ஒரு கூடுதல் container, ஒரு volume மற்றும் ஒரு தொடர்ச்சியான சிக்கல் தேவைப்படுகிறது: அதிகாரப்பூர்வ PostgreSQL images-ஆல் major versions-க்கு இடையே தரவுகளை (data) நேரடியாக migrate செய்ய முடியாது. Tiny Tiny RSS ஆவணங்கள் இதை நேரடியாகக் குறிப்பிடுகின்றன, மேலும் "அதிகாரப்பூர்வ PostgreSQL containers-ல் major versions-க்கு இடையே தரவுகளை migrate செய்ய ஆதரவு இல்லை" என்று எச்சரிக்கின்றன. ஒரு feed reader-க்கு, நீங்கள் பழைய major version-லேயே நீடிக்கலாம் அல்லது pg_dump மற்றும் pg_restore மூலம் dump செய்து restore செய்யலாம். PostgreSQL-ல் pg_upgrade மற்றும் replication-அடிப்படையிலான மேம்படுத்தல்கள் பற்றியும் ஆவணப்படுத்தப்பட்டுள்ளது. இவை downtime முக்கியமாகக் கருதப்படும் பெரிய databases-க்கு பயனுள்ளதாக இருக்கும், ஆனால் ஒரு feed reader-ன் database அரிதாகவே அந்த அளவுக்குப் பெரியதாக இருக்கும். இதற்காக ஒன்று அல்லது இரண்டு ஆண்டுகளுக்கு ஒருமுறை திட்டமிடுங்கள்.

FreshRSS மற்றும் yarr ஆகியவற்றின் இயல்புநிலை (default) SQLite ஆகும். இது ஒரே ஒரு கோப்பு (file), server தேவையில்லை, port தேவையில்லை, password தேவையில்லை. சில நூறு feeds கொண்ட ஒரு நபருக்கு இது நன்றாகச் செயல்படும். பல பயனர்கள் ஒரே நேரத்தில் தரவுகளை எழுதும்போது இதன் வேகம் குறையும்; அந்தச் சூழலில் தான் FreshRSS-ன் PostgreSQL விருப்பம் பயனுள்ளதாக இருக்கும். yarr தனது v2.7 பதிப்பில் PostgreSQL ஆதரவை விருப்பத்தேர்வாகச் சேர்த்துள்ளது, ஆனால் embedded file முறையே இதைப் பயன்படுத்துவதற்கான பொதுவான வழியாகும்.

CommaFeed-ன் இயல்புநிலை embedded database H2 ஆகும். நீங்கள் தொடங்குவதற்கு முன் இதைப் பற்றிச் சிந்திக்க வேண்டும், ஏனெனில் CommaFeed தனது image உருவாக்கப்படும்போதே database-ஐத் தீர்மானித்துவிடுகிறது. பிறகு H2-லிருந்து PostgreSQL-க்கு மாறுவது என்பது ஒரு configuration மாற்றம் அல்ல. அது ஒரு மாறுபட்ட image மற்றும் நீங்களாகவே செய்ய வேண்டிய data migration ஆகும். எனவே, ஒரு வருட வாசிப்பு வரலாறு (read history) சேரும் முன்பே முடிவெடுங்கள்.

உங்கள் தொலைபேசி செயலி வேலை செய்யுமா

ஒரு feed reader எவ்வாறு பயன்படுத்தப்படுகிறது என்பதில் web interface என்பது ஒரு பகுதி மட்டுமே என்பதால், இந்த கேள்வி மக்கள் எதிர்பார்ப்பதை விட அதிக முக்கியத்துவம் வாய்ந்தது.

Miniflux ஆனது Fever compatible API மற்றும் Google Reader compatible API ஆகிய இரண்டையும் ஆதரிக்கிறது, எனவே பெரும்பாலான iOS மற்றும் Android செயலிகள் அதனுடன் இணையும். FreshRSS-ம் அதே இரண்டையும் ஆதரிக்கிறது, ஆனால் அதன் ஆவணங்கள் அவற்றை இவ்வாறு வரிசைப்படுத்துகின்றன: முழுமையான அம்ச ஆதரவுடன் Google Reader API "சிறந்தது", அதேசமயம் Fever API "குறைந்த அம்சங்களையும் குறைந்த செயல்திறனையும்" கொண்டது. எந்தவொரு செயலியும் login செய்வதற்கு முன்பு FreshRSS-ல் இரண்டு படிகள் தேவைப்படுகின்றன. Authentication பிரிவின் கீழ் "Allow API access (required for mobile apps)" என்பதை enable செய்யவும், பின்னர் user profile-ல் ஒரு API password-ஐ உருவாக்கவும். API password-ஐ உருவாக்கத் தவறினால், web login வேலை செய்தாலும் செயலியில் authentication failure ஏற்படும்; இது எங்கு சரிபார்க்க வேண்டும் என்று தெரியாதவரை குழப்பத்தை ஏற்படுத்தும்.

CommaFeed தற்போது இரண்டையும் ஆதரிக்கிறது: இது நீண்ட காலமாக Fever compatible API-ஐக் கொண்டிருந்தது, மேலும் 7.3.0 பதிப்பில் Fever-ஐ ஆதரிக்காத செயலிகளுக்காக Google Reader compatible API சேர்க்கப்பட்டது. எனவே, உங்கள் செயலி Google Reader-ஐ மட்டுமே ஆதரித்தால், 7.3.0 அல்லது அதற்கு மேற்பட்ட பதிப்பைப் பயன்படுத்தவும். yarr ஆனது Fever compatible API-ஐ மட்டுமே வழங்குகிறது, எனவே இது Fever-ஐ ஆதரிக்கும் செயலிகளுடன் மட்டுமே வேலை செய்யும், Google Reader-ஐ மட்டுமே ஆதரிக்கும் செயலிகளுடன் வேலை செய்யாது. Tiny Tiny RSS அதற்குப் பதிலாகத் தனக்கென ஒரு பிரத்யேக API-ஐக் கொண்டுள்ளது, எனவே அதற்கென உருவாக்கப்பட்ட client-ஐ நீங்கள் பயன்படுத்த வேண்டும். 300 feeds-ஐ import செய்வதற்கு முன்பாக, நீங்கள் விரும்பும் செயலி அந்த reader-ஐ ஆதரிக்கிறதா என்பதைச் சரிபார்க்கவும்.

1 GB அளவுள்ள server-க்கான ஒரு working compose file

இது Miniflux stack ஆகும். அக்டோபர் 2026 நிலவரப்படி, அந்தத் திட்டத்தின் அதிகாரப்பூர்வ Docker உதாரணத்திலிருந்து மாற்றியமைக்கப்பட்டது. வெளியிடப்பட்ட port loopback-உடன் இணைக்கப்பட்டுள்ளது, listen address தெளிவாக அமைக்கப்பட்டுள்ளது, மேலும் இரண்டு container-களுக்கும் memory limit நிர்ணயிக்கப்பட்டுள்ளது.

services:
  miniflux:
    image: miniflux/miniflux:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:8080"
    depends_on:
      db:
        condition: service_healthy
    environment:
      - DATABASE_URL=postgres://miniflux:CHANGE_ME@db/miniflux?sslmode=disable
      - LISTEN_ADDR=0.0.0.0:8080
      - BASE_URL=https://rss.example.com/
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=CHANGE_ME_TOO
      - POLLING_FREQUENCY=60
    healthcheck:
      test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
    mem_limit: 128m
  db:
    image: postgres:18
    restart: unless-stopped
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=CHANGE_ME
      - POSTGRES_DB=miniflux
    volumes:
      - miniflux-db:/var/lib/postgresql
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "miniflux"]
      interval: 10s
      start_period: 30s
    mem_limit: 192m
volumes:
  miniflux-db:

அந்தக் கோப்பில் உள்ள மூன்று வரிகளைத்தான் மக்கள் தவறாகக் கையாளுகிறார்கள். LISTEN_ADDR=0.0.0.0:8080 என்பது அதிகாரப்பூர்வ image-ல் ஏற்கனவே உள்ளதை மீண்டும் குறிப்பிடுகிறது, எனவே miniflux/miniflux-உடன் சேர்த்துப் பார்க்கும்போது, இது ஒரு தீர்வை விட பாதுகாப்பான முன்னெச்சரிக்கையாகவே அமைகிறது. நீங்கள் சொந்தமாக image உருவாக்கும்போது அல்லது தொகுக்கப்பட்ட binary-ஐ இயக்கும்போது இது முக்கியமானது, ஏனெனில் அந்த binary-ன் இயல்புநிலை 127.0.0.1:8080 ஆகும். container-க்குள் loopback-ல் பிணைக்கப்பட்ட ஒரு process-ஐ வெளியிடப்பட்ட port வழியாக அணுக முடியாது, இதனால் container ஆரோக்கியமாகத் தெரிந்தாலும் connection reset பிழை ஏற்படும். volume path /var/lib/postgresql என்பது PostgreSQL 18-உடன் பொருந்துகிறது; பதிப்பு 17 மற்றும் அதற்கு முந்தையவை /var/lib/postgresql/data-ல் தரவைச் சேமிக்கின்றன. தவறான path-ஐ mount செய்தால், தரவு அடைவு volume-ல் இருக்காது, எனவே container மீண்டும் உருவாக்கப்படும்போது அனைத்தும் அழிந்துவிடும். 127.0.0.1:8080:8080 port-ஐ பொது இணையத்திலிருந்து விலக்கி வைக்கிறது, ஏனெனில் முகவரி இல்லாமல் port-ஐ வெளியிடுவது ufw நிர்வகிக்காத ஒரு விதியை chain-ல் எழுதிவிடும். Docker ports bypass ufw அந்த நுட்பத்தை விளக்குகிறது, மேலும் a Traefik reverse proxy மூலம் அதற்கு முன்னால் TLS-ஐ எவ்வாறு சேர்ப்பது என்பதை அறியலாம்.

docker compose up -d
docker compose ps
docker compose logs -f miniflux
docker stats --no-stream

docker compose ps இரண்டு service-களும் இயங்குவதைக் காட்ட வேண்டும், database healthy என்று குறிக்கப்பட்டிருக்க வேண்டும். Miniflux-ன் முதல் தொடக்கத்தின்போது அதன் schema migrations பதிவாகும், அதைத்தான் RUN_MIGRATIONS=1 தூண்டுகிறது. docker stats --no-stream தற்போதைய memory பயன்பாட்டைக் காட்டுகிறது, இதை மேலே உள்ள அட்டவணையில் உள்ள வரம்புகளுடன் ஒப்பிட வேண்டும். Miniflux container மீண்டும் மீண்டும் restart ஆனால், அதன் log-ஐப் பார்க்கவும்: connect: connection refused என்பது PostgreSQL இணைப்புகளை ஏற்கத் தயாராகும் முன்பே அது தொடங்கிவிட்டது என்று பொருள். இதைத்தான் service_healthy நிபந்தனை தடுக்கிறது, எனவே அந்த நிபந்தனை உங்கள் மாற்றங்களுக்குப் பிறகும் உள்ளதா என்பதைச் சரிபார்க்கவும். Compose உங்களுக்குப் புதியது என்றால், Docker Compose basics on a VPS முதலில் கோப்பு அமைப்பை விளக்குகிறது.

1 GB அளவுள்ள server-ல் எவை இயங்காது

Tiny Tiny RSS-ஐத் தவிர்ப்பது நல்லது. அதன் அதிகாரப்பூர்வ நான்கு service stack, அந்த VPS-ல் வேறு எந்தப் பணியும் இல்லாதபோது மட்டுமே 1 GB VPS-ல் இயங்கும். மற்றுமொரு database-backed application மற்றும் reverse proxy-உடன் இணைந்து அதை அங்கு இயக்க முடியாது. நான்கு services என்றால் நான்கு மடங்கு overhead; அவற்றில் ஒன்று PostgreSQL.

CommaFeed இயங்கும், ஆனால் H2 image மற்றும் அந்தத் திட்டத்தின் உதாரணத்தில் குறிப்பிடப்பட்டுள்ள 256 MB வரம்பிற்குள் இருந்தால் மட்டுமே இது சாத்தியம். CommaFeed-ஐத் தனி database server-உடன் இணைப்பது சிறிய server-ன் செயல்பாட்டை முடக்கும். -jvm image variants-ஐப் பயன்படுத்தினால் நிலைமை இன்னும் மோசமாகும், ஏனெனில் JVM இயல்பாகவே அதிக நினைவகத்தை எடுத்துக்கொள்ளும் என்றும், பயன்படுத்தப்படாத நினைவகத்தை மீண்டும் operating system-க்குத் தராது என்றும் திட்டத்தின் ஆவணங்கள் எச்சரிக்கின்றன. latest-h2 மற்றும் latest-postgresql tags ஆகியவை native builds ஆகும்; இவை குறைந்த நினைவகத்தையே பயன்படுத்துவதால், JVM-ஐ இயக்க வேண்டிய கட்டாயம் இல்லையெனில் இவற்றையே பயன்படுத்தவும்.

Server-ன் நினைவகம் தீர்ந்துவிட்டால், kernel-ன் out of memory killer ஒரு process-ஐத் தேர்ந்தெடுத்து அதை நிறுத்திவிடும். dmesg -T-ல் Out of memory: Killed process 1234 (java) போன்ற ஒரு வரி தோன்றும். அந்த application எதையும் log-ல் எழுத வாய்ப்பு கிடைக்காததால், எந்தச் செய்தியும் இன்றி அந்த container docker compose ps-லிருந்து மறைந்துவிடும்.

ஒவ்வொரு மென்பொருளிலும் மேம்படுத்தல்கள் எவ்வாறு செயல்படுகின்றன

  • Miniflux: docker compose pull && docker compose up -d, RUN_MIGRATIONS=1 அமைக்கப்பட்டிருக்கும்போது தொடக்கத்திலேயே schema migrations தானாகவே நடைபெறும். மேம்படுத்தலில் ஏற்படும் சிக்கலுக்கு Miniflux காரணமல்ல; அதன் அடிப்படையிலுள்ள PostgreSQL-ன் முக்கிய பதிப்பு மாற்றமே காரணமாக இருக்கும்.
  • FreshRSS: புதிய image-ஐ pull செய்யவும். SQLite பயன்படுத்தும்போது மேம்படுத்த வேண்டிய database engine எதுவும் இல்லை என்பதால், மேம்படுத்தப்படாத third-party extensions-களால் மட்டுமே வழக்கமாகச் சிக்கல்கள் ஏற்படும்.
  • CommaFeed: உங்கள் database-க்கு ஏற்ற image variant-ஐ pull செய்யவும். latest-h2-லிருந்து latest-postgresql-க்கு மாறும்போது உங்கள் தரவுகள் தானாக இடம்பெயராது.
  • yarr: binary-ஐ மாற்றிவிட்டு, database கோப்பை அப்படியே வைத்திருக்கவும். 2026 ஜூன், ஜூலை மற்றும் செப்டம்பர் மாதங்களில் releases வந்துள்ளன; 2026 அக்டோபர் நிலவரப்படி v2.9 புதிய பதிப்பாகும், எனவே அவ்வப்போது release பக்கத்தைச் சரிபார்க்கவும்.
  • Tiny Tiny RSS: docker compose pull && docker compose up -d. application container தொடங்கும்போதே தானாகவே புதுப்பித்துக்கொள்ளும். schema update-ல் பிழை ஏற்பட்டால், அது volume அல்லது override அமைப்பில் உள்ள குறைபாடே என்று திட்டத்தின் FAQ குறிப்பிடுகிறது, எனவே முதலில் அதைச் சரிபார்க்கவும். உங்கள் compose கோப்பு இன்னும் பயன்பாட்டில் இல்லாத tt-rss.org திட்டத்திலிருந்து image-களைப் பெறுகிறதென்றால், fork-ன் image-களுக்கு (Docker Hub-ல் supahgreg/tt-rss அல்லது ghcr.io/tt-rss/tt-rss) மாறவும்.

இவற்றில் எதைச் செய்வதற்கு முன்பும் database dump எடுத்துக்கொள்ளவும், செய்த பிறகு எடுக்க வேண்டாம்.

docker compose exec -T db pg_dump -U miniflux miniflux | gzip > miniflux-$(date +%F).sql.gz

Refresh interval-ஆல் ஏற்படும் bandwidth செலவு

கீழே உள்ள எண்கள் கணக்கீட்டு முறையிலானவை, அளவீடுகள் அல்ல. இவை 100 feeds, ஒரு இடைவெளிக்கு ஒரு கோரிக்கை (request), மற்றும் ஒரு பதிலுக்கு 40 KB என வைத்து கணக்கிடப்பட்டுள்ளன. ஒரு server conditional requests-ஐ ஏற்கும் போது உண்மையான traffic குறைவாக இருக்கும்; feeds முழுமையான கட்டுரைகளைத் தரும்போது traffic அதிகமாக இருக்கும்.

விளக்கப்படம்Monthly fetches and bandwidth for 100 feeds at 40 KB per response
இந்த விளக்கப்படத்தின் தரவு
[
  {
    "label": "Every 5 minutes",
    "fetches_per_month": "864,000",
    "gb_per_month": 34.6
  },
  {
    "label": "Every 15 minutes",
    "fetches_per_month": "288,000",
    "gb_per_month": 11.5
  },
  {
    "label": "Every 30 minutes",
    "fetches_per_month": "144,000",
    "gb_per_month": 5.8
  },
  {
    "label": "Every 60 minutes",
    "fetches_per_month": "72,000",
    "gb_per_month": 2.9
  }
]

100 feeds-க்கு ஐந்து நிமிட இடைவெளி என்பது 864,000 கோரிக்கைகள் மற்றும் மாதத்திற்கு சுமார் 34.6 GB ஆகும். ஒரு மணிநேர polling என்பது 72,000 கோரிக்கைகள் மற்றும் சுமார் 2.9 GB ஆகும். Miniflux, POLLING_FREQUENCY-ஐ 60 நிமிடங்களாக அமைத்து வருகிறது, இது அந்த அட்டவணையின் கடைசி வரிசையாகும். இந்த default அமைப்பு பெரும்பாலான பயனர்களுக்குப் போதுமானது. நீங்கள் அடிக்கடி கோருவதால் ஒரு கட்டுரை விரைவாக வந்துவிடாது.

Conditional requests-தான் உண்மையான எண்ணிக்கையை கணக்கீட்டு அளவை விடக் குறைவாக வைத்திருக்கின்றன. ஒரு feed வழங்கிய ETag மற்றும் Last-Modified headers-ஐச் சேமித்து வைக்கும் reader, அவற்றை மீண்டும் If-None-Match மற்றும் If-Modified-Since ஆக அனுப்பும். புதிய தகவல்கள் இல்லாத server, 304 Not Modified எனப் பதிலளிக்கும், இதில் body இருக்காது. இந்த இணைப்பிற்கு handshake செலவு உண்டு, ஆனால் payload செலவு இல்லை. Conditional requests-ஐப் புறக்கணிக்கும் feeds ஒவ்வொரு முறையும் முழு ஆவணத்தையும் உங்களுக்குத் தரும். எனவே, சில பெரிய feeds உங்கள் transfer கட்டணத்தை அதிகரிக்கக்கூடும்.

அடிக்கடி polling செய்வது உங்களை block செய்யவும் வழிவகுக்கும். நீங்கள் server-ஐத் தொடர்ந்து தொந்தரவு செய்வதாகக் கருதினால், அது 429 Too Many Requests எனப் பதிலளிக்கும்; சில தளங்கள் 403 எனப் பதிலளிக்கும். Miniflux அந்த feed-ன் கடைசிப் பிழையைப் பதிவு செய்யும். எனவே, ஒரு feed மட்டும் புதுப்பிப்பதை நிறுத்திவிட்டு மற்றவை சரியாகச் செயல்பட்டால், முதலில் feed பட்டியலைச் சரிபார்க்கவும்.

Feeds செயலிழக்கின்றன, OPML கோப்பு ஒரு காப்புப்பிரதி அல்ல

நீங்கள் எதிர்பார்ப்பதை விட Feeds வேகமாகச் சிதைவடைகின்றன. டொமைன்கள் காலாவதியாகின்றன, தளங்கள் Feed இல்லாத தளங்களுக்கு மாறுகின்றன, மேலும் XML-ஐ வழங்கிய URL, 200 OK நிலையுடன் கூடிய HTML பிழைப் பக்கத்தை வழங்கத் தொடங்குகிறது. அந்த கடைசி நிலைதான் சிக்கலானது: fetch வெற்றி பெறுகிறது, ஆனால் parse தோல்வியடைகிறது, இதனால் உங்கள் reader ஒரு network பிழைக்கு பதிலாக parsing பிழையைப் பதிவு செய்கிறது. ஆண்டுக்கு ஒருமுறை, உங்கள் feed பட்டியலை கடைசியாகப் புதுப்பிக்கப்பட்ட நேரத்தின் அடிப்படையில் வரிசைப்படுத்தி, செயலிழந்தவற்றை நீக்கவும்.

OPML ஏற்றுமதி என்பது உங்கள் சந்தா பட்டியல் மட்டுமே. ஒரு நிலையான OPML கோப்பு feed URL-களையும் கோப்புறைப் பெயர்களையும் மட்டுமே கொண்டிருக்கும். FreshRSS தனது சொந்த XML namespace-ஐச் சேர்க்கிறது, இது refresh interval, XPath scraping selectors மற்றும் auto-read filters போன்ற feed-வாரியான அமைப்புகளைக் கொண்டுள்ளது. ஆனால், எந்தவொரு OPML ஏற்றுமதியும் நீங்கள் படித்த நிலை, நட்சத்திரமிட்ட கட்டுரைகள் அல்லது நீங்கள் சேமித்த கட்டுரையின் உரையைச் சேமிப்பதில்லை. அந்த OPML-ஐ ஒரு புதிய நிறுவலில் இறக்குமதி செய்தால், உங்கள் feeds மீண்டும் கிடைக்கும், ஆனால் நீங்கள் படித்த அனைத்துக் கட்டுரைகளும் மீண்டும் படிக்கப்படாதவையாகக் காட்டப்படும்.

முக்கியமான காப்புப்பிரதி என்பது database ஆகும். PostgreSQL-க்கு, மேலே உள்ள pg_dump கட்டளையே முழுமையான பணியாகும். FreshRSS அல்லது yarr போன்ற SQLite reader-களுக்கு, writer-ஐ நிறுத்திவிட்டு கோப்பை நகலெடுக்கவும், அல்லது sqlite3 yarr.db ".backup '/tmp/yarr-backup.db'" மூலம் அது இயங்கும்போது ஒரு சீரான நகலை எடுக்கவும். எழுதப்பட்டுக் கொண்டிருக்கும் ஒரு database-ன் சாதாரண cp, பிற்காலத்தில் திறக்க முடியாத ஒரு கோப்பை உருவாக்கக்கூடும், ஏனெனில் அந்த நகல் பாதியில் முடிக்கப்பட்ட எழுத்தைப் பதிவு செய்கிறது. எனவே, அந்த கோப்புகளை ஒரு கால அட்டவணையின்படி சர்வரிலிருந்து வெளியேற்றவும்; இதற்காகத்தான் VPS-ல் restic backups பயன்படுகின்றன. செயல்முறை சரியாக வேலை செய்கிறதா என்பதை உறுதிப்படுத்த, ஒருமுறை ஒரு scratch container-ல் அதை restore செய்து பார்க்கவும்.

ஒரு feed reader என்பது நீங்களே இயக்கக்கூடிய மிக மலிவான சேவைகளில் ஒன்றாகும், அதனால்தான் 2026-ல் சுய-ஹோஸ்டிங் செய்ய வேண்டியவை பட்டியலில் இது இடம்பெறுகிறது. அதனுடன் சுய-ஹோஸ்டிங் செய்யப்பட்ட SearXNG instance-ஐச் சேர்த்தால், உங்கள் வாசிப்பு மற்றும் தேடல் ஆகிய இரண்டும் உங்கள் கட்டுப்பாட்டில் உள்ள வன்பொருளிலேயே இருக்கும்.

FAQ

குறைந்த நினைவகத்தைப் (memory) பயன்படுத்தும் self-hosted RSS reader எது?

yarr. இது SQLite-உடன் இணைக்கப்பட்ட ஒரே ஒரு Go binary ஆகும். எனவே, இதற்குத் தனியாக database server-ஓ அல்லது வேறு language runtime-ஓ தேவையில்லை. இதற்கு 128 MB நினைவகம் போதுமானது. இதன் குறைபாடு என்னவென்றால், இது Fever API-ஐ மட்டுமே ஆதரிக்கிறது. இதன் சமீபத்திய release, செப்டம்பர் 2026-ல் வெளியான v2.9 ஆகும். உங்களுக்கு Google Reader API ஆதரவும், full text search வசதியும் இதே போன்ற குறைந்த நினைவகத்தில் தேவைப்பட்டால், Miniflux மற்றும் PostgreSQL-ஐ 320 MB அளவில் பயன்படுத்துவது சிறந்த தேர்வாகும்.

1 GB VPS-ல் self-hosted RSS reader-ஐ இயக்க முடியுமா?

ஆம். Miniflux மற்றும் PostgreSQL-ஐ இரண்டு containers-லும் mem_limit அமைப்பதன் மூலம் 320 MB-க்குள் இயக்க முடியும். FreshRSS-ஐ SQLite-உடன் ஒரே container-ல் இயக்கலாம். 1 GB VPS-ல் தவிர்க்க வேண்டியது அதிகாரப்பூர்வ Tiny Tiny RSS stack ஆகும், ஏனெனில் இது அதன் சொந்த PostgreSQL உட்பட 4 services-ஐக் கொண்டுள்ளது. எப்போதும் memory limits-ஐ அமைக்கவும்; ஏனெனில் வரம்பற்ற container-ல் இயங்கும் ஒரு process-ஐ kernel திடீரென நிறுத்தக்கூடும் (OOM kill). அவ்வாறு நிகழும்போது, தவறு செய்த application-க்கு பதிலாக database process நிறுத்தப்பட அதிக வாய்ப்புள்ளது.

இவற்றில் எவை iOS மற்றும் Android RSS apps-உடன் வேலை செய்யும்?

Miniflux, FreshRSS மற்றும் CommaFeed 7.3.0 அல்லது அதற்குப் பிந்தைய பதிப்புகள் Fever API மற்றும் Google Reader API ஆகிய இரண்டையும் ஆதரிக்கின்றன. எனவே, பெரும்பாலான mobile clients-ஐ இதனுடன் இணைக்க முடியும். yarr, Fever API-ஐ மட்டுமே வழங்குகிறது. Tiny Tiny RSS அதன் சொந்த API-ஐப் பயன்படுத்துவதால், அதற்கென உருவாக்கப்பட்ட client-ஐ மட்டுமே பயன்படுத்த வேண்டும். FreshRSS-ல், Authentication பகுதிக்குச் சென்று API access-ஐ enable செய்து, profile-ல் தனி API password-ஐ அமைக்க வேண்டும். இல்லையெனில், இணையதளத்தில் login செய்ய முடிந்தாலும், mobile app-ல் login செய்ய முடியாது.

OPML export என்பது எனது RSS reader-க்கான backup-ஆ?

இல்லை. OPML உங்கள் subscription பட்டியலை மட்டுமே மீண்டும் உருவாக்கும். FreshRSS-ன் extended export வசதி, ஒவ்வொரு feed-க்கான அமைப்புகளையும் filters-ஐயும் சேமிக்கும். ஆனால், நீங்கள் படித்த கட்டுரைகள், starred items மற்றும் கட்டுரையின் முழு உள்ளடக்கம் அனைத்தும் database-ல் மட்டுமே இருக்கும். PostgreSQL-க்கு pg_dump மூலமாகவும், SQLite-க்கு .backup கட்டளை மூலமாகவும் database-ஐ backup எடுத்து, அந்த கோப்பை server-க்கு வெளியே பாதுகாப்பாக வைக்கவும்.

Miniflux, SQLite-ஐ ஆதரிக்கிறதா?

இல்லை. இந்தத் திட்டத்தின் ஆவணங்களின்படி, இது "PostgreSQL-உடன் மட்டுமே வேலை செய்யும்". இதன் full text search வசதி PostgreSQL அம்சங்களைக் கொண்டே செயல்படுத்தப்பட்டுள்ளது. எனவே, இதைவிடக் குறைந்த வசதிகள் கொண்ட முறை இதில் இல்லை. உங்களுக்கு database container இல்லாத feed reader தேவைப்பட்டால், FreshRSS-ஐ அதன் default SQLite backend-உடன் அல்லது yarr-ஐ அதன் embedded file-உடன் பயன்படுத்தவும்.

இந்தக் கட்டுரை பயனுள்ளதாக இருந்ததா?