Adam Grudziński

Sonstiges ·

Alles, was man auf der Seite nicht sieht: Domains, Mail, Server und Tests

Eine Website braucht mehr als die Seiten, die man im Browser sieht. Bei meinen Projekten lernte ich, Domains zu verbinden, E-Mail einzurichten, Server zu betreiben und Anwendungen zu prüfen, ohne jedes Mal alles von Hand durchzuklicken.

Zum Beitragstext

Auf einer Website sieht man Texte, Bilder, ein Formular oder einen Kalender, doch damit alles funktioniert, muss viel mehr zusammenpassen. Bei meinen Projekten lernte ich Domains, E-Mail, Server, Verbindungen zu anderen Diensten und Tests kennen. Diese Erfahrungen habe ich hier gesammelt, weil jede dieser Aufgaben meine Arbeit mindestens einmal aufgehalten hat, während Besucher davon nichts sahen.

Die Domain, also die Adresse der Seite

Die erste Domain habe ich noch für Algebra eingerichtet, und schon damals zeigte sich, dass der Kauf einer Adresse erst der Anfang ist. Die Adresse muss dorthin führen, wo die Seite liegt, die Mail muss wissen, wohin sie soll, und die Dienste, die die Seite nutzt, wollen einen Nachweis, dass die Domain wirklich mir gehört. All das stellt man in einer Art Adressbuch des Internets ein, das dem Rest des Netzes sagt, was wo zu finden ist.

Heute führt Cloudflare dieses Adressbuch für meine Domains. Eine .pl-Adresse kann man dort allerdings nicht kaufen, also kauft man sie bei einem polnischen Domainanbieter und übergibt die Verwaltung danach an Cloudflare. Im August bin ich mit Algebra auf eine kürzere Adresse umgezogen, algebraispolka.pl, und habe die alte so eingerichtet, dass jeder Link von selbst zu seinem Gegenstück unter der neuen führt. Die alte Domain läuft im September aus, deshalb habe ich die Weiterleitungen einen Monat im Voraus eingerichtet, damit weder Schüler noch Suchmaschinen auf einer leeren Seite landen.

Mail, die auch ankommt

Mails aus Anwendungen habe ich anfangs über ein normales Gmail-Postfach verschickt. Im kleinen Maßstab ging das gut, bis sich herausstellte, dass der Dienst, auf dem die Seite lief, solchen Versand einfach nicht durchließ und dass Gmail den Absender durch die eigene Adresse ersetzen kann. Deshalb verschicken neuere Projekte ihre Mails über Resend, einen Dienst zum Versenden von Mails aus Anwendungen, und zwar von einer Adresse mit der Domain des Projekts.

Damit diese Mails nicht im Spam landen, braucht die Domain drei Einträge in demselben Adressbuch. Der erste legt fest, wer in ihrem Namen senden darf, der zweite versieht jede Nachricht mit einer Signatur, und der dritte sagt den Postfächern der Empfänger, was sie mit einer Mail tun sollen, die diese Prüfungen nicht bestanden hat. Eingehende Post an die Kontaktadressen leitet Cloudflare in mein normales Postfach weiter, sodass ich kein eigenes Mailsystem betreiben muss. Wo es auf Zeit ankommt, bekomme ich zusätzlich eine Benachrichtigung aufs Handy und über WhatsApp.

Eine eigene Maschine in der Cloud

Die meisten meiner Projekte laufen auf Diensten, die die Anwendung selbst starten und bei denen ich mich um nichts kümmern muss. Manchmal brauchte ich aber einen ganz normalen Rechner im Netz, auf dem ich installieren kann, was ich will. So bin ich bei Oracle Cloud gelandet, das im kostenlosen Tarif eine solche Maschine anbietet, die für einen guten Teil meiner Bedürfnisse ausreicht.

Eine Zeit lang hat sie Videos für die Seite Duostrings bearbeitet und einen Teil von Planer Operacyjny betrieben. Eine eigene Maschine bedeutet aber eine ganz andere Verantwortung als ein Dienst, der alles selbst erledigt, denn man muss Updates selbst einspielen, dafür sorgen, dass nach einem Neustart alles wieder hochfährt, und das Tor einrichten, über das die Programme von außen erreichbar sind. Bei einfacheren Projekten ist ein Dienst, der einem das abnimmt, deshalb bequemer. Bei Duostrings wurde die Videomaschine Ende Juni überflüssig, weil die Dateien heute direkt über die Seite selbst in den Speicher gehen.

Verbindungen zu Google-Diensten

Mit Google-Diensten habe ich meine Projekte oft verbunden, und jedes Mal anders. Bei Algebra war die Datenbank im Winter ein paar Wochen lang eine Google-Tabelle, aus der die Anwendung Daten gelesen und in die sie sie geschrieben hat. Darüber schreibe ich in einem eigenen Beitrag. Das funktionierte, aber langsam, und so trat bald eine richtige Datenbank an ihre Stelle. Später kam die Anmeldung mit einem Google-Konto dazu, und in anderen Projekten Verbindungen zu Tabellen und zu Geodaten. Jedes Mal lief es ähnlich ab: zuerst ein Projekt auf der Seite von Google, Zugangsschlüssel, Berechtigungen und Zustimmungen, und erst dann die erste Zeile Code. Die meiste Zeit kostete meistens das, was man im Code nicht sieht.

Makros, also aufgezeichnetes Klicken

Bevor man einem KI-Assistenten einfach die Bedienung des Browsers überlassen konnte, habe ich wiederkehrendes Klicken mit einer Browser-Erweiterung namens UI.Vision automatisiert. Sie zeichnet Klicks und Texteingaben auf und spielt sie dann als Makro ab. Bei der Arbeit war das überall nützlich, wo dasselbe Dutzende Male erledigt werden musste: Daten aus PDF-Dateien habe ich in eine Tabelle übertragen, aus der Tabelle in eine Datei für das Makro, und das Makro hat auf dieser Grundlage im Browser ein Formular nach dem anderen ausgefüllt oder nacheinander Hunderte Einträge zum Durchsehen geöffnet.

Ein solches Makro hat einen Nachteil: Es ist zerbrechlich. Es reicht, dass ein Knopf auf der Seite verrutscht oder umbenannt wird, und die ganze Aufzeichnung funktioniert nicht mehr. Deshalb habe ich die Makros mit der Zeit durch Programme ersetzt, die ich mit dem weiter unten beschriebenen Werkzeug geschrieben habe. Sie suchen einen Knopf danach, was er ist, und nicht danach, wo er steht.

Tests, die für mich klicken

Playwright ist ein Werkzeug, das einen echten Browser ganz ohne Menschen steuert: Es öffnet Seiten, klickt, tippt, macht Screenshots und prüft, ob das Ergebnis stimmt. Ich nutze es heute in fast jedem Projekt. Bei Algebra prüft es seit dem Frühjahr nach jeder neuen Version die wichtigsten Abläufe auf der laufenden Seite, bei Duostrings das Hochladen von Dateien und die Ladegeschwindigkeit, beim Songbook macht es Screenshots in iPad-Größe, hochkant und quer, und beim Musikspiel öffnet es zwei Browser, die gegeneinander ein komplettes Duell spielen.

Anfang August kam noch Sentry dazu, ein Programm, das Fehler aus der bereits laufenden Anwendung sammelt. Die Tests sagen mir, ob etwas vor dem Release funktioniert, Sentry, was danach kaputtgeht. Es hat sich sofort bezahlt gemacht, denn damit habe ich herausgefunden, warum Zahlungen nicht bis zum Ende durchliefen. Es genügte, eine einzige Adresse in den Einstellungen des Zahlungsanbieters zu korrigieren, und die Zahlungsbestätigungen kamen an.

Zwei Jahre Lernen

Diese zwei Jahre waren für mich eine Zeit sehr intensiven Lernens: Technik, KI-Werkzeuge, Domains, Mail, Maschinen in der Cloud, Einstellungen und Tests. Von außen sieht man davon nur Websites und Anwendungen, dabei steht jede von ihnen auf mehreren Schichten, die ich erst verstehen und dann so einrichten musste, dass sie ohne mein Zutun laufen. Wenn ich heute ein neues Projekt anfange, weiß ich schon vor der ersten Zeile Code, wo es laufen wird, worüber es Mails verschickt und wie ich prüfe, dass es funktioniert.