Hello & Migration Plan

Hello, first post here.

I have a long-running site that I’d like to experimentally migrate (at least in part, at first) to self-hosted Ghost. It’s a rather rickety old self-hosted site with non-blog parts and a blog with many hundreds of entries. The blog is currently fronted by much-hacked Jekyll, and it all goes back to pre-MoveableType PHP-backend days.

I’m considering Ghost for the addition of email newsletter(s) and readymade service integrations.

Here are my imagined steps:

  • Install dev Ghost on a LAN-local Pi 5 (ubuntu 23 okay?)
  • Experiment with migrating some or most or all of the old posts and pages, see how they might work with Ghost themes and see if I need to add plugins/integrations etc.
  • If this local version all seems ship-shape, migrate it to an open-internet larger box. Hoping this is straightforward?
  • If required, finish any integration experiments (in case they need an internet-visible box to function).
  • Move DNS from the existing machine to whatever the new machine is (even if via the same service provider), so the switchover is (URL-wise) invisible to existing regular visitors.

So far so good?

Beyond that, how do I keep my local development edition in sync with the deployed one? What role does Git play here, or is it MySQL all the way down?

Thanks for any pointers!

Hey @joker-b , welcome to Ghost!

You want Ubuntu 22, not 23. It’s the even releases that get five years of standard support. (If you wait another month, you could choose 24, but I’m not sure that everything in the Ghost stack will immediately be good in 24, so I’d choose '22, which has support through April '27. Probable that Ghost’s stack requirements will change before then, in any case.)

Once you get your content into Ghost, moving it will only take a few minutes. Here’s the basic steps:

  1. Install ghost on new server (command line)
  2. Copy the theme over. (Export and Import within the Ghost dashboards or use the Github action to manage the theme – highly recommended, super awesome once set up, and setup is pretty easy)
  3. Move the text-content (blog posts, pages, etc and configuration) - download from existing site and upload to new site. Done in the dashboard, just a couple clicks.
  4. Move the images & other uploaded files (lives in content/) - use ftp or rsync or zip and download the directory.
  5. If you have a custom routes or redirects files, move them.

I do a lot of development work for client sites. Basically, I take a theme export, data export, and snag a small number of representative files, all of which I install on my local machine. Then I can work out any theme edits, and just sync the theme back to the live install. For my use cases I don’t generally need to keep sync’d perfectly with the live site, because I’m not going to push content back to them, just the theme. That allows the client to continue publishing on their regular schedule and me to create test posts to try things out, without any need to later merge that content work. [Themes and content are entirely separate.]

Hope that makes sense!

Thanks Cathy.

I’m stuck with Ubuntu 23 for this hardware (Ubuntu Foundation say they will not do the backport work required to support 22 or 20), but so far so good! Not very far, but things are running well-enough to handle my initial explorations.

What is “the Github action”?

Digging through a couple of themes and it’s good to see that separation of theme from content, much cleaner that Jekyll in that regard. Hopefully refactoring my various custom JS elements will be straightforward too.

1 Like