{"id":13604252,"url":"https://github.com/alswl/excalidraw-collaboration","last_synced_at":"2025-04-07T05:36:37.701Z","repository":{"id":65448732,"uuid":"576616267","full_name":"alswl/excalidraw-collaboration","owner":"alswl","description":"excalidraw with collaboration feature, self-hosting, and only one-click deploy","archived":false,"fork":false,"pushed_at":"2024-08-05T08:45:48.000Z","size":277,"stargazers_count":438,"open_issues_count":19,"forks_count":77,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-04T14:33:00.440Z","etag":null,"topics":["collaboration","diagramming","excalidraw","self-hosting"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alswl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-10T12:23:16.000Z","updated_at":"2025-04-01T12:04:15.000Z","dependencies_parsed_at":"2023-11-26T17:27:45.220Z","dependency_job_id":"27c181c3-a409-4f3e-92f3-9eacf03a442a","html_url":"https://github.com/alswl/excalidraw-collaboration","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alswl%2Fexcalidraw-collaboration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alswl%2Fexcalidraw-collaboration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alswl%2Fexcalidraw-collaboration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alswl%2Fexcalidraw-collaboration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alswl","download_url":"https://codeload.github.com/alswl/excalidraw-collaboration/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601378,"owners_count":20964861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collaboration","diagramming","excalidraw","self-hosting"],"created_at":"2024-08-01T19:00:42.318Z","updated_at":"2025-04-07T05:36:37.653Z","avatar_url":"https://github.com/alswl.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# excalidraw-collaboration\n\nDemo:\n\n[demo](https://excalidraw-production-4d27.up.railway.app/) on [Railway](https://railway.app?referralCode=HM_ZCO)\n\nOne click to deploy your excalidraw with collaboration.\n\n[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/PjQnHs?referralCode=HM_ZCO)\n\nSnapshot:\n\n![snapshot](./_assets/snapshot.png)\n\nRelated docs:\n\n- [Self hosted online collaborative drawing platform Excalidraw | Log4D](https://en.blog.alswl.com/2022/10/self-hosted-excalidraw/)\n- [私有化在线协同画图平台 Excalidraw | Log4D](https://blog.alswl.com/2022/10/self-hosted-excalidraw/)\n\n## Deploy (Basic)\n\nClone, and run:\n\n```\ngit clone git@github.com:alswl/excalidraw-collaboration.git\ncd excalidraw-collaboration/basic\n\ndocker-compose up # run the containers\n\nopen \"http://localhost\" # open browser, and you can using the collbration functions\n```\n\nBrowse it:\n\n- open http://127.0.0.1/ ,and you will see the excalidraw page\n- Click the `Live Collaboration` button, and you will see the collaboration page\n- Now you can share the collaboration page with your friends, and you can draw together.\n\nAbout public network release:\n\nif you want to release your own excalidraw in public network,\nyou should modify the `docker-compose.yaml` file,\nReplace the `VITE_APP_HTTP_STORAGE_BACKEND_URL` and `VITE_APP_WS_SERVER_URL` with your own domain.\n\n## Advanced mode\n\n### advanced-nginx\n\nFeatures:\n\n- Setup with one domain, and use nginx to proxy the requests to the backend services\n- HTTPS support\n\n### traefik (not part of this repo)\n\nA configurable docker-compose example for a traefik setup can be found here:\n\n\u003chttps://github.com/Someone0nEarth/excalidraw-self-hosted\u003e\n\n\n## Roadmap\n\n- [x] self-host\n- [x] collaboration feature works\n- [x] docker-compose support\n- [x] no pre-build image, dynamic env\n- [x] upload Docker Hub image\n- [ ] S3 storage support\n- [ ] SSO support\n- [x] HTTPS Demo and\n- [x] HTTPS docs\n- [ ] Helm support\n- [x] online demo\n- [x] one click to deploy Railway\n\n## Upgrade Guide\n\n- v0.15.0 -\u003e v0.16.1\n  - replace `REACT_APP_` env with `VITE_APP_`\n\n## Q \u0026 A\n\n### How to deploy on the cloud(aws etc)\n\nThe `docker-compose.yaml` file is for local deploy, if you want to deploy on the cloud,\nyou should prepare 2 Load Balancer(with HTTPS cert), one for websocket server, one for storage server.\n\nThe `VITE_APP_HTTP_STORAGE_BACKEND_URL` is for the Load Balancer URL(HTTPS) for storage,\nand the `VITE_APP_WS_SERVER_URL` is for the Load Balancer URL(HTTPS) for websocket.\n\nHere is a conversation about how to deploy on the aws: https://github.com/alswl/excalidraw-collaboration/issues/22\n\n### generateKey problem\n\nError message:\n\n```\nTypeError: Cannot read properties of undefined (reading 'generateKey')\n```\n\nWhy: The excalidraw is using crypto module of Javascript, the HTTPS is required.\n\nHow to solve: use HTTPS to access the page, or use http://localhost instead.\n\n## Contributors\n\n\u003ca href=\"https://github.com/alswl/excalidraw-collaboration/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=alswl/excalidraw-collaboration\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falswl%2Fexcalidraw-collaboration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falswl%2Fexcalidraw-collaboration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falswl%2Fexcalidraw-collaboration/lists"}