@@ -27,7 +27,7 @@ Hive76 WordPress site, and Eventbrite events.
27275 . Create and download a JSON key:
2828 - Click the service account → Keys → Add Key → Create new key → JSON
2929 - Save as ` config/service-account.json ` in this directory
30- 6 . Note the service account ** email address** (looks like ` beebot-sync@hive76-beebot .iam.gserviceaccount.com ` )
30+ 6 . Note the service account ** email address** (looks like ` beebot-sync@YOUR-PROJECT-ID .iam.gserviceaccount.com ` )
3131
3232### Share the Drive folder with the service account
3333
@@ -132,28 +132,21 @@ docker logs -f beebot
132132
133133---
134134
135- ## Step 5 — Automatic Updates (Watchtower )
135+ ## Step 5 — Automatic Updates (Cron Pull )
136136
137137BeeBot uses a pull-based deployment model. When commits are merged to ` main ` ,
138138GitHub Actions builds a new image and pushes it to
139- ` ghcr.io/hive76/beebot:latest ` . Watchtower on the host polls for new images
140- and restarts the container automatically — no SSH access from CI required.
141-
142- Add Watchtower to your host's ` docker-compose.yml ` (or run it separately):
143-
144- ``` yaml
145- watchtower :
146- image : containrrr/watchtower
147- restart : unless-stopped
148- volumes :
149- - /var/run/docker.sock:/var/run/docker.sock
150- - /root/.docker/config.json:/config.json:ro # for GHCR auth
151- command : --interval 300 beebot # poll every 5 min, watch beebot only
139+ ` ghcr.io/hive76/beebot:latest ` . A host cron job polls for new images and
140+ restarts the container — no SSH access from CI required.
141+
142+ Add to crontab on the host (` crontab -e ` ):
143+
144+ ``` bash
145+ # Pull and redeploy beebot every 5 minutes (no-op if image hasn't changed)
146+ * /5 * * * * cd /opt/beebot && docker compose pull beebot --quiet && docker compose up -d --no-deps beebot >> /var/log/beebot-update.log 2>&1
152147```
153148
154- To authenticate Watchtower with GHCR, create a GitHub PAT with ` read:packages`
155- scope and run `docker login ghcr.io` on the host — Watchtower picks up the
156- stored credentials automatically.
149+ Since ` ghcr.io/hive76/beebot ` is a public image, no GHCR authentication is needed.
157150
158151---
159152
@@ -256,5 +249,5 @@ Google Drive (HiveBot Docs folder)
256249GitHub (hive76/beebot)
257250 └── GitHub Actions CI (test + secret scan on PRs)
258251 └── GHCR (ghcr.io/hive76/beebot:latest)
259- └── Watchtower on host (polls, pulls, restarts)
252+ └── host cron (polls every 5 min , pulls, restarts)
260253```
0 commit comments