Adds overleaf

This commit is contained in:
2026-06-02 22:38:19 +02:00
parent a8beecdbd5
commit 3ad5df938e
12 changed files with 117 additions and 4 deletions
+8 -2
View File
@@ -1,10 +1,16 @@
#!/bin/bash #!/bin/bash
set -o errexit -o pipefail -o noclobber -o nounset -o errtrace -o functrace set -o errexit -o pipefail -o noclobber -o nounset -o errtrace -o functrace
users=(arr gitea homeassistant immich jdownloader kiwix komga navidrome nextcloud nginx pairdrop paperless pihole qbittorrent synapse wallabag) users=(arr gitea homeassistant immich jdownloader kiwix komga navidrome nextcloud nginx overleaf pairdrop paperless pihole qbittorrent synapse wallabag)
pids=()
for user in "${users[@]}"; do for user in "${users[@]}"; do
readarray -t units <<< "$(systemctl --user -M "${user}@" list-units | grep container | grep running | grep service | awk '{print $1}')" || true readarray -t units <<< "$(systemctl --user -M "${user}@" list-units | grep container | grep running | grep service | awk '{print $1}')" || true
if [[ "${#units[@]}" -gt 0 && -n "${units[0]:-}" ]]; then if [[ "${#units[@]}" -gt 0 && -n "${units[0]:-}" ]]; then
systemctl --user -M "${user}@" stop "${units[@]}" echo "Stopping ${user} containers..."
systemctl --user -M "${user}@" stop "${units[@]}" &
pids+=($!)
fi fi
done done
for pid in "${pids[@]}"; do
wait "${pid}"
done
+1 -1
View File
@@ -41,7 +41,7 @@ files_template="
files: files:
- path: /var/lib/systemd/linger/__USER__ - path: /var/lib/systemd/linger/__USER__
mode: 0644" mode: 0644"
users=('arr' 'gitea' 'homeassistant' 'immich' 'jdownloader' 'kiwix' 'komga' 'navidrome' 'nextcloud' 'nginx' 'pairdrop' 'paperless' 'pihole' 'qbittorrent' 'synapse' 'tga' 'wallabag') users=('arr' 'gitea' 'homeassistant' 'immich' 'jdownloader' 'kiwix' 'komga' 'navidrome' 'nextcloud' 'nginx' 'overleaf' 'pairdrop' 'paperless' 'pihole' 'qbittorrent' 'synapse' 'tga' 'wallabag')
mkdir -p users mkdir -p users
for user in "${users[@]}"; do for user in "${users[@]}"; do
echo "Generating ${user}" echo "Generating ${user}"
+2
View File
@@ -0,0 +1,2 @@
overleaf-redis-password=LGj37FMineZaiSN24ce2vTbCMtT6Axn4
overleaf-session-secret=eM4MbtPCqrZ7h9quiEhWeRQVgEekazMm
+1 -1
View File
@@ -6,7 +6,7 @@ setsebool -P openvpn_run_unconfined on
semanage fcontext -a -t container_file_t "/mnt/nas(/.*)?" semanage fcontext -a -t container_file_t "/mnt/nas(/.*)?"
restorecon -vR /mnt/nas restorecon -vR /mnt/nas
users=("gitea" "homeassistant" "immich" "jdownloader" "kiwix" "komga" "navidrome" "nextcloud" "nginx" "pairdrop" "paperless" "pihole" "qbittorrent" "synapse" "wallabag") users=("gitea" "homeassistant" "immich" "jdownloader" "kiwix" "komga" "navidrome" "nextcloud" "nginx" "overleaf" "pairdrop" "paperless" "pihole" "qbittorrent" "synapse" "wallabag")
for user in "${users[@]}"; do for user in "${users[@]}"; do
chown -R "${user}:${user}" "/var/home/${user}" chown -R "${user}:${user}" "/var/home/${user}"
secrets_file="/var/home/${user}/.secrets" secrets_file="/var/home/${user}/.secrets"
+1
View File
@@ -13,6 +13,7 @@ ignition:
- local: users/navidrome.ign - local: users/navidrome.ign
- local: users/nextcloud.ign - local: users/nextcloud.ign
- local: users/nginx.ign - local: users/nginx.ign
- local: users/overleaf.ign
- local: users/pairdrop.ign - local: users/pairdrop.ign
- local: users/paperless.ign - local: users/paperless.ign
- local: users/pihole.ign - local: users/pihole.ign
+2
View File
@@ -0,0 +1,2 @@
[Volume]
VolumeName=overleaf-data
@@ -0,0 +1,26 @@
[Unit]
Description=Overleaf MongoDB container
[Container]
AutoUpdate=registry
Command="--replSet overleaf"
ContainerName=overleaf-database
Environment=MONGO_INITDB_DATABASE=sharelatex
Environment=TZ=Europe/Zurich
HealthCheck="echo 'db.stats().ok' | mongosh localhost:27017/test --quiet"
HealthCheckInterval=10s
HealthCheckTimeout=10s
HealthCheckRetries=5
Image=docker.io/mongo:8.0
Label=io.containers.autoupdate=registry
Pod=overleaf.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=overleaf-database-data.volume:/data/db
Volume=/var/mnt/nas/containers/overleaf/storage/shared/mongodb-init-replica-set.js:/docker-entrypoint-initdb.d/mongodb-init-replica-set.js
[Service]
Restart=always
[Install]
WantedBy=default.target
@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/overleaf/storage/redis-config
Driver=local
Options=bind
Type=none
VolumeName=overleaf-redis-config
@@ -0,0 +1,2 @@
[Volume]
VolumeName=overleaf-redis-data
@@ -0,0 +1,20 @@
[Unit]
Description=Overleaf Redis container
[Container]
AutoUpdate=registry
ContainerName=overleaf-redis
Environment=TZ=Europe/Zurich
Exec=/bin/sh -c 'redis-server --appendonly yes --requirepass $${REDIS_PASSWORD}'
Image=docker.io/redis:latest
Label=io.containers.autoupdate=registry
Pod=overleaf.pod
StartWithPod=true
Timezone=Europe/Zurich
Volume=overleaf-redis-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target
+44
View File
@@ -0,0 +1,44 @@
[Unit]
Description=Overleaf container
After=overleaf-database.container
After=overleaf-redis.container
Requires=overleaf-database.container
Requires=overleaf-redis.container
[Container]
AutoUpdate=registry
ContainerName=overleaf
Environment=EMAIL_CONFIRMATION_DISABLED=true
Environment=ENABLE_CONVERSIONS=true
Environment=ENABLED_LINKED_FILE_TYPES=project_file,project_output_file
Environment=OVERLEAF_ADMIN_EMAIL=guillaume@gtache.ch
Environment=OVERLEAF_ALLOW_ANONYMOUS_READ_AND_WRITE_SHARING=false
Environment=OVERLEAF_ALLOW_PUBLIC_ACCESS=false
Environment=OVERLEAF_APP_NAME=Overleaf Community Edition
Environment=OVERLEAF_DISABLE_LINK_SHARING=false
Environment=OVERLEAF_MONGO_URL=mongodb://overleaf-database/sharelatex
Environment=OVERLEAF_REDIS_HOST=overleaf-redis
Environment=OVERLEAF_REDIS_PORT=6379
Environment=OVERLEAF_SITE_URL=overleaf.gtache.ch
Environment=OVERLEAF_TRUSTED_PROXY_IPS="192.168.0.0/16 172.16.0.0/12 169.254.0.0/16 10.0.0.0/8"
Environment=EMAIL_CONFIRMATION_DISABLED=true
Environment=ENABLE_CRON_RESOURCE_DELETION=true
Environment=MONGO_URL=mongodb://overleaf-database/sharelatex
Environment=REDIS_HOST=overleaf-redis
Environment=REDIS_PORT=6379
Image=quay.io/sharelatex/sharelatex:latest
Label=io.containers.autoupdate=registry
Pod=overleaf.pod
Secret=overleaf-redis-password,type=env,target=OVERLEAF_REDIS_PASS
Secret=overleaf-session-secret,type=env,target=OVERLEAF_SESSION_SECRET
Secret=overleaf-redis-password,type=env,target=REDIS_PASSWORD
StartWithPod=true
StopTimeout=60
Timezone=Europe/Zurich
Volume=overleaf-data.volume:/var/lib/overleaf
[Service]
Restart=always
[Install]
WantedBy=default.target
+3
View File
@@ -0,0 +1,3 @@
[Pod]
PodName=overleaf
PublishPort=9024:80