DeployManage, server management for any cloud
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.
| 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%
|
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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 |
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.
Test migrations with sanitized data before production. Check lock times and compatibility with the code already serving requests, then document the production migration order.
Exercise imports, scheduled workflows, and notifications against staging services. Separate queues and mail settings let reviewers complete flows without sending messages to customers.
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.
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.
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.
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.
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.
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.
| Setup | Monthly 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.
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 startedUse 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.
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.
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.
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.
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.
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.
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.
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.
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.