# Примеры

> Запускайте примеры Collaboration SDK по возможностям и изучайте руководства, серверные и Web-точки входа.

- Human documentation: [https://docs.univer.ai/ru-RU/server/collaboration/examples](https://docs.univer.ai/ru-RU/server/collaboration/examples)

- Agent Markdown: [https://docs.univer.ai/ru-RU/server/collaboration/examples.md](https://docs.univer.ai/ru-RU/server/collaboration/examples.md)

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

- Source: [collaboration/examples.ru-RU.mdx](https://github.com/dream-num/documentation/blob/dev/content/server/collaboration/examples.ru-RU.mdx)

---

Все примеры находятся в [univer-collaboration-examples](https://github.com/dream-num/univer-collaboration-examples). Они имеют минимальную структуру `web/main.ts + server/main.ts` и работают независимо. Завершите быстрый старт, затем выберите пример под задачу интеграции.

| Пример                                           | Основная идея                   | Команда                         |
| ------------------------------------------------ | ------------------------------- | ------------------------------- |
| [Быстрый старт](#quick-start)                    | Основной путь совместной работы | `pnpm example:quick-start`      |
| [Адаптер базы данных](#database-adapter)         | Адаптеры базы данных            | `pnpm example:database-adapter` |
| [Права доступа](#permissions)                    | Идентификация и авторизация     | `pnpm example:permissions`      |
| [История](#history)                              | Производная история версий      | `pnpm example:history`          |
| [Комментарии](#comments)                         | Независимые комментарии         | `pnpm example:comments`         |
| [Worktree](#worktree)                            | Изолированные правки и слияние  | `pnpm example:worktree`         |
| [Преобразование файлов](#exchange)               | Преобразование Office           | `pnpm example:exchange`         |
| [Развёртывание на нескольких узлах](#multi-node) | Горизонтальное масштабирование  | `pnpm example:multi-node`       |

## Быстрый старт

Соберите Collaboration Client, Transport, Endpoint, Service и Memory Adapter. Проверьте в двух браузерах HTTP-загрузку, Sessions WebSocket, Room, ACK и рассылку одной Sheet.

```bash
pnpm example:quick-start
```

Откройте `http://127.0.0.1:3010/?unit=quick-start-sheet`.

* [Руководство примера](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/quick-start/README.md)
* [Серверная точка входа](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/quick-start/server/main.ts)
* [Точка входа Web](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/quick-start/web/main.ts)
* [Пошаговое руководство на сайте](https://docs.univer.ai/ru-RU/server/collaboration/quick-start.md)

## Адаптер базы данных

Пример показывает, как использовать встроенный SQLite Adapter и реализовать собственный Database Adapter.

```bash
pnpm example:database-adapter
```

Откройте `http://127.0.0.1:3010/?unit=persistent-sheet`.

* [Руководство примера](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/database-adapter/README.md)
* [Серверная точка входа](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/database-adapter/server/main.ts)
* [Точка входа Web](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/database-adapter/web/main.ts)

## Права доступа

Создайте доверенную идентичность из cookie и отдельно защитите HTTP-чтение Unit, JOIN и отправку изменений. Страница переключается между учебным **Alice · Editor** и **Bob · Viewer** только для чтения.

```bash
pnpm example:permissions
```

Откройте `http://127.0.0.1:3010`.

* [Руководство примера](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/permissions/README.md)
* [Серверная точка входа](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/permissions/server/main.ts)
* [Точка входа Web](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/permissions/web/main.ts)
* [Руководство идентификации и авторизации](https://docs.univer.ai/ru-RU/server/collaboration/identity-and-authorization.md)

## История

Добавьте вне ядра History Service, отдельный Adapter, History Endpoint и вход истории браузера. Events создания Unit и коммита строят восстанавливаемый производный индекс.

```bash
pnpm example:history
```

Откройте `http://127.0.0.1:3010/?unit=history-sheet`, измените Sheet и выберите `History` сверху.

* [Руководство примера](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/history/README.md)
* [Серверная точка входа](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/history/server/main.ts)
* [Точка входа Web](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/history/web/main.ts)

## Комментарии

Добавьте Thread Comment Service, отдельный Adapter, Comment Endpoint и вход комментариев интерфейса. Comment Endpoint использует Sessions и Rooms Unit основного Endpoint.

```bash
pnpm example:comments
```

Откройте `http://127.0.0.1:3010/?unit=comments-sheet`, выберите ячейку и откройте комментарии.

* [Руководство примера](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/comments/README.md)
* [Серверная точка входа](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/comments/server/main.ts)
* [Точка входа Web](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/comments/web/main.ts)

## Worktree

Показан полный цикл изолированного черновика, Ready, Reopen и Merge по Unit. Переключайтесь между основной веткой и черновиком, чтобы увидеть изоляцию правок AI Agent до слияния.

```bash
pnpm example:worktree
```

Откройте `http://127.0.0.1:3010/?unit=worktree-sheet&worktree=demo-worktree`.

* [Руководство примера](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/worktree/README.md)
* [Серверная точка входа](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/worktree/server/main.ts)
* [Точка входа Web](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/worktree/web/main.ts)
* [CLI и проверка человеком](https://docs.univer.ai/ru-RU/ai/worktree.md)

## Преобразование файлов

Объедините `@univerjs-pro/exchange-node` и Collaboration Service для серверного импорта/экспорта Sheet, опроса задач, импорта снимков и экспорта подтверждённых ревизий.

```bash
pnpm example:exchange
```

Откройте `http://127.0.0.1:3010/?unit=exchange-sheet`. Импортируйте через **File → Open (File)**, экспортируйте через **File → Save As**.

* [Руководство примера](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/exchange/README.md)
* [Серверная точка входа](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/exchange/server/main.ts)
* [Процесс преобразования](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/exchange/server/exchange.ts)
* [Точка входа Web](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/exchange/web/main.ts)

## Развёртывание на нескольких узлах

Запустите два узла совместной работы за Nginx. Redis передаёт обновления в реальном времени между узлами и хранит общие session tickets, поэтому любой узел может обслужить любой запрос. Требуется Docker Compose.

```bash
pnpm example:multi-node
```

Откройте `http://127.0.0.1:3010/` и нажмите **New Sheet**, чтобы создать файл. Скопируйте полный URL в другую вкладку для проверки совместного редактирования того же документа. Затем создайте ещё несколько файлов и посмотрите, как они распределяются между узлами.

* [Руководство примера](https://github.com/dream-num/univer-collaboration-examples/blob/main/examples/multi-node/README.md)

> [!NOTE: Примеры не являются промышленными приложениями]
> Фиксированные пользователи, учебная авторизация, Memory Adapters, локальные секреты и хранение файлов и задач в памяти служат обучению. Приложение отвечает за идентификацию, авторизацию, хранение, секреты, файлы, развёртывание и взаимодействие.
