No description
Find a file
2025-12-08 23:03:07 -06:00
.github Add contributing guide 2025-09-18 14:51:42 +02:00
app Ensure edit (not trash) is displayed 2025-12-08 22:57:38 -06:00
bin Add safety checks to release script 2025-12-03 08:24:04 +01:00
config Upgrade to Rails 8.2.0.alpha 2025-12-01 13:50:53 +01:00
db Run migrations 2025-12-01 15:31:53 +01:00
lib Disallow SSRF via IPv6 addresses mapped to IPv4 addresses 2025-12-03 08:08:34 +01:00
log Hello world 2025-08-21 09:31:59 +01:00
public Hello world 2025-08-21 09:31:59 +01:00
script Hello world 2025-08-21 09:31:59 +01:00
test Group administrators separately from members with visual divider 2025-12-09 08:42:00 +05:30
tmp Hello world 2025-08-21 09:31:59 +01:00
vendor Hello world 2025-08-21 09:31:59 +01:00
.dockerignore Port over release script 2025-12-01 10:40:24 +01:00
.env.erb Hello world 2025-08-21 09:31:59 +01:00
.gitattributes Hello world 2025-08-21 09:31:59 +01:00
.gitignore Hello world 2025-08-21 09:31:59 +01:00
.pumaenv Hello world 2025-08-21 09:31:59 +01:00
.rubocop.yml Hello world 2025-08-21 09:31:59 +01:00
.ruby-version Upgrade to Rails 8 and Ruby 3.4.5 (#1) 2025-09-02 17:02:41 +02:00
config.ru Hello world 2025-08-21 09:31:59 +01:00
CONTRIBUTING.md Add contributing guide 2025-09-18 14:51:42 +02:00
Dockerfile chore: use build arg for image description 2025-09-05 09:56:42 +02:00
Dockerfile-export Port over release script 2025-12-01 10:40:24 +01:00
Gemfile Fix failing system tests 2025-12-01 16:34:51 +01:00
Gemfile.lock Fix failing system tests 2025-12-01 16:34:51 +01:00
MIT-LICENSE Hello world 2025-08-21 09:31:59 +01:00
Procfile Hello world 2025-08-21 09:31:59 +01:00
Rakefile Hello world 2025-08-21 09:31:59 +01:00
README.md Fix grammar error in README.md 2025-09-18 10:53:41 -04:00

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

Deploying with Docker

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.

To persist storage of the database and file attachments, map a volume to /rails/storage.

To configure additional features, you can set the following environment variables:

  • SSL_DOMAIN - enable automatic SSL via Let's Encrypt for the given domain name
  • DISABLE_SSL - alternatively, set DISABLE_SSL to serve over plain HTTP
  • VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY - set these to a valid keypair to allow sending Web Push notifications. You can generate a new keypair by running /script/admin/create-vapid-key
  • SENTRY_DSN - to enable error reporting to sentry in production, supply your DSN here

For example:

docker build -t campfire .

docker run \
  --publish 80:80 --publish 443:443 \
  --restart unless-stopped \
  --volume campfire:/rails/storage \
  --env SECRET_KEY_BASE=$YOUR_SECRET_KEY_BASE \
  --env VAPID_PUBLIC_KEY=$YOUR_PUBLIC_KEY \
  --env VAPID_PRIVATE_KEY=$YOUR_PRIVATE_KEY \
  --env TLS_DOMAIN=chat.example.com \
  campfire

Running in development

bin/setup
bin/rails server

Worth Noting

When you start Campfire for the first time, youll be guided through creating an admin account. The email address of this admin account will be shown on the login page so that people who forget their password know who to contact for help. (You can change this email later in the settings)

Campfire is single-tenant: any rooms designated "public" will be accessible by all users in the system. To support entirely distinct groups of customers, you would deploy multiple instances of the application.