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

# Come fare il deploy del tuo PG Admin

> Impara a ospitare il tuo pgadmin per accedere al tuo database PostGreSQL ovunque

## Introduzione

* Questo articolo ti guida nella creazione e nell'hosting di un'applicazione PG Admin su Square Cloud.
* Prima di iniziare, assicurati di avere un account su Square Cloud, cosa che puoi fare tramite la pagina di registrazione. Puoi usare la tua email per creare un account.
* Infine, devi avere un piano a pagamento attivo sul tuo account. Puoi vedere i nostri piani e acquistarne uno in base alle tue esigenze [qui](https://squarecloud.app/it/pricing).

## Creazione del progetto

* Prima di tutto abbiamo bisogno di un ambiente Python. Per farlo, ci serve un `requirements.txt` o un `pyproject.toml`.
  Puoi vedere come creare un requirements.txt [qui](https://docs.squarecloud.app/it/articles/how-to-create-your-requirements).
* Il tuo `requirements.txt` deve contenere `pgadmin4` e un webserver per servirlo. In questo tutorial, useremo `gunicorn`.

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

* Successivamente, avrai bisogno di un file di configurazione `config_local.py` per impostare alcuni percorsi. Questi percorsi definiranno dove salvare alcune informazioni sul tuo pgadmin.

```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>
  Abbiamo già tutto pronto per il deploy nel nostro repository [qui](https://github.com/squarecloud-education/pgadmin4-web/releases). Devi solo scaricare il `project.zip` e caricarlo.
</Info>

## 📁 File necessari

I seguenti file sono necessari nel tuo zip:

* requirements.txt o pyproject.toml
* .env (opzionale)

## ⚙️ File di configurazione

* Devi configurare l'ambiente runtime su `Detect manually` e impostarlo su `Python`. In un squarecloud.config o squarecloud.app apparirà così:

```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
```

* Successivamente, dobbiamo impostare 2 variabili d'ambiente, `PGADMIN_SETUP_EMAIL` e `PGADMIN_SETUP_PASSWORD` in un file `.env` o nell'ambiente di Square Cloud dal menu di upload.

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

## Caricamento del progetto su Square Cloud

Dopo aver preparato i file del tuo progetto, puoi ora caricarli su Square Cloud e ospitare il tuo progetto.

<Tabs>
  <Tab title="Upload tramite Dashboard">
    Accedi alla [Square Cloud Dashboard](https://squarecloud.app/it/dashboard/new) e carica i file del tuo progetto.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Caricamento dell'applicazione su Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Tab>

  <Tab title="Upload tramite CLI">
    <Steps>
      <Step title="Primo passo">
        Innanzitutto, devi avere la CLI installata nel tuo ambiente. Se non la hai ancora, esegui il seguente comando nel tuo terminale:

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

        Se la hai già, ti consigliamo di aggiornarla. Per farlo, esegui il seguente comando nel tuo terminale:

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

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

      <Step title="Secondo passo">
        Ora, per autenticarti e usare gli altri comandi della CLI, troverai la tua chiave di autorizzazione [qui](https://squarecloud.app/it/account/security) cliccando su "Request API Key". Dopo aver ottenuto la tua chiave di autorizzazione, esegui il seguente comando:

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

      <Step title="Terzo passo">
        Infine, per fare il deploy della tua applicazione su Square Cloud usando la CLI, devi eseguire il seguente comando, passando il percorso del tuo file zip:

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