Update README.md
This commit is contained in:
62
README.md
62
README.md
@@ -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
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user