From 909150f2b0765b63b040ea2980107849c97d68a6 Mon Sep 17 00:00:00 2001 From: Elias Fink Date: Sun, 28 Sep 2025 20:33:48 +0200 Subject: [PATCH] Added overleaf service --- overleaf/Dockerfile | 5 ++ overleaf/build-images.sh | 13 ++++ overleaf/compose.yml | 71 +++++++++++++++++++++ overleaf/config/mongodb-init-replica-set.js | 3 + 4 files changed, 92 insertions(+) create mode 100644 overleaf/Dockerfile create mode 100644 overleaf/build-images.sh create mode 100644 overleaf/compose.yml create mode 100644 overleaf/config/mongodb-init-replica-set.js diff --git a/overleaf/Dockerfile b/overleaf/Dockerfile new file mode 100644 index 0000000..e7ed8c8 --- /dev/null +++ b/overleaf/Dockerfile @@ -0,0 +1,5 @@ +FROM sharelatex/sharelatex:main + +RUN tlmgr update --self && \ + tlmgr install scheme-full && \ + tlmgr path add \ No newline at end of file diff --git a/overleaf/build-images.sh b/overleaf/build-images.sh new file mode 100644 index 0000000..bde1b54 --- /dev/null +++ b/overleaf/build-images.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e + +cd /overleaf +git pull + +cd server-ce +make build-base +make build-community + +cd /services/overleaf +docker compose up -d --build \ No newline at end of file diff --git a/overleaf/compose.yml b/overleaf/compose.yml new file mode 100644 index 0000000..974b847 --- /dev/null +++ b/overleaf/compose.yml @@ -0,0 +1,71 @@ +services: + overleaf: + build: . + container_name: overleaf + restart: always + depends_on: + overleaf_db: + condition: service_healthy + overleaf_redis: + condition: service_healthy + environment: + ENABLE_CONVERSIONS: true + OVERLEAF_ADMIN_EMAIL: mail@eliasfink.de + OVERLEAF_APP_NAME: EFtex + OVERLEAF_RIGHT_FOOTER: '[{"text": "Datenschutz", "url" : "https://privacy.eliasfink.de"}]' + OVERLEAF_EMAIL_FROM_ADDRESS: no-reply@eliasfink.de + OVERLEAF_EMAIL_SMTP_HOST: mxe92f.netcup.net + OVERLEAF_EMAIL_SMTP_PORT: 465 + OVERLEAF_EMAIL_SMTP_SECURE: true + OVERLEAF_EMAIL_SMTP_USER: no-reply@eliasfink.de + OVERLEAF_EMAIL_SMTP_PASS: ${EMAIL_PASSWORD} + OVERLEAF_HEADER_IMAGE_URL: https://static.eliasfink.de/img/logo/logo.svg + OVERLEAF_MONGO_URL: mongodb://overleaf_db/overleaf + OVERLEAF_REDIS_HOST: overleaf_redis + OVERLEAF_SITE_LANGUAGE: de + OVERLEAF_SITE_URL: https://tex.eliasfink.de + REDIS_HOST: overleaf_redis + networks: + - default + - traefik + stop_grace_period: 60s + volumes: + - ./data:/var/lib/overleaf + + overleaf_db: + image: mongo:6.0 + container_name: overleaf_db + restart: always + command: --replSet overleaf + environment: + MONGO_INITDB_DATABASE: overleaf + extra_hosts: + - overleaf_db:127.0.0.1 + healthcheck: + test: echo 'db.stats().ok' | mongosh localhost:27017/test --quiet + interval: 30s + timeout: 10s + retries: 3 + networks: + - default + volumes: + - ./db:/data/db + - ./config/mongodb-init-replica-set.js:/docker-entrypoint-initdb.d/mongodb-init-replica-set.js + + overleaf_redis: + image: redis:6.2 + container_name: overleaf_redis + restart: always + healthcheck: + test: redis-cli ping + interval: 30s + timeout: 10s + retries: 3 + networks: + - default + volumes: + - ./cache:/data + +networks: + traefik: + external: true \ No newline at end of file diff --git a/overleaf/config/mongodb-init-replica-set.js b/overleaf/config/mongodb-init-replica-set.js new file mode 100644 index 0000000..a7e0d42 --- /dev/null +++ b/overleaf/config/mongodb-init-replica-set.js @@ -0,0 +1,3 @@ +/* eslint-disable no-undef */ + +rs.initiate({ _id: 'overleaf', members: [{ _id: 0, host: 'overleaf_db:27017' }] }) \ No newline at end of file