once-campfire README

The project's README from github.com/basecamp/once-campfire. As one markdown file: README.md.

Campfire

Campfire is a web-based chat application. It supports many of the features you'd expect, including:

Running your own Campfire instance

Campfire's Docker image contains everything needed for a fully-functional, single-machine deployment. This includes the web app, background jobs, caching, file serving, and SSL. You can use our pre-built image at ghcr.io/basecamp/once-campfire:latest, or build your own from this repo.

Deploying with ONCE

The easiest way to self-host Campfire is with ONCE. It will guide you through the initial set up and then keep your instance up to date automatically.

If you don't already have once installed, run this on the machine you want to run Campfire on:

curl https://get.once.com | sh

once will launch as soon as the install is finished.

Choose Campfire from the list of applications, follow the instructions, and ONCE will take care of the rest.

If you prefer the command line to the dashboard, you can deploy directly:

once deploy ghcr.io/basecamp/once-campfire --host chat.example.com

Deploying with Docker

If you'd rather run the Docker image yourself, you can read more about that in the self-hosting guide.

[!TIP] When you start Campfire for the first time, you'll be guided through a wizard to create an admin account. The email address that you enter for the admin account will be visible on the sign-in page, it's there so that people have someone to contact if they need help with their account. If that bothers you, put in any email address you want and create yourself a new admin account.

Other implementations

Campfire also has implementations in Django, Laravel, Express, Elixir, Go and Rust:

HTTP workload (requests/sec) Rails Django Laravel Express Elixir Go Rust
Room page 241 170 164 559 722 3,860 36,260
Messages page 413 196 175 777 1,053 5,573 40,872
Sidebar 552 615 715 4,125 1,275 19,753 34,672
Search 435 315 305 1,294 1,156 7,053 33,299
Post a message 273 154 137 256 801 4,767 6,896

Measured with 16 concurrent clients on an AMD Ryzen AI MAX+ 395, with four hardware threads allocated to each app.

Development

You are welcome - and encouraged - to modify Campfire to your liking. Please see our development guide for how to get Campfire set up for local development.

Security

See SECURITY.md for how to report a vulnerability and a description of our trust model.

once-campfire (basecamp/once-campfire)

Searching Database…

What is this?Campfire is a super simple, web-based group chat app that you self-host instead of paying for a subscription chat service.
Is this a hosted service or something I run myself?It's a self-hosted web app: you run it on your own machine using a Docker image that bundles the web app, background jobs, caching, file serving, and SSL.
How do I get my own instance running?Easiest way is the ONCE installer, which walks you through setup and keeps it updated automatically; alternatively run the pre-built Docker image directly from ghcr.io/basecamp/once-campfire:latest or build it yourself from the repo.
Do I need Docker to run this?Yes — Campfire is distributed and run as a Docker image (or via the ONCE installer, which handles the Docker deployment for you).
What happens the first time I start it?On first launch you go through a setup wizard to create an admin account, and the email you give it will be publicly visible on the sign-in page for support contact purposes.
What platform does it run on?It runs as a self-hosted Linux Docker container accessible through any web browser.
Does my chat data stay on my own server?Yes, since it's fully self-hosted on your own machine, all chat data, files, and search index stay under your control.
What features does Campfire support out of the box?Multiple rooms with access controls, direct messages, file attachments with previews, search, Web Push notifications, @mentions, and an API with bot integration support.
Can bots integrate with Campfire?Yes, Campfire exposes an API specifically designed to support bot integrations.
Are there other implementations in different languages?Yes, the README links community implementations in Django, Laravel, Express, Elixir, Go, and Rust, with the Rust and Go versions handling dramatically more requests per second in their own benchmarks.
Can I modify Campfire for my own needs?Yes, the project explicitly welcomes and encourages customization, with a development guide for setting up a local dev environment.
What are similar projects?novu, zulip, pi-pocket, sphere, element-web, zapfast, YYeTsBot, server
Creator
basecamp
Size
59 MB
Stars
4.8K
Age
1y
Commits · 90 Days