2013. március 29.

Selfoss RSS szerver telepítése Raspberry Pi alá (a Google Reader helyett)

Nyáron bezár a Google Reader, ezért keresem a többplatformos RSS olvasó alternatívákat. A Selfoss egy szerverre telepíthető webes és mobilwebes kimenetet biztosító egyszerű megoldás. A Raspberry Pi egy kisméretű olcsó szerver, melyből RSS olvasó webszervert készítettem.
Megjegyzés: Ez a bejegyzés kifejezetten annak rögzítésére szolgál, milyen lépéseket kell egy nagyon kezdő usernek végrehajtania a fent említett vason. Így nem nagyon fogok kitérni se a rpi-re, se a Selfoss használatára, csak vázlatosan említek meg pár dolgot. Az alábbi telepítési útmutató +Ferenc Nagy készítette számomra, amit az engedélyével most blogba fűzve, kiegészítve kommentjeimmel megosztok. Ezúton köszönöm meg újra és újra azt a sok segítséget, amit a Linux világába lépve a rpi kapcsán nyújtott.

Raspberry Pi szerver

A Raspberry Pi egy okostelefon tudásával felruházott, SD kártyás, USB portos, HDMI és RCA videó, illetve 3,5" sztereó hangkimenetes mini PC. Az alap operációs rendszere egy rá portolt Debian Linux, azonban még Android port is létezik rá. Az általam használt "B" verziós modell 512 MB RAM-mal van szerelve, és az alap CPU órajele 700MHz-es, és egy 8GB SD-n van a rendszer. A LAN Ethernet kábellel érhető el, wifi nincsen benne. A http://malnapc.hu/yis/malna-pc-es-tartozekai/kit oldalon akadtam rá, de van több beszerzési forrása is, akár külföldről is. Panelekkel akár robot szintig bővíthető. Az alap szett ára bruttó 15.000 és 25.000 Ft között mozog. Azonban az alacsony ára nem azt jelenti, hogy teljesen kivált egy célra szabott média lejátszót, vagy egy az egyben megfelel egy két- vagy négymagos Android mini PC-nek. Nem. A rpi egy oktatási céllal készült, hogy fejlesszék az arra hivatott műszaki érdeklődésűek tudásukat, és kitaláljanak olyan eszközöket, melyek csak drágán érhetőek el nagyobb vagy célraszabottabb tudással.
A hivatalos weboldal: http://www.raspberrypi.org


Selfoss RSS olvasó szerver szoftver

A Selfoss egy német fejlesztésű webes projekt. A http://selfoss.aditu.de oldalon találsz róla bővebb infókat. A működéséhez PHP és MySql szükséges. Fogadja az OPML formátumot, így importálható a Google Reader által tárolt feed halmaz. Túl sok paraméterezést nem enged, a tudása alap szintű, azonban könnyű használni és tetszetős. A Tiny Tiny RSS többet tud, de nehezebb beüzemelni.

Képernyőmentések a Selfoss webes felületéről:


  

  

Raspberry Pi beállítása

  • Az SD kártyát teljesen leformázva a letöltött .zip-ből kimásolt .img fájlt a Win32 Disk Imager segítségével kiírtam. Ez nekem rendre megszakadt Windows 7 alatt, azonban Lubuntu alól sikerrel jártam. Itt van hozzá egy angol nyelvű leírás PDF-ben: http://www.raspberrypi.org/quick-start-guide
  • Az SD-t a rpi-be dugva, tápot és a szükséges eszközöket csatlakoztatva elvégeztem az első boot során szükséges konfigurációt a Raspi-config ablakában.
  • A gép alap felhasználóneve és jelszava: pi / raspberry A jelszót mindenképpen érdemes módosítanod.
  • Így kikapcsolhatod a grafikus felületet (én meghagytam és a 64MB-t 32MB-ra csökkentettem), partíciót terjeszd ki az egész SD méretére, az SSH-t engedélyeztem, beállítottam a magyar billentyűzetkiosztást, beállítottam a magyar lokalizációt, beállítottam a Budapesti időzónát, frisítettem a rendszert.
  • A routeren beállítottam fixre a rpi IP címét, szabaddá tettem a 22 (SSH eléréshez) és 80 (webes eléréshez) portokat és az rpi címére irányítottam.
  • A gép újraindítása után még esetleg nem árt a firmware-t is frissíteni. Indíts egy terminál ablakot (a grafikus felületen, vagy a PC-dről a rpi-t elérve).
  • Az alábbi három sorral frissítsd a rendszert. Ha letöltésnél a telepítés előtt rákérdez, a nyelvtől függően "I" vagy "Y" gomb, majd "Enter" és megy tovább.
sudo apt-get install git-core
sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update
sudo rpi-update
  • Emlékeim szerint rebootot javasol, terminál paranccsal:
sudo reboot
  • Ezzel kész vagyunk, bár még biztos lehetne mit optimalizálni. Ez egyelőre bőven elég.

Selfoss telepítése

  • Terminál ablakban telepítettem a lighttpd, php5, mysql komponenseket:
sudo apt-get install lighttpd php5-cgi php5-common php5-gd php5-mysql php5-sqlite mysql-client mysql-common mysql-server sqlite
  • Ha letöltésnél a telepítés előtt rákérdez, a nyelvtől függően "I" vagy "Y" gomb, majd "Enter" és megy tovább. A mysql majd kér egy jelszót kék ablakban, ami a mysql jelszava lesz.
  • A lighttpd beállítása a következő lépés. A nano segítségével megnyitottam a konfigurációs fájlt szerkesztésre:
sudo nano /etc/lighttpd/lighttpd.conf
  • Engedélyeztem az alábbi modulokat, ami nem volt ott, azt felvezettem, a sor elejei #-t töröltem:
server.modules = (
        "mod_access",
        "mod_alias",
        "mod_compress",
        "mod_redirect",
        "mod_rewrite",
        "mod_fastcgi",
)
  • A konfigurációs fájl végére mentem, és felvezettem a php engedélyezéséhez szükséges sorokat:
fastcgi.server = ( ".php" => ((
                     "bin-path" => "/usr/bin/php-cgi",
                     "socket" => "/tmp/php.socket"
                 )))
  • Ezután elmentettem a fájlt (CTRL+O, majd Enter), majd kiléptem a szerkesztésből (CTRL+X).
  • A lighttpd újraindítása következett:
sudo service lighttpd restart
  • A Selfoss telepítéséhez létrehoztam a szükséges könyvtárakat, majd elindítottam a letöltést és telepítettem a szoftvert:
cd /var/www
sudo mkdir selfoss
cd selfoss
sudo wget http://selfoss.aditu.de/selfoss-2.3.zip
sudo unzip selfoss-2.3.zip

  • Figyelj arra, hogy ha az aktuális Selfoss verzió nem 2.3, akkor más lesz a fájlok neve az utolsó két sorban! Erről a http://selfoss.aditu.de oldalon tudsz meggyőződni.
  • Visszamentem a lighttpd konfigurációs fájljába, hogy az url rewrite beállításra kerüljön:
sudo nano /etc/lighttpd/lighttpd.conf

  • A nano szerkesztőben a fájl végére mentem, és felvezettem ezeket a sorokat:
url.rewrite-once += (
 "^/selfoss/favicon.ico$" => "/selfoss/public/favicon.ico",
 "^/selfoss/favicons/(.*)$" => "/selfoss/data/favicons/$1",
 "^/selfoss/thumbnails/(.*)$" => "/selfoss/data/thumbnails/$1",
 "^/selfoss/(.*.(js|ico|gif|jpg|png|css|asc|txt|eot|woff|ttf|svg))$" => "/selfoss/public/$1",
 "^/selfoss/index.php(.*)$" => "$0",
 "^/selfoss/([^\?]+)(\?(.*))?" => "/selfoss/index.php?$3",
 "^/selfoss/public/" => "$0",
 "^/selfoss/(.*)" => "/selfoss/index.php?$1"
 )
  • Ezután elmentettem a fájlt (CTRL+O, majd Enter), majd kiléptem a szerkesztésből (CTRL+X).
  • lighttpd újraindítása következett:
sudo service lighttpd restart
  • A működéshez szükséges könyvtárjogosultságokat módosítottam:
cd /var/www/selfoss
sudo chmod 777 data/cache
sudo chmod 777 data/favicons
sudo chmod 777 data/logs
sudo chmod 777 data/thumbnails
sudo chmod 777 data/sqlite
sudo chmod 777 public/
  • Nem kell mysql-t beállítani, a selfoss működik sqlite-tal is.
  • A működést ellenőrizheted a localhost/selfoss címen (értelemszerűen saját IP, vagy DynDNS használható).

Konfigurálás

  • lighttpd.conf fájlban a server.port sorban a portot módosíthatod 80-ról 8080-ra, ha azon át akarod a webes elérhetőséget biztosítani.
  • A Selfoss-hoz tartozó .htaccess beállítását így tudod elvégezni, ha módosítani szeretnéd:
cd /var/www/selfoss
sudo nano .htaccess
  • /var/www/selfoss mappában található a config.ini, melyben beállíthatod a jelszóvédelmet, és pár paramétert. A http://selfoss.aditu.de oldalon Configuration fejezetnél felsorolásra kerül minden, amit használhatsz. A fájl szerkesztése:
sudo nano /var/www/selfoss config.ini
  • A mentés (CTRL+O, majd Enter), majd kilépés (CTRL+X) a szokásos.
  • A password sorban lévő kódolt jelszót a localhost/selfoss/password böngészőben történő meghívásával generáltathatod le.
  • A Selfoss gyorsbillentyűkről a fejlesztő oldalán a Shortcuts részben találsz útmutatót.

Google Reader import

  •  A https://www.google.com/takeout/ oldalon kérhetsz a Googletől a Reader szolgáltatásra egy mentést, mely mikor elkészül, egy .zip-ben letöltheted az OPML fájlt.
  • Csomagold ki a fájlt.
  • Az .xml fájlt az alább a localhost/selfoss/opml oldalon át tudod importálni. A folyamat hosszadalmas, ha sok feeded van, ne indíts rá!
  • Ezt az importáló menüt eléred a Selfoss bal alsó sarkában lévő felhő ikon alatt is.
  • Ugyanitt tudod rendezni a feedjeidet, törölni, egyesével hozzáadni.
  • Eddig nekem egyik RSS-re sem jelzett, hogy gondja lenne, és nem tapasztaltam kompatibilitási problémát vagy karakter kódolási gondot sem.

Feed frissítés, automatikus frissítés

  • Az első alkalommal hosszadalmas lesz a frissítés, ha a localhost/selfoss/update címet meghívod.
  • Ha nem akarod mindig a linket hívogatni, akkor cron beállítás szükséges, hogy automatikusan frissüljön az összes feed.
  • Az óránkénti frissítés beállításához megnyitottam szerkesztésre a Selfoss cron-ját.
sudo nano /etc/cron.hourly/selfoss
  • Az alábbi sort vezettem fel bele:
#!/bin/sh
/usr/bin/curl -s -S -m 3300 http://127.0.0.1/selfoss/update >/dev/null
  • A mentés (CTRL+O, majd Enter), majd kilépés (CTRL+X) a szokásos.
  • Ahhoz, hogy ez le is fusson, elindítottam a cron futását, ami azóta is szépen frissít:
sudo chmod +x /etc/cron.hourly/selfoss

Okostelefon használat

  • A webfelület automatikusan átvált mobil webes nézetre, ha arra alkalmas eszközön nyitod meg, legyen az Android, iPhone vagy iPad. Ebben a változatban a képek betöltése nem automatikus, külön kell klikkelni.
  • Csak ezen a weboldalon keresztül érhető el egy egyszerű Android kliens is, melytől nem vágtam hanyatt magam, inkább kitettem ikonba a webes elérést. Mindenesetre egy próbát megér:
  • http://f-droid.org/repository/browse/?fdid=de.aditu.selfoss
Amennyiben további beállítási lehetőségekre lelek, felvezetem a leírásba. Egyelőre használom, és az egyszerűsége miatt, no meg azért is, mert saját szerveren fut, szívesen használom. :)

Kapcsolódó Google+ kommunikáció...