Direkt zum Hauptbereich

Der neue Blog und seine Hürden

Disclaimer : Schelchter Rechtschreibung und Wortfehler können entstehen, da ich gerade auf dem Handy schreibe. Und der post wird lang. 

Wie bereits angekündigt arbeite ich an einer überarbeiteten Website für diesen Blog. Ich kann bereits auf der neuen Homepage die neusten posts zeigen und es besteht die Möglichkeit sich anzumelden und regestrieren. Eigentlich war mein Plan sogar bereits heute Abend die erste beta zu veröffentlichen und diese ist auch bereits auf Github. Aber es gab Probleme. 

Zuerst habe ich einen kleinen Server gemietet, die DNS Einträge gemacht und pocketbase installiert, aber immernoch lokal mit node und sveltekit getestet. Soweit kein problem
Dann habe ich nginx als reverse proxy installiert, denn unter der selben subdomain und dem selben Port wie die Website soll auch pocketbase laufen. Also im frontend die Datenbank von Port 8090 auf 80 über nginx verlegt. Immernoch kein problem
Als ich dann die Idee hatte heute bereits eine alpha zu veröffentlichen kam mir in den Sinn auch https zu verwenden. Schließlich sollen eure Passwörter sicher sein und es ist generell Standard geworden. 
Also habe ich mit let's encrypt mir ein Zertifikat ausgestellt und mit nginx konfiguriert. Soweit dachte ich lief alles. Das Admin Ui ist mit https erreichbar und die lokale Seite mit der Datenbank auf dem Server läuft auch. Aber da war bereits ein Fehler. Ich hatte vergessen https in svelte anstelle von http anzugeben für api calls. 
Ich dachte mir nichts bösen und lud die Website auf den Server und starte ihn mit node. Richtete nginx erstmal auf http mit dem richtigen Port ein und alles lief. Ich war glücklich, denn ich ahrnte nicht was ich den abend machen werde.
Dann stellte ich in nginx node auch für https ein. Ich besuchte die Website und error 500. Ich gucke in die Konsole und da steht mixed content. Nach kurzem Googlen war mir klar, man kann nicht auf einer https Seite Anfragen an eine http stellen. Kurz in die Einstellungen in svelte geschaut und den Fehler bemerkt. Also http durch https ersetzt und ohne zu testen direkt auf den Server hochgeladen.
Wieder error 500 beim laden der posts. Und eine kryptische Fehler Meldung von node beim Testen auf meinem PC. Eine zeit lang gegoogled und immer noch nichts verstanden.
Als Idee Dann versucht das Admin dashboard zu öffnen, kein Problem. Über postman auf die api zugreifen kein Problem. Dann habe ich anstelle der subdomain die ipv4 Adresse des servers genommen wie in svelte und da sah ich im Browser das Problem. Das Zertifikat ist nicht gültig, aber warum. Einige werden es bereits merken, Zertifikate werden für eine Domain ausgestellt, nutz man die IP Adresse sind sie dafür nicht gültig. 
Also in svelte dir IP durch die Domain erstetzt und neues Fehler bild.
Ab jetzt hab ich nurnoch lokal getestet, denn ich dachte mir bereits das ich heute nicht mehr fertig werde. 
Wenn ich die Homepage Aufrufe, kommt nach dem Header error 500, wieder anstelle der posts. Wenn ich nun aber auf zum Beispiel das login gehe und zurück, sind die posts da. Jetzt könnt ihr raten woran es liegt.
Da kommt sveltekit ins Spiel. Sveltekit ist eine framework, welches beim ersten Seiten Aufruf SSR (Server side rendering) betreibt und dann das Routing und weiteres an den Client übergibt. Wenn also der Server die posts abruft gibt der einen Fehler, den mir node auch in die Konsole schreibt. Wenn aber egal ob firefox Chrome oder Edge (ich habe alle getestet) nun diese nachlädt direkt aus der Datenbank, mit dem selben Node Modul und den selben Funktionen, die posts abruft gibt es keine Probleme.
Um sicher zu gehen, dass das problem auf dem Server liegt habe ich global ssr deaktiviert, also auch die ersten Anfragen an die DB an den Client übergeben und alles lief. 
Denkbar alles gut, aber ich war nicht zufrieden und ich habe im Internet auch keine Lösung gefunden. Ssr zu deaktivieren ist für mich keine Lösung. Dann könnte ich direkt für den halben Preis mir einen static server mieten. Aber ich will  lieber die beste UX haben und neuste Technologien ausprobieren. 
Ich erinnerte mich gelesen zu haben, dass das node Modul fetch nutzt. Eine Funktion, die es einem im Browser ermöglicht http und https Anfragen an z.B. apis zu stellen. Diese gibt es in node neuerdings auch. Kurz nachgesehen, ich habe auf meinem PC node 19 und auf dem Server node 18lts. Also das beste was es gibt und vorher bzw immernoch funktioniert es, ohne ssl.
Eigentlich wollte ich schlafen gehen, aber mich ließ dsas Problem nicht los. Aber das Problem war auf node begrenzt. Seit kurzen hat node keine Monopol mehr. Es gibt auch deno und bun. Letzteres nur auf Linux und dazu ist es noch nicht ganz stabil. Deno hatte ich im Kopf hatte sogar vor node eine fetch api und es gibt einen Adapter für sveltekit. Also den installiert, sveltekit das Projekt bauen lassen und mit deno gestartet. Direkt ssr aktiviert und https und alles lief. 
Also ein happy end und morgen Abend kann ich weiter machen, aber dennoch lässt node mir keine Ruhe und es ist noch nicht auf dem Server getestet. 

Kommentare

Top Posts

klimaschutz ist kein Zwang

Immer mehr Menschen leben vegan, verzichten auf das Auto bzw. Verbrennen und achten nebenbei auf ihre Gesundheit. Für manche ein Lifestyle, für andere unvorstellbar.  Ich lebe nicht vegan, fahre aber meist Fahrrad. Das schon lange und auch ohne Klimaschutz im Kopf zu haben. Die Konzepte sind schließlich nichts Neues.  Weit verbreitet ist aber die Ansicht, dass einem erst der Verbrenner und dann das Fleisch verboten wird, überspitzt dargestellt. Doch ich sehe das nicht ganz so. Klar sind Verbote hart und sind ein Zwang, doch ich sehe in beiden auch so keine Zukunft. Es fährt auch keiner mehr mit der Dampflok und kaum einer mit drei strahligen Flugzeugen. Verboten sind sie nicht, aber unwirtschaftlich und veraltet. Manch einer mag sie vermissen, aber sie sind nun einfach nicht mehr alltagstauglich, ebenso Pferdekutschen. Zeiten ändern sich. Ich sehe Veganismus, als eine moderne Art zu kochen. Umweltschutz, Ethik und Gesundheit sind wichtig, aber nicht für jeden ein Grund sich et...

Eine neue Website

Auch wenn dieser Blog erst wenige Tage alt ist, habe ich Ambitionen ihn zu überarbeiten. Er ist entstanden als spontane Idee und jetzt bin ich motiviert auch etwas dafür zu turn. Als ich die Idee hatte einen Blog zu starten, war einer der Anreize, das icb gesehen habe wie einfach das mit Blogger geht. Direkt ein Design auswählen, Namen vergeben und los.  Das reicht mir als Hobby Informatiker nicht. Ich setzte mich bereits seit längerem mit Web Entwicklung auseinander, wie man im meinen Projekten sieht und ich möchte dieses Wissen auf diesen Blog anwenden.  Mein Plan ist es eine eigene Website zu erstellen, welche zu Beginn nicht mehr kann als der Blog. Ihr werdet meine posts lesen können und zu Beginn vielleicht nicht einmal den Blog durchsuchen und Kommentare Scheiben können. Das ist aber der Plan. Der einzug Vorteil ist, dass Google keine cookies mehr setzten wird und ihr auch nicht annonym Teil von analytics seid.  Auf Dauer werde ich vielleicht hin und wieder das Desi...