Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Jan 14, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

mike182uk and others added 5 commits January 14, 2026 16:48
ref https://linear.app/ghost/issue/FEA-534

Adds a new `redemption_type` column to support applying offers to
existing subscriptions

Defaults to 'signup' for backward compatibility

Model default is required because the Bookshelf plugin sets `undefined`
schema columns to `null`, bypassing the database default
closes https://linear.app/ghost/issue/NY-837

- Replaced Handlebars template syntax ({{member.name}}) with simpler
brace syntax ({name}, {first_name}, {email}, {site_title}, {site_url})
- Added support for custom fallback values (e.g., {first_name, "friend"}
renders "friend" when name is missing)
- Removed hardcoded "there" fallback
no issue

Currently to run Ghost locally with Stripe with the new `yarn
dev:forward` setup, you need to install and run the Stripe CLI locally,
and pass the webhook secret to Ghost via environment variable. This
change makes it easier to run Ghost with Stripe with the `yarn
dev:forward` command.

---
To use:
- Add `COMPOSE_PROFILES=stripe` to `.env` file at root of repo
- Add `STRIPE_SECRET_KEY` to `.env` file at root of repo (or export it
in your shell)
- Run `yarn dev:forward`

---
How it works
- The stripe CLI runs in docker. The entrypoint file runs to fetch the
WEBHOOK_SECRET required by Ghost to verify Stripe webhooks, and saves it
to a shared volume
- When `ghost-dev` starts, the entrypoint reads WEBHOOK_SECRET from the
shared volume into its environment before booting Ghost
…cts (#25848)

no refs

The react admin app's dev server runs on vite's default port (5173),
which conflicts with the Koenig dev server. When running `yarn dev` in
Koenig first, then `yarn dev:forward` in Ghost, Koenig grabs the port
first and Ghost's `dev-gateway` service will route requests intended for
Ghost Admin to the Koenig dev server instead, breaking the development
environment.

This changes the react admin app's port to 5174 to avoid this conflict.
It also adds a `yarn dev:lexical` command to conveniently run the
`dev:forward` environment with your local editor.
no ref

## Problem

Following the official install from source instructions from Ghost's
docs, using `yarn dev`, currently fails with an NX error message:

`NX   Daemon process terminated and closed the connection`

The nx daemon is required when running `yarn dev`, because some of the
sub-commands use `nx watch -- ..` to rebuild apps on file changes, and
`nx watch` requires the daemon to be running.

## Investigation

Suspect commit: ac366a3

Before this commit, which upgraded to NX 22, the `yarn dev` script
explicitly started the nx daemon. This was removed, so now the NX daemon
doesn't run by default. It can be started manually with `yarn nx daemon
--start`, which fixes the NX Daemon errors.

## Solution

Add back the explicit `yarn nx reset` and `yarn nx daemon --start`
commands to the `yarn dev` script, so these run automatically when
running `yarn dev`. This should guarantee the NX daemon is running
whenever `yarn dev` is run, thus avoiding the `NX Daemon process
terminated and closed the connection` errors.
@pull pull bot locked and limited conversation to collaborators Jan 14, 2026
@pull pull bot added the ⤵️ pull label Jan 14, 2026
@pull pull bot merged commit 2ab99bb into code:main Jan 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants