Installation
Currently our project itself hasn’t been hosted so what you’ll find here is a way to use this locally.
With that being said, let’s start the installation.
Clone the github repository
git clone https://github.com/razzat008/collaboratex
cd collaboratex
Dependencies
Grab the required dependencies for the servers:
# for the gin server
cd server
go mod tidy
# for the yjs-server
cd yjs-server
pnpm install
and the client:
cd collaboratex-frontend
pnpm install
Setting up Docker
We have separate containers for each database/service. (don’t ask us why) Make sure you have docker installed and privileges setup beforehand.
sudo pacman -S docker
# start the docker daemon
sudo systemctl start --now docker.service
# check if the daemon is running
systemctl status docker.service
docker-minio.yml
This docker image is responsible for launching up an instance of MinIO server. MinIO server is used to store assets like BLOBs, images(for now).
Make sure to add the .env variables before spinning up an instance.
This is default for now.
MINIO_PASS=minioadmin
MINIO_USERNAME=minioadmin
Run the container
docker compose -f docker-minio.yml up -d
docker-redis.yml
This is for running up a redis-server docker instance.
docker compose -f docker-redis.yml up -d
docker-compose.yml
This is to spin-up the MongoDB server.
docker compose -f docker-compose.yml up -d
docker-texlive.yml
This is for running the actual compilation of LaTeX files into pdf.
docker compose -f docker-texlive.yml up -d
Dockerfile
This is for installing the necessary, dependencies and libraries for running the latexmk(for pdf compilation).
docker compose -f Dockerfile up -d