как вариант - отключить ftp, запускать скрипты от иного пользователя, чем тот, которым логинишься по ssh (по ключу с паролем на ключ, разумеется, и двухфакторной авторизацией).
условно, ты по ssh заходишь пользователем updater, а скрипты и вся конфигурация хранятся как worker:worker с правами 700 и запускаются от пользователя worker.
для Spring'а, скорее всего, понадобится VDS/VPS, там можно настроить что угодно.
под шаред php или python. скорее php, тарифов без него я уже давно-давно-давно не видел