Overleaf deployment for kubernetes environment.
This deployment has been tested for a microk8s cluster with LocalPVs.
A version of the modified Overleaf image that is required for this deployment
has been uploaded to Docker Hub.
docker pull abompotas/overleaf
However, you can build you own image using the Dockerfile in the overleaf directory.
In this case, don't forget to push the new image to a registry edit the
overleaf-deployment.yaml to point the correct image.
If you are looking to switch from using local Persistent Volumes (LocalPVs) to NFS (Network File System) for permanent storage, please refer to k8s-overleaf.
Example:
# Build and tag the image
docker build -t abompotas/k8s-overleaf:5 ./deployment
# Push the image to Docker Hub
docker push abompotas/k8s-overleaf:5
Simply run the deploy.sh script.
Example:
cd deployment
./deploy.sh
Overleaf's default installation is missing some of the most common packages. These can installed by modifying the post-installation scripts of the sharelatex image or by executing commands directly inside the container.
Example:
tlmgr install collection-latexrecommended
tlmgr install collection-fontsrecommended
tlmgr install collection-latexextra
tlmgr install collection-algorithms
tlmgr install collection-algorithmicx
The current PersistentVolumeClaims (PVCs) are designed with the assumption that the machine has at least 20GB of space available. If you need to scale up or down to fit your machine's capacity, you can adjust the storage sizes by modifying the following files:
deployment/mongo/values.yaml
at line 1207deployment/redis/values.yaml
at line 511deployment/overleaf/overleaf-pvc.yaml
at line 12
After adjusting the PVC sizes, you must also modify the PersistentVolumes (PVs) in deployment/overleaf/overleaf-pv.yaml
to ensure compatibility and smooth operation of the application.
This project aims to provide an out-of-the-box solution, allowing you to quickly deploy a fully functional K8S-Based Overleaf. We have successfully deployed using current image and MicroK8s v1.31.2 + ubuntu20.04!