knuspermagier.de

Ein L und zwei P. Philipp!

Serie: toller.link
GOOS und GOARCH

Immer noch keine Lust auf Authentifizierung. Kümmere ich mich also erstmal um das Deployment, solang ich es noch nicht wirklich benutze, ist es ja auch egal.

Also schnell bei Hetzner eine VM geklickt und grob eingerichtet. Ich muss mir dringend mal ein Ansible-Playbook für meine privaten Server zusammenbasteln. Ich entscheide mich RediSearch per Docker-Image zu starten weil ich keine Lust auf kompilieren habe. Ich bin in der Zukunft angekommen.

Als nächstes überlege ich, ob die Go-App das Frontend wohl selber ausliefern kann, aber irgendwie klappen alle Code-Snippets nicht, die dafür sorgen sollen, dass der HTTP-Server Kram aus frontend/public korrekt ausliefert. Ich lege das erstmal für später zu den Akten und mache das per nginx.

Ein npm run build ist das Frontend fertig. Ein go build und das Backend ist fertig. Ich übertrage alles per scp, weil ~ich im Vorgestern lebe~ es schnell gehen soll und starte das Backend… geht natürlich nicht. Falsches Binary-Format! Ich muss etwas C R O S S C O M P I L E N. Das habe ich ja noch nie gemacht!

env GOOS=linux GOARCH=amd64 go build

Die Aufwände dafür halten sich allerdings auch in Grenzen.


Jetzt, wo es online ist und funktioniert, baue ich also um den iOS Shortcut. Ich hasse das Interface zwar, aber immerhin kann man das auch nebenbei auf der Toilette erledigen.

Mir fällt auf, dass man auch direkt den Safari Reader View anzapfen kann um an den echten Content der Seite zu kommen. Das ist ja nett, dann brauch ich gar keinen Hintergrund-Prozess, der die Seiten crawlt und hab direkt ein qualitativ hochwertigeres Stück Content. Zumindest sind mir aktuell keine guten Open Source Implementierung für die Content-Extraktion bekannt. Das Problem scheint sich seit der Quote.FM-Zeit nicht gebessert zu haben!

Jedenfalls baue ich dann mal noch eben Support ins Back- und Frontend ein, dass ich den Webseiten-Body übermitteln kann, er indiziert wird und bei der Suche auch durchsucht wird. Zusätzlich zeige ich im Frontend noch an, wo das Suchwort vorkommt! All die Sachen, die man halt quasi gratis bekommt.

Hier und da entstehen noch ein paar offene Fragen. Wie schreibt man in Svelte CSS-Code, der auch für dynamisch erzeugtes HTML funktioniert? (Die hervorgehobenen Wörter im Suchergebnis, z.B.). Erstmal in die global.css gepackt, aber ich werd’s mal noch googeln.


Tatsächlich dauert das mit Safari Reader View mir fast ein paar Sekunden zu viel, was den Share-Prozess irgendwie lang macht. Vielleicht baue ich es doch wieder aus. Mal sehen.


Jetzt aber Authentifizierung und einen… Deployment-Prozess, den ich halbwegs automatisieren kann. Vielleicht mal Github Actions probieren, oder so? Als Docker-Image? Brauche ich da eine eigene private Docker Registry, oder lade ich Sachen privat bei Docker Hub hoch? Die Wahrscheinlichkeit ist hoch, dass mir das zu stressig ist, und ich die Dateien lieber weiter per rsync hochlade. Wäre da nur nicht die Nervigkeit, dass man supervisor dann immer neustarten muss! Immer diese kompilierten Programme!!


Falls ihr euch jetzt fragt, warum toller.link gar nicht geht, obwohl ich großspurig erzählt habe, dass es deployt wurde? Dazu komme ich morgen.

Post-Serie toller.link:

Kommentare, Feedback und andere Anmerkungen? Schreib mir eine E-Mail 🤓