Kategorien
Technik

Tiny Tiny RSS auf Uberspace 7

­čĺí Update am 24.05.2023: Da ich hin und wieder Anfragen zur Installation von Tiny Tiny RSS auf Uberspace 7 bekomme, sei einleitend angemerkt, dass ich mittlerweile FreshRSS nutze und auch empfehle.

Ich bin erst k├╝rzlich (naja, im Dezember) von Uberspace 6 auf Uberspace 7 umgestiegen und wollte dort auch Tiny Tiny RSS installieren, was problemlos funktioniert hat.

Im Folgenden eine kleine Anleitung, wie man den RSS-Reader auf einem frisch eingerichteten Uberspace-7-Account installieren kann. Als Datenbank kommt MySQL MariaDB zum Einsatz, die Installation liegt in https://$USERNAME.uber.space/ttrss. Das geht nat├╝rlich auch mit eigenen Domains.

Installation

Download

Zuerst betreten wir den html-Ordner und klonen das Git-Repository in den Unterordner ttrss:

cd /var/www/virtual/$USERNAME/html/
git clone https://tt-rss.org/git/tt-rss.git ttrss

Datenbank

Jetzt erstellen wir eine neue Datenbank f├╝r Tiny Tiny RSS:

mysql -e "Create Database $USERNAME_ttrss"

Das Passwort wurde bei der Einrichtung des Uberspace-Accounts automatisch angelegt und ist im Homeverzeichnis zu finden:

cat ~/.my.cnf

Tiny Tiny RSS ist jetzt ├╝ber das WWW erreichbar und kann eingerichtet werden. Die Default-Zugangsdaten lauten:

Username: admin
Passwort: password

Das Passwort sollte man nat├╝rlich am besten umgehend ├Ąndern. ­čśë

RSS-Feeds aktualisieren

Manuell

Wenn man seine RSS-Feeds nur am Desktop-Rechner oder Notebook liest, w├╝rde es prinzipell reichen, wenn man sich via Shell am Server anmeldet und den Daemon dort startet:

php /var/www/virtual/html/$USERNAME/ttrss/update.php --daemon

Mit Strg+c wird der wieder gestoppt. Alternativ k├Ânnte man das auch in ein Shell-Skript schreiben und dieses nach der Anmeldung am Server z.B. mit dem .bashrc-Alias ttrss starten.

Automatisiert

Das alles geht nat├╝rlich auch automatisch und ist ganz praktisch, wenn man tippfaul ist oder die Feeds auch via App auf dem Telefon lesen m├Âchte.

Via Cronjob

Die Crontab mit crontab -e ├Âffnen und z.B. folgende Zeilen eintragen:

# Tiny Tiny RSS
*/30 * * * * php /var/www/virtual/$USERNAME/html/tt-rss/update.php --feeds --quiet

Die Feeds werden hierbei alle 30 Minuten aktualisiert.

Als Dienst

Hierf├╝r k├Ânnte z.B. im Ordner ~/scripts das Shell-Skript ttrss.sh mit folgendem Inhalt erstellt werden:

#!/bin/bash
cd /var/www/virtual/&USERNAME/html/ttrss/
exec php ./update_daemon2.php --daemon 2>&1

Ausf├╝hrbar machen:

chmod u+rwx ~/scripts/ttrss.sh

Nun wird f├╝r dieses Skript ein Dienst eingerichtet (an dieser Stelle k├Ânnte auch, wie weiter oben bereits angesprochen, ein .bashrc-Alias Verwendung finden):

cd ~/etc/services.d/
nano ttrss.ini

Der Inhalt der ttrss.ini:

[program:ttrss]
command=/home/$USERNAME/scripts/ttrss.sh
autostart=yes
autorestart=yes

Die neue ttrss.ini einlesen:

supervisorctl reread

ÔÇŽund starten:

supervisorctl update

Sollte es keine Fehlermeldungen geben, l├Ąuft Tiny Tiny RSS jetzt als eigener Dienst auf dem Server, was man sich z.B. im Programm htop jetzt anschauen k├Ânnte.

Weitere Befehle:

Neustarten mit supervisorctl restart ttrss, stoppen mit supervisorctl stop ttrss, starten mit supervisorctl start ttrss.

Kategorien
Technik

Logfile-Analyse mit GoAccess auf einem Uberspace

Ich wollte mir heute nach langer Zeit mal einen aktuellen ├ťberblick ├╝ber die Crawler verschaffen, die meine Seite so ansteuern.

Da ich keine Zeit f├╝r und Lust auf Piwik Matomo habe, war ich auf der Suche nach einem schlanken Kommandozeilen-Programm, das direkt auf dem Server l├Ąuft und dort auf die access_log des Apache zugreift.

F├╝ndig geworden bin ich in GoAccess. Auf einem Uberspace l├Ąsst sich das schnell in Betrieb nehmen.

Download und Konfiguration

Zuerst laden wir es im Home-Verzeichnis herunter, entpacken es, benennen den Ordner um und betreten diesen:

cd ~
wget https://tar.goaccess.io/goaccess-1.3.tar.gz
tar -xzvf goaccess-1.3.tar.gz
mv goaccess-1.3/ goaccess/
cd goaccess

Anschlie├čend konfigurieren:

./configure --enable-geoip --enable-utf8 --prefix=/home/$USERNAME

Jetzt l├Ąsst sich GoAccess auch schon starten:

goaccess -a -p ~/goaccess/config/goaccess.conf -f /readonly/$USERNAME/logs/access_log

Nach dem Start des Programms muss man mit der SPACE-Taste nun noch Log-Format best├Ątigen, z.B. NCSA Combined Log Format. Nach der Best├Ątigung mit Enter wird das Dashboard gestartet.

Alias einrichten

Damit man nicht bei jedem Mal so viel tippen muss, richtet man sich noch einen Alias in der .bashrc ein:

nano ~/.bashrc

Der Alias k├Ânnte so ausschauen:

alias goaccess-log='goaccess -a -p ~/goaccess/config/goaccess.conf -f /readonly/$USERNAME/logs/access_log'

Jetzt noch die .bashrc neu einlesen:

source ~/.bashrc

Fertig. Das Programm l├Ąsst sich nun mit goaccess-log starten.

Kategorien
Technik

Meine Hosting-Geschichte

Gestern Abend, als ich mit Kajo eine Gassi-Runde gedreht habe, musste ich spontan dar├╝ber nachdenken, bei welchem Hoster ich damals meine erste Domain registriert hatte.

Ich denke ja immer an komische Sachen, wenn ich mit dem Hund unterwegs bin, von daher ist das erst mal nicht verwunderlich. Verwunderlich war es dann aber, das alles zu rekonstruieren. Da musste ich schon erst mal genau nachgr├╝beln. ­čĄö

Vorgeschichte

Die erste Homepage hatte ich 1999. Damals bekam man bei AOL, meinem damaligen ISP, pro Account auch ein wenig Webspace. Die Seite war dann unter http://members.aol.com/$USERNAME erreichbar. Das hat mir erst einmal gereicht. Erstellt habe ich die Seiten zu der Zeit mit Microsoft FrontPage Express. Ins Web bef├Ârdert wurden sie mit WS_FTP.

Sp├Ąter hatte ich auch einen Account bei neXgo, die irgendwann von Arcor ├╝bernommen wurden. Die Webseiten waren hier unter http://home.nexgo.de/$USERNAME bzw. sp├Ąter unter http://home.arcor.de/$USERNAME zu erreichen. Den Arcor-Account hatte ich viele Jahre f├╝r diverse Sachen in Gebrauch.

Zu jener Zeit waren Web-Dienste popul├Ąr, bei denen man sich leichter zu merkende Subdomains anlegen und diese dann auf die URL der eigenen Homepage umleiten konnte. Spontan fallen wir da http://$USERNAME.de.tf oder http://$USERNAME.cjb.net ein.

Erste TLD bei PureTec

Im Jahr 2001, das genaue Datum wei├č ich gar nicht mehr am 4. Februar, habe ich meine beiden ersten Top-Level-Domains registriert: helmutkaczmarek.de und helmut-kaczmarek.de. Die liefen anfangs bei PureTec. Ob diese Firma damals auch schon zu 1&1 geh├Ârte, wei├č ich leider nicht mehr. Ich w├╝rde das aber auch ohne einen Blick in die Wikipedia vermuten, da ich das Logo eindeutig in blauer Erinnerung habe. ­čśë

Host Europe

Kurze Zeit sp├Ąter zog ich die Domains zu Host Europe um, da ich meine Homepage unbedingt um PHP und MySQL erweitern wollte. Ob das bei PureTec nicht ging, das kann ich nicht mehr erinnern. Aber vermutlich war Host Europe wirtschaftlich (ich hatte mich ja gerade auf dem Ruhr-Kolleg angemeldet) und technisch die bessere Alternative. Jedenfalls lernte ich dann PHP und MySQL und hatte von da ab eine ┬╗dynamische┬ź Homepage. Mein Kumpel J├Ârg, der zeitgleich Wirtschaftsinformatik an der FH Dortmund studierte (also auch richtig Ahnung von der Materie hatte), stand mir hierbei immer tatkr├Ąftig mit Rat und Tat zur Seite. Neben PHP und MySQL besch├Ąftigte ich mich auch viel mit HTML und CSS. FrontPage Express nutzte ich also nicht mehr. Die Seiten wurden ┬╗from scratch┬ź geschrieben. Mein damaliger Editor war Waeverslave.

Neue Medien M├╝nnich (all-inkl.com)

Bei Host Europe war ich allerdings auch nicht lange. Ich zog um das Jahr 2002 herum wieder um. Dieses Mal zu Neue Medien M├╝nnich. J├Ârg hatte mir die empfohlen. Ein recht neuer Webhoster, bei dem man f├╝r wenig Geld guten Service bekam. Ich fand den Namen ┬╗All-Inkl┬ź anfangs zwar doof, aber er war eben auch Programm, da hier u.a. s├Ąmtlicher Traffic schon inbegriffen war. Denselben Account habe ich ├╝brigens heute immer noch. Es gab einfach nie einen gescheiten Grund, dort wieder wegzugehen. Der Kundenservice ist hervorragend und auf technische Entwicklungen wird auch schnell reagiert. Als letztes Beispiel f├Ąllt mir da das Thema ┬╗https┬ź ein. Schon recht fr├╝h konnte man dort kostenlos eigene TLS-Zertifikate einbinden, kurze Zeit sp├Ąter auch schon die von ┬╗Let’s Encrypt┬ź.

Testweise auch mal DomainFactory

J├Ârg war schon immer bei DomainFacory. Als Selbstst├Ąndiger hatte er da einen Reseller-Account. Damals war mir DomainFactory aber als Privatperson immer zu teuer. Trotzdem habe ich sie vor einigen Jahren mal getestet. Im Prinzip fand ich die auch sehr gut. Einen gro├čen Nachteil hatte DomainFactory aber f├╝r mich: die haben t├Ąglich in jeder Nacht das Administrationsmen├╝ in einen mehrst├╝ndigen Wartungsmodus gesetzt. F├╝r einen chronisch nachtaktiven Studenten war das nat├╝rlich ├╝berhaupt nichts. Schade. Oder zum Gl├╝ck, denn die wurden ja 2013 von Host Europe ├╝bernommen.

vServer

Seit 2007 bin ich Linux-User. Ich fand es besonders spannend, jetzt auch mal das Betriebssystem, auf dem meine Homepage immer lief, so richtig kennenzulernen. Nachdem ich dann Serveradministration ein paar Jahre ernsthaft ge├╝bt hatte, traute ich es mir 2013 endlich zu, einen eigenen vServer in Betrieb zu nehmen.

Das war auch wirklich eine ganz wunderbare Sache. Und obwohl ich dank der jahrelangen ├ťbung genau wusste, was ich da mache, habe ich recht schnell festgestellt, dass so etwas eigentlich ein 24-Stunden-Job ist. Das hatte ich freilich vorher schon geahnt, dann aber erst am eigenen Leibe erfahren, wie anstrengend es tats├Ąchlich ist. Nicht von der Materie her (das hatte ich ja sehr lange ge├╝bt), sondern was die Aufmerksamkeit betrifft. So ein Server braucht immer Aufmerksamkeit. Im Idealfall auch, wenn man schl├Ąft. Der Server macht da keine Ausnahmen. Wenn man mal ein Wochenende keine Lust auf sowas hat, ist das sehr schlecht.

Daher habe ich mich nach ein paar Monaten schweren Herzenz entschieden, den Server wieder vom Netz zu nehmen. Spa├č macht mir das aber nat├╝rlich immer noch, sodass ich auch heute noch immer flei├čig am ├ťben bin bzw. mich in Sachen Linux immer auf dem Laufenden halte. Nur haben diese Server dann eben keinen Zugang mehr zum Internet.

Uberspace

Ich hatte nat├╝rlich auch l├Ąngst einen ALL-INKL-Account mit Shell-Zugang. Der ist nur leider sehr stark eingeschr├Ąnkt. Ich habe mir dann (ebenfalls 2013) bei Uberspace einen Account zugelegt. Da bekommt man einen vollwertigen Linux-Account auf dem Server, fast ohne Einschr├Ąnkungen. Gut, Root-Zugang hat man freilich nicht. Aber daf├╝r darf man dann auch mal ein paar Tage ┬╗keine Lust auf sowas┬ź haben.

Uberspace ist heute neben ALL-INKL gewisserma├čen mein zweiter Webhoster. Ich kann mir diese Firma gar nicht mehr wegdenken. Mit meinem Uberspace-Account habe ich schon tolle Sachen gemacht: z.B. einen eigenen Jabber-Server betrieben oder ein Ghost-Blog gehostet. Alles Dinge, die mit einem ┬╗normalen┬ź Webhoster wie ALL-INKL nicht realisierbar sind.

Technisch gesehen steht Uberspace in meiner Gunst mittlerweile sogar leicht ├╝ber ALL-INKL. Bei den Backups f├Ąngt das schon an. Bei ALL-INKL kann man zwar per E-Mail nach einem Backup fragen (was auch problemlos funktioniert und f├╝r technisch nicht so interessierte User eine tolle Sache ist), aber ich mache so etwas schon seit ein paar Jahren lieber alles selbst.

Ich habe mir damals dann ein kleines PHP-Skript geschrieben, mit dem ich meinen Webspace und die MySQL-Datenbanken sichere. PHP nur deswegen, weil auch die Cronjobs bei ALL-INKL in ihrer Funktionalit├Ąt extrem beschnitten und nur via KAS ┬╗von au├čen┬ź zu erreichen sind. Automatisieren lie├č sich das bei ALL-INKL also nur via PHP und ┬╗Cronjob┬ź (ich setze das bewusst in Anf├╝hrungszeichen, da das bei denen keine vollwertigen Cronjbs sind).

Als erfahrener Linux-User wusste ich nat├╝rlich, dass das auch eleganter geht. Und bei Uberspace hat man einen vollwertigen Userspace und daher nat├╝rlich auch Zugriff auf die Crontab. Ich hatte mir f├╝r meinen vServer ein Shell-Skript geschrieben; ein Hardlink-Rotations-Backup, das t├Ąglich bestimmte Ordner sichert. Ein ├Ąhnliches Shell-Skript f├╝r die MySQL-Datenbanken. Diese Skripte sind nat├╝rlich hervorragend geeignet f├╝r Uberspace.

Heute sichere ich damit vom Uberspace via verschl├╝sselter SSH-Verbindung meinen ALL-INKL-Account plus die Datenbanken. Dank Cron alles vollautomatisch.

Bei Ubersapce gibt es ├╝brigens ein ganz ├Ąhnliches Backup-System, das auch wunderbar funktioniert. Man muss also nicht unbedingt mit krassen Shell-Skripten herummachen, wenn man nicht gerade einen Remote Host sichern m├Âchte (oder seinen Uberspace auf einem solchen kopieren m├Âchte).

Fazit

Also mittlerweile kann ich sagen, dass ALL-INKL und Uberspace die perfekte Kombination f├╝r mich ist. ALL-INKL lohnt sich alleine schon wegen des relativ hohen Speicherplatzes (bei Uberspace hat man nur 10GB pro Account) und der Inklusiv-Domains (Uberspace ist ein reiner Webhoster und kein Registrar) und bei Uberspace sind die Freiheiten, die man dank des vollwertigen Linux-Users hat, einfach unschlagbar.

Entscheiden k├Ânnte ich mich zwischen beiden ehrlich gesagt auch nicht. Aber wozu auch? ­čśÄ

Kategorien
Technik

Mehrere Domains mit Uberspace 7

Falls das mal jemand ben├Âtigt.

Zuerst das gew├╝nschte Verzeichnis f├╝r die Domain anlegen:

cd /var/www/virtual/$USERNAME/html
mkdir domain.de

Anschlie├čend noch die Rechte anpassen:

chmod 755 domain.de

Nun noch einen Symlink setzen:

cd /var/www/virtual/$USERNAME
ln -s html/domain.de domain.de

Sofern die Domain mit uberspace web domain add domain.de eingerichtet ist, d├╝rfte sie jetzt erreichbar sein.

Soll die Domain auch via www erreichbar sein, muss hierf├╝r ebenfalls ein Symlink gesetzt werden:

cd /var/www/virtual/$USERNAME
ln -s html/domain.de www.domain.de

Das ┬╗alte┬ź html-Verzeichnis

Das ┬╗alte┬ź html-Verzeichnis muss, sofern die Uberspace-Domain genutzt werden soll, ebenfalls angepasst werden. Der ├ťbersichtlichkeit halber nennen wir dieses Verzeichnis aber nicht mehr html, sondern $USERNAME.uber.space:

cd /var/www/virtual/$USERNAME/html
mkdir $USERNAME.uber.space
chmod 755 $USERNAME.uber.space
cd ..
ln -s html/$USERNAME.uber.space $USERNAME.uber.space
Kategorien
Technik

Schwarze Thumbnails in WordPress unter PHP 5.5.10

Habe gestern festgestellt, dass mein WordPress neuerdings schwarze Thumbnails produziert. Schuld daran ist ein Bug in PHP 5.5.9. Auf meinem Uberspace (da liegt mein Blog seit 2013) war 5.5.10 vorinstalliert, das den Bug offenkundig immer noch enth├Ąlt.

cat ~/etc/phpversion
## 2014-09-14 /usr/local/sbin/uberspace-account-create.sh
PHPVERSION=5.5.10

Nach der Umstellung auf 5.5.19 sind die Thumbnails nun wieder so, wie sie sein sollen. Bei der Gelegenheit habe ich mir auch gleich eine eigene php.ini geg├Ânnt und das Memory Limit ein wenig erh├Âht:

cp /package/host/localhost/php-5.5.10/lib/php.ini ~/etc/php.ini

PHP-Interpreter neustarten:

killall php-cgi

Fertig: