---
title: "Excalidraw: Docker Compose и хостинг в один клик"
description: "Self-hosted Excalidraw — open source доска для диаграмм и набросков в стиле рисунка от руки, с совместной работой онлайн. Альтернатива Miro в один клик."
---

[← Все шаблоны](https://pethost.dev/ru/templates/) · [Продуктивность](https://pethost.dev/ru/templates/productivity/)

# Задеплойте Excalidraw в один клик

Доска для диаграмм и набросков в стиле рисунка от руки, с совместной работой в реальном времени

Альтернатива Miro, FigJam и Lucidchart на вашей машине.

[Задеплоить на Pethost](https://console.pethost.dev/?template=excalidraw)

## Что такое Excalidraw?

Excalidraw — виртуальная доска с открытым исходным кодом, на которой фигуры, стрелки и текст выглядят нарисованными от руки. На ней набрасывают схемы архитектуры, блок-схемы и вайрфреймы — на встречах или для документации, там, где другие открыли бы Miro или Lucidchart. В ней есть бесконечный холст, фреймы, изображения, лазерная указка и темная тема. Инструмент «Mermaid в Excalidraw» превращает код Mermaid в фигуры, которые можно редактировать, а рисунок можно экспортировать в изображение PNG или SVG или сохранить файлом .excalidraw, чтобы потом открыть снова. Публичные библиотеки готовых фигур, от иконок облачных сервисов до UI-китов, добавляются одним кликом.

Этот шаблон запускает собственный образ Excalidraw вместе с его сервером совместной работы, поэтому на одном холсте могут рисовать сразу несколько человек. Если нажать «Поделиться», а затем «Начать сеанс», появится ссылка, в которой хранится ключ сеанса, а браузеры шифруют каждое изменение до того, как оно попадет на сервер. Аккаунтов нет, и сервер не хранит рисунков: холст каждого остается в его браузере, а после загрузки приложение продолжает работать и офлайн. Кроме того, шаблон убирает скрипт Simple Analytics, который загружает страница из образа.

Но есть нюансы: Excalidraw может пользоваться любой, у кого есть адрес. Ссылки только для чтения («Экспорт в ссылку») и ИИ-инструменты «Текст в диаграмму» и «Каркас для кода» работают только на excalidraw.com: его серверы не принимают запросы с других сайтов. Кроме того, сцена и изображения сеанса сохраняются в зашифрованном виде в Firebase сайта excalidraw.com — поэтому ссылка на сеанс открывает его и позже, — а шрифты страницы загружаются с CDN Excalidraw.

## Хостинг Excalidraw на Pethost

1. Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
2. Окно «Новый проект» открывается на приложении Excalidraw, и вы нажимаете «Создать проект».
3. Через минуту-две Excalidraw работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
4. Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.

## Вопросы про Excalidraw

**Excalidraw бесплатный и с открытым исходным кодом?**

Да. Excalidraw распространяется по лицензии MIT, а его код лежит на GitHub. Excalidraw+ от той же команды — версия на их хостинге за 6 $ в месяц за пользователя: она добавляет облачное хранилище, неограниченное число сцен и папок, права доступа, презентации и комментарии.

**Где Excalidraw сохраняет мои рисунки?**

В вашем браузере. Excalidraw сохраняет холст по ходу рисования в локальное хранилище браузера, и на сервер ничего не попадает. В другом браузере или на другом устройстве холст будет пустым, а очистка данных сайта удалит рисунок, поэтому сохраняйте важное через «Сохранить как...» → «Сохранить в файл», а «Открыть» снова загрузит файл .excalidraw.

**Могут ли несколько человек рисовать вместе в self-hosted Excalidraw?**

Да, с этим шаблоном. Нажмите «Поделиться», затем «Начать сеанс» и отправьте ссылку: все, кто ее откроет, рисуют на одном холсте и видят указатели друг друга. Сеанс защищен сквозным шифрованием, а его ключ хранится в части ссылки после #, которую браузер никогда не отправляет на сервер. Docker-образ Excalidraw сам этого не умеет, поэтому шаблон добавляет сервер совместной работы Excalidraw и указывает страницам его адрес.

**Почему «Экспорт в ссылку» не работает в self-hosted Excalidraw?**

Ссылки только для чтения хранит сервер excalidraw.com, а он принимает их только с excalidraw.com, поэтому здесь кнопка показывает ошибку. Вместо этого поделитесь сеансом совместной работы или файлом .excalidraw.

**Умеет ли Excalidraw превращать код Mermaid в диаграмму?**

Да. «Дополнительные инструменты» → «Mermaid в Excalidraw» принимает код Mermaid и вставляет его как фигуры и стрелки, которые можно редактировать. Конвертируются блок-схемы, диаграммы последовательности, диаграммы классов и ER-диаграммы, а остальные типы вставляются как изображение. Это работает прямо в браузере, в отличие от ИИ-инструмента «Текст в диаграмму», который доступен только на excalidraw.com.

**Работает ли Excalidraw офлайн?**

Да. После загрузки страницы ее сервис-воркер сохраняет приложение, поэтому оно открывается и в нем можно рисовать без подключения к сети, а Chrome или Edge могут установить его как приложение. Для сеанса совместной работы подключение нужно.

**Сколько памяти и диска нужно Excalidraw?**

Excalidraw: совсем небольшие требования — около 40 MB памяти вместе с сервером совместной работы, и ничего не хранится, ведь рисунки остаются в браузерах. На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.

## Excalidraw: файл Docker Compose

Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан.

**Контейнеры:** excalidraw (excalidraw/excalidraw@sha256:f7ee194addd607bf831d2af0f0a34463dd4225e426cf35199ef0b12a803398e9), room (excalidraw/excalidraw-room:sha-03ff435).

```
services:
  excalidraw:
    # Excalidraw publishes its image only as latest, built from its release branch, so the digest
    # pins one build of it: that of 2026-05-06. The app is pages for the browser, which keeps the
    # drawings: nothing of them is stored here.
    image: excalidraw/excalidraw@sha256:f7ee194addd607bf831d2af0f0a34463dd4225e426cf35199ef0b12a803398e9
    restart: unless-stopped
    # The pages are built to collaborate through excalidraw.com's server, which refuses any other
    # site's visitors: they are pointed at this address instead, whose /socket.io/ is the room.
    # Excalidraw's docs say the image has no analytics, though its page loads Simple Analytics'
    # script: the script is given no address.
    entrypoint:
      - sh
      - -c
      - |
        cd /usr/share/nginx/html
        sed -i 's#"https://oss-collab.excalidraw.com"#location.origin#g' assets/index-*.js
        sed -i 's#https://scripts.simpleanalyticscdn.com/latest.js##' index.html
        exec /docker-entrypoint.sh nginx -g 'daemon off;'
    configs:
      - source: nginx
        target: /etc/nginx/conf.d/default.conf
    # The image's own check asks localhost, which is ::1 first, where nginx listens only with the
    # file it was packaged with.
    healthcheck:
      test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1"]
    depends_on:
      - room

  # Excalidraw's collaboration server: it relays a session's changes, encrypted in the browsers
  # with the key in the link's #, which never reaches it, and keeps nothing.
  room:
    image: excalidraw/excalidraw-room:sha-03ff435
    restart: unless-stopped

configs:
  nginx:
    content: |
      server {
        listen 80;
        root /usr/share/nginx/html;

        location /socket.io/ {
          proxy_pass http://room;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $$http_upgrade;
          proxy_set_header Connection "upgrade";
          proxy_set_header Host $$host;
          proxy_read_timeout 1h;
        }
      }
```

[compose.yaml](https://pethost.dev/templates/excalidraw/compose.yaml)[Открыть на GitHub](https://github.com/pethost-dev/templates/tree/main/excalidraw)

## [Еще в категории «Продуктивность»](https://pethost.dev/ru/templates/productivity/)

- [**Mealie**Менеджер рецептов и планировщик питания](https://pethost.dev/ru/templates/mealie/)
- [**Ryot**Трекер фильмов, сериалов, книг, игр и тренировок](https://pethost.dev/ru/templates/ryot/)
- [**Vikunja**Списки задач и проекты, с канбаном и диаграммой Ганта](https://pethost.dev/ru/templates/vikunja/)
- [**NocoDB**No-code база данных в виде электронных таблиц, с формами, канбан-досками, календарями и API](https://pethost.dev/ru/templates/nocodb/)
- [**Odoo**Бизнес-приложения в одной системе: CRM, продажи, выставление счетов, склад, сайт, проекты и многое другое](https://pethost.dev/ru/templates/odoo/)
- [**PLANKA**Канбан-доски для проектов и команд, которые обновляются у всех в реальном времени](https://pethost.dev/ru/templates/planka/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблоны](https://pethost.dev/ru/templates/)
- [О нас](https://pethost.dev/about/)
- [Документация](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/ru/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Плагин](https://github.com/pethost-dev/plugin)
- [Условия](https://pethost.dev/terms/)
- [Конфиденциальность](https://pethost.dev/privacy/)
- [Возвраты](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Базы данных

- [Postgres](https://pethost.dev/ru/postgres/)

Сравнения

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/ru/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/ru/blog/coolify-cloud-vs-dokploy-cloud/)
- [Цены Railway, Render и Fly.io](https://pethost.dev/ru/blog/railway-vs-render-vs-fly-io-pricing/)
- [Управляемый хостинг Docker Compose](https://pethost.dev/ru/blog/managed-docker-compose-hosting/)

Альтернативы

- [Альтернативы Railway](https://pethost.dev/ru/blog/railway-alternatives/)
- [Альтернативы Heroku](https://pethost.dev/ru/blog/heroku-alternatives/)
- [Альтернативы Dokploy](https://pethost.dev/ru/blog/dokploy-alternatives/)
- [Альтернативы Coolify](https://pethost.dev/ru/blog/coolify-alternatives/)
- [Альтернативы Render](https://pethost.dev/ru/blog/render-alternatives/)
- [Альтернативы Sliplane](https://pethost.dev/ru/blog/sliplane-alternatives/)
