Kategorien
Technik

KK versus MNP

Mir ist gerade bei der zufälligen Sichtung eines KK-Antrags von 2014 aufgefallen, wie deutlich sich die verwaltungstechnische Infrastruktur des Internets im Vergleich zu der des Mobilfunks beschleunigt hat.

Im August 2002 habe ich meine Domain helmutkaczmarek.de von Puretec (1&1) zu Host Europe umgezogen. Am 21. August ging der KK-Antrag bei Host Europe ein. Fertig war der Vorgang fünf Tage später, am 26. August.

2003 habe ich mir dann einen weiteren Account bei ALL-INKL geholt, der heute noch mein Haupt-Account ist. Die Domain helmutkaczmarek.de zog aber erst 2007 auf diesen Account um.

2014 habe ich sie testweise mal zu INWX transferiert. Diesen Umzug kann ich ebenfalls vollständig rekonstruieren: zwischen TRANSFER REQUESTED und TRANSFER SUCCESSFUL lag exakt eine Minute.

Im Vergleich hierzu die Rufnummernportierung im Mobilfunk: immer noch Schneckentempo wie zu Großvaters Zeiten (8 Tage). 🤦🏻‍♂️

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:

Kategorien
Technik

Umzug des Blogs

Nach dem Datenbank-Crash neulich habe ich direkt mal die Gelegenheit genutzt und meine uralte Domain helmutkaczmarek.de von Host Europe nach all-inkl.com geholt.

Die alte Domain wird aber in Zukunft – fürderhin, wie Goethe sagen würde – noch als Weiterleitung aktiv bleiben. Diejenigen, die mich im RSS-Reader haben, können ja direkt die Adresse umstellen.

Kategorien
Technik

Ein Hoch auf Münnich

Dem einen oder anderen Besucher wird sicherlich aufgefallen sein, dass mein Blog seit gestern Abend offline war. Schuld an der ganzen Sache war meine eigene Schusseligkeit.

Ich wollte eigentlich nur via phpMyAdmin drei Tabellen eines alten Skripts aus meiner Datenbank entfernen und klicke dann im Halbschlaf auf den falschen Löschen-Knopf – zack war meine gesamte Datenbank gelöscht. Backup hatte ich natürlich nicht gemacht, wollte ja nur mal auf die Schnelle drei Tabellen rauswerfen.

Jörg meinte dann im ICQ, ich solle mal meinen Provider anrufen, die würden mir kostenlos ein Backup einspielen. Gesagt, getan; ein Anruf und zwei Minuten später war die Datenbank wieder hergestellt. Toller Kundenservice. Aber in Zukunft werde ich dann doch mal besser wieder selbst ein Backup erstellen.

Siehe auch