excalidraw-swe/README.md

85 lines
2.4 KiB
Markdown
Raw Normal View History

2022-12-10 11:17:42 +00:00
# excalidraw-collaboration
One click to init an excalidraw with collaboration.
2022-12-10 14:08:01 +00:00
Snapshot:
![snapshot](./_assets/snapshot.png)
Demo:
2023-02-01 15:26:25 +00:00
[Live Demo](https://draw2.dmitrysamoylenko.in/)
A live room sample here: [live room](https://draw2.dmitrysamoylenko.in/#room=f8671f3fdef3ada5128c,Dyn8aqg8RII9rzUVIl9i7w)
Thanks a lot to @samoylenkodmitry.
2022-12-10 14:08:01 +00:00
Related docs:
2022-12-10 11:17:42 +00:00
- [Self hosted online collaborative drawing platform Excalidraw | Log4D](https://en.blog.alswl.com/2022/10/self-hosted-excalidraw/)
- [私有化在线协同画图平台 Excalidraw | Log4D]( https://blog.alswl.com/2022/10/self-hosted-excalidraw/ )
2022-12-10 14:08:01 +00:00
## Deploy
2022-12-10 14:08:01 +00:00
Clone, and run:
2022-12-10 11:17:42 +00:00
```
git clone git@github.com:alswl/excalidraw-collaboration.git
2022-12-10 14:08:01 +00:00
cd excalidraw-collaboration
2022-12-10 12:09:23 +00:00
docker-compose up # run the containers
open "http://localhost" # open browser, and you can using the collbration functions
2022-12-10 11:17:42 +00:00
```
2022-12-10 13:49:20 +00:00
2022-12-10 14:08:01 +00:00
Browse it:
2022-12-10 13:49:20 +00:00
- open http://127.0.0.1/ ,and you will see the excalidraw page
- Click the `Live Collaboration` button, and you will see the collaboration page
- Now you can share the collaboration page with your friends, and you can draw together.
2022-12-10 14:08:01 +00:00
About public network release:
2022-12-10 13:49:20 +00:00
if you want to release your own excalidraw in public network,
you should modify the `docker-compose.yaml` file,
Replace the `REACT_APP_HTTP_STORAGE_BACKEND_URL` and `REACT_APP_WS_SERVER_URL` with your own domain.
2023-11-22 00:40:53 +00:00
## Roadmap
- [x] collaboration feature works
- [x] No pre-build image, dynamic env
- [x] Upload Docker Hub image
- [ ] S3 storage support
- [ ] SSO support
- [ ] HTTPS Demo and docs
- [ ] Helm support
- [x] Online demo
- [ ] One click to deploy somewhere
## Q & A
### How to deploy on the cloud(aws etc)
The `docker-compose.yaml` file is for local deploy, if you want to deploy on the cloud,
you should prepare 2 Load Balancer(with HTTPS cert), one for websocket server, one for storage server.
The `REACT_APP_HTTP_STORAGE_BACKEND_URL` is for the Load Balancer URL(HTTPS) for storage,
and the `REACT_APP_WS_SERVER_URL` is for the Load Balancer URL(HTTPS) for websocket.
Here is a conversation about how to deploy on the aws: https://github.com/alswl/excalidraw-collaboration/issues/22
### generateKey problem
Error message:
```
TypeError: Cannot read properties of undefined (reading 'generateKey')
```
Why: The excalidraw is using crypto module of Javascript, the HTTPS is required.
How to solve: use HTTPS to access the page, or use http://localhost instead.