自托管服务——共享白板:如何使用 Docker 安装自托管 Excalidraw?

如何使用 Docker 安装自托管 Excalidraw

简介

Excalidraw 提供了官方 Docker 镜像 excalidraw/excalidraw,让你可以在自己的域名下、Kubernetes、AWS ECS 等环境中自托管 Excalidraw 客户端。这个 Docker 镜像不包含任何分析和追踪库。

效果图:

先决条件

  • 已安装 Docker
  • 基本的终端/命令行操作知识
  • (可选)Docker Compose 用于更方便的部署

安装步骤

方法 1:直接使用官方镜像

最简单的方法是直接拉取并运行官方 Docker 镜像:

docker run --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest

这将在端口 5000 上启动 Excalidraw。你可以通过访问 http://localhost:5000 来使用它。

方法 2:构建并运行自己的镜像

如果你想自己构建镜像,可以按照以下步骤操作:

  1. 克隆 Excalidraw 仓库:
git clone https://github.com/excalidraw/excalidraw.git
cd excalidraw
  1. 构建 Docker 镜像:
docker build -t excalidraw/excalidraw .
  1. 运行构建的镜像:
docker run --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest

方法 3:使用 Docker Compose

创建一个 docker-compose.yml 文件:

version: '3'
services:
  excalidraw:
    image: excalidraw/excalidraw:latest
    container_name: excalidraw
    ports:
      - "5000:80"
    restart: unless-stopped

然后运行:

docker-compose up -d

访问 Excalidraw

安装完成后,打开浏览器并访问:http://localhost:5000

自定义端口

如果你想使用其他端口而不是 5000,只需修改映射关系。例如,要使用端口 8080:

docker run --rm -dit --name excalidraw -p 8080:80 excalidraw/excalidraw:latest

限制

目前,自托管的 Excalidraw 实例不支持分享和协作功能。Excalidraw 团队正在努力提供一个功能完善的自托管解决方案。

持久化数据

Excalidraw 的数据主要存储在浏览器的本地存储中。Docker 容器本身不需要持久化存储来保存用户创建的图表。

故障排除

  1. 如果无法访问 Excalidraw,请检查端口是否被其他服务占用。
  2. 确保 Docker 服务正在运行。
  3. 检查容器状态:docker psdocker logs excalidraw

更新 Excalidraw

要更新到最新版本的 Excalidraw:

# 拉取最新镜像
docker pull excalidraw/excalidraw:latest

# 停止并移除旧容器
docker stop excalidraw
docker rm excalidraw

# 启动新容器
docker run --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest

如果使用 Docker Compose:

docker-compose pull
docker-compose up -d