/var/log/matrix-deploy.log on LXC 106 shows the last matrix-deploy run on 2026-05-15, and /opt/matrix-config there is still at d3ee2e2. The webhook service is active and hooks.json has the matrix-deploy hook, but pushes to main never trigger it. So cinny/config.json and cinny/nginx.conf changes merged since May have not been deployed automatically.
Found while rolling out cinny #43 (2026-09-27): the call-origin nginx.conf and the elementCallUrl config change had to be installed by hand.
config.json: edited in place, because the live file carries the injected gifApiKey; backup is in /root/config-backups/.
The live files now match main.
To check:
whether the Gitea repo webhook for LXC 106 exists, is enabled and points at the right URL/port (README: :9000 is bound to 127.0.0.1, :9001 is webhook-lotus)
whether MATRIX_DEPLOY_SECRET matches the webhook's secret (the signature check)
the Gitea webhook delivery log for recent pushes.
Note: when it does fire again, lxc106-cinny.sh would cp cinny/config.json over the live file and blank the injected gifApiKey. The script should re-inject it, or merge keys like the in-place edit did.
`/var/log/matrix-deploy.log` on LXC 106 shows the last `matrix-deploy` run on **2026-05-15**, and `/opt/matrix-config` there is still at `d3ee2e2`. The webhook service is `active` and `hooks.json` has the `matrix-deploy` hook, but pushes to `main` never trigger it. So `cinny/config.json` and `cinny/nginx.conf` changes merged since May have **not** been deployed automatically.
Found while rolling out cinny #43 (2026-09-27): the call-origin `nginx.conf` and the `elementCallUrl` config change had to be installed by hand.
- `nginx.conf`: backup `sites-available/cinny.bak-20260927110949`, installed behind `nginx -t`.
- `config.json`: edited in place, because the live file carries the injected `gifApiKey`; backup is in `/root/config-backups/`.
The live files now match `main`.
To check:
- whether the Gitea repo webhook for LXC 106 exists, is enabled and points at the right URL/port (README: `:9000` is bound to 127.0.0.1, `:9001` is `webhook-lotus`)
- whether `MATRIX_DEPLOY_SECRET` matches the webhook's secret (the signature check)
- the Gitea webhook delivery log for recent pushes.
Note: when it does fire again, `lxc106-cinny.sh` would `cp cinny/config.json` over the live file and **blank the injected `gifApiKey`**. The script should re-inject it, or merge keys like the in-place edit did.
Cause: Gitea hook 73 posted to http://10.10.10.6:9000/hooks/matrix-deploy. On LXC 106, webhook.service binds :9000 to 127.0.0.1, so every delivery was refused and nothing deployed from May until now. The same hooks, with the same secret, are served by webhook-lotus on :9001, which is reachable and already handles the cinny lotus-deploy hook.
What changed:
PR #15 (d76d276): the deploy script mergescinny/config.json into the live file instead of copying it. Server-injected values such as gifApiKey are kept, and there's a backup in /root/config-backups. The script now installs its own updates. A hooks.json change restarts webhook-lotus 15 s after the script exits. The README is updated.
The new script was installed on LXC 106 by hand (it can't update itself until it's there). The checksum matches the repo, and the old copy is backed up in /root/.
Hook 73 now points at :9001. The secret is unchanged and verified.
Verification: a Gitea test delivery was accepted on :9001 with a valid signature, and the deploy ran from the May checkout to d76d276:
config.json merged ("kept server values for: gifApiKey"); the live keys are unchanged and the GIF key is still set
nginx.conf passed nginx -t and reloaded; the site and call host return 200/404 as expected
hooks.json was reinstalled; webhook and webhook-lotus are both active after the delayed restart
the script updated itself.
Pushes to main that touch LXC 106's files now deploy automatically again.
## Fixed
**Cause:** Gitea hook 73 posted to `http://10.10.10.6:9000/hooks/matrix-deploy`. On LXC 106, `webhook.service` binds `:9000` to `127.0.0.1`, so every delivery was refused and nothing deployed from May until now. The same hooks, with the same secret, are served by `webhook-lotus` on `:9001`, which is reachable and already handles the cinny `lotus-deploy` hook.
**What changed:**
1. **PR #15** (`d76d276`): the deploy script **merges** `cinny/config.json` into the live file instead of copying it. Server-injected values such as `gifApiKey` are kept, and there's a backup in `/root/config-backups`. The script now installs its own updates. A `hooks.json` change restarts `webhook-lotus` 15 s after the script exits. The README is updated.
2. **The new script was installed on LXC 106 by hand** (it can't update itself until it's there). The checksum matches the repo, and the old copy is backed up in `/root/`.
3. **Hook 73 now points at `:9001`.** The secret is unchanged and verified.
**Verification:** a Gitea test delivery was accepted on :9001 with a valid signature, and the deploy ran from the May checkout to `d76d276`:
- `config.json` merged ("kept server values for: gifApiKey"); the live keys are unchanged and the GIF key is still set
- `nginx.conf` passed `nginx -t` and reloaded; the site and call host return 200/404 as expected
- `hooks.json` was reinstalled; `webhook` and `webhook-lotus` are both active after the delayed restart
- the script updated itself.
Pushes to `main` that touch LXC 106's files now deploy automatically again.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
/var/log/matrix-deploy.logon LXC 106 shows the lastmatrix-deployrun on 2026-05-15, and/opt/matrix-configthere is still atd3ee2e2. The webhook service isactiveandhooks.jsonhas thematrix-deployhook, but pushes tomainnever trigger it. Socinny/config.jsonandcinny/nginx.confchanges merged since May have not been deployed automatically.Found while rolling out cinny #43 (2026-09-27): the call-origin
nginx.confand theelementCallUrlconfig change had to be installed by hand.nginx.conf: backupsites-available/cinny.bak-20260927110949, installed behindnginx -t.config.json: edited in place, because the live file carries the injectedgifApiKey; backup is in/root/config-backups/.The live files now match
main.To check:
:9000is bound to 127.0.0.1,:9001iswebhook-lotus)MATRIX_DEPLOY_SECRETmatches the webhook's secret (the signature check)Note: when it does fire again,
lxc106-cinny.shwouldcp cinny/config.jsonover the live file and blank the injectedgifApiKey. The script should re-inject it, or merge keys like the in-place edit did.Fixed
Cause: Gitea hook 73 posted to
http://10.10.10.6:9000/hooks/matrix-deploy. On LXC 106,webhook.servicebinds:9000to127.0.0.1, so every delivery was refused and nothing deployed from May until now. The same hooks, with the same secret, are served bywebhook-lotuson:9001, which is reachable and already handles the cinnylotus-deployhook.What changed:
d76d276): the deploy script mergescinny/config.jsoninto the live file instead of copying it. Server-injected values such asgifApiKeyare kept, and there's a backup in/root/config-backups. The script now installs its own updates. Ahooks.jsonchange restartswebhook-lotus15 s after the script exits. The README is updated./root/.:9001. The secret is unchanged and verified.Verification: a Gitea test delivery was accepted on :9001 with a valid signature, and the deploy ran from the May checkout to
d76d276:config.jsonmerged ("kept server values for: gifApiKey"); the live keys are unchanged and the GIF key is still setnginx.confpassednginx -tand reloaded; the site and call host return 200/404 as expectedhooks.jsonwas reinstalled;webhookandwebhook-lotusare both active after the delayed restartPushes to
mainthat touch LXC 106's files now deploy automatically again.