Files
site/entrypoint-nginx.sh
viljarb 06a5c6da18 modified: README.md
modified:   entrypoint-nginx.sh
2026-04-16 16:54:50 +00:00

42 lines
1.5 KiB
Bash

#!/usr/bin/env sh
set -e
if [ -n "$DOMAIN" ] && [ -n "$EMAIL" ]; then
# for production: get Let's Encrypt cert
if [ ! -f "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" ]; then
certbot certonly --standalone \
-d "$DOMAIN" \
--email "$EMAIL" \
--agree-tos \
--non-interactive
fi
export SSL_CERTIFICATE="/etc/letsencrypt/live/$DOMAIN/fullchain.pem"
export SSL_CERTIFICATE_KEY="/etc/letsencrypt/live/$DOMAIN/privkey.pem"
else
# for development: self-signed cert
echo "Development mode: using self-signed certificate"
mkdir -p /etc/nginx/certs
if [ ! -f /etc/nginx/certs/cert.pem ]; then
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/certs/key.pem \
-out /etc/nginx/certs/cert.pem \
-subj "/CN=localhost"
fi
export DOMAIN="localhost"
export SSL_CERTIFICATE="/etc/nginx/certs/cert.pem"
export SSL_CERTIFICATE_KEY="/etc/nginx/certs/key.pem"
fi
# generate nginx config from template
envsubst '${DOMAIN} ${SSL_CERTIFICATE} ${SSL_CERTIFICATE_KEY}' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf
# generate gitea config when GITEA_DOMAIN is set
mkdir -p /etc/nginx/conf.d
if [ -n "$GITEA_DOMAIN" ]; then
envsubst '${GITEA_DOMAIN} ${SSL_CERTIFICATE} ${SSL_CERTIFICATE_KEY}' < /etc/nginx/nginx-gitea.conf.template > /etc/nginx/conf.d/gitea.conf
else
echo "# Gitea not configured" > /etc/nginx/conf.d/gitea.conf
fi
exec nginx -g "daemon off;"