# Everything in this tutorial should be done as root:
sudo -i
 
# Now hop on into the EFI partition root.
cd /boot/efi
 
# Configuration files will go here:
mkdir -p loader/entries
 
# And kernels will go here:
mkdir debian

/boot/efi/loader/loader.conf

default  debian.conf
timeout  4
console-mode max
editor   no

/etc/kernel/postinst.d/zz-update-systemd-boot

#!/bin/bash
#
# This is a simple kernel hook to populate the systemd-boot entries
# whenever kernels are added or removed.
#
       
# The UUID of your disk.
UUID="CHANGEME"
 
# The LUKS volume slug you want to use, which will result in the
# partition being mounted to /dev/mapper/CHANGEME.
VOLUME="CHANGEME"
 
# Any rootflags you wish to set.
ROOTFLAGS="CHANGEME"    
 
# Our kernels.
KERNELS=()
FIND="find /boot -maxdepth 1 -name 'vmlinuz-*' -type f -print0 | sort -rz"
while IFS= read -r -u3 -d $'\0' LINE; do
    KERNEL=$(basename "${LINE}")
    KERNELS+=("${KERNEL:8}")
done 3< <(eval "${FIND}")
 
# There has to be at least one kernel.
if [ ${#KERNELS[@]} -lt 1 ]; then
    echo -e "\e[2msystemd-boot\e[0m \e[1;31mNo kernels found.\e[0m"
    exit 1
fi
       
# Perform a nuclear clean to ensure everything is always in perfect
# sync.
rm /boot/efi/loader/entries/*.conf
rm -rf /boot/efi/debian
mkdir /boot/efi/debian
      
# Copy the latest kernel files to a consistent place so we can keep
# using the same loader configuration.
LATEST="${KERNELS[@]:0:1}"
echo -e "\e[2msystemd-boot\e[0m \e[1;32m${LATEST}\e[0m"
for FILE in config initrd.img System.map vmlinuz; do
    cp "/boot/${FILE}-${LATEST}" "/boot/efi/debian/${FILE}"
    cat << EOF > /boot/efi/loader/entries/debian.conf
title   Debian
linux   /debian/vmlinuz
initrd  /debian/initrd.img
options cryptdevice=UUID=${UUID}:${VOLUME} root=/dev/mapper/${VOLUME} ro rootflags=${ROOTFLAGS}
EOF
done
    
# Copy any legacy kernels over too, but maintain their version-based
# names to avoid collisions.
if [ ${#KERNELS[@]} -gt 1 ]; then
    LEGACY=("${KERNELS[@]:1}")
    for VERSION in "${LEGACY[@]}"; do
        echo -e "\e[2msystemd-boot\e[0m \e[1;32m${VERSION}\e[0m"
        for FILE in config initrd.img System.map vmlinuz; do
            cp "/boot/${FILE}-${VERSION}" "/boot/efi/ubuntu/${FILE}-${VERSION}"
            cat << EOF > /boot/efi/loader/entries/ubuntu-${VERSION}.conf
title   Ubuntu GNOME ${VERSION}
linux   /debian/vmlinuz-${VERSION}
initrd  /debian/initrd.img-${VERSION}
options cryptdevice=UUID=${UUID}:${VOLUME} root=/dev/mapper/${VOLUME} ro rootflags=${ROOTFLAGS}
EOF
        done
    done
fi
 
# Success!
exit 0

/boot/efi/loader/entries/debian.conf

title   Debian
linux   /debian/vmlinuz
initrd  /debian/initrd.img
options root=UUID={your UUID} ro
bootctl install --path=/boot/efi
efibootmgr

reboot

Resource

Askubuntu How to Replace Grub with systemd-boot