Skip to content

Deployment guide

Call Baxter has two Docker Compose layouts with deliberately different scopes.

Choose the correct stack

Layout Services Best for WordPress bridge included
docker/ Call Baxter, MariaDB, WordPress, optional Caddy complete Telegram-to-WordPress deployment and first-run tutorial yes
infra/ Call Baxter and Caddy minimal runtime/proxy deployment when WordPress is external or unused no

Do not use the minimal stack for the bundled WordPress example

The infra/ image installs call-baxter and tg-agent-cli, but not cb-wordpress-plugin. It also does not run WordPress or MariaDB. Use docker/ for the end-to-end example.

Start with Telegram long polling. It requires no public DNS or HTTPS and isolates initial failures to the bot token, runtime, rules, and WordPress credentials.

Telegram getUpdates
  -> call-baxter
  -> telegram.message.new
  -> wordpress.mirror_telegram_message
  -> WordPress REST API

Once this works, switch to webhook mode:

Telegram HTTPS webhook
  -> Caddy secret-token check
  -> call-baxter Unix socket
  -> same event/rule/action path
  -> WordPress REST API

Tutorials and references

Operational sequence

1. Verify repository
2. Create Telegram bot
3. Configure docker/.env
4. Start MariaDB + WordPress
5. Create WordPress integration user + application password
6. Verify REST authentication
7. Start Call Baxter in polling mode
8. Send #blog test message
9. Verify runtime, projection, publication mapping, and WordPress
10. Optionally switch to Caddy webhook mode
11. Back up state before upgrades

The full tutorial includes exact commands and failure diagnostics for each stage.