![Logo](logo-2.png) # k8s-overleaf Overleaf deployment for kubernetes environment. This deployment has been tested for a microk8s cluster with NFS for permanent storage. ## Deployment ### Requirements: - K8s cluster - Kubectl - Helm ### Build the Docker image (optional) A version of the modified [Overleaf](https://github.com/overleaf/overleaf) image that is required for this deployment has been uploaded to [Docker Hub](https://hub.docker.com/r/abompotas/overleaf). However, you can build you own image using the Dockerfile in the [overleaf directory](/overleaf). In this case, don't forget to push the new image to a registry edit the [overleaf-deployment.yaml](/deployment/overleaf/overleaf-deployment.yaml) to point the correct image. Example: ``` # Build and tag the image cd overleaf docker build -t harbor.reymota.es/overleaf/k8s-overleaf:5 . # Push the image to Docker Hub docker push harbor.reymota.es/overleaf/k8s-overleaf:5 ``` ### Deploy the application Simply run the [deploy.sh](/deployment/deploy.sh) script. Example: ``` cd deployment ./deploy.sh ``` ### Install LaTeX packages (Optional) 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 algorithms tlmgr install algorithmicx tlmgr install apacite ``` ### Notas de la instalación hecha por C.Rey El fichero overleaf-variables.yaml, le falta una a al comienzo, en ***apiVersion: v1*** Los values.yaml tanto de mongo como de redis, hay que ponerles el tag latest a ambos ya que la que viene por defecto no funciona. Para que los comandos ```tlmgr``` de arriba funcionen, hay que ejecutar la shell ```update-tlmgr-latest.sh```, para lo cual primero hay que copiarla al contenedor con: kubectl -n overleave cp update-tlmgr-latest.sh :/overleaf y ejecutar la shell. Después de esto ya se pueden ejecutar los comandos de arriba. >[Fuente](https://tug.org/texlive/upgrade.html) Yo, en lugar de lo de arriba, he ejecutado: tlmgr install scheme-full ## Mongo-express La fuente está [aquí](https://github.com/mongo-express/mongo-express) ## Diagnósticos para ver los registros web, por ejemplo lo relativo a emails: kubectl -n overleaf exec -it deploy/sharelatex -- tail -f /var/log/overleaf/web.log Creo un nuevo Dockerfile con la extensión cep (Community Edition Plus) Contiene la versión 5, quitando la comprobación de variables SHARELATEX e incluyendo el paquete completo de LaTeX: wget "https://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh" \ && sh update-tlmgr-latest.sh \ && tlmgr --version # enable tlmgr to install ctex tlmgr update texlive-scripts # update packages tlmgr update --all # install all the packages tlmgr install scheme-full Con esto funciona correctamente. Para crear la imagen hay que make y luego make push