> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Erste Schritte auf Square Cloud mit Node.js

> Erfahre, wie du auf Square Cloud mit Node.js loslegst

## 🚀 Einführung

* Stelle vor dem Start sicher, dass Node.js und npm auf deinem System installiert sind. Falls noch nicht, kannst du sie von der [offiziellen Node.js-Website](https://nodejs.org/) herunterladen.
* Anschließend musst du ein Konto bei Square Cloud erstellen, was über die [Anmeldeseite](https://squarecloud.app/de/signup) möglich ist. Du kannst das Konto per E-Mail, GitHub oder beidem erstellen.
* Zuletzt benötigst du einen aktiven kostenpflichtigen Plan in deinem Konto. Du kannst unsere Pläne ansehen und einen passenden [hier](https://squarecloud.app/de/pricing) erwerben.

## ⚙️ Konfiguration der squarecloud.app-Datei

<Note>
  Wenn du deine Anwendung über die Square Cloud Website hochlädst, kannst du diesen Abschnitt ignorieren. Die Website erstellt die `squarecloud.app` Konfigurationsdatei automatisch für dich.
</Note>

<Card title="Mehr erfahren: So erstellst du die Konfigurationsdatei für Square Cloud." icon="link" href="https://docs.squarecloud.app/de/getting-started/config-file">
  Die squarecloud.app Datei ist eine Konfigurationsdatei, die zur
  Konfiguration deiner Anwendung verwendet wird; sie dient dazu, den Namen, die
  Beschreibung, die Version, die Hauptdatei und weiteres zu definieren.
</Card>

## 📄 Erforderliche Dateien

<Tabs>
  <Tab title="JavaScript">
    * Wenn das Feld `START` in der Konfigurationsdatei nicht definiert ist, führt Square Cloud standardmäßig `node` mit Optimierungsoptionen und bestimmten Parametern aus. Ist das Feld `START` definiert, wird der darin enthaltene Wert direkt ausgeführt. Weitere Informationen zu den Parametern der Konfigurationsdatei findest du unter [Konfigurationsparameter](https://docs.squarecloud.app/de/getting-started/config-file#configuration-parameters).
  </Tab>

  <Tab title="TypeScript">
    * Wenn das Feld `START` in der Konfigurationsdatei nicht definiert ist, führt Square Cloud standardmäßig `npx tsx MAIN` aus, um die in `MAIN` angegebene TypeScript-Hauptdatei zu kompilieren und auszuführen. Ist das Feld `START` definiert, wird der darin enthaltene Wert direkt ausgeführt. Weitere Informationen zu den Parametern der Konfigurationsdatei findest du unter [Konfigurationsparameter](https://docs.squarecloud.app/de/getting-started/config-file#configuration-parameters).
  </Tab>
</Tabs>

* Wenn der Ordner `node_modules` nicht existiert, führt Square Cloud `npm install --no-package-lock --no-audit --no-fund` aus, um die Abhängigkeiten zu installieren, und bereinigt den Ordner `.npm`.

## 🖥️ Das Projekt vorbereiten

### 📁 Wesentliche Konfigurationsdateien

Wenn du dein Node.js-Projekt für den Deploy auf Square Cloud vorbereitest, stelle sicher, dass du die Konfigurationsdatei (`squarecloud.app/.config`) und die wesentlichen Dateien deiner Anwendung in eine ZIP-Datei einschließt.

<Warning>Die Konfigurationsdatei (`squarecloud.app/.config`) muss sich im Stammverzeichnis der ZIP-Datei befinden. Andernfalls kann Square Cloud sie während des Deploys nicht finden.</Warning>

#### 🗑️ Vor dem Hochladen auszuschließende Dateien

* `node_modules`: Dieser Ordner muss nicht hochgeladen werden, da er während der Installation in der Produktion neu erstellt wird.
* `package-lock.json`: Diese Datei ist nicht erforderlich, da die Produktionsumgebung die Abhängigkeiten auf Basis von `package.json` installiert.

### 🤔 Warum diese Dateien ausschließen?

Es gibt mehrere Gründe, `node_modules` und `package-lock.json` vor dem Hochladen deines Projekts auszuschließen:

1. **Konsistenz der Installation:** Wenn `node_modules` nicht hochgeladen wird, ist gewährleistet, dass die Abhängigkeiten von der Produktionsumgebung installiert werden, was zu einem konsistenten Build ohne Abweichungen des lokalen Systems führt.

2. **Aktuelle Installationen:** Die Produktionsumgebung installiert die neuesten kompatiblen Versionen der in `package.json` aufgeführten Abhängigkeiten und sorgt so für einen sauberen Start deiner Anwendung.

3. **Verringerung der Upload-Größe:** Wenn diese Ordner nicht enthalten sind, verringert sich die Größe der hochgeladenen Datei, was den Upload-Vorgang beschleunigt und den Deploy effizienter macht.

Auf diese Weise stellst du sicher, dass deine Node.js-Anwendung optimal für das Hosting auf Square Cloud vorbereitet ist.

### 📄 Erforderliche Dateien

Zum Hosten deines Node-Projekts sind drei Dateien erforderlich:

* [squarecloud.app/.config](https://docs.squarecloud.app/de/getting-started/config-file)
* mainFile.js/.ts (Beispiel für eine Hauptdatei)
* [package.json](./how-to-create-your-package-json) (Abhängigkeitsdatei)

<Note>
  Square Cloud unterstützt `TypeScript` nativ und führt dein Projekt über
  ts-node aus, es wird jedoch immer empfohlen, zu `JavaScript` zu kompilieren, da wir
  eine Produktionsplattform sind.
</Note>

## 💡 Fehlerbehebung

<AccordionGroup>
  <Accordion title="Die Hauptdatei ist ungültig oder beschädigt" icon="file" iconType="solid">
    Dieser Fehler tritt auf, wenn die als „main" für deine Anwendung in der
    Konfigurationsdatei definierte Datei nicht existiert, falsch geschrieben ist oder der Pfad
    falsch ist. Wenn sich deine Hauptdatei zum Beispiel in einem Ordner befindet,
    musst du `folder/file.js` angeben.
  </Accordion>

  <Accordion title="Unzureichender Arbeitsspeicher" icon="memory" iconType="solid">
    Die minimale Menge an RAM, die zum Hosten eines Bots erforderlich ist, beträgt 256 MB und für
    eine Website/API 512 MB. Abhängig von Größe und Komplexität
    deiner Anwendung kann es jedoch ratsam sein, eine größere Menge RAM zuzuweisen, um
    zu vermeiden, dass deiner Anwendung der Speicher ausgeht und sie abstürzt.
  </Accordion>
</AccordionGroup>

## 📤 So hostest du dein Projekt

Nachdem du nun alle Dateien für dein Node.js-Projekt vorbereitet hast, besteht der nächste Schritt darin, sie auf Square Cloud hochzuladen und deine Anwendung online zu stellen. Es gibt mehrere Möglichkeiten zum Hochladen, wir behandeln jedoch zwei: über das Dashboard oder über die CLI.

### Über das Dashboard

<Steps>
  <Step title="Upload-Seite aufrufen">
    Rufe die [Upload-Seite](https://squarecloud.app/de/dashboard/new) auf und lade die ZIP-Datei deines Projekts hoch.
  </Step>

  <Step title="Umgebung konfigurieren">
    Nachdem du deine ZIP-Datei hochgeladen hast, musst du den Namen, die Hauptdatei oder Runtime-Umgebung und weitere Einstellungen für dein Projekt konfigurieren.\
    Wenn du ein Web-Projekt hochlädst, achte darauf, "Web Publication" auszuwählen und deinem Projekt eine Subdomain zuzuweisen.
  </Step>

  <Step title="Projekt bereitstellen">
    Klicke abschließend auf die Schaltfläche "Deploy", um dein Projekt auf Square Cloud zu hosten.\
    Nach dem Deploy kannst du den Status und die Logs deines Projekts über das Dashboard überwachen.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Anwendung wird auf Square Cloud hochgeladen" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Über die CLI

Um diese Methode zu nutzen, musst du eine Konfigurationsdatei mit dem Namen `squarecloud.app` im Stammverzeichnis deines Projekts erstellen. Diese Datei enthält die notwendige Konfiguration für dein Projekt.

<Card title="Mehr erfahren: So erstellst du die Konfigurationsdatei für Square Cloud." icon="link" href="/de/getting-started/config-file">
  Die Datei squarecloud.app ist eine Konfigurationsdatei, mit der deine Anwendung konfiguriert wird; sie dient dazu, deine Umgebung zu definieren.
</Card>

<Steps>
  <Step title="CLI installieren">
    Zuerst musst du die CLI in deiner Umgebung installiert haben. Falls du sie noch nicht hast, führe den folgenden Befehl in deinem Terminal aus:

    ```
    npm install -g @squarecloud/cli
    ```

    Falls du sie bereits hast, empfehlen wir, sie zu aktualisieren. Führe dazu den folgenden Befehl in deinem Terminal aus:

    <Tabs>
      <Tab title="Windows">
        ```bash theme={null}
        squarecloud update
        ```
      </Tab>

      <Tab title="Linux, macOS und WSL">
        ```bash theme={null}
        curl -fsSL https://cli.squarecloud.app/install | bash
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Authentifizieren">
    Um dich zu authentifizieren und weitere CLI-Befehle zu nutzen, findest du deinen Autorisierungsschlüssel [hier](https://squarecloud.app/de/account/security), indem du auf "Request API Key" klickst. Nachdem du deinen Autorisierungsschlüssel erhalten hast, führe den folgenden Befehl aus:

    ```bash theme={null}
    squarecloud auth login
    ```
  </Step>

  <Step title="Projekt hochladen">
    Um deine Anwendung schließlich über die CLI auf Square Cloud bereitzustellen, musst du den folgenden Befehl ausführen:

    ```bash theme={null}
    squarecloud upload 
    ```

    Oder falls du die ZIP-Datei manuell erstellt hast, kannst du Folgendes verwenden:

    ```bash theme={null}
    squarecloud upload --file <path/to/zip> 
    ```
  </Step>
</Steps>

## Kontaktiere uns

Falls du weiterhin **technische Schwierigkeiten** hast, steht dir unser **spezialisiertes Support-Team** zur Verfügung. [**Kontaktiere uns**](https://squarecloud.app/de/support) und wir helfen dir gerne, jedes Problem zu lösen.
