Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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