snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
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

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,318 @@
---
title: Локальная настройка
icon: laptop-code
description: Руководство для участников (или любопытных разработчиков), которые хотят запускать Twenty локально.
---
## Требования
<Tabs>
<Tab title="Linux и macOS">
Прежде чем установить и использовать Twenty, убедитесь, что у вас установлено следующее:
* [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
* [Node v24.5.0](https://nodejs.org/en/download)
* [yarn v4](https://yarnpkg.com/getting-started/install)
* [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)
<Warning>
`npm` не будет работать, используйте `yarn`. Yarn теперь поставляется в комплекте с Node.js, так что устанавливать его отдельно не нужно.
Нужно лишь выполнить `corepack enable`, чтобы активировать Yarn, если вы еще этого не сделали.
</Warning>
</Tab>
<Tab title="Windows (WSL)">
1. Установите WSL
Откройте PowerShell от имени администратора и выполните:
```powershell
wsl --install
```
Теперь должно появиться приглашение на перезагрузку компьютера. Если нет, перезагрузите его вручную.
После перезагрузки откроется окно PowerShell и начнётся установка Ubuntu. Это может занять некоторое время.
Появится запрос на создание имени пользователя и пароля для вашей установки Ubuntu.
2. Установите и настройте git
```bash
sudo apt-get install git
git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"
```
3. Установите nvm, node.js и yarn
<Warning>
Используйте `nvm`, чтобы установить правильную версию `node`. `.nvmrc` гарантирует, что все участники используют одну и ту же версию.
</Warning>
```bash
sudo apt-get install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
```
Закройте и откройте снова терминал, чтобы использовать nvm. Затем выполните следующие команды.
```bash
nvm install # installs recommended node version
nvm use # use recommended node version
corepack enable
```
</Tab>
</Tabs>
---
## Шаг 1: Клонирование с помощью Git
Выполните следующую команду в терминале.
<Tabs>
<Tab title="SSH (Рекомендовано)">
Если вы еще не настроили SSH ключи, вы можете узнать, как это сделать [здесь](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-ssh).
```bash
git clone git@github.com:twentyhq/twenty.git
```
</Tab>
<Tab title="HTTPS">
```bash
git clone https://github.com/twentyhq/twenty.git
```
</Tab>
</Tabs>
## Шаг 2: Перейдите в корень
```bash
cd twenty
```
Все команды в следующих шагах следует выполнять из корня проекта.
## Шаг 3: Настройка базы данных PostgreSQL
<Tabs>
<Tab title="Linux">
**Опция 1 (предпочтительно):** Чтобы настроить базу данных локально:
Используйте следующую ссылку для установки PostgreSQL на компьютер с Linux: [Установка PostgreSQL](https://www.postgresql.org/download/linux/)
```bash
psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
```
Примечание: Возможно, вам потребуется добавить `sudo -u postgres` к команде перед `psql`, чтобы избежать ошибок с правами.
**Опция 2:** Если у вас установлен docker:
```bash
make -C packages/twenty-docker postgres-on-docker
```
</Tab>
<Tab title="Mac OS">
**Опция 1 (предпочтительно):** Чтобы настроить вашу базу данных локально с помощью `brew`:
```bash
brew install postgresql@16
export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"
brew services start postgresql@16
psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
```
Вы можете проверить, запущен ли сервер PostgreSQL, выполнив:
```bash
brew services list
```
Установщик может не создать пользователя `postgres` по умолчанию при установке
через Homebrew на macOS. Вместо этого он создает роль PostgreSQL, которая совпадает с вашим именем пользователя в MacOS
например, "john".
Чтобы проверить и создать пользователя `postgres`, при необходимости выполните следующие шаги:
```bash
# Connect to PostgreSQL
psql postgres
or
psql -U $(whoami) -d postgres
```
Оказавшись в приглашении psql (postgres=#), выполните:
```bash
# List existing PostgreSQL roles
\du
```
Вы увидите вывод, похожий на следующий:
```bash
Role name | Attributes | Member of
-----------+-------------+-----------
john | Superuser | {}
```
Если вы не видите роль `postgres` в списке, перейдите к следующему шагу.
Создайте роль `postgres` вручную:
```bash
CREATE ROLE postgres WITH SUPERUSER LOGIN;
```
Это создает роль суперпользователя с именем `postgres` с доступом для входа.
```bash
Role name | Attributes | Member of
-----------+-------------+-----------
postgres | Superuser | {}
john | Superuser | {}
```
**Опция 2:** Если у вас установлен docker:
```bash
make -C packages/twenty-docker postgres-on-docker
```
</Tab>
<Tab title="Windows (WSL)">
Все последующие шаги следует выполнять в терминале WSL (внутри вашей виртуальной машины)
**Опция 1:** Чтобы настроить PostgreSQL локально:
Используйте следующую ссылку для установки PostgreSQL на виртуальную машину с Linux: [Установка PostgreSQL](https://www.postgresql.org/download/linux/)
```bash
psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
```
Примечание: Возможно, вам потребуется добавить `sudo -u postgres` к команде перед `psql`, чтобы избежать ошибок с правами.
**Опция 2:** Если у вас установлен docker:
Запуск Docker на WSL добавляет дополнительный уровень сложности.
Используйте эту опцию только если вы комфортно себя чувствуете с дополнительными шагами, включая включение [Docker Desktop WSL2](https://docs.docker.com/desktop/wsl).
```bash
make -C packages/twenty-docker postgres-on-docker
```
</Tab>
</Tabs>
Теперь вы можете получить доступ к базе данных по адресу `localhost:5432`.
Если вы использовали вариант с Docker выше, учетные данные по умолчанию: пользователь `postgres` и пароль `postgres`. Для нативных установок PostgreSQL используйте учетные данные и роли, настроенные на вашей машине.
## Шаг 4: Настройка базы данных Redis (кэш)
Twenty требует кэша Redis для обеспечения наилучшей производительности.
<Tabs>
<Tab title="Linux">
**Опция 1:** Чтобы настроить Redis локально:
Используйте следующую ссылку для установки Redis на вашу Linux машину: [Установка Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/)
**Опция 2:** Если у вас установлен docker:
```bash
make -C packages/twenty-docker redis-on-docker
```
</Tab>
<Tab title="Mac OS">
**Опция 1 (предпочтительно):** Чтобы настроить Redis локально с помощью `brew`:
```bash
brew install redis
```
Запустите сервер Redis:
```bash
brew services start redis
```
**Опция 2:** Если у вас установлен docker:
```bash
make -C packages/twenty-docker redis-on-docker
```
</Tab>
<Tab title="Windows (WSL)">
**Опция 1:** Чтобы настроить Redis локально:
Используйте следующую ссылку для установки Redis на вашу Linux виртуальную машину: [Установка Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/)
**Опция 2:** Если у вас установлен docker:
```bash
make -C packages/twenty-docker redis-on-docker
```
</Tab>
</Tabs>
Если вам нужен графический интерфейс клиента, мы рекомендуем [Redis Insight](https://redis.io/insight/) (доступна бесплатная версия).
## Шаг 5: Настройка переменных окружения
Используйте переменные окружения или файлы `.env` для настройки вашего проекта. Подробнее [здесь](/l/ru/developers/self-host/capabilities/setup).
Скопируйте `.env.example` файлы в `/front` и `/server`:
```bash
cp ./packages/twenty-front/.env.example ./packages/twenty-front/.env
cp ./packages/twenty-server/.env.example ./packages/twenty-server/.env
```
<Info>
**Режим нескольких рабочих пространств:** По умолчанию Twenty работает в режиме одного рабочего пространства, где можно создать только одно рабочее пространство. Чтобы включить поддержку нескольких рабочих пространств (полезно для тестирования функций, основанных на поддоменах), установите `IS_MULTIWORKSPACE_ENABLED=true` в файле `.env` вашего сервера. См. [Режим нескольких рабочих пространств](/l/ru/developers/self-host/capabilities/setup#multi-workspace-mode) для подробностей.
</Info>
## Шаг 6: Установка зависимостей
Чтобы собрать сервер Twenty и добавить данные в вашу базу данных, выполните следующую команду:
```bash
yarn
```
Обратите внимание, что `npm` или `pnpm` не будут работать
## Шаг 7: Запуск проекта
<Tabs>
<Tab title="Linux">
В зависимости от вашего дистрибутива Linux, сервер Redis может быть запущен автоматически.
Если нет, проверьте [Руководство по установке Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/) для вашего дистрибутива.
</Tab>
<Tab title="Mac OS">
Redis должен уже работать. Если нет, выполните:
```bash
brew services start redis
```
</Tab>
<Tab title="Windows (WSL)">
В зависимости от вашей дистрибуции Linux, сервер Redis может быть запущен автоматически.
Если нет, проверьте [руководство по установке Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/) для вашего дистрибутива.
</Tab>
</Tabs>
Настройте вашу базу данных с помощью следующей команды:
```bash
npx nx database:reset twenty-server
```
Запустите сервер, рабочую программу и сервисы фронтенда:
```bash
npx nx start twenty-server
npx nx worker twenty-server
npx nx start twenty-front
```
В качестве альтернативы, вы можете запустить все сервисы сразу:
```bash
npx nx start
```
## Шаг 8: Использовать Twenty
**Frontend**
Фронтенд Twenty будет работать на [http://localhost:3001](http://localhost:3001).
Вы можете войти, используя учетную запись демо по умолчанию: `tim@apple.dev` (пароль: `tim@apple.dev`)
**Backend**
* Сервер Twenty будет работать на [http://localhost:3000](http://localhost:3000).
* К GraphQL API можно получить доступ по адресу [http://localhost:3000/graphql](http://localhost:3000/graphql).
* К REST API можно обратиться по адресу [http://localhost:3000/rest](http://localhost:3000/rest).
## Устранение неполадок
Если у вас возникли проблемы, проверьте [Устранение неполадок](/l/ru/developers/self-host/capabilities/troubleshooting) для получения решений.