basecamp / once-campfire
git clone https://github.com/basecamp/once-campfire.git
v1.5.4 · today
🔥 on GitHub Trending today
Super simple group chat, without a subscription
—
stars, 24h
—
stars, 7 days
+168
stars, 30 days · #1,475
4.8k
★ total
820
forks · 53 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageRuby
LicenseMIT
Created2025-08-15 (1y ago)
Last pushtoday
Watchers28
OwnerOrganization
Seen on GitHub Trending
- 2026-10-20 — #5 monthly in ruby · +168 ★
Links
- GitHub: github.com/basecamp/once-campfire
- Homepage: https://once.com/campfire
- Releases · Issues · Hacker News mentions
README excerpt
# Campfire Campfire is a web-based chat application. It supports many of the features you'd expect, including: - Multiple rooms, with access controls - Direct messages - File attachments with previews - Search - Notifications (via Web Push) - @mentions - API, with support for bot integrations ## 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: [code] `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: [code] ### 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. Authenticated room, message, sidebar and search pages use a bounded 64 MiB cache per worker. Set `CAMPFIRE_RESPONSE_CACHE_MB=0` to disable it. Every request still checks authentication and room access; commits from any SQLite writer invalidate complete cached HTML and gzip bodies. Native HTML, JSON and stream fragments have a separate 64 MiB memory limit per worker; shared rate limits retain their existing store. ## Other implementations Campfire also has implementations in Django, Laravel, Express, Elixir, Go, Rust and C: | HTTP workload (requests/sec) | Rails | Django | Laravel | Express | Elixir | Go | Rust | C | |---|---:|---:|---:|---:|---:|---:|---:|---:| | Room page | 4,101 | 1,507 | 3,872 | 42,636 | 5,350 | 53,060 | 106,494 | 137,524 | | Messages page | 4,115 | 1,596 | 3,995 | 74,362 | 5,712 | 54,800 | 102,697 | 144,642 | | Sidebar | 4,333 | 1,873 | 4,493 | 94,329 | 5,949 | 59,144 | 120,294 | 152,002 | | Search | 4,282 | 1,862 | 4,172 | 84,665 | 5,848 | 60,509 | 121,378 | 149,487 | | Post a message | 330 | 262 | 794 | 2,155 | 1,278 | 9,021 | 8,037 | 7,530 | | Backend KLOC | 5.5 | 5.3 | 4.1 | 6.8 | 11.6 | 23.2 | 30.7 | 94.8 | KLOC counts backend code plus executable code in templates; excludes plain HTML, frontend, tests, dependencies and generated files. Shared verification · Detailed results.