Kiln
Get started
← All posts Guide

The Forge server migration checklist

Every site, database, upload folder, queue, cron job, firewall rule and certificate to check when you move a Laravel Forge server, in the order to do it.

Daniel Jones 24 October 2026 · 3 min read
On this page

Moving a Forge server is a long list of small jobs, and the one you forget is the one that breaks a site a week later. This is the checklist we use, in order. Work through it per server, and per site where it says so.

Before you start

  • List every site on the old server, including staging sites and anything nobody remembers.
  • Note the server's PHP versions, database version and any PHP settings changed from Forge's defaults (memory_limit, upload_max_filesize, max_input_vars).
  • Check each site's composer.lock for the newest PHP version its packages allow.
  • Note whether the server has a reserved IP. If not, lower the TTL on every domain's DNS records a day or two ahead.
  • Take a fresh backup of every database.

The new server

  • Create the server on the Ubuntu, PHP and database versions you want.
  • Install any older PHP versions a site still needs.
  • Copy your PHP settings across.
  • Recreate firewall rules, including any that limit SSH or HTTP to a VPN.
  • Add the server to any cloud firewalls it should belong to.

Each site

  • Create the site with its domains and aliases, and decide how www. redirects for each one.
  • Set the web directory (public for Laravel and Statamic, web for Craft).
  • Connect the repository, and give the new server's SSH key access to it.
  • Copy the .env and point its database settings at the new database.
  • Copy the deploy script, and update any absolute paths in it.
  • Copy custom nginx rules.
  • Create the database and its user.

Data

  • Copy each database.
  • Copy every folder that isn't in Git: uploads (web/uploads, storage/app/public), Craft's storage/rebrand, Statamic's content/, users/ and storage/forms if they aren't committed.
  • Skip folders that rebuild themselves: Statamic's static cache, storage/framework, built front-end assets.
  • Clone the SSL certificates, so HTTPS works from the first request after the switch.

Test before you switch

  • Deploy every site on the new server.
  • Test each site against the new server's IP, using a hosts file entry or curl --resolve.
  • Check the logs for errors while you click around.

Switch-over

  • Put the old sites into maintenance mode (php artisan down or php craft off).
  • Copy the databases and changed files one last time.
  • Recreate cron jobs and queue workers on the new server, with their paths updated, and remove them from the old one.
  • Move the reserved IP to the new server, or update DNS for every domain.
  • Request fresh Let's Encrypt certificates once DNS points at the new server.

Afterwards

  • Watch error logs and queue workers for a day.
  • Keep the old server, powered off, for a few days in case you need something from it.
  • Remove any temporary SSH keys and firewall rules you added for the copy.
  • Delete the old server.

Or let Kiln run the checklist. Kiln reads every site from Forge, shows you each item to review, then does the whole move with zero downtime, for £15 a server. Try the live demo.

Let Kiln do the whole move Every site, database and setting copied, then one switch-over with zero downtime. £15 a server.
Try the live demo

Keep reading

Guide Ubuntu 22.04 end of life: what Forge users need to do before April 2027 Product update Kiln now handles Statamic, Filament and SQLite sites