Knowledge base
1000 FAQs, 500 tutorials and instructional videos. Here, there are only solutions!
Install Ghost on Infomaniak hosting
This guide details the installation and maintenance of Ghost on an Infomaniak Web Hosting, to obtain a platform optimized for blogging and editorial publishing, a powerful alternative to Substack or Medium.
Prerequisites
- A Node.js type site (v22 recommended).
- An active SSH access.
- A MySQL/MariaDB database.
- Stop the Node.js application from the dashboard of your Node.js site before any technical operation.
Installation of Ghost
To do this:
- Connect to your server via SSH (need help?).
Run the following commands to start the installer:
# Clone tools repo git clone https://github.com/Infomaniak/hosting-tools.git cd hosting-tools/h3-ghost # Run installation script bash ./install.sh- The script will now:
- ask you a few questions (site URL, database information, SMTP, etc.)…
- download and configure Ghost automatically…
- take a few minutes — be patient!
Answer the questions carefully using the details you have noted. Do not close the terminal until it has finished!
Configuration of the Manager (Node.js)
Once the script is complete, go to your Infomaniak Control Panel:
- Click here to access the management of your site on the Infomaniak Manager (need help?).
- Click directly on the name assigned to the site concerned:

- Click on Manage under Advanced Settings:

- Click on the Node.js tab to access the settings.
In the execution command field, enter:
/srv/customer/node_modules/ghost-cli/bin/ghost run- Check that the port number is
3000. - Command case build : disable it.
- Click on the Save button at the bottom of the page:

- On the main page, click on the Start button (or Restart if already running).
- Confirm the operation if necessary:

- Observe the logs showing the creation of the database and the startup of the application.
Updating Ghost
Before updating: do you want to back up your data? Refer to this other guide
To update Ghost CMS to the latest version or a specific version, follow these steps:
- Stop the Node.js application in the Infomaniak Manager.
Access the directory of your Ghost site
# Navigate to your Ghost site directory cd ~/sites/ghost-site-nameReplace
ghost-site-namewith the actual name of your folder (e.g., blog, mysite, etc.).Ensure that the file permissions are correct (the operation may take several minutes):
# Ensure file permissions are correct find ./ -type d -exec chmod -v 00775 {} \;Check for available updates:
# Check available ghost updates /srv/customer/node_modules/ghost-cli/bin/ghost check-updateFor the latest version (the operation may take several minutes):
# Update to the latest version /srv/customer/node_modules/ghost-cli/bin/ghost updateFor a specific version like v5 (the operation may take several minutes):
# Update to a specific version (e.g., v5) /srv/customer/node_modules/ghost-cli/bin/ghost update v5- Why go through v5? If you are using Ghost v4 and want to upgrade to v6, Ghost requires going through v5 as an intermediate step. This is essential for major version upgrades.
- Wait until the update is complete, then restart the application from the site dashboard to apply the update.
Done! Access your Ghost blog
Go to the URL of your site to get started:
- Open your browser and go to
https://domain.xyz/ghost(replacedomain.xyzwith your current domain). - The first time:
- You will create an administrator account (your login for the blog)...
- Then, you can start writing articles!
User / mail configuration
To create the first user, add /ghost to the URL of your site (for example https://ghost.domain.xyz/ghost) and follow the assistant.
You can also configure the “portal members support address”: when new members want to register, the portal sends the double opt-in confirmation from a specific address.
By default, it is the “noreply” address of your domain. To update it, navigate to “Settings”, “Membership”, “Portal Settings”, “Customize”, and “Account Page”:
Resolve a technical incompatibility between Ghost and MariaDB
Some SQL queries cause HTTP 400 errors on MariaDB, resulting in this type of error:
[2025-01-01 12:54:28] ERROR "GET /ghost/api/admin/posts/6834625e35802b06f1496305/?formats=mobiledoc%2Clexical&include=tags%2Cauthors%2Cauthors.roles%2Cemail%2Ctiers%2Cnewsletter%2Ccount.conversions%2Ccount.clicks%2Csentiment%2Ccount.positive_feedback%2Ccount.negative_feedback" 400 27ms
Could not understand request.
Error ID:
8f2b0d90-3a30-11f0-a25f-fd9c83e1cf02
Error Code:
ER_BAD_FIELD_ERROR
----------------------------------------
Error: select `posts`.*,
...If necessary, a patch exists to adapt Ghost's behavior.
To use this patch, enter this command:
# Enter the current version folder and apply the MariaDB patch
cd current
curl -L https://gist.githubusercontent.com/reneluria/8cbbfbc001e542c77d6d5887fbafe5d3/raw/65e0ce31753b4687d0eb67fc030734a35d3ffbad/ghost-post.patch | patch -p0Link to this FAQ:
Has this FAQ been helpful?