Back Button Tooling

Build a Staging Server

Once your application reaches a certain size, it might prove useful to prepare a staging server. With this setup, all new features and additions would first be deployed to a testing branch for your team (or yourself). Only after you've reviewed and approved the changes would the code then be deployed to production.

In this series, we'll use Laravel Forge, Hover, and Cloudflare to build and configure a staging server from scratch. We'll also discuss a few key gotchas you might run into.

6 episodes
24:19 mins
Start Series
    1. Run Time 6:19 Free

      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.

    2. Run Time 3:46

      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 requests to the server's IP address.

    3. Run Time 2:22

      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.

    4. 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.

    5. Run Time 4:00

      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.

    6. 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.