For my side projects I just use a deploy script that uses ssh and rsync to move data, run migrations, etc to push from my dev environment to whatever production server I pass in as an argument. Nothing fancy but dead simple with easy rollbacks and a few hundred ms downtime.