---
title: "Excalidraw com Docker Compose e hospedagem em um clique"
description: "O Excalidraw é um quadro branco open source para diagramas e esboços à mão, com colaboração ao vivo. Alternativa ao Miro para auto-hospedar em um clique."
---

[← Todos os templates](https://pethost.dev/pt/templates/) · [Produtividade](https://pethost.dev/pt/templates/productivity/)

# Faça deploy de Excalidraw em um clique

Quadro branco para diagramas e esboços em estilo desenhado à mão, com colaboração ao vivo

Uma alternativa auto-hospedada para Miro, FigJam e Lucidchart.

[Fazer deploy no Pethost](https://console.pethost.dev/?template=excalidraw)

## O que é Excalidraw?

O Excalidraw é um quadro branco virtual de código aberto em que formas, setas e textos parecem desenhados à mão. As pessoas esboçam nele diagramas de arquitetura, fluxogramas e wireframes, em reuniões ou para documentação, onde outros abririam o Miro ou o Lucidchart. Ele tem tela infinita, quadros, imagens, ponteiro de laser e modo escuro. A ferramenta Mermaid para Excalidraw transforma código Mermaid em formas editáveis, e um desenho é exportado como imagem PNG ou SVG ou salvo como arquivo .excalidraw para abrir de novo. Bibliotecas públicas de formas prontas, de ícones de nuvem a kits de UI, são adicionadas com um clique.

Este template roda a imagem do próprio Excalidraw junto com o servidor de colaboração dele, para que várias pessoas desenhem na mesma tela ao mesmo tempo. Clicar em Compartilhar e depois em Iniciar sessão gera um link que contém a chave da sessão, e os navegadores criptografam cada alteração antes que ela chegue ao servidor. Não há contas e o servidor não guarda desenhos: a tela de cada pessoa fica no navegador dela, e o app continua funcionando offline depois de carregado. O template também deixa de fora o script do Simple Analytics que a página da imagem carrega.

Os poréns: qualquer pessoa que tenha o endereço pode usá-lo. Os links de somente leitura (Exportar link) e as ferramentas de IA, Texto para diagrama e Wireframe para código, só funcionam no excalidraw.com, cujos servidores recusam outros sites. A cena e as imagens de uma sessão também ficam salvas, criptografadas, no Firebase do excalidraw.com, e é assim que o link dela a abre de novo mais tarde. E as páginas carregam as fontes do CDN do Excalidraw.

## Hospedagem de Excalidraw no Pethost

1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
2. Novo projeto abre em Excalidraw, e você clica em Criar projeto.
3. Em um ou dois minutos Excalidraw está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
4. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

## Perguntas sobre Excalidraw

**O Excalidraw é gratuito e de código aberto?**

Sim. O Excalidraw está sob a licença MIT, com o código no GitHub. O Excalidraw+, da mesma equipe, é uma versão hospedada por US$ 6 por usuário por mês que adiciona armazenamento na nuvem, cenas e pastas ilimitadas, permissões de acesso, apresentações e comentários.

**Onde o Excalidraw salva meus desenhos?**

No seu navegador. O Excalidraw salva a tela enquanto você desenha, no armazenamento local do navegador, e nada chega ao servidor. Outro navegador ou dispositivo começa vazio, e limpar os dados do site exclui o desenho, então guarde o que importa com Salvar como... → Salvar em um arquivo: a opção Abrir carrega o arquivo .excalidraw de novo.

**Várias pessoas podem desenhar juntas em um Excalidraw auto-hospedado?**

Sim, com este template. Clique em Compartilhar, depois em Iniciar sessão, e envie o link: quem abrir o link desenha na mesma tela e vê os ponteiros dos outros. A sessão é criptografada de ponta a ponta, com a chave na parte do link depois do #, que um navegador nunca envia a um servidor. A imagem Docker do Excalidraw não faz isso sozinha, então o template adiciona o servidor de colaboração do Excalidraw e aponta as páginas para ele.

**Por que o botão Exportar link falha em um Excalidraw auto-hospedado?**

Os links de somente leitura são guardados pelo servidor do excalidraw.com, que só os aceita do próprio excalidraw.com, então aqui o botão mostra um erro. Em vez disso, compartilhe uma sessão ao vivo ou o arquivo .excalidraw.

**O Excalidraw consegue transformar código Mermaid em um diagrama?**

Sim. A opção Mais ferramentas → Mermaid para Excalidraw recebe código Mermaid e o insere como formas e setas que você pode editar. Fluxogramas e diagramas de sequência, de classes e de entidade-relacionamento são convertidos; outros tipos entram como imagem. A conversão roda no navegador, ao contrário da ferramenta de IA Texto para diagrama, que só funciona no excalidraw.com.

**O Excalidraw funciona offline?**

Sim. Depois que a página carrega, o service worker dela guarda o app, então ele abre e você desenha sem conexão, e o Chrome ou o Edge podem instalá-lo como app. Uma sessão ao vivo precisa de conexão.

**De quanta memória e disco Excalidraw precisa?**

O Excalidraw é muito leve: cerca de 40 MB de memória com o servidor de colaboração, e não guarda nada, já que os desenhos ficam nos navegadores. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

## Arquivo Docker Compose de Excalidraw

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.

**Containers:** 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)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/excalidraw)

## [Mais em Produtividade](https://pethost.dev/pt/templates/productivity/)

- [**Mealie**Um gerenciador de receitas e planejador de refeições](https://pethost.dev/pt/templates/mealie/)
- [**Ryot**Um app para acompanhar filmes, séries, livros, jogos e treinos](https://pethost.dev/pt/templates/ryot/)
- [**Vikunja**Listas de tarefas e projetos, com visões kanban e Gantt](https://pethost.dev/pt/templates/vikunja/)
- [**NocoDB**Um banco de dados no-code: tabelas como planilhas, formulários, quadros kanban e calendários, com uma API](https://pethost.dev/pt/templates/nocodb/)
- [**Odoo**Apps de negócios num só lugar: CRM, vendas, faturamento, inventário, site, projetos e mais](https://pethost.dev/pt/templates/odoo/)
- [**PLANKA**Quadros kanban para projetos e equipes, atualizados para todos em tempo real](https://pethost.dev/pt/templates/planka/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

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

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas ao Railway](https://pethost.dev/pt/blog/railway-alternatives/)
- [Alternativas ao Heroku](https://pethost.dev/pt/blog/heroku-alternatives/)
- [Alternativas ao Dokploy](https://pethost.dev/pt/blog/dokploy-alternatives/)
- [Alternativas ao Coolify](https://pethost.dev/pt/blog/coolify-alternatives/)
- [Alternativas ao Render](https://pethost.dev/pt/blog/render-alternatives/)
- [Alternativas ao Sliplane](https://pethost.dev/pt/blog/sliplane-alternatives/)
