NoRaincheck

A look at Campfire for self-hosted Slack alternative

A look at Campfire for self-hosted Slack alternative

March 2026

Campfire is not really a commonly suggested alternative to Slack/Discord. Afterall its missing various features including voice chat, threads or other features. It makes up for it by being incredibly easy to self-host and easy to write a bot that can interact in such an interface.

Campfire can be hosted from a single Dockerfile using sqlite as its database. For majority of low-numbered user-count situations this is more than sufficient.

 1services:
 2  campfire:
 3    image: ghcr.io/basecamp/once-campfire:latest
 4    volumes:
 5      - ./campfire_storage:/rails/storage
 6    restart: always
 7    ports:
 8      - "3000:3000" # or whatever is appropriate
 9    environment: # probably other envvars to setup if you are actually exposing this via tailscale etc..
10      SECRET_KEY_BASE: "salt"
11      DISABLE_SSL: "true"

Writing a bot for this is likewise very straightforward. It uses a webhook with a set format. Just make sure your response is correct format. You can also send images or video with the appropriate MIME type. For example using FastAPI/Starlette it may look something like this:

1@app.post(
2    "/debug",
3)
4def debug_request(request: WebhookRequest):
5    return Response(
6        content=DEFAULT_MESSAGE_TEMPLATE.render(debug=request, msg="Debug Request Output"),
7        media_type="text/html",
8    )

If this isn’t set appropriately, the message would be treated as a json attachment, which is probably not what you’re after.

<< Previous Post

|

Next Post >>

🎲 Random post

|

All posts

#SQLite #Docker #FastAPI