[{"data":1,"prerenderedAt":454},["ShallowReactive",2],{"search-de":3,"content-de-developer\u002Fself-hosting-desktop":4,"surround-de-\u002Fdeveloper\u002Fself-hosting-desktop":446},[],{"id":5,"title":6,"body":7,"description":438,"extension":439,"meta":440,"navigation":441,"path":442,"seo":443,"stem":444,"__hash__":445},"content_de\u002F3.developer\u002F35.self-hosting-desktop.md","Desktop-Installer",{"type":8,"value":9,"toc":425},"minimark",[10,20,31,36,54,66,70,138,145,149,221,224,234,241,285,300,327,331,343,371,376,387,391,414],[11,12,13,14,19],"p",{},"Die Owlat-Desktop-App kann einen frischen Server für Sie über SSH installieren und konfigurieren. Statt ein Terminal zu öffnen und den ",[15,16,18],"a",{"href":17},"\u002Fdeveloper\u002Fself-hosting","Einzeiler"," auszuführen, richten Sie die App auf einen nackten Linux-VPS, füllen ein kurzes Formular aus und sehen jedem Schritt in Echtzeit bei der Provisionierung zu. Am Ende ist die neue Instanz automatisch als Workspace verbunden.",[11,21,22,23,30],{},"Es ist derselbe Installer wie beim CLI-Weg — die Desktop-App steuert ihn lediglich per Fernzugriff und stellt den Fortschritt dar. Alles, was Sie hier tun können, geht auch mit ",[15,24,26],{"href":25},"\u002Fdeveloper\u002Fsetup-cli",[27,28,29],"code",{},"owlat quickstart",".",[32,33,35],"h2",{"id":34},"wann-sie-ihn-verwenden","Wann Sie ihn verwenden",[37,38,39,48,51],"ul",{},[40,41,42,43,47],"li",{},"Sie möchten eine ",[44,45,46],"strong",{},"GUI-Installation"," ohne SSH-\u002FTerminal-Arbeit.",[40,49,50],{},"Sie richten einen Server für jemanden ein, der weniger technisch versiert ist.",[40,52,53],{},"Sie sehen lieber einer Fortschritts-Zeitleiste zu, als Log-Ausgaben zu lesen.",[11,55,56,57,60,61,65],{},"Sie bevorzugen das Terminal? Der ",[15,58,59],{"href":17},"Einzeiler-Installer"," und ",[15,62,63],{"href":25},[27,64,29],{}," tun exakt dasselbe.",[32,67,69],{"id":68},"voraussetzungen","Voraussetzungen",[71,72,73,86],"table",{},[74,75,76],"thead",{},[77,78,79,83],"tr",{},[80,81,82],"th",{},"Anforderung",[80,84,85],{},"Hinweise",[87,88,89,98,114,122],"tbody",{},[77,90,91,95],{},[92,93,94],"td",{},"Ein frischer Linux-VPS",[92,96,97],{},"Ubuntu\u002FDebian empfohlen; 4 GB RAM (8 GB empfohlen), 20 GB Festplatte",[77,99,100,103],{},[92,101,102],{},"SSH-Zugang",[92,104,105,106,109,110,113],{},"Ein Benutzer mit ",[27,107,108],{},"sudo"," (oder ",[27,111,112],{},"root","), per privatem Schlüssel oder Passwort",[77,115,116,119],{},[92,117,118],{},"Die Owlat-Desktop-App",[92,120,121],{},"Download von der Releases-Seite",[77,123,124,127],{},[92,125,126],{},"Eine Domain + DNS-Kontrolle",[92,128,129,132,133,137],{},[44,130,131],{},"Nur für Fernzugriff"," — siehe ",[15,134,136],{"href":135},"#remote-access","Fernzugriff"," weiter unten",[11,139,140,141,144],{},"Docker muss ",[44,142,143],{},"nicht"," vorinstalliert sein — der Installer fügt es hinzu, falls es fehlt.",[32,146,148],{"id":147},"schritt-für-schritt","Schritt für Schritt",[150,151,152,161,178,192,201,211],"ol",{},[40,153,154,157,158,30],{},[44,155,156],{},"App öffnen → „Neuen Server einrichten“."," Wählen Sie auf dem Willkommensbildschirm (er erscheint, wenn Sie noch keine Workspaces haben) ",[44,159,160],{},"Neuen Server einrichten",[40,162,163,166,167,170,171,174,175,30],{},[44,164,165],{},"SSH-Daten eingeben."," Serveradresse, Port (Standard ",[27,168,169],{},"22","), SSH-Benutzer und entweder einen ",[44,172,173],{},"privaten Schlüssel"," (einfügen, mit optionaler Passphrase) oder ein ",[44,176,177],{},"Passwort",[40,179,180,183,184,187,188,191],{},[44,181,182],{},"Host-Key prüfen."," Bei der ersten Verbindung zeigt die App den ",[27,185,186],{},"SHA256:…","-Fingerprint des Servers an. Bestätigen Sie, dass er zu Ihrem Server passt, und wählen Sie dann ",[44,189,190],{},"Akzeptieren & fortfahren",". Vor Ihrer Bestätigung werden keine Zugangsdaten gesendet — das schützt vor einem Man-in-the-Middle. Der Fingerprint wird für das nächste Mal gespeichert.",[40,193,194,197,198,30],{},[44,195,196],{},"Installation konfigurieren."," Wählen Sie Feature-Pakete (E-Mail-Client, Marketing, KI), Ihren Provider für den E-Mail-Versand (Owlat MTA, Resend oder SES), optional einen KI-Provider, Ihr Admin-Konto und — für den Fernzugriff — eine ",[15,199,200],{"href":135},"öffentliche Domain",[40,202,203,206,207,210],{},[44,204,205],{},"Provisionieren."," Die App führt die Installation aus und streamt den Fortschritt in eine animierte Zeitleiste: verbinden → Server prüfen → Docker installieren (falls nötig) → Owlat holen → Stack starten → Backend deployen → Admin-Konto anlegen. Ein aufklappbares ",[44,208,209],{},"Server-Log"," zeigt die Rohausgabe, wenn Sie Details möchten.",[40,212,213,216,217,220],{},[44,214,215],{},"Workspace öffnen."," Wenn alles fertig ist, klicken Sie auf ",[44,218,219],{},"Workspace öffnen"," — die App verbindet sich über den normalen Browser-Anmelde-Handshake mit der neuen Instanz.",[32,222,136],{"id":223},"fernzugriff",[11,225,226,227,230,231,233],{},"Standardmäßig ist die Installation ",[44,228,229],{},"nur über localhost"," erreichbar — also auf der Maschine selbst, was zum Testen genügt, aber nicht für den täglichen Gebrauch vom Laptop aus. Um sie erreichbar zu machen, geben Sie im Konfigurationsschritt eine ",[44,232,200],{}," an.",[11,235,236,237,240],{},"Damit wird der Stack per HTTPS unter drei Subdomains ausgeliefert (die Konvention aus ",[27,238,239],{},"Caddyfile.example","):",[71,242,243,253],{},[74,244,245],{},[77,246,247,250],{},[80,248,249],{},"Subdomain",[80,251,252],{},"Liefert",[87,254,255,265,275],{},[77,256,257,262],{},[92,258,259],{},[27,260,261],{},"owlat.\u003Cdomain>",[92,263,264],{},"die Web-App",[77,266,267,272],{},[92,268,269],{},[27,270,271],{},"api.\u003Cdomain>",[92,273,274],{},"das Convex-Sync-Backend (WebSocket + HTTP)",[77,276,277,282],{},[92,278,279],{},[27,280,281],{},"rest.api.\u003Cdomain>",[92,283,284],{},"Convex-HTTP-Actions (Auth, Webhooks, Tracking)",[11,286,287,288,299],{},"Wenn Sie eine Domain angeben, ",[44,289,290,291,294,295,298],{},"erzeugt der Installer automatisch ein ",[27,292,293],{},"Caddyfile"," und aktiviert das ",[27,296,297],{},"tls","-Profil"," — Caddy stellt beim ersten Start Let's-Encrypt-Zertifikate aus.",[301,302,305],"callout",{"title":303,"type":304},"DNS + Ports liegen in Ihrer Verantwortung","warning",[11,306,307,308,311,312,315,316,60,319,322,323,326],{},"Legen Sie vor der Provisionierung mit einer Domain ",[44,309,310],{},"A-Records"," für ",[27,313,314],{},"owlat.",", ",[27,317,318],{},"api.",[27,320,321],{},"rest.api.\u003Cihre-domain>"," an, die auf den Server zeigen, und stellen Sie sicher, dass ",[44,324,325],{},"Port 80 und 443"," offen sind. Caddy kann keine Zertifikate ausstellen, solange DNS nicht auf die Maschine auflöst.",[32,328,330],{"id":329},"wie-es-funktioniert","Wie es funktioniert",[11,332,333,334,337,338,342],{},"Die Desktop-App hält die aktive SSH-Sitzung nativ (Rust, via ",[27,335,336],{},"ssh2",") und implementiert die Installation nie neu — sie steuert das vorhandene ",[15,339,340],{"href":25},[27,341,29],{}," mit maschinenlesbarem Fortschritt:",[37,344,345,353,364],{},[40,346,347,352],{},[44,348,349],{},[27,350,351],{},"OWLAT_PROGRESS=json"," lässt den Installer pro Schritt ein strukturiertes Event ausgeben; die App liest diese aus dem SSH-Stream, um die Zeitleiste zu steuern, und zeigt alles Übrige als Roh-Log.",[40,354,355,356,359,360,363],{},"Die von Ihnen eingegebene Konfiguration wird in eine Datei ",[27,357,358],{},".owlat-setup.json"," auf dem Server geschrieben und über den ",[27,361,362],{},"--config","-Pfad des Installers eingelesen (vollständig nicht-interaktiv).",[40,365,366,367,370],{},"Der Installer spricht auf der Maschine immer über ",[27,368,369],{},"localhost"," mit dem Backend, sodass eine Domain-Installation auch dann korrekt provisioniert, wenn DNS\u002FTLS noch nicht aktiv sind.",[372,373,375],"h3",{"id":374},"sicherheit","Sicherheit",[37,377,378,384],{},[40,379,380,383],{},[44,381,382],{},"Zugangsdaten"," werden erst gesendet, nachdem Sie den Host-Key akzeptiert haben, für die Dauer der Sitzung im Speicher gehalten und nicht ins Log geschrieben.",[40,385,386],{},"Die nativen SSH-Kommandos vertrauen der mitgelieferten eigenen Oberfläche der App (dieselbe Vertrauensstufe wie der Keychain-Zugriff, den die App ohnehin nutzt). Die App lädt niemals entfernte Web-Inhalte in ihr Fenster.",[32,388,390],{"id":389},"fehlerbehebung","Fehlerbehebung",[37,392,393,399,408],{},[40,394,395,398],{},[44,396,397],{},"„Host key has CHANGED“"," — der Server hat einen anderen Schlüssel präsentiert als beim letzten Mal. Fahren Sie nur fort, wenn Sie den Grund kennen (z. B. weil Sie die Maschine neu aufgesetzt haben); andernfalls brechen Sie ab und gehen der Sache nach.",[40,400,401,404,405,407],{},[44,402,403],{},"Ein Schritt schlägt fehl"," — öffnen Sie das ",[44,406,209],{}," in der Zeitleiste, um den zugrunde liegenden Fehler zu sehen. Die Schritte sind idempotent: Sobald die Ursache behoben ist, können Sie gefahrlos von vorn beginnen und erneut ausführen.",[40,409,410,413],{},[44,411,412],{},"Instanz nach der Installation nicht erreichbar"," — prüfen Sie, ob die drei DNS-A-Records auf den Server auflösen und 80\u002F443 offen sind, und geben Sie Caddy dann eine Minute Zeit, die Zertifikate auszustellen.",[301,415,418],{"title":416,"type":417},"Sie bauen aus dem Quellcode?","info",[11,419,420,421,424],{},"Die Ferninstallation führt den Container ",[27,422,423],{},"ghcr.io\u002Fwolvesdotink\u002Fsetup"," aus; ein Build aus dem Quellcode muss dieses Image daher aus derselben Revision wie die Desktop-App veröffentlichen.",{"title":426,"searchDepth":427,"depth":427,"links":428},"",2,[429,430,431,432,433,437],{"id":34,"depth":427,"text":35},{"id":68,"depth":427,"text":69},{"id":147,"depth":427,"text":148},{"id":223,"depth":427,"text":136},{"id":329,"depth":427,"text":330,"children":434},[435],{"id":374,"depth":436,"text":375},3,{"id":389,"depth":427,"text":390},"Installieren Sie Owlat direkt aus der Desktop-App über SSH auf einem nackten Linux-VPS — ohne Terminal — mit einer animierten Live-Zeitleiste der Provisionierung.","md",{},true,"\u002Fdeveloper\u002Fself-hosting-desktop",{"title":6,"description":438},"3.developer\u002F35.self-hosting-desktop","UxwMW11rDZref5paaQlqu3qk4Sw0zsOq4JMIEmGJZaw",[447,451],{"title":448,"path":449,"stem":450,"children":-1},"Wartung & Updates","\u002Fdeveloper\u002Fself-hosting-maintenance","3.developer\u002F34.self-hosting-maintenance",{"title":452,"path":25,"stem":453,"children":-1},"Setup-CLI & Installer","3.developer\u002F36.setup-cli",1786915109824]