Skip to content

feat: add Campfire channel support#18

Draft
frankdierolf wants to merge 1 commit intocoollabsio:mainfrom
frankdierolf:feat/campfire-channel
Draft

feat: add Campfire channel support#18
frankdierolf wants to merge 1 commit intocoollabsio:mainfrom
frankdierolf:feat/campfire-channel

Conversation

@frankdierolf
Copy link

@frankdierolf frankdierolf commented Feb 14, 2026

Hola 👋

here Frank. this is a draft. I will come back if the native campfire integration lands. I assume this will take a bit. Almost 3k PR, not issues, PRs xD Hilarious. Yeah, lets see.

Thank you for the work on coolify!
Its a amazing product and thanks for the native openclaw service. You did a great job there. I did myself previously and it was not that neat. Well done. 😁

Best regards,
Frank ✌️


AI Pull Request Summary

Summary

Add support for the Campfire channel (37signals self-hosted chat) in the Docker image.

Depends on: openclaw/openclaw#7883 (Campfire channel plugin — now open for review)

Changes

scripts/configure.js

  • Add env var configuration for Campfire: CAMPFIRE_BOT_KEY, CAMPFIRE_BASE_URL, CAMPFIRE_WEBHOOK_PATH, CAMPFIRE_GROUP_POLICY, CAMPFIRE_GROUP_ALLOW_FROM
  • Follows the same pattern as Telegram, Discord, Slack channel configuration

scripts/entrypoint.sh

  • Add nginx auth bypass for webhook-based channels (Campfire, Slack HTTP mode, Telegram webhook mode)
  • When AUTH_PASSWORD is set, nginx basic auth blocks external webhook POSTs. These location blocks bypass basic auth for webhook paths while maintaining security:
    • POST only: limit_except POST { deny all; } rejects non-POST requests at nginx level
    • Gateway passthrough: The openclaw gateway does not auth-protect plugin HTTP handlers (server-http.ts:501-522 only gates /api/channels/*), so webhooks reach the channel plugin directly
    • Plugin validation: Each channel plugin validates webhook payloads (structure, @mention checks, group policies, user allowlists)

Environment variables

Variable Required Description
CAMPFIRE_BOT_KEY Yes (with BASE_URL) Bot key from Campfire bot settings (format: {id}-{token})
CAMPFIRE_BASE_URL Yes (with BOT_KEY) Campfire instance URL (e.g., https://campfire.example.com)
CAMPFIRE_WEBHOOK_PATH No Custom webhook path (default: /campfire)
CAMPFIRE_GROUP_POLICY No Group policy: disabled, allowlist, or open
CAMPFIRE_GROUP_ALLOW_FROM No Comma-separated user IDs/names allowed in groups

Note

This PR is a draft because it depends on the Campfire channel plugin being merged into openclaw first (openclaw/openclaw#7883). Once that lands and a new base image is built, this will work end-to-end.

Add env var configuration for Campfire channel (CAMPFIRE_BOT_KEY,
CAMPFIRE_BASE_URL, CAMPFIRE_WEBHOOK_PATH, CAMPFIRE_GROUP_POLICY,
CAMPFIRE_GROUP_ALLOW_FROM).

Add nginx webhook auth bypass for channels that use HTTP webhooks
(Campfire, Slack HTTP mode, Telegram webhook mode). These paths
skip basic auth since the gateway does not auth-protect plugin HTTP
handlers — the channel plugins validate payloads themselves.

The bypass blocks restrict to POST only via limit_except for
defence-in-depth.

Depends on: openclaw/openclaw#7883
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant