Update README.md

This commit is contained in:
2026-04-09 16:27:45 +00:00
parent c87b5f0304
commit 03496884d5

View File

@@ -1,7 +1,7 @@
# jama 💬 # rosterchirp 💬
### *just another messaging app* ### *just another messaging app*
A modern, self-hosted team messaging Progressive Web App (PWA) built for small to medium teams. jama runs entirely in a single Docker container with no external database dependencies — all data is stored locally using SQLite. A modern, self-hosted team messaging Progressive Web App (PWA) built for small to medium teams. rosterchirp runs entirely in a single Docker container with no external database dependencies — all data is stored locally using SQLite.
--- ---
@@ -112,8 +112,8 @@ All builds use `build.sh`. No host Node.js installation is required.
### 1. Clone the repository ### 1. Clone the repository
```bash ```bash
git clone https://your-gitea/youruser/jama.git git clone https://your-gitea/youruser/rosterchirp.git
cd jama cd rosterchirp
``` ```
### 2. Build the Docker image ### 2. Build the Docker image
@@ -135,7 +135,7 @@ At minimum, change `ADMIN_EMAIL`, `ADMIN_PASS`, and `JWT_SECRET`.
```bash ```bash
docker compose up -d docker compose up -d
docker compose logs -f jama docker compose logs -f rosterchirp
``` ```
### 5. Log in ### 5. Log in
@@ -146,13 +146,13 @@ Open `http://your-server:3000`, log in with your `ADMIN_EMAIL` and `ADMIN_PASS`,
## HTTPS & SSL ## HTTPS & SSL
jama does not manage SSL itself. Use **Caddy** as a reverse proxy. rosterchirp does not manage SSL itself. Use **Caddy** as a reverse proxy.
### Caddyfile ### Caddyfile
``` ```
chat.yourdomain.com { chat.yourdomain.com {
reverse_proxy jama:3000 reverse_proxy rosterchirp:3000
} }
``` ```
@@ -161,25 +161,25 @@ chat.yourdomain.com {
```yaml ```yaml
version: '3.8' version: '3.8'
services: services:
jama: rosterchirp:
image: jama:${JAMA_VERSION:-latest} image: rosterchirp:${rosterchirp_VERSION:-latest}
container_name: jama container_name: rosterchirp
restart: unless-stopped restart: unless-stopped
expose: expose:
- "3000" - "3000"
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- ADMIN_NAME=${ADMIN_NAME:-Admin User} - ADMIN_NAME=${ADMIN_NAME:-Admin User}
- ADMIN_EMAIL=${ADMIN_EMAIL:-admin@jama.local} - ADMIN_EMAIL=${ADMIN_EMAIL:-admin@rosterchirp.local}
- ADMIN_PASS=${ADMIN_PASS:-Admin@1234} - ADMIN_PASS=${ADMIN_PASS:-Admin@1234}
- USER_PASS=${USER_PASS:-user@1234} - USER_PASS=${USER_PASS:-user@1234}
- ADMPW_RESET=${ADMPW_RESET:-false} - ADMPW_RESET=${ADMPW_RESET:-false}
- JWT_SECRET=${JWT_SECRET:-changeme} - JWT_SECRET=${JWT_SECRET:-changeme}
- APP_NAME=${APP_NAME:-jama} - APP_NAME=${APP_NAME:-rosterchirp}
- JAMA_VERSION=${JAMA_VERSION:-latest} - rosterchirp_VERSION=${rosterchirp_VERSION:-latest}
volumes: volumes:
- jama_db:/app/data - rosterchirp_db:/app/data
- jama_uploads:/app/uploads - rosterchirp_uploads:/app/uploads
caddy: caddy:
image: caddy:alpine image: caddy:alpine
@@ -194,11 +194,11 @@ services:
- caddy_data:/data - caddy_data:/data
- caddy_certs:/config - caddy_certs:/config
depends_on: depends_on:
- jama - rosterchirp
volumes: volumes:
jama_db: rosterchirp_db:
jama_uploads: rosterchirp_uploads:
caddy_data: caddy_data:
caddy_certs: caddy_certs:
``` ```
@@ -209,16 +209,16 @@ volumes:
| Variable | Default | Description | | Variable | Default | Description |
|---|---|---| |---|---|---|
| `JAMA_VERSION` | `latest` | Docker image tag to run | | `rosterchirp_VERSION` | `latest` | Docker image tag to run |
| `TZ` | `UTC` | Container timezone (e.g. `America/Toronto`) | | `TZ` | `UTC` | Container timezone (e.g. `America/Toronto`) |
| `ADMIN_NAME` | `Admin User` | Display name of the default admin account | | `ADMIN_NAME` | `Admin User` | Display name of the default admin account |
| `ADMIN_EMAIL` | `admin@jama.local` | Login email for the default admin account | | `ADMIN_EMAIL` | `admin@rosterchirp.local` | Login email for the default admin account |
| `ADMIN_PASS` | `Admin@1234` | Initial password for the default admin account | | `ADMIN_PASS` | `Admin@1234` | Initial password for the default admin account |
| `USER_PASS` | `user@1234` | Default temporary password for bulk-imported users when no password is specified in CSV | | `USER_PASS` | `user@1234` | Default temporary password for bulk-imported users when no password is specified in CSV |
| `ADMPW_RESET` | `false` | If `true`, resets the **admin** password to `ADMIN_PASS` on every restart. Emergency access recovery only. Shows a warning banner when active. | | `ADMPW_RESET` | `false` | If `true`, resets the **admin** password to `ADMIN_PASS` on every restart. Emergency access recovery only. Shows a warning banner when active. |
| `JWT_SECRET` | *(insecure default)* | Secret used to sign auth tokens. **Must be changed in production.** | | `JWT_SECRET` | *(insecure default)* | Secret used to sign auth tokens. **Must be changed in production.** |
| `PORT` | `3000` | Host port to bind (without Caddy) | | `PORT` | `3000` | Host port to bind (without Caddy) |
| `APP_NAME` | `jama` | Initial application name (can also be changed in Settings UI) | | `APP_NAME` | `rosterchirp` | Initial application name (can also be changed in Settings UI) |
| `DEFCHAT_NAME` | `General Chat` | Name of the default public group created on first run | | `DEFCHAT_NAME` | `General Chat` | Name of the default public group created on first run |
> `ADMIN_EMAIL` and `ADMIN_PASS` are only used on the **first run**. Once the database exists they are ignored — unless `ADMPW_RESET=true`. > `ADMIN_EMAIL` and `ADMIN_PASS` are only used on the **first run**. Once the database exists they are ignored — unless `ADMPW_RESET=true`.
@@ -226,7 +226,7 @@ volumes:
### Example `.env` ### Example `.env`
```env ```env
JAMA_VERSION=1.0.0 rosterchirp_VERSION=1.0.0
TZ=America/Toronto TZ=America/Toronto
ADMIN_NAME=Your Name ADMIN_NAME=Your Name
@@ -239,7 +239,7 @@ ADMPW_RESET=false
JWT_SECRET=replace-this-with-a-long-random-string-at-least-32-chars JWT_SECRET=replace-this-with-a-long-random-string-at-least-32-chars
PORT=3000 PORT=3000
APP_NAME=jama APP_NAME=rosterchirp
DEFCHAT_NAME=General Chat DEFCHAT_NAME=General Chat
``` ```
@@ -330,23 +330,23 @@ Users can access the guide at any time via **User menu → Help**.
| Volume | Container path | Contents | | Volume | Container path | Contents |
|---|---|---| |---|---|---|
| `jama_db` | `/app/data` | SQLite database (`jama.db`), `help.md` | | `rosterchirp_db` | `/app/data` | SQLite database (`rosterchirp.db`), `help.md` |
| `jama_uploads` | `/app/uploads` | Avatars, logos, PWA icons, message images | | `rosterchirp_uploads` | `/app/uploads` | Avatars, logos, PWA icons, message images |
### Backup ### Backup
```bash ```bash
# Backup database # Backup database
docker run --rm \ docker run --rm \
-v jama_db:/data \ -v rosterchirp_db:/data \
-v $(pwd):/backup alpine \ -v $(pwd):/backup alpine \
tar czf /backup/jama_db_$(date +%Y%m%d).tar.gz -C /data . tar czf /backup/rosterchirp_db_$(date +%Y%m%d).tar.gz -C /data .
# Backup uploads # Backup uploads
docker run --rm \ docker run --rm \
-v jama_uploads:/data \ -v rosterchirp_uploads:/data \
-v $(pwd):/backup alpine \ -v $(pwd):/backup alpine \
tar czf /backup/jama_uploads_$(date +%Y%m%d).tar.gz -C /data . tar czf /backup/rosterchirp_uploads_$(date +%Y%m%d).tar.gz -C /data .
``` ```
--- ---
@@ -356,11 +356,11 @@ docker run --rm \
```bash ```bash
# Upgrade # Upgrade
./build.sh 1.1.0 ./build.sh 1.1.0
# Set JAMA_VERSION=1.1.0 in .env # Set rosterchirp_VERSION=1.1.0 in .env
docker compose up -d docker compose up -d
# Rollback # Rollback
# Set JAMA_VERSION=1.0.0 in .env # Set rosterchirp_VERSION=1.0.0 in .env
docker compose up -d docker compose up -d
``` ```