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

# Struttura del progetto

> Comprendere la struttura di un progetto Base44 per lo sviluppo locale

Il comando [`create`](/developers/references/cli/commands/create) della CLI di Base44 crea nuovi progetti con tutti i file e la configurazione necessari. Questo articolo descrive la struttura di un progetto backend Base44 e spiega cosa fa ogni file e directory.

## Struttura del progetto backend

Quando crei un progetto Base44 solo backend, la CLI genera questa struttura minima:

<Tree>
  <Tree.Folder name="<your-project-name>" defaultOpen>
    <Tree.Folder name="base44" defaultOpen>
      <Tree.File name=".app.jsonc" />

      <Tree.File name="config.jsonc" />
    </Tree.Folder>

    <Tree.File name=".gitignore" />
  </Tree.Folder>
</Tree>

Man mano che sviluppi il tuo progetto, aggiungi file per le tue risorse come [entità](/developers/backend/resources/entities/overview), [funzioni](/developers/backend/resources/backend-functions/overview), [agenti](/developers/backend/resources/agents-config), [connettori](/developers/backend/resources/connectors) e [configurazione auth](/developers/backend/resources/auth):

<Tree>
  <Tree.Folder name="<your-project-name>" defaultOpen>
    <Tree.Folder name="base44" defaultOpen>
      <Tree.File name=".app.jsonc" />

      <Tree.File name="config.jsonc" />

      <Tree.Folder name=".types" defaultOpen>
        <Tree.File name="types.d.ts" />
      </Tree.Folder>

      <Tree.Folder name="agents" defaultOpen>
        <Tree.File name="<agent-name>.jsonc" />
      </Tree.Folder>

      <Tree.Folder name="auth" defaultOpen>
        <Tree.File name="config.jsonc" />
      </Tree.Folder>

      <Tree.Folder name="connectors" defaultOpen>
        <Tree.File name="<connector-type>.jsonc" />
      </Tree.Folder>

      <Tree.Folder name="entities" defaultOpen>
        <Tree.File name="<entity-name>.jsonc" />
      </Tree.Folder>

      <Tree.Folder name="functions" defaultOpen>
        <Tree.Folder name="<function-name>" defaultOpen>
          <Tree.File name="entry.ts" />

          <Tree.File name="function.jsonc" />
        </Tree.Folder>
      </Tree.Folder>
    </Tree.Folder>

    <Tree.File name=".gitignore" />
  </Tree.Folder>
</Tree>

<Note>
  Le funzioni richiedono solo un file `entry.ts` o `entry.js`. Puoi opzionalmente aggiungere `function.jsonc` per configurazioni avanzate come nomi personalizzati o automazioni. Consulta [Funzioni backend](/developers/backend/resources/backend-functions/overview) per i dettagli.
</Note>

### base44/

Contiene tutta la configurazione e le definizioni delle risorse backend di Base44.

#### config.jsonc

Definisce la configurazione del tuo progetto, inclusi i percorsi verso [entità](/developers/backend/resources/entities/overview), [funzioni](/developers/backend/resources/functions), [agenti](/developers/backend/resources/agents-config), [connettori](/developers/backend/resources/connectors), [configurazione auth](/developers/backend/resources/auth) e le impostazioni di hosting del sito per progetti full-stack. La CLI lo crea solo con il nome del tuo progetto e puoi aggiungere altra configurazione secondo necessità.

Il tuo progetto richiede un file `config.jsonc` (o `config.json`) nella directory `base44/`:

```jsonc theme={null}
// Base44 Project Configuration
{
  "name": "my-project",
  "description": "My Base44 app",

  // Directory paths (relative to config file)
  "entitiesDir": "./entities",
  "functionsDir": "./functions",
  "agentsDir": "./agents",
  "connectorsDir": "./connectors",
  "authDir": "./auth",

  // Site/hosting configuration (for full-stack projects)
  "site": {
    "outputDirectory": "./dist", // Required - where your built files are located
  },
}
```

| Proprietà              | Descrizione                                                                                                                               | Predefinito    |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
| `name`                 | Nome del progetto (richiesto)                                                                                                             | —              |
| `description`          | Descrizione del progetto                                                                                                                  | —              |
| `entitiesDir`          | Percorso alla directory delle [entità](/developers/backend/resources/entities/overview)                                                   | `./entities`   |
| `functionsDir`         | Percorso alla directory delle [funzioni](/developers/backend/resources/backend-functions/overview)                                        | `./functions`  |
| `agentsDir`            | Percorso alla directory degli [agenti](/developers/backend/resources/agents-config)                                                       | `./agents`     |
| `connectorsDir`        | Percorso alla directory dei [connettori](/developers/backend/resources/connectors)                                                        | `./connectors` |
| `authDir`              | Percorso alla directory della [configurazione auth](/developers/backend/resources/auth)                                                   | `./auth`       |
| `site.outputDirectory` | Dove si trovano i file compilati del tuo sito (richiesto per la distribuzione del sito)                                                   | —              |
| `site.buildCommand`    | Usato solo durante `base44 create` per la distribuzione automatica                                                                        | —              |
| `site.installCommand`  | Usato solo durante `base44 create` per la distribuzione automatica                                                                        | —              |
| `site.serveCommand`    | Comando usato da [`base44 dev`](/developers/references/cli/commands/dev) per avviare il tuo dev server frontend insieme al backend locale | —              |

<Note>
  Le proprietà `buildCommand`, `installCommand` e `serveCommand` vengono
  incluse automaticamente quando crei un progetto dal template full-stack.
  Le proprietà `buildCommand` e `installCommand` vengono usate durante il
  flusso iniziale di `base44 create` per la distribuzione automatica. La proprietà
  `serveCommand` viene usata da `base44 dev` per avviare il tuo dev server frontend, con
  `VITE_BASE44_APP_ID` e `VITE_BASE44_APP_BASE_URL` iniettate in modo che l'SDK
  punti al backend locale. Quando distribuisci il tuo sito successivamente con `site
      deploy`, viene usata solo `outputDirectory`.
</Note>

#### .app.jsonc

Collega il tuo progetto locale alla tua app Base44. Questo file viene creato automaticamente dalla CLI quando crei o colleghi un progetto.

I singoli comandi CLI possono sovrascrivere questo valore predefinito con il flag `--app-id` o la variabile d'ambiente `BASE44_APP_ID`. Consulta [Seleziona un'app di destinazione](/developers/references/cli/commands/introduction#select-a-target-app).

```jsonc theme={null}
// Base44 App Configuration
// This file links your local project to your Base44 app.
// Do not commit this file to version control.
{
  "id": "your-app-id",
}
```

<Note>
  Il file `.app.jsonc` non deve essere sottoposto a versionamento. La CLI
  crea automaticamente un file `.gitignore` che esclude questo file.
</Note>

#### .types/types.d.ts

Definizioni di tipo TypeScript generate per le tue entità, funzioni, agenti e connettori. Create eseguendo [`base44 types generate`](/developers/references/cli/commands/types-generate). Questo file fornisce autocompletamento e sicurezza dei tipi quando usi l'SDK in progetti TypeScript. Consulta [Tipi dinamici](/developers/references/sdk/getting-started/dynamic-types) per maggiori dettagli.

#### agents/

Directory che contiene le [configurazioni degli agenti IA](/developers/backend/resources/agents-config). Ogni agente è definito in un file `.json` o `.jsonc` separato.

#### auth/

Directory che contiene la [configurazione di autenticazione](/developers/backend/resources/auth) della tua app. Contiene un unico file `config.jsonc` che definisce quali metodi di login sono disponibili per i tuoi utenti finali. Recupera la configurazione corrente da Base44 con [`auth pull`](/developers/references/cli/commands/auth-pull).

#### connectors/

Directory che contiene le [configurazioni dei connettori OAuth](/developers/backend/resources/connectors). Ogni connettore è definito in un file `.json` o `.jsonc` separato che prende il nome dal tipo di integrazione, ad esempio `slack.jsonc` o `googlecalendar.jsonc`.

#### entities/

Directory che contiene le [definizioni di schema delle entità](/developers/backend/resources/entities/overview). Ogni entità è definita in un file `.json` o `.jsonc` separato. Crea questa directory quando sei pronto a definire la tua prima entità.

#### functions/

Directory che contiene le [funzioni backend](/developers/backend/resources/backend-functions/overview) serverless. Ogni funzione richiede una propria sottodirectory con un file di codice `entry.ts` o `entry.js`. La CLI usa il percorso della directory relativo alla root delle funzioni come nome della funzione. Ad esempio, `functions/sendEmail/entry.ts` crea una funzione chiamata `sendEmail`. Puoi opzionalmente aggiungere un file di configurazione `function.jsonc` per personalizzare il nome della funzione o aggiungere automazioni.

<Tree>
  <Tree.Folder name="functions" defaultOpen>
    <Tree.Folder name="<function-name>" defaultOpen>
      <Tree.File name="entry.ts" />

      <Tree.File name="function.jsonc" />
    </Tree.Folder>
  </Tree.Folder>
</Tree>

### .gitignore

Impedisce che i file vengano sottoposti a versionamento. Il tuo progetto parte con questo file per evitare che `.app.jsonc` venga sottoposto a versionamento.

### Cartelle delle skill degli agenti IA

Quando crei un progetto con `base44 create`, le [skill degli agenti IA](/developers/backend/overview/base44-skills) vengono installate automaticamente. Compaiono in cartelle specifiche dell'agente come `.claude/skills/`, `.cursor/skills/` o simili, a seconda dell'assistente IA di programmazione che usi. Queste cartelle aiutano il tuo agente di programmazione a capire come lavorare con Base44 e possono essere sottoposte a versionamento in sicurezza.

## Vedi anche

* [Quickstart - Solo backend](/developers/backend/quickstart/templates/quickstart-backend-only): crea il tuo primo progetto solo backend
* [Quickstart - React](/developers/backend/quickstart/templates/quickstart-react-template): costruisci un'app React full-stack con Base44
* [Comando `types generate`](/developers/references/cli/commands/types-generate): genera i tipi TypeScript dal tuo progetto
* [Tipi dinamici](/developers/references/sdk/getting-started/dynamic-types): ottieni la sicurezza dei tipi per il tuo codice SDK
* [Entità](/developers/backend/resources/entities/overview): scopri la configurazione dello schema del database
* [Funzioni backend](/developers/backend/resources/backend-functions/overview): crea endpoint API serverless
* [Agenti IA](/developers/backend/resources/agents-config): configura gli agenti IA per la tua app
* [Connettori](/developers/backend/resources/connectors): configura connessioni OAuth a servizi di terze parti
* [Configurazione auth](/developers/backend/resources/auth): gestisci i metodi di login della tua app

<Note>Questa pagina è stata tradotta utilizzando l'IA. Per informazioni più accurate e aggiornate, consulta la [versione inglese](/). </Note>
