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.