Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
256 lines
11 KiB
Plaintext
256 lines
11 KiB
Plaintext
---
|
|
title: Risoluzione dei problemi
|
|
icon: wrench
|
|
---
|
|
|
|
## Risoluzione dei problemi
|
|
|
|
Se riscontri qualche problema durante l'impostazione dell'ambiente per lo sviluppo, l'aggiornamento della tua istanza o l'auto-hosting,
|
|
qui sono alcune soluzioni per problemi comuni.
|
|
|
|
### Auto-ospitato
|
|
|
|
#### La prima installazione risulta in `autenticazione password fallita per l'utente "postgres"`
|
|
|
|
🚨 **IMPORTANTE: Questa soluzione è SOLO per nuove installazioni** 🚨
|
|
Se hai un'istanza di Twenty esistente con dati di produzione, **NON** seguire questi passaggi poiché elimineranno permanentemente il tuo database!
|
|
|
|
Durante l'installazione di Twenty per la prima volta, potresti voler cambiare la password del database predefinita.
|
|
La password impostata durante la prima installazione viene memorizzata in modo permanente nel volume del database. Se in seguito provi a cambiare questa password nella configurazione senza rimuovere il vecchio volume, otterrai errori di autenticazione poiché il database utilizza ancora la password iniziale.
|
|
|
|
⚠️ ATTENZIONE: I passaggi seguenti ELIMINERANNO PERMANENTEMENTE tutti i dati del database! ⚠️
|
|
Procedi solo se si tratta di una nuova installazione senza dati importanti.
|
|
|
|
Per aggiornare il file `PG_DATABASE_PASSWORD`, è necessario:
|
|
|
|
```sh
|
|
# Update the PG_DATABASE_PASSWORD in .env
|
|
docker compose down --volumes
|
|
docker compose up -d
|
|
```
|
|
|
|
#### CR interruzioni di linea trovate [Windows]
|
|
|
|
Questo accade a causa di caratteri Windows line-ending combinati con la configurazione di Git. Prova a eseguire:
|
|
|
|
```
|
|
git config --global core.autocrlf false
|
|
```
|
|
|
|
Quindi elimina il repository e clonalo nuovamente.
|
|
|
|
#### Schema dei metadati mancante
|
|
|
|
Durante l'installazione di Twenty, devi fornire il tuo database postgres con gli schemi, le estensioni e gli utenti corretti.
|
|
Se riesci a eseguire correttamente questo provisioning, dovresti avere schemi `default` e `metadata` nel tuo database.
|
|
Se non lo fai, assicurati di non avere più di un'istanza PostgreSQL in esecuzione sul tuo computer.
|
|
|
|
#### Impossibile trovare il modulo 'twenty-emails' o le relative dichiarazioni di tipo corrispondente.
|
|
|
|
Devi costruire il pacchetto `twenty-emails` (`npx nx run twenty-emails:build`) prima di eseguire l'inizializzazione del database.
|
|
|
|
#### Pacchetto twenty-x mancante
|
|
|
|
Assicurati di eseguire yarn nella directory principale e poi esegui `npx nx server:dev twenty-server`. Se ancora non funziona prova a costruire manualmente il pacchetto mancante.
|
|
|
|
#### Lint su Salva non funzionante
|
|
|
|
Questo dovrebbe funzionare direttamente con l'estensione Oxc (`oxc.oxc-vscode`) installata. Se questo non funziona, prova ad aggiungerlo alle impostazioni del codice VS (campo di applicazione del contenitore dev):
|
|
|
|
```
|
|
"editor.codeActionsOnSave": {
|
|
|
|
"source.fixAll.oxc": "explicit"
|
|
|
|
}
|
|
```
|
|
|
|
#### Durante l'esecuzione di `npx nx start` o `npx nx start twenty-front`, viene generato un errore fuori memoria
|
|
|
|
Esegui solo i servizi di cui hai bisogno, invece di `npx nx start`. Ad esempio, se lavori sul server, esegui solo `npx nx worker twenty-server`
|
|
|
|
**Se non funziona:**
|
|
Se hai provato ad eseguire solo `npx nx run twenty-server:start` su WSL e sta fallendo con l'errore di memoria sottostante:
|
|
|
|
`ERRORE FATALE: Mark-compacts inefficaci vicino al limite dell'heap Assegnazione fallita - heap di memoria JavaScript esaurito`
|
|
|
|
Un workaround è quello di eseguire il seguente comando nel tuo terminale, o aggiungerlo al tuo profilo `.bashrc` in modo che sia applicato automaticamente:
|
|
|
|
`export NODE_OPTIONS="--max-old-space-size=8192"`
|
|
|
|
Il flag --max-old-space-size=8192 imposta un limite massimo di 8GB per l'heap di Node.js; l'utilizzo si adatta alla domanda dell'applicazione.
|
|
Riferimento: https://stackoverflow.com/questions/56982005/where-do-i-set-node-options-max-old-space-size-2048
|
|
|
|
**Se non funziona:**
|
|
Verifica quali processi stanno occupando la maggior parte della RAM della tua macchina. A Venti, abbiamo notato alcune estensioni del codice VS stavano prendendo un sacco di RAM, quindi abbiamo temporaneamente disabilitato loro.
|
|
|
|
**Se non funziona:**
|
|
Il riavvio della macchina aiuta a ripulire i processi fantasma.
|
|
|
|
#### Durante l'esecuzione di `npx nx start` ci sono strani [0] e [1] nei log
|
|
|
|
È previsto poiché il comando `npx nx start` sta eseguendo più comandi in background
|
|
|
|
#### Nessuna email inviata
|
|
|
|
La maggior parte delle volte, è perché il `worker` non è in esecuzione in background. Prova a eseguire
|
|
|
|
```
|
|
npx nx worker twenty-server
|
|
```
|
|
|
|
#### Impossibile collegare il mio account Microsoft 365 a Twenty
|
|
|
|
La maggior parte delle volte, è perché il tuo amministratore non ha abilitato la Licenza Microsoft 365 per il tuo account. Controlla [https://admin.microsoft.com/](https://admin.microsoft.com/Adminportal/Home).
|
|
|
|
Se hai un codice di errore `AADSTS50020`, probabilmente significa che stai utilizzando un account Microsoft personale. Questo non è ancora supportato. Maggiori informazioni [qui](https://learn.microsoft.com/fr-fr/troubleshoot/entra/entra-id/app-integration/error-code-aadsts50020-user-account-identity-provider-does-not-exist)
|
|
|
|
#### Durante l'esecuzione `yarn`, gli avvisi appaiono nella console
|
|
|
|
Gli avvisi informano sul caricamento di dipendenze aggiuntive che non sono esplicitamente dichiarate in `package.json`, quindi fintanto che non appare un errore critico, tutto dovrebbe funzionare come previsto.
|
|
|
|
#### Quando un utente accede alla pagina di login, viene visualizzato un errore su un utente non autorizzato che tenta di accedere a un workspace nei registri
|
|
|
|
Questo è atteso come l'utente non è autorizzato quando si è disconnesso, dal momento che la loro identità non è stata verificata.
|
|
|
|
#### Come verificare se il tuo worker è in esecuzione?
|
|
|
|
* Vai su [webhook-test.com](https://webhook-test.com/) e copia **Your Unique Webhook URL**.
|
|
|
|
<div style={{textAlign: 'center'}}>
|
|
<img src="/images/docs/developers/self-hosting/webhook-test.jpg" alt="Test webhook" />
|
|
</div>
|
|
|
|
* Apri la tua app Twenty, naviga su `/settings` e abilita il toggle **Avanzate** in basso a sinistra dello schermo.
|
|
* Crea un nuovo webhook.
|
|
* Incolla **Your Unique Webhook URL** nel campo **Endpoint Url** in Twenty. Imposta i **Filtri** su `Companies` e `Created`.
|
|
|
|
<div style={{textAlign: 'center'}}>
|
|
<img src="/images/docs/developers/self-hosting/webhook-settings.jpg" alt="Impostazioni webhook" />
|
|
</div>
|
|
|
|
* Vai su `/objects/companies` e crea un nuovo record aziendale.
|
|
* Ritorna su [webhook-test.com](https://webhook-test.com/) e verifica se è stata ricevuta una nuova **richiesta POST**.
|
|
|
|
<div style={{textAlign: 'center'}}>
|
|
<img src="/images/docs/developers/self-hosting/webhook-test-result.jpg" alt="Risultato del test webhook" />
|
|
</div>
|
|
|
|
* Se è ricevuta una **richiesta POST**, il tuo worker è in esecuzione con successo. In caso contrario, devi risolvere i problemi del tuo worker.
|
|
|
|
#### Front-end non riesce ad avviare e restituisce l'errore TS5042: L'opzione 'project' non può essere miscelata con i file sorgente sulla riga di comando
|
|
|
|
Commenta il plugin checker in `packages/twenty-ui/vite-config.ts`, come mostrato nell'esempio qui sotto:
|
|
|
|
```
|
|
plugins: [
|
|
react({ jsxImportSource: 'react' }),
|
|
tsconfigPaths(),
|
|
svgr(),
|
|
dts(dtsConfig),
|
|
// checker(checkersConfig),
|
|
wyw({
|
|
include: [
|
|
'**/OverflowingTextWithTooltip.tsx',
|
|
'**/Chip.tsx',
|
|
'**/Tag.tsx',
|
|
'**/Avatar.tsx',
|
|
'**/AvatarChip.tsx',
|
|
],
|
|
babelOptions: {
|
|
presets: ['@babel/preset-typescript', '@babel/preset-react'],
|
|
},
|
|
}),
|
|
],
|
|
```
|
|
|
|
#### Pannello di amministrazione non accessibile
|
|
|
|
Eseguire `UPDATE core."user" SET "canAccessFullAdminPanel" = VERO WHERE email = 'you@yourdomain.com';` nel contenitore del database per ottenere l'accesso al pannello di amministrazione.
|
|
|
|
#### Durante l'esecuzione di un workflow, l'esecuzione del workflow non riesce con "L'esecuzione delle funzioni logiche è disabilitata. Imposta LOGIC_FUNCTION_TYPE su LOCAL o LAMBDA per abilitarle."
|
|
|
|
In produzione, le funzioni logiche sono disabilitate per impostazione predefinita. Imposta la variabile d'ambiente `LOGIC_FUNCTION_TYPE` su `LOCAL` o `LAMBDA` per abilitarle. Questo può essere configurato tramite variabili d'ambiente o tramite le variabili del database del pannello di amministrazione. Consulta la [guida alla configurazione delle funzioni logiche](/l/it/developers/self-host/capabilities/setup#logic-functions-available-drivers) per dettagli.
|
|
|
|
#### Quando digito un messaggio in chat AI, non risponde immediatamente e devo aggiornare la pagina per vedere la risposta
|
|
|
|
Ciò significa che il tuo proxy inverso manca la configurazione per le risposte API basate su stream. Di seguito è riportato un esempio di configurazione Nginx:
|
|
|
|
```
|
|
location ~* ^/api/.*stream|\/graphql\/stream {
|
|
proxy_pass http://twenty_backend;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Connection "";
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_buffering off;
|
|
proxy_request_buffering off;
|
|
proxy_cache off;
|
|
gzip off;
|
|
#chunked_transfer_encoding off;
|
|
add_header X-Accel-Buffering no always;
|
|
}
|
|
```
|
|
|
|
### 1-Clic Docker Componi
|
|
|
|
#### Impossibile connettersi
|
|
|
|
Se non riesci ad accedere dopo la configurazione:
|
|
|
|
1. Esegui i seguenti comandi:
|
|
```bash
|
|
docker exec -it twenty-server-1 yarn
|
|
docker exec -it twenty-server-1 npx nx database:reset --configuration=no-seed
|
|
```
|
|
2. Riavvia i container Docker:
|
|
```bash
|
|
docker compose down
|
|
docker compose up -d
|
|
```
|
|
|
|
Si noti che il comando `database:reset` cancellerà completamente il database e ricreerà da zero.
|
|
|
|
#### Problemi di connessione dietro un reverse proxy
|
|
|
|
Se stai eseguendo Twenty dietro un reverse proxy e stai riscontrando problemi di connessione:
|
|
|
|
1. **Verifica SERVER_URL:**
|
|
|
|
Assicurati che il `SERVER_URL` nel tuo file `.env` corrisponda all'URL di accesso esterno, incluso `https` se SSL è abilitato.
|
|
|
|
2. **Controlla le impostazioni del reverse proxy:**
|
|
|
|
* Conferma che il tuo reverse proxy sta inoltrando correttamente le richieste al server Twenty.
|
|
* Assicurati che le intestazioni come `X-Forwarded-For` e `X-Forwarded-Proto` siano impostate correttamente.
|
|
|
|
3. **Riavvia i servizi:**
|
|
|
|
Dopo aver apportato modifiche, riavvia sia il reverse proxy che i container Twenty.
|
|
|
|
#### Errore durante il caricamento di un'immagine - permesso negato
|
|
|
|
Cambiare la proprietà della cartella dei dati sull'host da root a un altro utente e gruppo risolve questo problema.
|
|
|
|
#### Errore 'File non trovato' durante il test della funzione Logic nel workflow
|
|
|
|
Esegui il comando `yarn command:prod application:rebuild-default-deps` nel container twenty-server per risolvere il problema delle dipendenze mancanti.
|
|
|
|
## Ottenere aiuto
|
|
|
|
Se incontri problemi non coperti in questa guida:
|
|
|
|
* Controlla i log:
|
|
|
|
Visualizza i log dei container per i messaggi di errore:
|
|
|
|
```bash
|
|
docker compose logs
|
|
```
|
|
|
|
* Supporto comunitario:
|
|
|
|
Contatta la [comunità Twenty](https://github.com/twentyhq/twenty/issues) o [canali di supporto](https://discord.gg/cx5n4Jzs57) per assistenza.
|