1. Backup Kinsta's live enviroment
You can do so by going to the website in Kinsta -> Backups -> Manual.
Make sure you a add a descriptive backup note such as "before converting trellis to vanilla wordpress" so you know which backup to restore if things went sideways.
2. ssh into Kinsta
3. cd to /public/
4. Check the current version of WordPress
Now that you're in public, type
cat current/composer.json and look for
5. Download the same version of WordPress
If you found
"roots/wordpress": 5.5.1 in the previous step, you'd do the
wp core download --version=5.5.1
6. Configure WordPress
wp-config.php file with database credentials from Kinsta's dashboard and
the prefix from the current database.
wp config create --dbname="mosaad" --dbuser="mosaad" --dbpass="mosaad123" --dbprefix="wp_"
7. Copy /app/ into /wp-content/
rsync -vrz current/web/app/ wp-content
8. Copy /shared/uploads/ into /wp-content/uploads/
rsync -vrz shared/uploads/ wp-content/uploads
9. cd to /wp-content/mu-plugins/
10. Delete Bedrock's mu-plugins from our vanilla WordPress copy
rm bedrock-autoloader.php disallow-indexing.php register-theme-directory.php
11. cd back to /public/
12. Ask Kinsta's support to reset the root directory
Go to Kinsta's chat in the bottom-right corner and ask them to reset the root
directory to be
public instead of
public/current for the website you're
Example "Hey there, please reset the root directory for mosaad2 to be
13. Search and replace urls
The below assumes the production url contains
www.. It makes sure to replace
any old urls with
http only or without
www. as well.
wp search-replace "/app/" "/wp-content/" && wp search-replace "http://mosaad.com" "https://www.mosaad.com" && wp search-replace "https://mosaad.com" "https://www.mosaad.com" && wp search-replace "http://www.mosaad.com" "https://www.mosaad.com" && wp search-replace "https://www.mosaad.com/wp" "https://www.mosaad.com" && wp option update home "https://www.mosaad.com" && wp option update siteurl "https://www.mosaad.com"
Note: the order of these search-replace matters. if you replaced the domain
before you replace
/wp-content/ you might end up with urls in the
https://www.mosaad.com-content/uploads/06/img.png which will
break media links.
14. Review Kinsta's redirect rules
Check Redirects in your Kinsta's dashboard and make sure no rule is
/app/ or any url to the old
15. Clear Kinsta's cache
You can do so from your WordPress admin or from tools in your Kinsta's dashboard.
16. Clear Plugins cache
If you have image optimization plugins such as Nitro or OptiMole, make sure you clear their cache as well.
17. Visit your site's url to confirm it's working
18. If something went wrong, restore the backup
19. If all looks good, delete Trellis directories
rm -rf releases current shared
20. Setup a Continuous Integration for you Sage theme
I personally use Bitbucket Pipelines but you can use any CI service you wish.
21. Fix any hardcoded URLs in your theme
Make sure you check your theme for any url that contains
/app/ and replace it
/wp-content/ or be a better developer and do it dynamically the proper
22. Search your theme for WP_ENV constant
If you used something like
if(WP_ENV === 'production') it will fail because
that was generated by Trellis. You can either define it for live website
manually by editing the
wp-config.php file or remove these if statements from
If the above didn't work for you or you wish for me to expand on the why behind any of it, tweet at me. I'm very friendly.