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
16 KiB
Plaintext
256 lines
16 KiB
Plaintext
---
|
||
title: Устранение неполадок
|
||
icon: wrench
|
||
---
|
||
|
||
## Устранение неполадок
|
||
|
||
Если вы столкнулись с какой-либо проблемой при настройке окружения для разработки, обновлении вашего экземпляра или самостоятельном хостинге,
|
||
вот некоторые решения общих проблем.
|
||
|
||
### Самостоятельный хостинг
|
||
|
||
#### Первая установка завершается с ошибкой `password authentication failed for user "postgres"`
|
||
|
||
🚨 **ВАЖНО: Это решение ТОЛЬКО для новых установок** 🚨
|
||
Если у вас уже есть экземпляр Twenty с производственными данными, **НЕ** следуйте этим шагам, так как они безвозвратно удалят вашу базу данных!
|
||
|
||
Во время первой установки Twenty вы можете изменить пароль по умолчанию для базы данных.
|
||
Пароль, который вы установили во время первой установки, навсегда сохраняется в объеме базы данных. Если вы позже попытаетесь изменить этот пароль в вашей конфигурации без удаления старого объема, возникнут ошибки аутентификации, так как база данных по-прежнему использует исходный пароль.
|
||
|
||
⚠️ ПРЕДУПРЕЖДЕНИЕ: Следующие шаги ПОЛНОСТЬЮ УДАЛЯТ все данные базы данных! ⚠️
|
||
Продолжайте, только если это новая установка без важной информации.
|
||
|
||
Для обновления `PG_DATABASE_PASSWORD` необходимо:
|
||
|
||
```sh
|
||
# Update the PG_DATABASE_PASSWORD in .env
|
||
docker compose down --volumes
|
||
docker compose up -d
|
||
```
|
||
|
||
#### CR разрывы строк обнаружены [Windows]
|
||
|
||
Это происходит из-за строчных символов Windows в сочетании с вашей Git конфигурацией. Попробуйте выполнить:
|
||
|
||
```
|
||
git config --global core.autocrlf false
|
||
```
|
||
|
||
Затем удалите репозиторий и клонируйте его заново.
|
||
|
||
#### Отсутствует схема метаданных
|
||
|
||
Во время установки Twenty, вам нужно настроить базу данных postgres с правильными схемами, расширениями и пользователями.
|
||
Если вы успешно выполнили эту настройку, в вашей базе данных должны быть схемы `default` и `metadata`.
|
||
Если нет, убедитесь, что на вашем компьютере запущено не более одного экземпляра PostgreSQL.
|
||
|
||
#### Невозможно найти модуль 'twenty-emails' или его соответствующие определения типа.
|
||
|
||
Перед запуском инициализации базы данных вы должны создать пакет `двадцать emails` (`npx nx run twenty-emails:build`).
|
||
|
||
#### Отсутствует пакет twenty-x
|
||
|
||
Убедитесь, что вы запустили yarn в корневой директории, а затем выполните команду `npx nx server:dev twenty-server`. Если это по-прежнему не работает, попробуйте собрать отсутствующий пакет вручную.
|
||
|
||
#### Lint on Save не работает
|
||
|
||
Это должно работать из коробки с установленным расширением Oxc (`oxc.oxc-vscode`). Если это не работает, попробуйте добавить это в настройки кода VS (область Dev контейнера dev):
|
||
|
||
```
|
||
"editor.codeActionsOnSave": {
|
||
|
||
"source.fixAll.oxc": "explicit"
|
||
|
||
}
|
||
```
|
||
|
||
#### Во время выполнения `npx nx start` или `npx nx start twenty-front`, произошла ошибка памяти
|
||
|
||
Запускайте только те сервисы, которые вам нужны, вместо `npx nx start`. Например, если вы работаете на сервере, запускайте только `npx nx worker twenty-server`
|
||
|
||
**Если это не работает:**
|
||
Если вы пытались запустить только `npx nx run twenty-server:start` в WSL и это завершается приведённой ниже ошибкой памяти:
|
||
|
||
`FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory`
|
||
|
||
Обсуждайтесь с командой ниже в терминале, или добавьте её в свой профиль `.bashrc`, чтобы он применялся автоматически:
|
||
|
||
`export NODE_OPTIONS="--max-old-space-size=8192"`
|
||
|
||
Флаг --max-old-space-size=8192 устанавливает верхний предел 8 ГБ для heap Node.js; использование этого значения зависит от потребностей приложения.
|
||
Источник: https://stackoverflow.com/questions/56982005/where-do-i-set-node-options-max-old-space-size-2048
|
||
|
||
**Если это не сработает:**
|
||
Узнайте, какие процессы занимают большую часть оперативной памяти вашей машины. В Twenty, мы заметили, что некоторые расширения VS Code занимают много оперативной памяти, поэтому мы временно отключили их.
|
||
|
||
**Если это не сработает:**
|
||
Перезапуск вашей машины помогает очистить привязные процессы.
|
||
|
||
#### При запуске `npx nx start` в логах появляются странные [0] и [1]
|
||
|
||
Это ожидаемо, так как команда `npx nx start` запускает несколько команд под капотом
|
||
|
||
#### Электронные письма не отправляются
|
||
|
||
В большинстве случаев это происходит из-за того, что `воркер` не работает в фоновом режиме. Попробуйте запустить
|
||
|
||
```
|
||
npx nx worker twenty-server
|
||
```
|
||
|
||
#### Не удается подключить мой аккаунт Microsoft 365 к Twenty
|
||
|
||
В большинстве случаев это происходит из-за того, что ваш администратор не включил лицензию Microsoft 365 для вашего аккаунта. Проверьте [https://admin.microsoft.com/](https://admin.microsoft.com/Adminportal/Home).
|
||
|
||
Если вы получили код ошибки `AADSTS50020`, это, вероятно, означает, что вы используете личную учетную запись Microsoft. Это пока не поддерживается. Подробнее [здесь](https://learn.microsoft.com/fr-fr/troubleshoot/entra/entra-id/app-integration/error-code-aadsts50020-user-account-identity-provider-does-not-exist).
|
||
|
||
#### При запуске `yarn`, предупреждения появятся в консоли
|
||
|
||
Предупреждения информируют о добавлении дополнительных зависимостей, которые не указаны явно в `package.json`, поэтому, пока не появляются критичные ошибки, всё должно работать как ожидается.
|
||
|
||
#### Когда пользователь обращается к странице входа в систему, в логах появляется ошибка о неавторизованном пользователе, пытающемся получить доступ к проекту
|
||
|
||
Ожидается, что пользователь не авторизован при выходе из системы, так как их личность не была проверена.
|
||
|
||
#### Как проверить, работает ли ваш воркер?
|
||
|
||
* Перейдите на [webhook-test.com](https://webhook-test.com/) и скопируйте **Ваш уникальный URL вебхука**.
|
||
|
||
<div style={{textAlign: 'center'}}>
|
||
<img src="/images/docs/developers/self-hosting/webhook-test.jpg" alt="Тест вебхука" />
|
||
</div>
|
||
|
||
* Откройте приложение Twenty, перейдите в `/settings` и включите переключатель **Advanced** внизу слева на экране.
|
||
* Создайте новый вебхук.
|
||
* Вставьте **Ваш уникальный URL вебхука** в поле **Endpoint Url** в Twenty. Установите **Фильтры** на `Компании` и `Создано`.
|
||
|
||
<div style={{textAlign: 'center'}}>
|
||
<img src="/images/docs/developers/self-hosting/webhook-settings.jpg" alt="Настройки вебхука" />
|
||
</div>
|
||
|
||
* Перейдите в `/objects/companies` и создайте новую запись компании.
|
||
* Вернитесь на [webhook-test.com](https://webhook-test.com/) и проверьте, был ли получен новый **POST запрос**.
|
||
|
||
<div style={{textAlign: 'center'}}>
|
||
<img src="/images/docs/developers/self-hosting/webhook-test-result.jpg" alt="Результат теста вебхука" />
|
||
</div>
|
||
|
||
* Если **POST запрос** получен, ваш воркер успешно работает. В противном случае, вам нужно устранить неполадки вашего воркера.
|
||
|
||
#### Front-end не удается запустить и возвращает ошибку TS5042: Опция 'project' не может быть смешанной с исходными файлами в командной строке
|
||
|
||
Прокомментируйте плагин чекера в `packages/twenty-ui/vite-config.ts`, как показано в приведенном ниже примере:
|
||
|
||
```
|
||
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'],
|
||
},
|
||
}),
|
||
],
|
||
```
|
||
|
||
#### Административная панель недоступна
|
||
|
||
Запустите `UPDATE core."user" SET "canAccessFullAdminPanel" = ПОЛУЧИТЬ ЧЕЕ email = 'you@yourdomain.com';` в контейнере базы данных, чтобы получить доступ к панели администратора.
|
||
|
||
#### При запуске рабочего процесса выполнение завершается ошибкой: "Выполнение логической функции отключено. Установите LOGIC_FUNCTION_TYPE в значение LOCAL или LAMBDA, чтобы их включить.
|
||
|
||
В производственной среде логические функции по умолчанию отключены. Установите переменную окружения `LOGIC_FUNCTION_TYPE` в `LOCAL` или `LAMBDA`, чтобы их включить. Это можно настроить через переменные окружения или через переменные базы данных в панели администратора. См. [руководство по настройке логических функций](/l/ru/developers/self-host/capabilities/setup#logic-functions-available-drivers) для получения подробной информации.
|
||
|
||
#### Когда я набираю сообщение в AI чате, оно не отвечает немедленно и я должен обновить страницу, чтобы увидеть ответ
|
||
|
||
Это означает, что ваш обратный прокси отсутствует конфигурация ответов на потоковый API. Ниже приведен пример конфигурации 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 клик
|
||
|
||
#### Не удается войти в систему
|
||
|
||
Если не удается войти в систему после настройки:
|
||
|
||
1. Выполните следующие команды:
|
||
```bash
|
||
docker exec -it twenty-server-1 yarn
|
||
docker exec -it twenty-server-1 npx nx database:reset --configuration=no-seed
|
||
```
|
||
2. Перезапустите контейнеры Docker:
|
||
```bash
|
||
docker compose down
|
||
docker compose up -d
|
||
```
|
||
|
||
Обратите внимание, что команда `database:reset` полностью очистит вашу базу данных и пересоздаст ее с нуля.
|
||
|
||
#### Проблемы подключения за обратным прокси
|
||
|
||
Если вы запускаете Twenty за обратным прокси и испытываете проблемы с подключением:
|
||
|
||
1. **Проверьте SERVER_URL:**
|
||
|
||
Убедитесь, что `SERVER_URL` в вашем файле `.env` соответствует вашему внешнему URL-адресу, включая `https`, если SSL включён.
|
||
|
||
2. **Проверьте настройки обратного прокси:**
|
||
|
||
* Убедитесь, что ваш обратный прокси правильно перенаправляет запросы на сервер Twenty.
|
||
* Убедитесь, что заголовки, как `X-Forwarded-For` и `X-Forwarded-Proto`, корректно установлены.
|
||
|
||
3. **Перезапустите службы:**
|
||
|
||
После внесения изменений перезапустите как обратный прокси, так и контейнеры Twenty.
|
||
|
||
#### Ошибка при загрузке изображения - доступ запрещён
|
||
|
||
Проблема решается сменой владельца папки данных на хосте с root на другого пользователя и группу.
|
||
|
||
#### Ошибка «Файл не найден» при тестировании функции Logic в рабочем процессе
|
||
|
||
Выполните команду `yarn command:prod application:rebuild-default-deps` в контейнере twenty-server, чтобы устранить проблему с отсутствующими зависимостями.
|
||
|
||
## Получение помощи
|
||
|
||
Если вы столкнулись с проблемами, не охваченными в этом руководстве:
|
||
|
||
* Проверьте логи:
|
||
|
||
Просмотрите логи контейнера на наличие сообщений об ошибках:
|
||
|
||
```bash
|
||
docker compose logs
|
||
```
|
||
|
||
* Поддержка сообщества:
|
||
|
||
Обратитесь к [сообществу Twenty](https://github.com/twentyhq/twenty/issues) или [каналам поддержки](https://discord.gg/cx5n4Jzs57) за помощью.
|