add overleaf stack
This commit is contained in:
parent
b6feaa023c
commit
65672c72b0
3 changed files with 129 additions and 0 deletions
|
@ -10,3 +10,4 @@
|
|||
- {role: mastodon, tags: mastodon}
|
||||
- {role: freshrss, tags: freshrss}
|
||||
- {role: hedgedoc, tags: hedgedoc}
|
||||
- {role: overleaf, tags: overleaf}
|
||||
|
|
113
ansible/roles/overleaf/docker-stack.yml.j2
Normal file
113
ansible/roles/overleaf/docker-stack.yml.j2
Normal file
|
@ -0,0 +1,113 @@
|
|||
# vi: ft=yaml
|
||||
version: '3'
|
||||
networks:
|
||||
traefik:
|
||||
external: true
|
||||
overleaf:
|
||||
|
||||
services:
|
||||
sharelatex:
|
||||
image: sharelatex/sharelatex
|
||||
networks:
|
||||
- traefik
|
||||
- overleaf
|
||||
depends_on:
|
||||
- overleaf-mongodb
|
||||
- overleaf-redis
|
||||
stop_grace_period: 60s
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /mnt/data/overleaf/sharelatex_data
|
||||
target: /var/lib/sharelatex
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- "node.labels.overleaf == true"
|
||||
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://overleaf-mongodb:27017/sharelatex
|
||||
|
||||
# Same property, unfortunately with different names in
|
||||
# different locations
|
||||
SHARELATEX_REDIS_HOST: overleaf-redis
|
||||
REDIS_HOST: overleaf-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"
|
||||
|
||||
overleaf-mongodb:
|
||||
image: mongo:4.4
|
||||
networks:
|
||||
- overleaf
|
||||
expose:
|
||||
- 27017
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /mnt/data/overleaf/mongo_data
|
||||
target: /data/db
|
||||
healthcheck:
|
||||
test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- "node.labels.overleaf == true"
|
||||
|
||||
overleaf-redis:
|
||||
image: redis:5
|
||||
networks:
|
||||
- overleaf
|
||||
expose:
|
||||
- 6379
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /mnt/data/overleaf/redis_data
|
||||
target: /data
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- "node.labels.overleaf == true"
|
15
ansible/roles/overleaf/tasks/main.yml
Normal file
15
ansible/roles/overleaf/tasks/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
- name: Create working directory
|
||||
file:
|
||||
path: /srv/overleaf
|
||||
state: directory
|
||||
|
||||
- name: Copy Docker stack file
|
||||
template:
|
||||
src: "{{ role_path }}/docker-stack.yml.j2"
|
||||
dest: /srv/overleaf/docker-stack.yml
|
||||
|
||||
- name: Deploy Docker stack
|
||||
docker_stack:
|
||||
name: overleaf
|
||||
compose:
|
||||
- /srv/overleaf/docker-stack.yml
|
Reference in a new issue