Update README.md
This commit is contained in:
62
README.md
62
README.md
@@ -1,7 +1,7 @@
|
||||
# jama 💬
|
||||
# rosterchirp 💬
|
||||
### *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
|
||||
|
||||
```bash
|
||||
git clone https://your-gitea/youruser/jama.git
|
||||
cd jama
|
||||
git clone https://your-gitea/youruser/rosterchirp.git
|
||||
cd rosterchirp
|
||||
```
|
||||
|
||||
### 2. Build the Docker image
|
||||
@@ -135,7 +135,7 @@ At minimum, change `ADMIN_EMAIL`, `ADMIN_PASS`, and `JWT_SECRET`.
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
docker compose logs -f jama
|
||||
docker compose logs -f rosterchirp
|
||||
```
|
||||
|
||||
### 5. Log in
|
||||
@@ -146,13 +146,13 @@ Open `http://your-server:3000`, log in with your `ADMIN_EMAIL` and `ADMIN_PASS`,
|
||||
|
||||
## 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
|
||||
|
||||
```
|
||||
chat.yourdomain.com {
|
||||
reverse_proxy jama:3000
|
||||
reverse_proxy rosterchirp:3000
|
||||
}
|
||||
```
|
||||
|
||||
@@ -161,25 +161,25 @@ chat.yourdomain.com {
|
||||
```yaml
|
||||
version: '3.8'
|
||||
services:
|
||||
jama:
|
||||
image: jama:${JAMA_VERSION:-latest}
|
||||
container_name: jama
|
||||
rosterchirp:
|
||||
image: rosterchirp:${rosterchirp_VERSION:-latest}
|
||||
container_name: rosterchirp
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- "3000"
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- 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}
|
||||
- USER_PASS=${USER_PASS:-user@1234}
|
||||
- ADMPW_RESET=${ADMPW_RESET:-false}
|
||||
- JWT_SECRET=${JWT_SECRET:-changeme}
|
||||
- APP_NAME=${APP_NAME:-jama}
|
||||
- JAMA_VERSION=${JAMA_VERSION:-latest}
|
||||
- APP_NAME=${APP_NAME:-rosterchirp}
|
||||
- rosterchirp_VERSION=${rosterchirp_VERSION:-latest}
|
||||
volumes:
|
||||
- jama_db:/app/data
|
||||
- jama_uploads:/app/uploads
|
||||
- rosterchirp_db:/app/data
|
||||
- rosterchirp_uploads:/app/uploads
|
||||
|
||||
caddy:
|
||||
image: caddy:alpine
|
||||
@@ -194,11 +194,11 @@ services:
|
||||
- caddy_data:/data
|
||||
- caddy_certs:/config
|
||||
depends_on:
|
||||
- jama
|
||||
- rosterchirp
|
||||
|
||||
volumes:
|
||||
jama_db:
|
||||
jama_uploads:
|
||||
rosterchirp_db:
|
||||
rosterchirp_uploads:
|
||||
caddy_data:
|
||||
caddy_certs:
|
||||
```
|
||||
@@ -209,16 +209,16 @@ volumes:
|
||||
|
||||
| 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`) |
|
||||
| `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 |
|
||||
| `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. |
|
||||
| `JWT_SECRET` | *(insecure default)* | Secret used to sign auth tokens. **Must be changed in production.** |
|
||||
| `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 |
|
||||
|
||||
> `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`
|
||||
|
||||
```env
|
||||
JAMA_VERSION=1.0.0
|
||||
rosterchirp_VERSION=1.0.0
|
||||
TZ=America/Toronto
|
||||
|
||||
ADMIN_NAME=Your Name
|
||||
@@ -239,7 +239,7 @@ ADMPW_RESET=false
|
||||
JWT_SECRET=replace-this-with-a-long-random-string-at-least-32-chars
|
||||
|
||||
PORT=3000
|
||||
APP_NAME=jama
|
||||
APP_NAME=rosterchirp
|
||||
DEFCHAT_NAME=General Chat
|
||||
```
|
||||
|
||||
@@ -330,23 +330,23 @@ Users can access the guide at any time via **User menu → Help**.
|
||||
|
||||
| Volume | Container path | Contents |
|
||||
|---|---|---|
|
||||
| `jama_db` | `/app/data` | SQLite database (`jama.db`), `help.md` |
|
||||
| `jama_uploads` | `/app/uploads` | Avatars, logos, PWA icons, message images |
|
||||
| `rosterchirp_db` | `/app/data` | SQLite database (`rosterchirp.db`), `help.md` |
|
||||
| `rosterchirp_uploads` | `/app/uploads` | Avatars, logos, PWA icons, message images |
|
||||
|
||||
### Backup
|
||||
|
||||
```bash
|
||||
# Backup database
|
||||
docker run --rm \
|
||||
-v jama_db:/data \
|
||||
-v rosterchirp_db:/data \
|
||||
-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
|
||||
docker run --rm \
|
||||
-v jama_uploads:/data \
|
||||
-v rosterchirp_uploads:/data \
|
||||
-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
|
||||
# Upgrade
|
||||
./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
|
||||
|
||||
# Rollback
|
||||
# Set JAMA_VERSION=1.0.0 in .env
|
||||
# Set rosterchirp_VERSION=1.0.0 in .env
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user