*.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:| Field | Required | Notes |
|---|---|---|
| VM | yes | Pick a VM with free capacity, or create one. |
| Subdomain | no | Suggestion is ghost. Your site is served at https://<subdomain>.suji.fr, which Ghost automatically uses as its Site URL. |
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
| Want to… | Where |
|---|---|
| Write / publish posts | Ghost admin (https://ghost-<random>.suji.fr/ghost) |
| Change theme / branding | Admin → Settings → Design |
| Manage members / subscriptions | Admin → Settings → Membership |
| View container logs | Dashboard → Logs (pick Ghost) |
| Open a shell inside the container | Dashboard → Terminal (pick Ghost) |
| Browse content / DB on disk | Dashboard → Files (pick the Ghost volume) |
| Restart the app | Install detail page → Restart |
| Upgrade to a newer version | Install detail page → Upgrade (when available) |
| Remove the install + its data | Install detail page → Uninstall |
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.Member emails / newsletters aren't sending
Member emails / newsletters aren't sending
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
| What | Inside container | Named volume |
|---|---|---|
| SQLite database (posts, members) | /var/lib/ghost/content/data/ghost.db | ghost-content |
| Uploaded images | /var/lib/ghost/content/images | ghost-content |
| Themes | /var/lib/ghost/content/themes | ghost-content |
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.
Reporting issues
| Class | Where |
|---|---|
| Ghost bug (editor, themes, membership, admin) | TryGhost/Ghost issues |
| Marketplace packaging bug (compose / manifest / install form) | suji-hq/suji-templates issues |
| Suji platform bug (dashboard, billing, network) | Support ticket from the dashboard |