fix: remove sites-enabled default instead of renaming

Renaming `/etc/nginx/sites-enabled/default` to `.dokku-disabled` left a broken symlink that nginx's `include /etc/nginx/sites-enabled/*;` glob still picked up, breaking config validation. Files inside `sites-enabled/` are now removed; the real config in `sites-available/default` is still preserved via rename.
This commit is contained in:
Jose Diaz-Gonzalez
2026-04-27 04:02:18 -04:00
parent d7c88ae298
commit b2ea5406fe
2 changed files with 32 additions and 6 deletions

35
debian/postinst vendored
View File

@@ -135,6 +135,36 @@ setup-sshcommand() {
fi
}
disable-default-vhost-path() {
local path="$1"
local backup_path="${path}.dokku-disabled"
if [ ! -e "$path" ] && [ ! -L "$path" ]; then
return
fi
if [ -e "$backup_path" ] || [ -L "$backup_path" ]; then
return
fi
case "$path" in
/etc/nginx/sites-enabled/*)
rm -f "$path"
echo "Removed conflicting nginx default at $path" 1>&2
return
;;
esac
if [ -L "$path" ]; then
rm -f "$path"
echo "Removed conflicting nginx default symlink at $path" 1>&2
return
fi
mv -n "$path" "$backup_path"
echo "Disabled $path (renamed to $backup_path)" 1>&2
}
setup-default-site() {
db_get "dokku/install_default_site"
if [ "$RET" != "true" ]; then
@@ -153,10 +183,7 @@ setup-default-site() {
fi
for path in /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default /etc/nginx/conf.d/default.conf; do
if [ -e "$path" ] && [ ! -e "${path}.dokku-disabled" ]; then
mv -n "$path" "${path}.dokku-disabled"
echo "Disabled $path (renamed to ${path}.dokku-disabled)" 1>&2
fi
disable-default-vhost-path "$path"
done
echo "Installing nginx default catch-all site at $default_vhost_target"