DeployManage, server management for any cloud

Laravel Staging Environment and Laravel Staging Server for Client Review

Give clients a password protected Laravel staging site on your own server. Deploy a staging branch, keep its .env separate, and review changes before releasing the approved code to production. Manage each site's access, workers, and deploy script from the same panel.

One-time demo, no credit card required.

Prices are in USD. Server fees are separate from DeployManage and Forge subscriptions. Staging uses a second site with its own database.

Servers 5 online
New server
Servers
Sites
Deployments
Databases
Mailboxes
Recipes
Activity
Server Provider Load
web-01.prod
fsn1
Hetzner
32%
web-02.prod
fsn1
Hetzner
47%
db-01.prod
fra1
DigitalOcean
18%
worker-01
eu-central-1
AWS
61%
mail-01
gra
OVHcloud
9%
Deploy to web-01.prod Live
  • Pull main from GitHub
  • Build and migrate
  • Switch release, zero downtime
Finished in 11.3 s
The short answer

A Laravel staging environment is a deployed copy of your application for testing and client review. In DeployManage, create a second site, select a branch such as staging or develop, create a separate database in the panel, and configure its encrypted .env. Add HTTP basic auth users before sharing the URL. Starter uses the Deploy button; Growth and Business add push to deploy and zero downtime releases with rollback. There is no automatic production clone, database copy tool, or preview environment per pull request. After approval, merge the reviewed code into your production branch and deploy production separately.

Two developers at an agency office discussing a client release next to a whiteboard deployment sketch

Why staging catches what local testing misses

A migration that finishes quickly on a laptop can lock a table against production-sized data. Test with a sanitized dataset that represents the real workload, then check query behavior, queue configuration, and cache settings under the server configuration you intend to ship.

Client sign-off also needs a stable URL. A protected staging site lets reviewers check forms, content, and account flows together. Record the approved commit so the production release contains the code they reviewed, even if development continues on another branch.

What DeployManage provides for Laravel staging

A branch for each site

Each site has its own repository and branch setting, with main as the default. Select staging or develop explicitly for the review site. Sharing a repository does not require sharing a release schedule.

Separate environment configuration

Use the encrypted .env editor for staging database credentials, test service settings, and distinct queue connections. Each site also has an editable deploy script, so staging can run the commands its review workflow needs.

Password protected client access

Create HTTP basic auth users per site and share access with reviewers. Each site has its own SSL certificate, issued and renewed, plus domain aliases and wildcard subdomains for the URLs your app needs.

Workers and commands per site

Configure staging queue workers separately and run one-off Artisan commands for that site. Check connection settings before starting workers so test jobs cannot reach the production queue or change production records.

Deploy controls that match your plan

Starter deploys with the Deploy button. Growth and Business add the quick deploy webhook and zero downtime atomic releases, with rollback to a previous release when zero downtime is enabled.

A deploy log for the team

Use the deploy log to review releases and a health check URL per site to check application health. Starter includes 2 seats, Growth includes 10, and Business has unlimited seats.

How it works

  1. 1
    Choose the staging server

    Use an existing server with spare capacity or a separate Ubuntu server over SSH. Supported providers include DigitalOcean, Hetzner, AWS, Vultr, Linode, and OVHcloud. Server charges stay on your provider's bill.

  2. 2
    Create a second site

    Add a staging domain, choose the repository and staging branch, and create a separate database in the panel. DeployManage does not clone production or copy its database for you.

  3. 3
    Configure and protect the app

    Set staging variables in its .env, configure test mail and isolated queues, and add basic auth users. Review the deploy script before running migrations against the staging database.

  4. 4
    Review and release the approved code

    Deploy staging, send reviewers the protected URL, and record approval against a commit. Merge the approved changes into the production branch, then deploy the production site with its own configuration.

Laravel staging hosting options compared

Laravel Forge is the cheapest way to add a staging site to one VPS. Laravel Cloud is the only one of these options with automatic preview environments per pull request. DeployManage costs more and fits agencies and teams that want password protected staging sites for many client apps with seats and a deploy log.

swipe to see all columns →

What you are comparing DeployManage Laravel Forge Laravel Cloud Shared hosting
Monthly software fee Starter $59, Growth $129, Business $299; yearly billing is half the monthly price Hobby $12, Growth $19, Business $39 $5, $20, or $200 plus usage; $5 usage credit Usually $3 to $15
How staging is created Second site and separate database you create; no clone or database copy tool Usually a second site or separate server; on-forge.com sharing domains available Unlimited environments on every plan; each bills its own compute and database A second site, if the plan allows one
Branch per environment Repository and branch configured per site Staging site on a staging branch Each environment tied to a git branch Rarely; most deploy by FTP or file manager
Password protection HTTP basic auth users per site Not listed on the pricing page Not listed on the pricing page Sometimes, through a directory password tool
Preview environment per pull request No automatic previews No preview environment feature listed on the pricing page Starter for 1 app; Growth and above unlimited, one per pull request No
Zero downtime deploy and rollback Growth and Business; previous release rollback with zero downtime on Yes, on one server per site Handled by the platform No
Staging plus production all in for one small app $71 with Starter and a shared $12 server $24 with Hobby and a shared $12 server $23 example with Starter, compute caps and databases, after credit, before storage and transfer Not a fit for a Laravel app with workers

Who it's for

Agencies collecting client approval

Give each client app a staging site and protected review URL. Keep unrelated client releases on their own branches and use the deploy log when discussing what changed.

Teams rehearsing database changes

Test migrations with sanitized data before production. Check lock times and compatibility with the code already serving requests, then document the production migration order.

Apps with background processing

Exercise imports, scheduled workflows, and notifications against staging services. Separate queues and mail settings let reviewers complete flows without sending messages to customers.

Developers maintaining several client apps

Keep staging configuration and deploy scripts per site. Choose a plan by server, site, and seat limits while budgeting separately for the machines running those apps.

How do I set up a staging environment for Laravel?

Create a second Laravel site from a staging branch, give it a separate database and .env, and protect it with HTTP basic auth. Set APP_ENV=staging, use test service credentials, and isolate mail, queues, and cache before the first deploy. Release the approved commit through your production deployment process.

In DeployManage, select the branch explicitly because new sites default to main. Create the staging database in the panel and configure the site's encrypted .env. Set APP_DEBUG=false for client review. Rebuild configuration caches after changing environment variables.

Use a consistent Laravel deployment workflow for both sites. Check migrations, assets, and workers before requesting approval. Our Git deployment guide covers the branch workflow; DeployManage requires a separate production deploy after review.

Should staging run on the same server as production?

Staging can share a server with production when the machine has spare capacity and you accept shared resource risk. A separate server gives testing its own CPU, memory, and failure boundary. Either setup still needs separate databases, credentials, queues, and cache namespaces so staging cannot interfere with production work.

A shared server avoids another server bill, but migrations, asset builds, and test jobs compete with live traffic. Basic auth controls visitors; it does not isolate resource use. Keep heavy load testing away from the production machine.

A separate server is useful when clients review changes during business hours or database rehearsals consume resources. Match relevant runtime settings to production. Our Laravel hosting guide for agencies covers managing client apps across servers.

How do I set up staging on Laravel Forge?

A Laravel Forge staging environment is usually a second site on a staging branch, either beside production or on a separate server. Configure its database and environment variables independently, then deploy that branch. Forge also offers hosted on-forge.com domains for sharing apps before you configure your own DNS.

Hobby costs $12 per month and covers 1 external server with unlimited Laravel VPS. Growth is $19 and Business is $39 with unlimited servers. Include the external VPS fee when comparing totals.

Forge's pricing page lists no preview environment feature. Treat staging as a maintained site rather than assuming a pull request creates it automatically. Compare team requirements and release controls in our Laravel Forge alternative comparison.

Does Laravel Cloud have staging and preview environments?

Laravel Cloud staging uses branch based environments, with unlimited environments available on every plan. Each environment bills for its own compute and database. Laravel Cloud preview environments create an environment per pull request, available for 1 app on Starter and unlimited apps on Growth and above.

Keep a persistent staging environment when a client needs a stable review target. Pull request previews suit changes reviewed independently. Their convenience does not remove the need for separate data, safe mail settings, and review access controls.

Plans cost $5, $20, or $200 plus usage, with a $5 usage credit. Flex compute can scale to zero. Our Laravel Cloud pricing breakdown explains why environment count alone does not predict the bill.

How much does a Laravel staging server cost?

A Laravel staging server adds no server fee when staging shares an existing production machine with spare capacity. A separate DigitalOcean Basic 2 GB droplet adds $12 per month. Include your panel subscription when comparing complete setups, and budget for database, storage, or other services outside the server.

SetupMonthly cost
Staging on the existing production server$0 extra in server fees
Separate 2 GB staging droplet$12 extra in server fees
Forge Hobby plus shared 2 GB server$24 total
DeployManage Starter plus shared 2 GB server$71 total
Cloud Starter with staging and production$23 example before storage and transfer

DigitalOcean Basic costs $6 for 1 GB, $12 for 2 GB, or $24 for 4 GB. These are price examples, not capacity guarantees. The Cloud example uses two 512 MB Flex compute instances at their $6 monthly caps and two MySQL Flex 512 MB databases at $5.50 each, plus the $5 plan minus the $5 credit.

DeployManage Starter includes 3 servers and 10 sites per server; Growth includes 10 servers and 50 sites per server. Business is unlimited. Yearly billing halves the monthly subscription price. Growth and Business include zero downtime releases. A code rollback does not undo database changes; plan compatible migrations separately.

How do I keep a staging site out of Google?

Protect staging with HTTP basic auth so crawlers and the public cannot access application pages. Also send an X-Robots-Tag noindex header, using APP_ENV=staging to select staging behavior if needed. Do not rely on robots.txt alone, because a blocked URL can still be indexed when another page links to it.

APP_ENV=staging does not add a noindex header by itself. Configure that response explicitly and verify it on the deployed site. Keep basic auth in place for review URLs, including any aliases that expose the app.

Never let staging send real emails. Use a mail catcher or the log mailer, and never point staging at production queues or the production database. Review these settings before starting workers or importing sanitized test data.

Ready to stop managing servers by hand? DeployManage provisions, deploys and monitors your fleet from one dashboard.

Get started

Frequently asked questions

What belongs in a Laravel staging env?

Use APP_ENV=staging, APP_DEBUG=false, a staging URL, a separate database, isolated queue and cache settings, and test service credentials. Use a mail catcher or log mailer. Rebuild cached configuration after editing environment variables.

Does APP_ENV=staging protect a Laravel staging environment?

No. It identifies the environment for application logic. Add HTTP basic auth to restrict access and configure noindex responses explicitly. It does not automatically prevent mail delivery or isolate database and queue connections.

Can a Laravel staging server share production data?

Use a separate database with sanitized test data. Never connect staging to the production database. DeployManage has no database copy tool, so prepare and import an appropriate dataset through your own process.

Are Laravel Forge preview environments automatic?

Forge's pricing page lists no preview environment feature. A Laravel Forge staging environment is usually a second site on a branch or a separate server. Do not assume pull requests create temporary sites.

Which plans include Laravel Cloud preview environments?

Starter supports previews for 1 app. Growth at $20 per month and above supports unlimited apps, with one environment per pull request. Compute and database usage are billed separately from the plan.

Does DeployManage create previews for pull requests?

No. Create a second site and select its branch. Growth and Business support push to deploy through the quick deploy webhook, but that deploys an existing site rather than creating a preview environment.

How does Laravel Cloud staging compare with DeployManage?

Laravel Cloud bills each branch environment for its compute and database. DeployManage manages separate sites on your own servers. In either workflow, review staging first and deploy the approved code to production separately.

Can I try DeployManage before subscribing?

Every account starts with a one-time demo covering 1 server, 1 site, and 1 deploy, with no card required. A production site plus a separate staging site needs a paid plan. Starter costs $59 per month.

Related

Laravel deployment Laravel hosting for agencies Laravel Forge alternative Laravel Cloud pricing Zero downtime deployment Deployment rollback Database migrations without downtime Laravel Horizon hosting

Give clients a protected place to review

Deploy a staging branch on your own server, keep its configuration separate, and release approved code to production. Start with a one-time demo covering 1 server, 1 site, and 1 deploy, no card required.

Get started Pricing

One-time demo, no credit card required.