GitLab CI/CD pipeline, with a runner hosted on my hardware, to a VPS. App deployed via Docker container, files/config rsync-ed to the VPS.
Too many people over complicate everything with elastic-cloud-distributed-load-balancer on Vercel and end up overpaying and not controlling their infrastructure.