add overleaf service
This commit is contained in:
parent
b8adaee9d4
commit
cd224321df
6 changed files with 129 additions and 0 deletions
|
@ -19,3 +19,4 @@ All services below are implemented using Docker:
|
||||||
- Jitsi Meet (https://meet.jit.si)
|
- Jitsi Meet (https://meet.jit.si)
|
||||||
- RSS feed reader using [FreshRSS](https://miniflux.app/)
|
- RSS feed reader using [FreshRSS](https://miniflux.app/)
|
||||||
- Metrics using [Prometheus](https://prometheus.io/)
|
- Metrics using [Prometheus](https://prometheus.io/)
|
||||||
|
- Latex editor using [Overleaf](https://www.overleaf.com/)
|
||||||
|
|
|
@ -20,3 +20,4 @@
|
||||||
- {role: 'static', tags: 'static'}
|
- {role: 'static', tags: 'static'}
|
||||||
- {role: 'inbucket', tags: 'inbucket'}
|
- {role: 'inbucket', tags: 'inbucket'}
|
||||||
- {role: 'prometheus', tags: 'prometheus'}
|
- {role: 'prometheus', tags: 'prometheus'}
|
||||||
|
- {role: 'overleaf', tags: 'overleaf'}
|
||||||
|
|
4
ansible/roles/overleaf/meta/main.yml
Normal file
4
ansible/roles/overleaf/meta/main.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
||||||
|
- role: docker
|
||||||
|
- role: traefik
|
13
ansible/roles/overleaf/tasks/main.yml
Normal file
13
ansible/roles/overleaf/tasks/main.yml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
- name: Create service directory
|
||||||
|
file:
|
||||||
|
path: "{{ service_dir }}"
|
||||||
|
state: directory
|
||||||
|
- name: Copy Docker Compose script
|
||||||
|
template:
|
||||||
|
src: "{{ role_path }}/templates/docker-compose.yml.j2"
|
||||||
|
dest: "{{ service_dir }}/docker-compose.yml"
|
||||||
|
- name: Start the Docker Compose
|
||||||
|
docker_compose:
|
||||||
|
project_src: "{{ service_dir }}"
|
||||||
|
pull: true
|
||||||
|
remove_orphans: true
|
107
ansible/roles/overleaf/templates/docker-compose.yml.j2
Normal file
107
ansible/roles/overleaf/templates/docker-compose.yml.j2
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
version: '2.2'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
||||||
|
internal:
|
||||||
|
external: false
|
||||||
|
|
||||||
|
services:
|
||||||
|
sharelatex:
|
||||||
|
restart: always
|
||||||
|
image: sharelatex/sharelatex
|
||||||
|
container_name: sharelatex
|
||||||
|
networks:
|
||||||
|
- traefik
|
||||||
|
- internal
|
||||||
|
depends_on:
|
||||||
|
mongo:
|
||||||
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_started
|
||||||
|
links:
|
||||||
|
- mongo
|
||||||
|
- redis
|
||||||
|
stop_grace_period: 60s
|
||||||
|
volumes:
|
||||||
|
- {{ data_dir }}/overleaf/sharelatex_data:/var/lib/sharelatex
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.overleaf.entrypoints=websecure
|
||||||
|
- traefik.http.routers.overleaf.rule=Host(`latex.pim.kunis.nl`)
|
||||||
|
- traefik.http.routers.overleaf.tls=true
|
||||||
|
- traefik.http.routers.overleaf.tls.certresolver=letsencrypt
|
||||||
|
- treafik.http.routers.overleaf.service=overleaf
|
||||||
|
- traefik.http.services.overleaf.loadbalancer.server.port=80
|
||||||
|
- traefik.docker.network=traefik
|
||||||
|
environment:
|
||||||
|
SHARELATEX_APP_NAME: Overleaf Community Edition
|
||||||
|
|
||||||
|
SHARELATEX_MONGO_URL: mongodb://mongo:27017/sharelatex
|
||||||
|
|
||||||
|
# Same property, unfortunately with different names in
|
||||||
|
# different locations
|
||||||
|
SHARELATEX_REDIS_HOST: redis
|
||||||
|
REDIS_HOST: redis
|
||||||
|
|
||||||
|
ENABLED_LINKED_FILE_TYPES: 'project_file,project_output_file'
|
||||||
|
|
||||||
|
# Enables Thumbnail generation using ImageMagick
|
||||||
|
ENABLE_CONVERSIONS: 'true'
|
||||||
|
|
||||||
|
# Disables email confirmation requirement
|
||||||
|
EMAIL_CONFIRMATION_DISABLED: 'true'
|
||||||
|
|
||||||
|
# temporary fix for LuaLaTex compiles
|
||||||
|
# see https://github.com/overleaf/overleaf/issues/695
|
||||||
|
TEXMFVAR: /var/lib/sharelatex/tmp/texmf-var
|
||||||
|
|
||||||
|
## Set for SSL via nginx-proxy
|
||||||
|
#VIRTUAL_HOST: 103.112.212.22
|
||||||
|
|
||||||
|
SHARELATEX_SITE_URL: https://latex.pim.kunis.nl
|
||||||
|
# SHARELATEX_NAV_TITLE: Our ShareLaTeX Instance
|
||||||
|
# SHARELATEX_HEADER_IMAGE_URL: http://somewhere.com/mylogo.png
|
||||||
|
SHARELATEX_ADMIN_EMAIL: pim@kunis.nl
|
||||||
|
|
||||||
|
# SHARELATEX_LEFT_FOOTER: '[{"text": "Powered by <a href=\"https://www.sharelatex.com\">ShareLaTeX</a> 2016"},{"text": "Another page I want to link to can be found <a href=\"here\">here</a>"} ]'
|
||||||
|
# SHARELATEX_RIGHT_FOOTER: '[{"text": "Hello I am on the Right"} ]'
|
||||||
|
|
||||||
|
SHARELATEX_EMAIL_FROM_ADDRESS: "noreply@kunis.nl"
|
||||||
|
|
||||||
|
SHARELATEX_EMAIL_SMTP_HOST: "smtp.tweak.nl"
|
||||||
|
SHARELATEX_EMAIL_SMTP_PORT: 587
|
||||||
|
SHARELATEX_EMAIL_SMTP_USER: ""
|
||||||
|
SHARELATEX_EMAIL_SMTP_PASS: ""
|
||||||
|
# SHARELATEX_EMAIL_SMTP_TLS_REJECT_UNAUTH: true
|
||||||
|
# SHARELATEX_EMAIL_SMTP_IGNORE_TLS: false
|
||||||
|
# SHARELATEX_EMAIL_SMTP_NAME: '127.0.0.1'
|
||||||
|
# SHARELATEX_EMAIL_SMTP_LOGGER: true
|
||||||
|
# SHARELATEX_CUSTOM_EMAIL_FOOTER: "This system is run by department x"
|
||||||
|
|
||||||
|
mongo:
|
||||||
|
restart: always
|
||||||
|
image: mongo:4.4
|
||||||
|
container_name: mongo
|
||||||
|
networks:
|
||||||
|
- internal
|
||||||
|
expose:
|
||||||
|
- 27017
|
||||||
|
volumes:
|
||||||
|
- {{ data_dir }}/overleaf/mongo_data:/data/db
|
||||||
|
healthcheck:
|
||||||
|
test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
redis:
|
||||||
|
restart: always
|
||||||
|
image: redis:5
|
||||||
|
container_name: redis
|
||||||
|
networks:
|
||||||
|
- internal
|
||||||
|
expose:
|
||||||
|
- 6379
|
||||||
|
volumes:
|
||||||
|
- {{ data_dir }}/overleaf/redis_data:/data
|
3
ansible/roles/overleaf/vars/main.yml
Normal file
3
ansible/roles/overleaf/vars/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
service_name: overleaf
|
||||||
|
data_dir: "{{ base_data_dir}}/{{service_name}}"
|
||||||
|
service_dir: "{{ base_service_dir}}/{{service_name}}"
|
Reference in a new issue