Key issue with this approach is that applying commits selectively is extremely problematic. Basically, how do you know whether commits are dependent or independent?
As you correctly mentioned, this is one of the issues with Gitflow itself, so the solution is shifting methodologies. Preferred way today is Trunk-Based Development (TBD) - https://...
Yes, you can use the rules syntax. You can use this in combination with regex for commit message, ci_pipeline_source or any other available CI variables.
- do something on schedule only
- if: '"$CI_PIPELINE_SOURCE" == "schedule"'
- runs on Merge request pipeline
I don't think you are missing any easy solutions because
the easy solutions probably rely on you having full access to the webserver -- which you don't have? The challenge is what is the best you can do given limited server access.
FTP does not have a reliable, built-in way to only upload changed files.
your only solution for problem 1 is to ...