mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-03-18 20:23:38 +09:00
54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
# Campfire
|
|
|
|
Campfire is 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
|
|
|
|
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.
|
|
|
|
## Running in development
|
|
|
|
bin/setup
|
|
bin/rails server
|
|
|
|
## 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 SSL_DOMAIN=chat.example.com \
|
|
campfire
|