If that's a VPS (like Digitalocean for example), you can do it the old fashioned way using FTP or you can set up the repo in your server.
To emulate what platforms like heroku and stuff like that do, I create an empty bare repo. Let's say your app is served from /home/www/app. You'd have /home/www/repo/app.git, cd into it, git init --bare and add the the url to that path to your remote branch in your local app (for example ssh://nameOfTheUser@yourDomainOrIP.com/home/www/repo/app.git).
Then you set up a hook to copy the app to /home/www/app after every push. So go to /home/www/repo/app.git/hooks and create a file called post-receive:
#!/bin/sh
git --work-tree=/home/www/app --git-dir=/home/www/repo/app.git checkout -f
If you need to add any other command, like composer install, add it to the file; a command per line.
Make it executable: chmod -x /home/www/repo/app.git/hooks/post-receive.
A variation of this would be, to cd /home/www/app and pull the changes.