# Webspace (FTP/SFTP)

Projekte, die nur aus Homepages bestehen, lädt die Pipeline per FTP oder SFTP auf einen bestehenden Webspace hoch, ohne dass ein Docker-Server nötig ist.

> Source: https://www.application-platform.com/de/docs/webspace-ftp/

Hugo und Astro erzeugen beim Bauen nur statische Dateien. Für eine reine Homepage reicht deshalb ein gewöhnlicher Webspace mit FTP- oder SFTP-Zugang, auf den die Plattform die gebauten Dateien hochlädt.

Diese Variante gibt es nur für Projekte ohne App und ohne Backend, weil Apps und Backends als Docker-Container laufen und einen der anderen [Server-Typen]({{< relref "servers" >}}) brauchen.

## Zugang hinterlegen

1. Öffne in der Seitenleiste **Server** und klicke auf **Server hinzufügen**.
2. Wähle die Kachel **Webspace (FTP/SFTP)**.
3. Wähle das Protokoll, SFTP oder FTP, und trage Host, Benutzer, Port und den Remote-Pfad ein, zum Beispiel `/html`.
4. Wähle die Anmeldung per Passwort oder, nur bei SFTP, per SSH-Key und speichere.

SFTP mit Passwort oder Schlüssel ist der übliche Weg; klassisches FTP unterstützt nur ein Passwort. Die Plattform prüft beim Speichern nur, ob die Angaben vollständig und plausibel sind; sie meldet sich nicht probeweise an, deshalb fällt ein Tippfehler im Passwort erst beim ersten Upload auf. Die Zugangsdaten liegen verschlüsselt; in der Oberfläche siehst du danach Host, Benutzer, Protokoll und Remote-Pfad.

## Im Projekt auswählen

Beim Anlegen oder Bearbeiten eines Projekts, das nur Homepages enthält, wählst du unter Hosting die Option **Webspace (FTP/SFTP)** und ordnest den hinterlegten Zugang zu. Enthält ein Projekt mehrere Homepages, teilen sie sich denselben Remote-Pfad.

## Wie die Homepage auf den Webspace kommt

Bei jeder Änderung auf `main` baut die Pipeline die statische Seite, bei Hugo den Ordner `public/`, bei Astro `dist/`, und lädt ihn per FTP oder SFTP in den Remote-Pfad. Docker-Images und GitOps-Deployments entfallen. Schlägt der Upload fehl, siehst du die Fehlermeldung im GitLab-Job `publish-webspace`. Wie Pipelines allgemein ablaufen, steht unter [Git-Workflow und Deployment]({{< relref "git-workflow" >}}).

