Vorschau·Web-App/Material
Web-App · Material

Alle Diagramme

11 Zeichnungen aus dem Kurs, in der Reihenfolge, in der sie vorkommen. Druckbar — als Aushang neben dem Bildschirm ist die Landkarte mehr wert als jede Notiz.

Die vier Kästen auf dem eigenen RechnerStation 00 · Die sieben Orte, die vier Verben
AUF MEINEM RECHNER1Editor · DateienIch schreibe Text.speicherngit commit2Git auf meinem RechnerDer Stand ist festgehalten. Umkehrbar.bauendocker build3Image (lokal)Eingepackte, startbare Kopie: App plus alles, was sie braucht.startendocker run4Container (lokal)Die App läuft — für mich, auf Port 3000.Hier kann nichts passieren.Alles an diesem Ort sieht nur ich. KeinBesucher, kein Kunde. Speichern, bauen,starten — beliebig oft, ohne Folgen.WAS HIER ISTClaude Code — schreibt und ändertNode — führt ausDocker Desktop — packt einGit — hält festDer häufigste IrrtumKasten 4 „läuft im Browser" — also istes live? Nein. Es läuft bei Ihnen, fürSie allein. Bis zum Netz fehlen nochdrei Schritte.
Die Fernkopie außerhalb des eigenen RechnersStation 00 · Die sieben Orte, die vier Verben
Mein RechnerKasten 1–4speicherngit push originAUSSERHALB · IM NETZ5Fernkopie (GitHub oder Forgejo)Der Stand liegt nicht mehr nur auf meinem Rechner.Ein Rechner kann kaputtgehen. Die Fernkopie nicht — dort ist der Stand sicher.Ändert nichts an dem, was läuft.Speichern in die Fernkopie ist gefahrlos. Besuchermerken nichts davon — deshalb darf man es so ofttun, wie man will.ZWEI ADRESSEN, ZWEI ZWECKEorigin→ die Heimat: hier wird gespeichertdeploy→ der Auslöser: hier wird veröffentlicht (nächster Ort)
Der Server: Coolify baut, der Container läuft für alleStation 00 · Die sieben Orte, die vier Verben
FernkopieKasten 5veröffentlichengit push deployDER SERVER6Der Server erfährt davonCoolify beginnt zu bauen. Dasselbe Dockerfile wie bei mir.bauen + startenautomatisch7Container (live)Die App läuft für alle, unter der Domain, mit HTTPS.Kasten 3 und 7 kommen aus derselben Datei — deshalb das eigene Dockerfile.Das eine Verb, das Besucher sehen.Veröffentlichen ist bewusst. Es passiert nichtnebenbei und nicht beim Speichern — nur mit git pushdeploy oder dem Deploy-Knopf.WAS AUF DEM SERVER LÄUFTCoolify — die SchaltzentraleTraefik — nimmt Anfragen an, holt das ZertifikatIhr Container + Datenbank
Modell 1 — die LandkarteDieses Bild kommt in jeder folgenden Station wieder vor
AUF MEINEM RECHNERAUSSERHALB · IM NETZ1Editor · DateienIch schreibe Text.speicherngit commit2Git auf meinem RechnerDer Stand ist festgehalten. Umkehrbar.bauendocker build3Image (lokal)Eingepackte, startbare Kopie: App plusalles, was sie braucht.startendocker run4Container (lokal)Die App läuft — für mich, auf Port 3000.speicherngit push origin5Fernkopie (GitHub)Der Stand liegt nicht mehr nur auf meinemRechner.veröffentlichengit push deploy6Der Server erfährt davonCoolify beginnt zu bauen. DasselbeDockerfile.bauen + startenautomatisch7Container (live)Die App läuft für alle, unter der Domain,mit HTTPS.VIER VERBEN — NICHT VIERZIG BEFEHLEspeicherngit commit · git push originändert nichts andem, was läuftbauendocker buildändert nichts andem, was läuftstartendocker runstartet eine Kopie —bei mirveröffentlichengit push deploy · Deployändert, was Besuchersehen„Warum ist es nicht live?“ist keine Frage, die man beantworten kann.„Bis zu welchem Kasten ist mein Stand gekommen?“ist dieselbe Frage — und die kann jeder selbst beantworten.Kasten 3 und Kasten 7 kommen aus derselben Datei.Das ist der ganze Grund für ein eigenes Dockerfile:Ohne Kasten 3 gibt es keine Stelle, an der man einenBuild-Fehler untersuchen kann, ohne auf dem Server zu sein.Kasten 4 ist nicht Kasten 7.Der häufigste Irrtum: Es läuft im Browser, also ist es live.Es läuft aber auf Ihrem Rechner — für Sie allein. Bis Kasten 7fehlen noch drei Schritte.
So sieht sie ausFormular oben, Liste unten, rechts die eine Regel
localhost:3000 — AusleiheAusleiheAbmeldenAUSLEIHE ERFASSENGegenstandBohrhammerAusgeliehen anM. BergerAusgeliehen am01.09.2026Zurück am08.09.2026SpeichernBeleg (optional, max. 2 MB)ERFASSTE AUSLEIHENGegenstandZeitraumTageGebührBohrhammer01.09. – 08.09.76,00 €Anhänger20.08. – 22.08.20,00 €DIE EINE REGELDie ersten 3 Tage frei,danach 1,50 € je Tag,höchstens 30,00 €.Bohrhammer: 7 Tage − 3 frei = 4 × 1,50 €= 6,00 €WAS DRIN ISTeine Anmeldung (ein Passwort)ein Formular, eine Listeein Datei-Upload (Beleg)eine Postgres-Tabelle, eine Migrationeine Berechnung — mit Tests
Modell 3 — die ZuständigkeitenWas jedes System beantwortet, und was es ausdrücklich nicht tut
JEDES SYSTEM BEANTWORTET GENAU EINE FRAGE — UND SONST NICHTSNodedie AnwendungBEANTWORTETWas tut die Anwendung fachlich?kennt weder Server nochDomainPostgresdie DatenbankBEANTWORTETWo liegt der Zustand, dauerhaft und abfragbar?rechnet nichts FachlichesDockerdie VerpackungBEANTWORTETWie packe ich die App ein, damit sie überall gleich startet?weiß nichts von Git undnichts von HTTPSGitdie HistorieBEANTWORTETWelche Stände gab es, und wie komme ich zurück?baut nicht, startet nichtGitHub · Forgejodie FernkopieBEANTWORTETWo liegt der Code außerhalb meines Rechners?entscheidet nicht, waslive istCoolifydie SchaltzentraleBEANTWORTETWas läuft auf diesem Server, unter welcher Adresse?schreibt keinen CodeDer VPSder RechnerBEANTWORTETEin Computer, der immer an ist.mehr nichtDer Satz, der hängen bleiben soll:Jedes dieser Systeme ist für sich langweilig. Schwer ist nur die Übergabe zwischen zweien — und genau die wird geübt.
Modell 2 — was bleibtRot bedeutet: beim nächsten Deploy weg
DIE TABELLE, DIE DEN TEUERSTEN FEHLER VERHINDERTDer Code im Containerwird bei jedem Deploy neu gebaut — das ist sein ZweckwegDateien, die die App irgendwohin schreibtliegen im wegwerfbaren Teil · der klassische DatenverlustwegDateien unter /datadort liegt ein Volume — der einzige Ort, der bleibtbleibtDie Postgres-Datenbankeigener Dienst mit eigenem VolumebleibtUmgebungsvariablen und Geheimnisseliegen in Coolify, nicht im ImagebleibtWas nur auf meinem Rechner stehtist nie oben angekommen · Kasten 4 ist nicht Kasten 7wegDiese Tabelle wird nicht erzählt, sondern ausprobiert.Datensatz anlegen → neu veröffentlichen → nachsehen, ob er noch da ist.Danach ist „Daten nur unter /data“ keine Vorschrift mehr, sondern eine eigene Folgerung.
Erprobungsstand des ursprünglichen WegsStand 03.09.2026
EHRLICH DAZUGESAGTSyntax, Trockenlauf, check.shgeprüft100%Station 3 scharf durchlaufeninkl. zwei live behobener Fehler100%Decap-CMS-Musterproduktiv auf connectivex.de100%Stationen 1, 2 und 4neu verfasst, noch nicht scharf durchgespielt55%Restic-Sicherung für Volumesnoch offen, eigene Entscheidung nötig15%
Was Git eigentlich tutArbeitsstand, Vormerkung, Verlauf — und zwei Fernkopien mit sehr verschiedener Bedeutung
AUF IHREM RECHNERArbeitsstandIhre ÄnderungenVorgemerktgit add -AFestgehaltengit commitDER VERLAUF — jeder Punkt ein SpeicherpunktStartFachlogikDockerfilePrüfung grünjetztZWEI FERNKOPIENoriginGitHub — die Heimatgit push origin → gespeichertdeployForgejo — der Auslösergit push deploy → veröffentlicht
Wo ein Geheimnis leben darfZwei erlaubte Orte, ein verbotener
.env auf Ihrem Rechnernur lokal, nie committetsteht in .gitignoreCoolify auf dem ServerUmgebungsvariablenverschlüsselt gespeichertRepository / Imageauch nach dem Löschenbleibt es in der HistorieDie eine Regel:Ein Geheimnis steht in .env (lokal) oder in Coolify (Server) —nie im Code, nie im Image, nie im Repository.
Die Brücke zu Station 3Vier Nachweise — danach fehlt nur noch ein Ort zum Laufen
Dockerfilelokal einmalgebaut.env.examplealle Variablenbenanntdfx checkkeine offenenVerstößeCommitder Stand istfestgehaltenDeploybarauch ohne ServerSobald ein Server mit Coolify existiert, ist das Veröffentlichen nur noch ein Formular mit vier Feldern.