Commit Graph

9 Commits

Author SHA1 Message Date
James Loh
7a7f41b82c Set NODE_ENV to production
no ref

- This used to be handled by the `systemd` service and I forgot to port
2025-06-27 16:32:49 +10:00
James Loh
a924fa976a Pinned Ghost + Tinybird Sync container to same image
Closes https://linear.app/ghost/issue/ENG-2414

- These two containers must run the same version of Ghost since the TB container uses assets from the Ghost container
- If the two are out of sync we'd be updating or migrating Tinybird to a different set of APIs than what Ghost is expecting which could break things
2025-06-23 14:23:45 +10:00
James Loh
81893178fd Migrated data dirs to mount instead of docker volume
Closes https://linear.app/ghost/issue/ENG-2413

- This makes migration from standard `ghost-cli` installs to Docker a bit easier and also tries to prevent people from accidentally pruning their Docker volumes are removing data
2025-06-23 14:03:18 +10:00
Fabien O'Carroll
ac7fdad0f1 Replaced dependency on GCS with local storage
ref https://linear.app/ghost/issue/PROD-2009

ActivityPub now supports configuring a local storage adapter, we defer
to the ghost service for actually serving the images, so we write to a
shared volume and point our URLs at the Ghost content directory.
2025-06-19 08:28:44 +07:00
Joe Grigg
46cf0bdf51 Added required GOOGLE_CLOUD_PROJECT environment variable 2025-06-03 11:05:02 +01:00
Joe Grigg
dc63fab879 Added activitypub configuration 2025-06-02 14:12:19 +01:00
Chris Raible
e6d4754682 Added Tinybird migrations (#2)
no refs

The current setup runs the base Ghost installation without Traffic Analytics functionality. This commit adds:

- `tinybird-sync` service, which copies the latest Tinybird datafiles from the `ghost` container into a shared volume
- `tinybird-deploy` service & Dockerfile that includes the `tb` CLI, and runs `tb --cloud deploy` on boot
- Instructions for one-time manual setup of the Tinybird workspace in `TINYBIRD.md`

After the one-time manual setup, this configuration should automatically update Tinybird's datasources and endpoints in sync with the Ghost container when it is updated.


The initial setup is a bit clumsy and requires more manual steps than expected:
- The tinybird datafiles are in the Ghost image, but we need to access them from the `tinybird-deploy` service, which includes the `tb` CLI.
- When creating a new workspace in Tinybird, you can't access your admin token right away. Instead, it forces you to run `tb login` and `tb --cloud deploy` before you can access the rest of your workspace UI. This requires the user to install the `tb` CLI locally, and run an interactive login to authenticate with their Tinybird workspace. The generated `.tinyb` file is then mounted into the `tinybird-deploy` container, so this is only required for initial setup.
- Ghost requires the Tinybird `stats` and `tracker` token to be provided at boot. This means the user has to manually copy these tokens (either from CLI or the Workspace UI) and add them to their `.env` file manually. 
- We may want to either publish the Docker image with the Tinybird CLI installed, or possibly add the `tb` CLI to the traffic-analytics container.
2025-06-01 14:13:40 -07:00
Joe Grigg
de4605e48d Added tinybird config 2025-05-29 14:01:17 +01:00
Joe Grigg
72be447b06 Added inital configuration for Ghost, Caddy, MySQL & Traffic Analytics 2025-05-27 16:36:01 +01:00