Files
overleaf-cep/server-ce/init_scripts/200_nginx_config_template.sh
Tao Chen 51dff8c20a Git Bridge: support git-bridge configuration via env in nginx
- generate overleaf.conf dynamically
- support GIT_BRIDGE_HOST and GIT_BRIDGE_PORT
- configure client_max_body_size for /git using GIT_BRIDGE_REPOSTORE_MAX_FILE_SIZE
2026-05-19 15:51:37 +02:00

61 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
set -e
## Generate nginx config files from templates,
## with environment variables substituted
nginx_dir='/etc/nginx'
nginx_templates_dir="${nginx_dir}/templates"
if ! [ -d "${nginx_templates_dir}" ]; then
echo "Nginx: no template directory found, skipping"
exit 0
fi
nginx_template_file="${nginx_templates_dir}/nginx.conf.template"
nginx_config_file="${nginx_dir}/nginx.conf"
overleaf_template_file="${nginx_templates_dir}/overleaf.conf.template"
overleaf_config_file="${nginx_dir}/sites-enabled/overleaf.conf"
if [ -f "${nginx_template_file}" ]; then
export NGINX_KEEPALIVE_TIMEOUT="${NGINX_KEEPALIVE_TIMEOUT:-65}"
export NGINX_WORKER_CONNECTIONS="${NGINX_WORKER_CONNECTIONS:-768}"
export NGINX_WORKER_PROCESSES="${NGINX_WORKER_PROCESSES:-4}"
export MAX_UPLOAD_SIZE="${MAX_UPLOAD_SIZE:-50}"
export GIT_BRIDGE_HOST="${GIT_BRIDGE_HOST:-git-bridge}"
export GIT_BRIDGE_PORT="${GIT_BRIDGE_PORT:-8000}"
export GIT_BRIDGE_REPOSTORE_MAX_FILE_SIZE="${GIT_BRIDGE_REPOSTORE_MAX_FILE_SIZE:-52428800}"
echo "Nginx: generating config file from template"
# Note the single-quotes, they are important.
# This is a pass-list of env-vars that envsubst
# should operate on.
# shellcheck disable=SC2016
envsubst '
${NGINX_KEEPALIVE_TIMEOUT}
${NGINX_WORKER_CONNECTIONS}
${NGINX_WORKER_PROCESSES}
${MAX_UPLOAD_SIZE}
' \
< "${nginx_template_file}" \
> "${nginx_config_file}"
# Config git-bridge in nginx
envsubst '
${GIT_BRIDGE_HOST}
${GIT_BRIDGE_PORT}
${GIT_BRIDGE_REPOSTORE_MAX_FILE_SIZE}
' \
< "${overleaf_template_file}" \
> "${overleaf_config_file}"
echo "Checking Nginx config"
nginx -t
echo "Nginx: reloading config"
service nginx reload
fi