Git push to Forgejo -> automated build, package, and deploy pipeline -> use secured credentials to upload via scp or ssh or sftp
Alternatives to copy-upload or upload-package and then extract via command is stuff like rsync (reduce redundant, unchanged file uploads) or a simple receiver service (for example REST endpoint that receives a package with an identifier key and secret key, that it extracts to a configured target folder).
What solutions are simplest or easiest depend on the target environment, and how much of it you control. If you host the website on Forgejo itself it's as simple as pushing the static files into the corresponding pages branch.