Kategorien
Allgemein Technik

Just For Fun

Ich wollte Linus Torvalds‘ Autobiografie ja schon immer mal lesen, aber irgendwie ist es bis jetzt nicht dazu gekommen. Das finde ich allerdings insofern nicht tragisch, als nun beim Lesen noch ein ganz anderer Aspekt hinzukommt: historische Distanz.

Die damalige Aufbruchstimmung ist längst verflogen. Linux hat es lediglich im Serverbereich (und später als Kernel in Android auch auf Smartphones) zu großer Verbreitung gebracht, wohingegen es auf dem Desktop leider nur eine geringe Rolle spielt.

Das ist – in Hinsicht auf den Titel – natürlich kein Drama. Ich bin jedenfalls mal gespannt, wie sich »Just For Fun« so liest.

Kategorien
Technik

Bash-Prompt umgestalten

Wenn ich auf einem Linux-System unterwegs bin und auf der Bash das aktuelle Verzeichnis wissen möchte/muss, mache ich das meist ganz klassisch mit pwd (print working directory).

Auf meinem Uberspace soll das aber zukünftig direkt im Prompt (also der Eingabeaufforderung) der Bash stehen. Das kann man mit wenigen Handgriffen an der Umgebungsvariable PS1 ändern.

PS1

Der aktuelle Zustand wird mit echo $PS1 ausgelesen. Auf einem frisch eingerichteten Uberspace 7 bekommt man folgende Ausgabe (der User hat in diesem Beispiel den html-Ordner über den symbolischen Link im Home-Verzeichnis betreten):

[username@host html]$echo $PS1
[\u@\h \W]$

Angezeigt wird im Prompt also der angemeldete User, gefolgt von einem @-Zeichen, dem Hostnamen, einem Leerzeichen sowie dem aktuellen Verzeichnis und einem $-Zeichen. Das alles steht in eckigen Klammern.

Ich möchte aber nun, dass nicht nur zusätzlich der komplette Pfad angezeigt wird. Wenn ich schon mal dabei bin, ändere ich auch gleich noch ein paar andere Dinge. Insgesamt soll mein Prompt auf dem Server diese Form haben:

username@FQDN pfad $

Der Username, gefolgt von einem @, dem FQDN (fully qualified domain name), einem Leerzeichen, dem kompletten Pfad, einem weiteren Leerzeichen, dem $-Zeichen und schließlich einem zusätzlichen Leerzeichen. Die eckigen Klammern sollen ebenfalls verschwinden.

Folgendes muss hierfür in die PS1 eingetragen werden:

PS1='\u@\H \w $ '

Das Ergebnis schaut im html-Verzeichnis dann so aus:

username@host.uberspace.de ~/html $ 

Oder, wenn man das html-Verzeichnis nicht über den symbolischen Link im Home-Verzeichnis, sondern über die unterste Ebene des Systems betritt, eben so:

username@host.uberspace.de /var/www/virtual/username/html $ 

Eine Auflistung weiterer Variablen gibt es z.B. hier.

Das alles geht allerdings auch noch komplizierter. 😉

Mit Farben

Man kann den Prompt z.B. farblich gestalten. Die Form

username@host.uberspace.de:/var/www/virtual/username/html$

mit den Farben Grün und Hellblau würde sich so ganz gut machen:

PS1='\[3[0;32m\]\u\[\e[m\]\[3[0;32m\]@\[\e[m\]\[3[0;32m\]\H\[\e[m\]:\[3[1;34m\]\w\[\e[m\]\$ '

Mir persönlich gefällt dieses Beispiel sogar noch besser als das weiter oben, also lasse ich es auch so. Ein paar Farben können ja nicht schaden. 👍

Man könnte den Prompt natürlich noch mehr umgestalten, etwa auch mit Hintergrundfarben, aber das wäre mir persönlich dann schon wieder zu unübersichtlich.

Änderungen dauerhaft nutzen

Die Änderungen an der Umgebungsvariablen PS1 gehen freilich verloren, wenn man sich neu im System einloggt.

Damit diese dauerhaft gespeichert werden, muss man einen Eintrag in der .bashrc im Home-Verzeichnis hinterlegen. Dieser könnte etwa so aussehen:

# Bash-Prompt
# Default auf diesem System war:
# [\u@\h \W]$
PS1='\[3[0;32m\]\u\[\e[m\]\[3[0;32m\]@\[\e[m\]\[3[0;32m\]\H\[\e[m\]:\[3[1;34m\]\w\[\e[m\]\$ '

Abschließend die .bashrc neu einlesen:

source ~/.bashrc

Alternativ könnte man sich natürlich auch einfach neu am Server anmelden.

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

WordPress

Nachdem ich WordPress nun einige Tage getestet habe, wird es wohl in Zukunft auf meinem Server bleiben. Ganz wunderbar sind vor allem die ganzen Themes, die es jetzt schon gibt. Da kann man sich kaum entscheiden, welches man laufen lassen will. Also bitte nicht wundern, sollte sich das Design meiner Page täglich ändern. Wenn ich aber wieder mehr Zeit habe, werde ich auch mal ein eigenes erstellen.

Kategorien
Technik

Erster Eintrag

Willkommen in meinem Blog!

Mal schauen, was ich hier in Zukunft so alles reinschreibe.