
alswl/excalidraw本镜像基于 Excalidraw 开源项目(alswl/excalidraw-collaboration)构建,是其分支版本,核心特性为集成自托管存储功能。Excalidraw 是一款轻量级协作绘图工具,支持手绘风格图形绘制,本镜像在此基础上解决了原生版本依赖第三方存储的问题,允许用户将绘图数据存储在本地或自定义服务器环境中,适用于需要数据本地化、隐私保护或自定义存储配置的协作场景。
| 场景类型 | 适用说明 |
|---|---|
| 企业/团队内部协作 | 需保护知识产权或敏感数据的团队,如产品设计、架构绘图、项目流程图协作 |
| 教育机构 | 师生协作绘图教学,数据本地存储避免外部服务依赖 |
| 隐私敏感场景 | ***、***等对数据隐私要求高的领域,确保绘图数据不经过第三方服务器 |
| 个人自托管 | 技术爱好者搭建个人协作绘图工具,自定义存储策略和访问控制 |
从 Docker Hub 或 GitHub Container Registry 拉取镜像(具体镜像名称以项目实际发布为准,此处假设镜像标签为 alswl/excalidraw-collaboration:latest):
bashdocker pull alswl/excalidraw-collaboration:latest
通过 docker run 命令快速启动容器,映射端口并挂载存储卷以持久化数据:
bashdocker run -d \ --name excalidraw-selfhosted \ -p 8080:8080 \ -v ./excalidraw-data:/app/storage \ # 挂载本地目录作为存储卷,持久化数据 -e PORT=8080 \ # 应用监听端口(需与容器端口映射一致) -e STORAGE_TYPE=local \ # 存储类型,可选 local 或其他支持的存储后端 -e STORAGE_PATH=/app/storage \ # 存储路径(容器内路径,需与挂载卷对应) --restart unless-stopped \ alswl/excalidraw-collaboration:latest
参数说明:
-p 8080:8080:端口映射(宿主机端口:容器内端口)-v ./excalidraw-data:/app/storage:挂载宿主机目录 ./excalidraw-data 到容器内 /app/storage,用于持久化存储绘图数据--restart unless-stopped:容器退出时自动重启(除非手动停止)以下为常用环境变量(具体以项目实际支持为准,可参考 GitHub 源码 文档):
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
PORT | 应用监听端口 | 8080 |
STORAGE_TYPE | 存储类型,支持 local(本地文件)等 | local |
STORAGE_PATH | 存储路径(容器内绝对路径) | /app/storage |
DATABASE_URL | 数据库连接 URL(若使用数据库存储) | (无,需手动配置) |
LOG_LEVEL | 日志级别(info/debug/warn) | info |
CORS_ALLOWED_ORIGINS | 允许跨域访问的源(逗号分隔) | *(开发环境,生产环境建议限制) |
对于复杂场景(如需集成数据库),可使用 docker-compose.yml 管理服务:
yamlversion: '3.8' services: excalidraw: image: alswl/excalidraw-collaboration:latest container_name: excalidraw-selfhosted ports: - "8080:8080" volumes: - ./excalidraw-data:/app/storage # 本地存储卷 environment: - PORT=8080 - STORAGE_TYPE=local - STORAGE_PATH=/app/storage - LOG_LEVEL=info restart: unless-stopped # (可选)若使用数据库存储,可添加数据库服务(如 PostgreSQL) # db: # image: postgres:14 # volumes: # - postgres-data:/var/lib/postgresql/data # environment: # - POSTGRES_PASSWORD=excalidraw_db_pass # - POSTGRES_USER=excalidraw_db_user # - POSTGRES_DB=excalidraw_db # restart: unless-stopped # volumes: # postgres-data: # 数据库数据卷(若启用数据库服务)
启动命令:
bashdocker-compose up -d
容器启动后,通过浏览器访问 http://<宿主机IP>:8080 即可打开 Excalidraw 应用。首次访问无需注册,直接创建绘图并自动保存至自托管存储。
为避免数据丢失,需定期备份挂载的存储卷目录(如 ./excalidraw-data)。迁移时,将备份目录复制到新服务器,重新挂载即可恢复数据。
./excalidraw-data)权限正确(建议设置 755,避免容器内权限不足)CORS_ALLOWED_ORIGINS,并通过反向代理(如 Nginx)配置 HTTPSDATABASE_URL 环境变量(格式参考数据库文档)

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务