Move a site (site packages / content migration)
A site package is a portable snapshot of one domain's site. Use it to hand an agency demo over to a client's own instance, or to copy a site to another domain on the same server.
A package contains just that one site:
- its content (all the pages and assets under the domain's content folder),
- its navigation menu,
- the theme and layout it uses (self-contained, so it works on any instance),
- its presentation settings (title, site address, etc.).
It deliberately leaves out plugins, instance settings and anything secret, so a package is safe to send to another instance and carries nobody else's data.
Who can do it
The manage_domains capability, plus access to the domain being moved. It is a
domain-management operation, not day-to-day content editing.
The two steps
- Move a site
- Package it on the source (the "back up" step), then apply it on the target. Same server or a different one - the only difference is whether you have to carry the file across.
- Same instance (one domain to another)
-
- Package the source domain. 2. Register the target domain (Domains page) if it does not exist yet. 3. Apply the package to the target domain.
- Different instance (agency demo to a client's instance)
-
- Package the source domain and download it. 2. On the client's instance, upload the package. 3. Register the target domain (or use the default site). 4. Apply the package.
Applying overwrites the target site, so it always takes a safety snapshot first, and the change is recorded in content history where that is enabled - you can roll back.
Asking an AI agent to do it
A connected agent (Claude / an MCP client) has the tools and the recipe built in. You can simply ask, for example:
"Package the site on
demo.exampleand apply it toclienta.com."
Behind the scenes the agent follows the migrate-site recipe it gets from
describe_capabilities: site_backup on the source, then (if the instances
differ) download + upload, then site_apply on the target, then a preview to
confirm. It will ask you to register the target domain first if that is needed.
From the command line
lazysite-site --docroot DIR backup --host demo.example
lazysite-site --docroot DIR apply --package lazysite-site-demo.example-<stamp>.tar.gz \
--host clienta.com --clean
--host on apply names the target domain (omit it to apply to the default
site); --clean clears the target content folder first.
What lazysite does not do
lazysite moves the lazysite side of a site. DNS, the web-server domain alias and the TLS certificate for the new domain are the operator's / Hestia's job - set those up first, then apply the package. Use the domain Check on the Domains page to confirm DNS and HTTPS are in place.