So in my last post, I mentioned offhand towards the end that I was experimenting with running Ghost on Reclaim Cloud, and while it was working all right, I was running into this error when I tried to update to the latest version:
Essentially, I started with the default one-click installer of Ghost, which is set up originally by Jelastic. Ghost has some documentation for installing/updating Ghost-CLI, which is a tool for installing or updating Ghost in turn. So, naturally, I installed Ghost-CLI with the hope of being able to update Ghost from 4.5.0 (what comes out of the box with the one-click installer) to 4.32.0 (the most recent version, released on GitHub five days ago).
It did not work.
From the error above, you can see that Ghost-CLI is up and running, and that everything I need for Ghost is present in the directory. But when I try to update, it says that I can’t, because Ghost-CLI commands don’t work on git clones, zip downloads, or versions of Ghost earlier than 1.0.0. Then it suggests I try ‘grunt update’.
(When I tried ‘grunt update’, I got an error saying that Grunt didn’t exist in this directory. I installed Grunt using the steps in their Getting Started doc, got an error saying that Grunt couldn’t be properly installed because Grunt files already existed in this directory, reran the command, and got told Grunt didn’t exist in this directory.)
Jim Groom and I got together on a Slack huddle to try and troubleshoot this, but ended up not having any luck — we went back and forth in this lemniscate loop of “Update Ghost! No, update Grunt! No, that’s working! No it’s not!”. Finally we had to stop at a question we weren’t really sure how to answer: is the one-click installer using a Git clone? If it is, how would we get in to update it?
That’s not something we can really see under the hood, because it’s part of the setup process. Instead Jim, thinking outside the box, said, “What about Docker?”
I’ve posted a little bit about Docker before, in the context of a tutorial that I was working through alongside some other people at Reclaim (that post series is currently on hold, To Be Returned To), but what’s relevant here is that Docker lets you set up containers for various apps, including ones from the Docker Hub, where people can share their work with the world. Including, for example, Ghost.
Setting Up Ghost through Docker through Reclaim Cloud
We actually have some documentation on setting up a Docker Engine environment written by Jim and available here, as part of an article on setting up Peertube. The concept’s pretty much the same, so I won’t reproduce it here, but once you’ve hit the big green Install button, here’s where the work diverges.
Setting Up Ghost on Docker
First, get into your web SSH tool. Here’s a quick look at what that looks like on my setup using the environment ghosttest2, showing both the button you want and the command line it’ll pull up.
From here, the Ghost image on Docker Hub includes instructions for how to set up the image from the command line. Run one of these two commands, depending on what you want; we used the second one.
Which yields, for my ghosttest2 environment, this:
And there you go! This currently extremely basic site is going to be my testing grounds for experiments with Ghost as a platform. You can check in if you want, but be warned, it’s probably going to be pinging back and forth, up and down, as I turn the Reclaim Cloud environment off and on.
For the Future
- making sure the site is secure in browser
- figuring out how to not have the port in the URL/general URL cleanup
- making posts and visual customization (Ghost also recently put up new features in celebration of Cardmas, and there’s an article on planning a newsletter I’m hoping to read soon…)
- Revisit the question: how does the one-click installer set up Ghost, and how can I push it to the newest version? Can I update using Git in the command line?
All this and more, in FUTURE INVESTIGATIONS! (maybe)