> ## 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.

# So erstellst du deine squarecloud.app-Konfigurationsdatei

> Lerne, wie du deine Square Cloud-Konfigurationsdatei erstellst

## Was ist die Konfigurationsdatei?

Die Konfigurationsdatei ist eine Datei, die die Parameter deiner Anwendung enthält, etwa die Hauptdatei, den Speicher, die Version und weitere Einstellungen. Diese Datei wird verwendet, um deine Anwendung auf der Square Cloud-Plattform zu konfigurieren und zu deployen.

```systemd squarecloud.app theme={null}
MAIN=main_file.js
DISPLAY_NAME=I am the configuration file
MEMORY=512
VERSION=recommended
```

## Die Konfigurationsdatei erstellen

Das Erstellen der Konfigurationsdatei ist sehr einfach: Erstelle einfach eine Datei mit dem Namen `squarecloud.app` oder `squarecloud.config` und füge die Konfigurationsparameter darin ein.

<Steps>
  <Step title="Erweiterung wählen">
    Die Konfigurationsdatei kann zwei Erweiterungen haben: **.app** oder **.config**. Du kannst `squarecloud.app` oder `squarecloud.config` verwenden, je nachdem, was du bevorzugst. Tipp: Verwende **.app**, um Square Cloud zu unterstützen. 🥰😂
    <Info>Auf **macOS** empfehlen wir die Verwendung der Erweiterung **.config**.</Info>
    <Warning>Hinweis: **.app** oder **.config** bezieht sich auf die **Dateierweiterung**, nicht auf den Dateinamen.</Warning>
  </Step>

  <Step title="Datei erstellen">
    Erstelle eine Datei mit der gewählten Erweiterung und füge die Konfigurationsparameter darin ein.
  </Step>
</Steps>

## Konfigurationsparameter

Nachfolgend siehst du alle Konfigurationsparameter, die für deine Konfigurationsdatei verfügbar sind.

| Parameter       | Typ     | Bearbeitbar | Limit       | Verwendung                                                                |
| --------------- | ------- | :---------: | ----------- | ------------------------------------------------------------------------- |
| `MAIN*`         | String  |      ❌      | 32 Zeichen  | Legt die Hauptdatei der Anwendung fest. Bsp.: `index.js`, `main.py`, usw. |
| `VERSION*`      | String  |      ❌      | -           | Sprachversion (Bsp.: `recommended`).                                      |
| `MEMORY*`       | Integer |      ✅      | -           | Speichermenge in Megabyte.                                                |
| `DISPLAY_NAME*` | String  |      ✅      | 32 Zeichen  | Anzeigename der Anwendung.                                                |
| `RUNTIME`       | String  |      ❌      | -           | Die Runtime-Umgebung. Bsp.: `typescript`, `nodejs`, `go`.                 |
| `DESCRIPTION`   | String  |      ✅      | 280 Zeichen | Beschreibung/Metadaten der Anwendung.                                     |
| `AUTORESTART`   | Boolean |      ✅      | -           | Automatischer Neustart (`true` oder `false`).                             |
| `START`         | String  |      ✅      | 256 Zeichen | Benutzerdefinierter Startbefehl.                                          |
| `SUBDOMAIN`     | String  |      ✅      | 63 Zeichen  | Website-Subdomain (falls zutreffend).                                     |

<Info>Bearbeitbare Parameter (✅) können nach dem Deployment im Dashboard geändert werden. Nicht bearbeitbare Parameter (❌) erfordern einen vollständigen erneuten Upload der Anwendung, um Änderungen vorzunehmen.</Info>

## Die Konfigurationsparameter im Detail

Nachfolgend siehst du die Konfigurationsparameter, die du in deiner Konfigurationsdatei verwenden kannst.

<Steps>
  <Step title="MAIN [*]" icon="file">
    **Typ**: String | **Bearbeitbar**: ❌ | **Limit**: 32 Zeichen

    Legt die Hauptdatei der Anwendung fest.

    ```systemd theme={null}
    MAIN=index.js
    ```

    ```systemd theme={null}
    MAIN=src/loaders/index.js
    ```

    <Info>Wenn dieser Parameter gesetzt ist, wird die Runtime-Umgebung anhand der Erweiterung der Hauptdatei abgeleitet.</Info>
    <Tip>Diese Einstellung wird **IGNORIERT**, wenn du den START-Parameter verwendest.</Tip>
  </Step>

  <Step title="MEMORY [*]" icon="memory">
    **Typ**: Integer | **Bearbeitbar**: ✅ | **Limit**: Minimum 256MB (Bot), 512MB (Site)

    Legt die Speichermenge fest, die deine Anwendung verwenden wird.

    ```systemd theme={null}
    MEMORY=256
    ```

    <Info>Der Wert muss in Megabyte (MB) angegeben werden.</Info>
  </Step>

  <Step title="VERSION [*]" icon="arrow-up-9-1">
    **Typ**: String | **Bearbeitbar**: ❌ | **Werte**: `recommended`, `latest` oder eine spezifische Version
    <Tip>Wir empfehlen die Verwendung von `recommended` für optimale Stabilität.</Tip>

    Legt die Sprachversion für deine Anwendung fest.

    ```systemd theme={null}
    VERSION=recommended
    ```

    | Sprache            | `recommended` | `latest` |
    | ------------------ | ------------- | -------- |
    | Node.js \[JS & TS] | 24.15.0       | 26.1.0   |
    | Python             | 3.13.13       | 3.14.5   |
    | Java               | JDK 25        | JDK 25   |
    | Elixir             | 1.19.5        | 1.19.5   |
    | Rust               | 1.95.0        | 1.95.0   |
    | Ruby               | 4.0.4         | 4.0.4    |
    | PHP                | 8.5.6         | 8.5.6    |
    | Go                 | 1.26.3        | 1.26.3   |
    | .NET/C#            | 10.0.8        | 10.0.8   |
  </Step>

  <Step title="DISPLAY_NAME [*]" icon="text">
    **Typ**: String | **Bearbeitbar**: ✅ | **Limit**: 32 Zeichen

    Legt den Anzeigenamen deiner Anwendung fest.

    ```systemd theme={null}
    DISPLAY_NAME=Admin BOT
    ```
  </Step>

  <Step title="DESCRIPTION" icon="text">
    **Typ**: String | **Bearbeitbar**: ✅ | **Limit**: 280 Zeichen

    Legt die Beschreibung deiner Anwendung fest.

    ```systemd theme={null}
    DESCRIPTION=This bot is designed to help you with your daily tasks.
    ```
  </Step>

  <Step title="AUTORESTART" icon="rotate">
    **Typ**: Boolean | **Bearbeitbar**: ✅ | **Werte**: `true`, `false` | **Standard**: `false`

    Legt fest, ob die Anwendung bei einem Fehler automatisch neu gestartet werden soll.

    ```systemd theme={null}
    AUTORESTART=true
    ```
  </Step>

  <Step title="SUBDOMAIN" icon="globe">
    **Typ**: String | **Bearbeitbar**: ✅ | **Limit**: 63 Zeichen | **Standard**: `undefined`

    Legt die Subdomain für deine Site fest (nur Webanwendungen).

    ```systemd theme={null}
    SUBDOMAIN=mysite
    ```

    <Note>Die endgültige URL lautet: `mysite.squareweb.app`</Note>
  </Step>

  <Step title="RUNTIME" icon="server">
    **Typ**: String | **Bearbeitbar**: ❌

    Legt eine Runtime-Umgebung manuell fest.

    ```systemd theme={null}
    RUNTIME=nodejs
    ```

    Sieh dir die akzeptierten Werte und Umgebungen unten an.

    | Umgebung   | RUNTIME                  |
    | ---------- | ------------------------ |
    | Nodejs     | `nodejs`, `javascript`   |
    | TypeScript | `typescript`             |
    | Python     | `python`                 |
    | C#/Dotnet  | `c#`, `dotnet`, `csharp` |
    | Elixir     | `elixir`                 |
    | Java       | `java`                   |
    | Rust       | `rust`                   |
    | Ruby       | `ruby`, `rb`             |
    | PHP        | `php`                    |
    | Golang     | `go`, `golang`           |
    | HTML/CSS   | `static`, `html`         |

    <Warning>Wenn du diesen Parameter setzt, musst du MAIN nicht festlegen; lege stattdessen einen benutzerdefinierten START-Befehl fest.</Warning>
  </Step>

  <Step title="START" icon="play">
    **Typ**: String | **Bearbeitbar**: ✅ | **Limit**: 256 Zeichen | **Standard**: `undefined`

    Legt einen benutzerdefinierten Startbefehl fest.

    ```systemd theme={null}
    START=npm run start
    ```

    <Warning>Dieser Parameter **überschreibt** das Standardverhalten von MAIN.</Warning>
  </Step>
</Steps>

## Konfigurationsbeispiele für Bots

Hier sind einige Konfigurationsbeispiele für Bots:

```systemd theme={null}
# Required parameters.
MAIN=index.js
MEMORY=512
VERSION=recommended
DISPLAY_NAME=Robin bot
```

```systemd theme={null}
# Example with all parameters.
MAIN=index.js
MEMORY=512
VERSION=recommended
DISPLAY_NAME=Robin bot
DESCRIPTION=This bot was created to help with your daily tasks.
START=npm run start
AUTORESTART=true
```

## Konfigurationsbeispiele für Sites

Hier sind einige Konfigurationsbeispiele für Websites:

<Info>Die Site-URL lautet: `mysite.squareweb.app`</Info>

```systemd theme={null}
# Example with all parameters.
MAIN=index.js
MEMORY=1024
VERSION=recommended
DISPLAY_NAME=My site
DESCRIPTION=My site is really cool!
SUBDOMAIN=mysite
START=npm run build && npm run start
AUTORESTART=true
```

<Info>`next.config.js` als MAIN wird nur verwendet, damit das System das Projekt als JavaScript- oder TypeScript-Projekt erkennt (eine weitere .ts/.tsx-Datei).</Info>

```systemd theme={null}
# Example for a Next.js site.
MAIN=next.config.js
MEMORY=2048
VERSION=recommended
DISPLAY_NAME=Next.js site
DESCRIPTION=This site was built with Next.js.
SUBDOMAIN=nextjs
START=npm run build && npm run start
AUTORESTART=true
```
