> ## 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 deployst du dein PG Admin

> Lerne, wie du dein pgAdmin hostest, um von überall auf deine PostGreSQL-Datenbank zuzugreifen

## Einführung

* Dieser Artikel führt dich durch das Erstellen und Hosten einer PG-Admin-Anwendung auf Square Cloud.
* Bevor du beginnst, stelle sicher, dass du ein Konto bei Square Cloud hast, das du über die Registrierungsseite anlegen kannst. Du kannst deine E-Mail-Adresse verwenden, um ein Konto zu erstellen.
* Schließlich benötigst du einen aktiven kostenpflichtigen Plan in deinem Konto. Du kannst unsere Pläne ansehen und einen nach deinen Bedürfnissen [hier](https://squarecloud.app/de/pricing) erwerben.

## Das Projekt erstellen

* Zunächst benötigen wir eine Python-Umgebung. Dafür brauchen wir eine `requirements.txt` oder eine `pyproject.toml`.
  Wie du eine requirements.txt erstellst, erfährst du [hier](https://docs.squarecloud.app/de/articles/how-to-create-your-requirements).
* Deine `requirements.txt` muss `pgadmin4` und einen Webserver zum Bereitstellen enthalten. In diesem Tutorial verwenden wir `gunicorn`.

```txt requirements.txt theme={null}
pgadmin4
gunicorn
```

* Als Nächstes benötigst du eine Konfigurationsdatei `config_local.py`, um einige Pfade festzulegen. Diese Pfade bestimmen, wo einige Informationen über dein pgAdmin gespeichert werden.

```py config_local.py theme={null}
SERVER_MODE = True
MAX_LOGIN_ATTEMPTS = 3
"""
    CRITICAL 50
    ERROR    40
    WARNING  30
    SQL      25
    INFO     20
    DEBUG    10
    NOTSET    0
"""
CONSOLE_LOG_LEVEL = 10
DATA_DIR = "/application/.pgadmin/"
LOG_FILE = "/application/.pgadmin/logfile"
SQLITE_PATH = '/application/.pgadmin/pgadmin4.db'
```

<Info>
  Wir haben bereits alles für den Deploy in unserem Repository [hier](https://github.com/squarecloud-education/pgadmin4-web/releases) vorbereitet. Du musst nur die `project.zip` herunterladen und hochladen.
</Info>

## 📁 Benötigte Dateien

Die folgenden Dateien sind in deiner Zip erforderlich:

* requirements.txt oder pyproject.toml
* .env (optional)

## ⚙️ Konfigurationsdatei

* Du musst die Runtime-Umgebung auf `Detect manually` einstellen und auf `Python` setzen. In einer squarecloud.config oder squarecloud.app sieht das so aus:

```systemd squarecloud theme={null}
DISPLAY_NAME=App name
RUNTIME=python
MEMORY=1024
START=python -m gunicorn --bind 0.0.0.0:80 --workers=1 --threads=4 pgadmin4.pgAdmin4:app
VERSION=recommended
SUBDOMAIN=my-pgadmin-subdomain
```

* Als Nächstes müssen wir 2 Umgebungsvariablen setzen, `PGADMIN_SETUP_EMAIL` und `PGADMIN_SETUP_PASSWORD`, in einer `.env`-Datei oder in der Square-Cloud-Umgebung im Upload-Menü.

```systemd .env theme={null}
PGADMIN_SETUP_EMAIL=accessemail@example.com
PGADMIN_SETUP_PASSWORD=yourSecurePassword
```

## Das Projekt zu Square Cloud hochladen

Nachdem du deine Projektdateien vorbereitet hast, kannst du sie nun zu Square Cloud hochladen und dein Projekt hosten.

<Tabs>
  <Tab title="Upload über das Dashboard">
    Öffne das [Square Cloud Dashboard](https://squarecloud.app/de/dashboard/new) und lade deine Projektdateien hoch.

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

  <Tab title="Upload über die CLI">
    <Steps>
      <Step title="Erster Schritt">
        Zunächst musst du die CLI in deiner Umgebung installiert haben. Falls noch nicht, führe den folgenden Befehl in deinem Terminal aus:

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

        Wenn 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="Zweiter Schritt">
        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="Dritter Schritt">
        Um deine Anwendung schließlich mit der CLI auf Square Cloud zu deployen, musst du den folgenden Befehl ausführen und dabei den Pfad zu deiner Zip-Datei angeben:

        ```bash theme={null}
        squarecloud upload zip
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>
