mirror of
https://github.com/viljarb0/site.git
synced 2026-08-12 00:57:54 +00:00
42 lines
1.5 KiB
Bash
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;"
|