Home About Me

The Ghost Blog PR 1Panel Rejected, and Later Merged Anyway

I have used 1Panel since before the LTS release. One of the things I like is that its app store is not limited to whatever the official team ships: you can write a local configuration file for a custom install, import a third-party store repository, and also submit an app to the official store through the provided channel.

The official criteria are not mysterious. In principle, an app can be submitted if it is an active open-source project, has an official Docker image, and is reasonably well known, usually meaning a solid GitHub star count.

Lately I had been looking into Ghost. It is a blog system that can be deployed with Docker. It is very well known outside China, but its Chinese ecosystem is thin. There is no official Simplified Chinese localization, and Chinese-language tutorials are not plentiful either.

So I wrote a configuration file usable by the 1Panel app store. I tested it locally and it worked well: one-click install, automatic setup of the database it requires (MySQL or MariaDB), and settings that were generally easy to use. That last part is not surprising; 1Panel's app store interaction model is already decent.

Ghost seemed to meet the stated conditions. I also wanted more people who need this blog system to be able to install it without friction, so I cleaned up the files and opened a pull request against the official app store repository.

Two or three days later, I got a reply:

Screenshot of the rejection reply

The gist was that Ghost would overlap with Halo, the blog system already covered in the store. I can appreciate a direct answer, but the logic is hard to follow.

Taken at face value, it looks like favoring an incumbent product and keeping a competitor out. Setting emotion aside, it still does not feel like a good fit.

First, as I said, Ghost's Chinese ecosystem is weak. Even the Simplified Chinese interface was added later by enthusiasts, and themes and plugins are scarce. Halo's domestic ecosystem, by contrast, has been developing steadily. Someone shopping for a blog system in this market is unlikely to skip Halo just to force Ghost into the picture.

Second, this kind of rejection can discourage users. Writing the configuration took me about an hour, so it was not an enormous investment, but when an app meets the basic conditions and is turned down on those grounds, it feels small.

I won't go on. 1Panel is a good product. We cannot demand that it become exactly what we want, but I hope it does not get tied to a commercialization label and turn into a second Baota.

A note on third-party stores

Some people suggested submitting to a third-party app store repository such as okxlin/appstore. This is only my subjective view, but I find that repository somewhat messy. The quality of submitted apps varies, and the configuration files and descriptions are not always standardized. I previously contributed Mix-Space and NodeBB to it. Later, when I pulled and used it myself, it felt genuinely disorganized. Some apps overlap with the official store, and for some you still have to go into the directory and run docker compose -d manually.

I appreciate everyone who contributes to it, but I probably will not use it. I plan to write a cleaner store repository collection of my own.

Update

On April 10, 2025, in a merge request, they merged the Ghost blog system and let me know. I do not have much to say about that.