*.suji.fr address.
This page covers running Ghost on Suji end-to-end. Ghost is maintained upstream; Suji provides the marketplace packaging.
Before you install
Nothing to prepare. You’ll create your admin (owner) account in the browser on first run. If you later want to send newsletters or member emails, you’ll add an email provider. See Email & newsletters.Ghost has no generated password and no credentials file, the first person to open the admin URL creates the owner account. Set yours up immediately after install (see below).
Install
Dashboard → Apps → Ghost → Install:
Ghost is lightweight (it needs only ~512 MB), so Small is plenty. See Recommended size.
Click Deploy. The install reaches
running in ~1 minute. Your site is then live at https://ghost-<random>.suji.fr, served over HTTPS through the tunnel.
First connection: create your owner account
- Open the admin panel at
https://ghost-<random>.suji.fr/ghost(the/ghostpath). - Ghost shows a Create your account screen on first run.
- Enter your site title, name, email, and a password. This is the owner account.
- You land in the Ghost admin.
/ghost shows a normal sign-in. The public site lives at the root (/).
Writing & publishing
Inside the Ghost admin:- Posts / Pages: write in the editor, then Publish.
- Design / Branding: set your theme, colors, logo; upload custom themes under Settings → Design.
- Members: enable signups/subscriptions under Settings → Membership (email setup required to actually send to members. See below).
Email & newsletters
The install ships with no email provider configured, so member signup confirmations, password resets, staff invites, and newsletters won’t send until you add one.- Transactional email (invites, password resets) uses SMTP. Note the underlying network blocks outbound SMTP on ports 25 and 465: use port 587 (STARTTLS) or an HTTP-based provider.
- Bulk newsletters require Mailgun specifically (Ghost only supports Mailgun for bulk sending), which uses Mailgun’s HTTP API, unaffected by the SMTP port block.
mail__* / Mailgun env vars to the install yourself, through Edit Install → environment variables, or the compose-edit escape hatch, then redeploy.
Custom domain
Ghost bakes its Site URL (yourhttps://<subdomain>.suji.fr, wired automatically from the install’s subdomain) into post links, images, and RSS. Custom domains aren’t supported directly, the Site URL always follows the assigned subdomain.
Day-to-day management
Troubleshooting
The site loads but styling/links are broken
The site loads but styling/links are broken
Usually a Site URL mismatch: Ghost is rendering links for a different address than the one you’re visiting. The Site URL follows the install’s subdomain automatically; if you changed the subdomain, redeploy so Ghost picks up the new address.
I can't reach the admin / forgot the owner password
I can't reach the admin / forgot the owner password
The admin is at the
/ghost path, not the site root. The “Forgot?” link needs email configured (see Email & newsletters), so set email up before you need a reset. Without email, recovering a locked-out owner means resetting it directly in Ghost’s database via the Terminal.Bad gateway (Cloudflare 502)
Bad gateway (Cloudflare 502)
Ghost isn’t reachable through the tunnel yet, usually still starting (wait ~30 s, especially after an upgrade). If it persists, the Logs tab shows why the container isn’t up.
Where things live
Ghost runs on SQLite. There’s no separate database container. Everything lives in the one
ghost-content volume.
Recommended size
- Small is plenty. Ghost needs only ~512 MB and the compose caps it at 1 GB.
- Disk is the thing to watch on an image-heavy site, uploads accumulate in the content volume. Size storage accordingly.
- If you run other apps on the same VM, remember the VM’s total CPU/memory is shared.