act_runner job images have no Docker daemon, so rsync sources and build with scripts/deploy-on-vps.sh on the target host instead of GHCR/buildx.
Single-job build/push/deploy plus nginx site install so self-hosted runners do not stall on multi-job graphs.
Move workflows under .gitea/workflows and publish images to git.ghabilee.ir instead of ghcr.io so deploy runs on self-hosted Gitea.