Add files via upload
This commit is contained in:
parent
9c385e3913
commit
0beddefac0
5 changed files with 361 additions and 0 deletions
1
host_overleaf
Normal file
1
host_overleaf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
134.102.55.230
|
31
install_docker.yaml
Normal file
31
install_docker.yaml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
---
|
||||||
|
- name: install docker as systemd plus add a protainer web
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: remove other files
|
||||||
|
include_tasks: yaml_sub/install_docker.yaml
|
||||||
|
|
||||||
|
- name: Create a volume
|
||||||
|
community.docker.docker_volume:
|
||||||
|
name: portainer_data
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create portainer container
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: portainerweb
|
||||||
|
image: portainer/portainer-ce
|
||||||
|
state: started
|
||||||
|
recreate: yes
|
||||||
|
restart_policy: always
|
||||||
|
published_ports:
|
||||||
|
- "8000:8000/tcp"
|
||||||
|
- "9443:9443/tcp"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- portainer_data:/data
|
||||||
|
|
||||||
|
|
||||||
|
|
280
install_overleaf.yaml
Normal file
280
install_overleaf.yaml
Normal file
|
@ -0,0 +1,280 @@
|
||||||
|
---
|
||||||
|
# TODO: Need to fix the mongo db init
|
||||||
|
|
||||||
|
- name: install overleaf
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
|
||||||
|
vars:
|
||||||
|
EMAIL__USERNAME: "{{ EUSER }}"
|
||||||
|
EMAIL__PASSWORD: "{{ EPASS }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Create network OverleafNet
|
||||||
|
community.docker.docker_network:
|
||||||
|
name: OverleafNet
|
||||||
|
|
||||||
|
- name: set smtpd_pre.conf
|
||||||
|
blockinfile:
|
||||||
|
path: /root/opensmtpd/smtpd_pre.conf
|
||||||
|
state: present
|
||||||
|
create: true
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0644"
|
||||||
|
block: |
|
||||||
|
listen on 0.0.0.0
|
||||||
|
listen on ::
|
||||||
|
|
||||||
|
table aliases file:/etc/smtpd/aliases
|
||||||
|
|
||||||
|
queue ttl 4d
|
||||||
|
bounce warn-interval 1h, 6h, 2d
|
||||||
|
smtp max-message-size 35M
|
||||||
|
|
||||||
|
table authinfo db:/etc/smtpd/authinfo.db
|
||||||
|
action default relay host "smtps://user@mailhost.neurotec.uni-bremen.de:465" auth <authinfo> tls no-verify
|
||||||
|
match from any for any action default
|
||||||
|
|
||||||
|
|
||||||
|
- name: Create a volume overleafsmtpd_spool
|
||||||
|
community.docker.docker_volume:
|
||||||
|
name: overleafsmtpd_spool
|
||||||
|
state: present
|
||||||
|
|
||||||
|
|
||||||
|
- name: Create OpenSMTPd
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: overleafsmtpd
|
||||||
|
image: wodby/opensmtpd
|
||||||
|
state: started
|
||||||
|
recreate: no
|
||||||
|
restart_policy: always
|
||||||
|
networks:
|
||||||
|
- name: OverleafNet
|
||||||
|
comparisons:
|
||||||
|
networks: strict
|
||||||
|
env:
|
||||||
|
RELAY_HOST: "XXX"
|
||||||
|
RELAY_PROTO: "smtps"
|
||||||
|
RELAY_PORT: "XXX"
|
||||||
|
RELAY_USER: "{{ EMAIL__USERNAME }}"
|
||||||
|
RELAY_PASSWORD: "{{ EMAIL__PASSWORD }}"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- "/root/opensmtpd/smtpd_pre.conf:/etc/gotpl/smtpd.conf.tmpl"
|
||||||
|
- "overleafsmtpd_spool:/var/spool/smtpd"
|
||||||
|
|
||||||
|
- name: Create a volume overleaf_redis
|
||||||
|
community.docker.docker_volume:
|
||||||
|
name: overleaf_redis
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create redis container
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: overleafredis
|
||||||
|
image: docker.io/library/redis:6.2
|
||||||
|
state: started
|
||||||
|
recreate: no
|
||||||
|
restart_policy: always
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
|
||||||
|
start_period: 20s
|
||||||
|
interval: 30s
|
||||||
|
retries: 5
|
||||||
|
timeout: 3s
|
||||||
|
command: --save 60 1 --loglevel warning
|
||||||
|
volumes:
|
||||||
|
- overleaf_redis:/data
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- name: OverleafNet
|
||||||
|
|
||||||
|
comparisons:
|
||||||
|
networks: strict
|
||||||
|
|
||||||
|
|
||||||
|
- name: Create a volume overleaf_mongo
|
||||||
|
community.docker.docker_volume:
|
||||||
|
name: overleaf_mongo
|
||||||
|
state: present
|
||||||
|
register: mongo_volume_creation
|
||||||
|
|
||||||
|
- name: Create a volume overleaf_mongo_cdb
|
||||||
|
community.docker.docker_volume:
|
||||||
|
name: overleaf_mongo_cdb
|
||||||
|
state: present
|
||||||
|
register: mongo_volume_creation
|
||||||
|
|
||||||
|
|
||||||
|
- name: Create mongo container
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: overleafmongo
|
||||||
|
image: mongo:5.0
|
||||||
|
state: started
|
||||||
|
recreate: no
|
||||||
|
restart_policy: always
|
||||||
|
healthcheck:
|
||||||
|
test: "mongosh --quiet --eval 'rs.hello().setName ? rs.hello().setName : rs.initiate({_id: \"overleaf\",members:[{_id: 0, host:\"overleafmongo:27017\"}]})'"
|
||||||
|
#echo 'db.stats().ok' | mongo localhost:27017/test --quiet
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
command: --replSet overleaf
|
||||||
|
volumes:
|
||||||
|
- "overleaf_mongo:/data/db"
|
||||||
|
- "overleaf_mongo_cdb:/data/configdb"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- name: OverleafNet
|
||||||
|
# - name: bridge
|
||||||
|
|
||||||
|
# ports:
|
||||||
|
# - "27017:27017"
|
||||||
|
|
||||||
|
comparisons:
|
||||||
|
networks: strict
|
||||||
|
|
||||||
|
# - name: Prepare mongodb
|
||||||
|
# community.docker.docker_container_exec:
|
||||||
|
# container: overleafmongo
|
||||||
|
# command: sh -c 'mongo --eval "rs.initiate({ _id: \"overleaf\", members: [ { _id: 0, host: \"overleafmongo:27017\" } ] })"'
|
||||||
|
# when: mongo_volume_creation.changed
|
||||||
|
|
||||||
|
- name: Create a volume overleaf_data
|
||||||
|
community.docker.docker_volume:
|
||||||
|
name: overleaf_data
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create a volume overleaf_tex2024
|
||||||
|
community.docker.docker_volume:
|
||||||
|
name: overleaf_tex2024
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create overleaf container
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: overleaf
|
||||||
|
image: sharelatex/sharelatex
|
||||||
|
state: started
|
||||||
|
recreate: no
|
||||||
|
restart_policy: always
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- "overleaf_data:/var/lib/overleaf"
|
||||||
|
- "overleaf_tex2024:/usr/local/texlive/2024"
|
||||||
|
- "overleaf_tex2024:/usr/local/texlive/2023"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- name: OverleafNet
|
||||||
|
|
||||||
|
comparisons:
|
||||||
|
networks: strict
|
||||||
|
|
||||||
|
env:
|
||||||
|
GIT_BRIDGE_ENABLED: "false"
|
||||||
|
GIT_BRIDGE_HOST: "git-bridge"
|
||||||
|
GIT_BRIDGE_PORT: "8000"
|
||||||
|
REDIS_HOST: "overleafredis"
|
||||||
|
REDIS_PORT: "6379"
|
||||||
|
V1_HISTORY_URL: "http://overleaf:3100/api"
|
||||||
|
OVERLEAF_MONGO_URL: "mongodb://overleafmongo/sharelatex"
|
||||||
|
OVERLEAF_REDIS_HOST: "overleafredis"
|
||||||
|
OVERLEAF_APP_NAME: "FB1 University of Bremen Overleaf"
|
||||||
|
ENABLED_LINKED_FILE_TYPES: "project_file,project_output_file"
|
||||||
|
ENABLE_CONVERSIONS: "true"
|
||||||
|
EMAIL_CONFIRMATION_DISABLED: "false"
|
||||||
|
OVERLEAF_BEHIND_PROXY: "true"
|
||||||
|
OVERLEAF_SECURE_COOKIE: "true"
|
||||||
|
OVERLEAF_SITE_URL: "https://overleaf.neuro.uni-bremen.de"
|
||||||
|
OVERLEAF_NAV_TITLE: "FB1 Overleaf"
|
||||||
|
|
||||||
|
OVERLEAF_ADMIN_EMAIL: "overleaf@neuro.uni-bremen.de"
|
||||||
|
OVERLEAF_EMAIL_FROM_ADDRESS: "overleaf@neuro.uni-bremen.de"
|
||||||
|
OVERLEAF_EMAIL_SMTP_HOST: "overleafsmtpd"
|
||||||
|
OVERLEAF_EMAIL_SMTP_PORT: "25"
|
||||||
|
OVERLEAF_EMAIL_SMTP_SECURE: "false"
|
||||||
|
OVERLEAF_EMAIL_SMTP_LOGGER: "true"
|
||||||
|
OVERLEAF_CUSTOM_EMAIL_FOOTER: "This system is run by the ITP"
|
||||||
|
|
||||||
|
- name: set nginx.conf
|
||||||
|
blockinfile:
|
||||||
|
path: /root/nginx/nginx.conf
|
||||||
|
state: present
|
||||||
|
create: true
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0644"
|
||||||
|
block: |
|
||||||
|
events {}
|
||||||
|
http {
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
server_name _;
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
}
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
ssl_certificate /certs/nginx_certificate.pem;
|
||||||
|
ssl_certificate_key /certs/nginx_key.pem;
|
||||||
|
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
|
||||||
|
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
|
||||||
|
server_tokens off;
|
||||||
|
client_max_body_size 50M;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://overleaf:80;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_read_timeout 3m;
|
||||||
|
proxy_send_timeout 3m;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- name: Create nginx container
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: overleafnginx
|
||||||
|
image: "nginx:stable-alpine"
|
||||||
|
state: started
|
||||||
|
recreate: no
|
||||||
|
restart_policy: always
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- "/root/nginx/key.pem:/certs/nginx_key.pem:ro"
|
||||||
|
- "/root/nginx/ca.pem:/certs/nginx_certificate.pem:ro"
|
||||||
|
- "/root/nginx/nginx.conf:/etc/nginx/nginx.conf:ro"
|
||||||
|
|
||||||
|
ports:
|
||||||
|
- "0.0.0.0:443:443"
|
||||||
|
- "0.0.0.0:80:80"
|
||||||
|
env:
|
||||||
|
NGINX_WORKER_PROCESSES: "4"
|
||||||
|
NGINX_WORKER_CONNECTIONS: "768"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- name: OverleafNet
|
||||||
|
|
||||||
|
comparisons:
|
||||||
|
networks: strict
|
||||||
|
|
||||||
|
- name: Post install info (1)
|
||||||
|
debug:
|
||||||
|
msg: "Restart Overleaf docker container"
|
||||||
|
|
||||||
|
- name: Post install info (2)
|
||||||
|
debug:
|
||||||
|
msg: "Don't forget to place the cerificates onto the server"
|
||||||
|
|
||||||
|
- name: Post install info (3)
|
||||||
|
debug:
|
||||||
|
msg: "Initial Overleaf user: got https://overleaf.neuro.uni-bremen.de/launchpad "
|
||||||
|
|
||||||
|
|
||||||
|
|
14
upgrade_tex.yaml
Normal file
14
upgrade_tex.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
- name: update tex
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Update tex
|
||||||
|
community.docker.docker_container_exec:
|
||||||
|
container: overleaf
|
||||||
|
command: /bin/bash -c "cd /root ; rm -rf install-tl-* ; curl -L -o tl-unx.tar.gz https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz ; tar -xzf tl-unx.tar.gz; cd install-tl-*; perl ./install-tl --no-interaction "
|
||||||
|
|
||||||
|
|
||||||
|
|
35
yaml_sub/install_docker.yaml
Normal file
35
yaml_sub/install_docker.yaml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
- name: set myrepo
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/yum.repos.d/myrepo.repo
|
||||||
|
state: present
|
||||||
|
create: true
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0666"
|
||||||
|
block: |
|
||||||
|
[docker-ce-stable]
|
||||||
|
name=Docker CE Stable - $basearch
|
||||||
|
baseurl=https://download.docker.com/linux/fedora/$releasever/$basearch/stable
|
||||||
|
enabled=0
|
||||||
|
gpgcheck=1
|
||||||
|
gpgkey=https://download.docker.com/linux/fedora/gpg
|
||||||
|
|
||||||
|
- name: install docker rpm
|
||||||
|
ansible.builtin.dnf:
|
||||||
|
name: "docker-ce,docker-ce-cli,docker-ce-rootless-extras,docker-buildx-plugin,docker-compose-plugin,python3,python3-pip,python3-requests"
|
||||||
|
state: latest
|
||||||
|
update_cache: true
|
||||||
|
skip_broken: true
|
||||||
|
nobest: false
|
||||||
|
allowerasing: true
|
||||||
|
enablerepo: "docker-ce-stable"
|
||||||
|
|
||||||
|
- name: make sure docker service unit is started
|
||||||
|
ansible.builtin.systemd_service:
|
||||||
|
state: started
|
||||||
|
name: docker
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue