Before we build a staging site, let's first deploy an example website and hook it up to an existing domain I own. Luckily, Laravel Forge makes this a cinch.
The next step is to build a staging site through Laravel Forge. We'll also need to update our domain's DNS to point all staging.laravelscreencasts.com requests to the server's IP address.
Now that we have a staging site, we can review a basic workflow you might follow when preparing a new feature. We'll create a new feature branch, commit some changes, merge them into the staging branch, review them on the staging server, and then finally merge and deploy the approved feature to production.
At the moment, anyone can access our staging site. Let's limit it to only members of our staff by applying basic authentication with nginx and the htpasswd utility.
If you maintain both your production and staging sites on the same server, it's possible that you'll run into caching or queue-related issues. For example, if using a ram-based cache driver, to avoid unwanted collisions, please ensure that the cache prefix for each site is unique.
In this episode, we'll filter all incoming traffic through Cloudflare's servers. This will allow us to activate any number of helpful features, including free SSL, page rules, Brotli compression, mobile performance improvements, and more.