Move your website from another host to BrewInTH, step by step

Leaving cPanel or another host: back up files and database, hand over a ZIP with the .sql, test on a temporary address, then switch the domain, email untouched.
Your website has lived on the same host for years. The renewal price climbs every year, the control panel is a chore, and you would like a home where AI can fix and release the site for you. What holds you back is the fear that the move will take the site down, lose data, or break the company email.
This guide is a step-by-step plan for moving a website from a traditional host (one with cPanel or DirectAdmin, for example) to BrewInTH: backing up the old site, packing the files and the database, testing on a temporary address, and switching the domain so visitors reach the new site with almost no downtime.
In short
🚚 BrewInTH does not pull your site from the old host. You export the files and the database and hand them over as a ZIP
🚚 A.sqlfile inside the ZIP is imported into the database on the first release, and old-style PHP database settings are adjusted for you
🚚 Get everything working on the BrewInTH address first, and only then change the domain's DNS
🚚 Change only the site's A record; leave the MX records alone if your email stays where it is
🚚 Keep the old host for a while after the move; don't cancel it the same day
Before you start: four things to move
A website is more than files. Check which of these yours has:
- The site's files: code, images, CSS, and files your users uploaded (an
uploads/folder, for example). - The database: members, products, posts, orders. Usually MySQL or MariaDB.
- The domain: the name people know, and the DNS records that point it at the site.
- Domain email, such as
info@yourshop.com. If it lives with the old host, plan it separately.

Step 1: Back up everything
Do this before you touch anything, and keep the copies on your own computer.
- All of the site's files. In the old host's file manager, compress the site folder (often called
public_html) into a ZIP and download it, or fetch it over FTP. - The database. Export it as a
.sqlfile from the old host's phpMyAdmin (the Export menu). - Every DNS record. Screenshot or write down the full list, especially the MX and TXT records used by email.
If you can't find the menus, ask the old host's support for "a backup of the website files and the database". Most providers offer one.
Step 2: Create a project that matches the old site
In the console, choose Create project. Pick the same technology as the old site (if unsure, choose Let the platform decide (recommended), which looks at the code on the first release) and the same kind of database the old host used, usually MySQL or MariaDB.
A business site you are moving is not a showcase piece, so consider unticking List this site on the brewInTH portal — free promotion.
Step 3: Hand over the files and the database
There are two ways, depending on the tools you have.
Way A: upload a ZIP yourself (no coding agent)
- Put the exported
.sqlfile inside the site folder, then compress the whole folder into a ZIP. - Open Upload & go live (still in BETA) and choose the project you created in step 1.
- In step 2, choose ZIP file, hand over the file (up to 256 MB) and press Release into followed by your project name.
The platform reads the files and, without any AI, takes care of several things:
- It imports the
.sqlfile into the project's database once the database is ready, even a large one. This happens on the first release only; later updates do not import it again, so the live data is never overwritten. - It adjusts PHP database settings written as plain values, such as
define('DB_HOST', 'localhost')or$servername = "localhost", so they read BrewInTH's values first and keep the old value as a fallback. - A
.envfile in the ZIP becomes the project's App settings. - Folders the app writes files into, such as
uploads/, get persistent storage, and the files already in the ZIP are copied in, so images your users uploaded come along.
Everything it did is listed under What the platform did on the results page.
Way B: let a coding agent do it (Claude Code, Codex, Cursor, Windsurf)
Open the folder where you unpacked the backup in your coding agent and give it something like this:
This folder is a website moved from an old cPanel host. It includes backup.sql, a MySQL database export.
1. Find where the code reads its database settings and make it read environment variables
(DB_HOST DB_PORT DB_DATABASE DB_USERNAME DB_PASSWORD) instead of hard-coded values.
2. Find the old site address hard-coded in the code and in the database, and show me before changing anything.
3. Find the .htaccess rules the site depends on (redirects, rewrites) and move them into the code.
4. Deploy to BrewInTH following the guide behind the link, and import backup.sql into the project's database.
5. Use site_check on the home page, the sign-in page and a page with images from the database, and report back.
Then press Create the AI link and token (automatic) on the project page and paste that message into the same chat. The AI uploads, imports the data and releases the site by itself.
Step 4: Test on the temporary address first
The new site now runs at its BrewInTH address, such as yourshop.host.brewinth.net, while your real domain still points at the old host, so customers keep using the old site as usual. Use this window to test properly:
- Open every important page. Do all images load?
- Sign in with an existing account. Are the members and products all there?
- Submit a form, upload an image, place a test order.
- If any page jumps back to the old address, the old address is written into the code or the database. Ask the AI to fix it.
If the site does not come up, open the Releases tab to read the log of the failed release, or copy the explanation from the results page and give it to the AI.
About .htaccess: BrewInTH does not run Apache, so .htaccess has no effect. Addresses with no real file behind them are sent to index.php automatically, which is what most frameworks expect, and .sql and .log files, as well as files whose names start with a dot, are already blocked from the web. If your old .htaccess has redirect or rewrite rules of its own, those rules have to move into the code.
Step 5: Switch the domain to BrewInTH

Using your own domain needs a paid plan, starting with Starter at ฿99 a month.
- A day ahead, lower the TTL of the A record at your DNS provider (to 5 minutes, say), so the change spreads faster when you make it.
- If the site takes data all the time (orders, sign-ups, comments), pause it on the old site, export the latest database, and ask the AI to import it in place of the test copy. Nothing gets lost in between.
- In the project's Domains tab, in the Connect your domain panel, choose I already own a domain (I set the DNS) and press Add domain. If the old site opened both with and without
www., add both names. - Add the TXT record shown on the domain's card (it does not affect the old site), then change the A record to the IP the card shows. Only A records work; on Cloudflare, set it to DNS only.
- Press Verify DNS. Once it passes, the HTTPS certificate is issued automatically. Then press Use as the main link.
Don't change nameservers unless you have to, and don't delete the email MX or TXT records. Email hosted at the old provider keeps working as before. If you want to move email too, paid BrewInTH plans include mailboxes on your own domain, but move it after the website has settled, one thing at a time.
Step 6: Keep the old host for now
Some DNS caches update slowly, so a few people may still see the old site for hours. Keep the old host at least until the next billing date, use the new site for a while, and cancel only once you are sure nothing was missed. Keep the backups from step 1 as well.
Once the move is done, if the site holds important data, the Backups add-on (฿99 a month) backs up the database automatically every day.
Watch the video
▶ From creating a project to opening the site (1:30, in Thai)
Watch on YouTube
FAQ
Can BrewInTH move my site automatically?
No. The platform does not reach into your old host. You export the files and the database yourself, but once the ZIP arrives, the platform arranges the files, imports the database and sets up the connection for you.
Will the site go down during the move?
Following this order, hardly at all. The old site keeps running until you change the A record, and people who still see it after the change can keep using it. The real risk is data that reaches the old site after your final export, so pause new data before you export.
My old site runs on a very old PHP version. Can it move?
The platform runs a current PHP version. Very old code may call functions that have since been removed. Read the error in the release log and let the AI fix them one by one; it usually takes only a few rounds.
What about WordPress or other ready-made systems?
The platform picks up database settings written as define('DB_NAME', …) by itself, but many ready-made systems store the site address in the database, so on the temporary address they may redirect you back to the old domain. Test carefully, and if you get stuck, contact the team through Talk to support.
My files are bigger than the plan's storage. What now?
The site's files count toward the plan's file storage. The free plan has 20 MB, which suits small sites. An image-heavy site needs a paid plan (Starter has 200 MB). Before zipping, delete files you no longer use, such as old backups left in the site folder.
Summary
Moving a site takes six steps: back up everything, create a project that matches the old site, hand over a ZIP with the .sql file inside, test on the BrewInTH address, change only the domain's A record without touching email, and keep the old host until you are sure. Done in this order, your visitors will barely notice the site has moved house.
Start your first project free →
