Welcome to excalifork!
This repository collects forks of the very well known Excalidraw. Main objective of excalifork is to have a fast way to deploy and build images of Excalidraw that enable collaboration features.
Sources:
- https://gitlab.com/kiliandeca/excalidraw-fork
- https://github.com/alswl/excalidraw-storage-backend/tree/fork
- https://github.com/alswl/excalidraw/tree/fork
Why not using alswl https://github.com/alswl/excalidraw-collaboration? Mainly because
there are too many branches in their submodules and is not updated to use with v0.16 of
Excalidraw. In docker/excalifork/0001-v0.16.1.patch
you can find modifications applied
(mainly coming from https://github.com/alswl/excalidraw/tree/fork).
Following sections describe how to build and deploy excalifork using docker or kubernetes.
- Docker and ansible installed on your system
- A domain to issue SSL certificates
- Use provided Pipfile
- Clone the repository to your local machine:
git clone https://github.com/rizlas/excalifork.git
- Navigate to the ansible directory:
cd excalifork/ansible
- Build docker images:
ansible-playbook -i inventories/<select_inventory>/hosts.ini build.yml -e domain=yourdomain.tld
- Run the Docker container:
ansible-playbook -i inventories/<select_inventory>/hosts.ini docker.yml -e domain=yourdomain.tld -e acme_email=myacme@email.com
Access Excalifork by opening your browser and navigating to your FQDN.
- Kubernetes cluster configured
kubectl
installed
NOTE: In
ansible/templates/kubernetes_resources.yml.j2
only based resources are provided. Further tuning of those should be done based on the cluster used, or other specifications, that cannot be known a priori (e.g. ingress controller, cert-manager...)
- Select cluster:
export KUBECONFIG=path_to_your_kubeconfig
- Expose the service:
ansible-playbook -i inventories/<select_inventory>/hosts.ini kubernetes.yml
Access Excalifork by opening your browser and navigating to your FQDN.
- SSH access to your deployment target
- Create/update hosts.ini file in prod inventory with your deployment details.
TLS is highly suggested cause excalidraw use WSS protocol (do not use self signed certificates https://stackoverflow.com/questions/5312311/secure-websockets-with-self-signed-certificate). In docker-compose you'll find https://github.com/nginx-proxy/acme-companion.
Proxy is nginx with autobuild configuration thanks to https://github.com/nginx-proxy/nginx-proxy.
Feel free to make pull requests, fork, destroy or whatever you like most. Any criticism is more than welcome.
This project is licensed under the MIT License.