mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-07-01 07:37:24 +00:00
Replace inefficient find/execdir implementation that was causing 3+ minute startup delays with a more efficient approach that: 1. Uses a flag file to skip redundant operations on container restarts 2. Processes site-packages directories with bulk chown operations instead of individual file checks and changes 3. Maintains the same functionality while dramatically improving performance This change should significantly reduce container startup time while ensuring all necessary file permissions are still properly set.
41 lines
1.2 KiB
Bash
Executable File
41 lines
1.2 KiB
Bash
Executable File
#!/command/with-contenv bash
|
|
# shellcheck shell=bash
|
|
|
|
set -e
|
|
|
|
log_info 'Setting ownership ...'
|
|
|
|
# root
|
|
chown root /tmp/nginx
|
|
|
|
# npm user and group
|
|
chown -R "$PUID:$PGID" /data
|
|
chown -R "$PUID:$PGID" /etc/letsencrypt
|
|
chown -R "$PUID:$PGID" /run/nginx
|
|
chown -R "$PUID:$PGID" /tmp/nginx
|
|
chown -R "$PUID:$PGID" /var/cache/nginx
|
|
chown -R "$PUID:$PGID" /var/lib/logrotate
|
|
chown -R "$PUID:$PGID" /var/lib/nginx
|
|
chown -R "$PUID:$PGID" /var/log/nginx
|
|
|
|
# Don't chown entire /etc/nginx folder as this causes crashes on some systems
|
|
chown -R "$PUID:$PGID" /etc/nginx/nginx
|
|
chown -R "$PUID:$PGID" /etc/nginx/nginx.conf
|
|
chown -R "$PUID:$PGID" /etc/nginx/conf.d
|
|
|
|
# Certbot directories - optimized approach
|
|
CERT_INIT_FLAG="/opt/certbot/.ownership_initialized"
|
|
|
|
if [ ! -f "$CERT_INIT_FLAG" ]; then
|
|
# Prevents errors when installing python certbot plugins when non-root
|
|
chown "$PUID:$PGID" /opt/certbot /opt/certbot/bin
|
|
|
|
# Handle all site-packages directories efficiently
|
|
find /opt/certbot/lib -type d -name "site-packages" | while read -r SITE_PACKAGES_DIR; do
|
|
chown -R "$PUID:$PGID" "$SITE_PACKAGES_DIR"
|
|
done
|
|
|
|
# Create a flag file to skip this step on subsequent runs
|
|
touch "$CERT_INIT_FLAG"
|
|
chown "$PUID:$PGID" "$CERT_INIT_FLAG"
|
|
fi |