2026-05-19 12:54:07 -04:00
|
|
|
## 👋 Welcome to prosody 🚀
|
|
|
|
|
|
|
|
|
|
prosody README
|
|
|
|
|
|
|
|
|
|
|
2026-06-04 14:34:50 -04:00
|
|
|
## Install my system scripts
|
2026-05-19 12:54:07 -04:00
|
|
|
|
2026-06-04 14:34:50 -04:00
|
|
|
```shell
|
|
|
|
|
sudo bash -c "$(curl -q -LSsf "https://github.com/systemmgr/installer/raw/main/install.sh")"
|
|
|
|
|
sudo systemmgr --config && sudo systemmgr install scripts
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Automatic install/update
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
dockermgr update prosody
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Install and run container
|
|
|
|
|
|
|
|
|
|
```shell
|
2026-07-10 12:18:11 -04:00
|
|
|
dockerHome="/srv/$USER/docker/casjaysdevdocker/prosody/prosody/latest/volumes"
|
|
|
|
|
mkdir -p "/srv/$USER/docker/prosody/volumes"
|
2026-06-04 14:34:50 -04:00
|
|
|
git clone "https://github.com/dockermgr/prosody" "$HOME/.local/share/CasjaysDev/dockermgr/prosody"
|
|
|
|
|
cp -Rfva "$HOME/.local/share/CasjaysDev/dockermgr/prosody/volumes/." "$dockerHome/"
|
|
|
|
|
docker run -d \
|
|
|
|
|
--restart always \
|
|
|
|
|
--privileged \
|
|
|
|
|
--name casjaysdevdocker-prosody-latest \
|
|
|
|
|
--hostname prosody \
|
|
|
|
|
-e TZ=${TIMEZONE:-America/New_York} \
|
|
|
|
|
-v "$dockerHome/data:/data:z" \
|
|
|
|
|
-v "$dockerHome/config:/config:z" \
|
|
|
|
|
-p 80:80 \
|
|
|
|
|
casjaysdevdocker/prosody:latest
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## via docker-compose
|
|
|
|
|
|
|
|
|
|
```yaml
|
2026-11-08 10:36:07 -05:00
|
|
|
# nginx proxy address - http://172.17.0.1:5280
|
|
|
|
|
name: prosody
|
|
|
|
|
|
|
|
|
|
x-logging: &logging
|
|
|
|
|
driver: json-file
|
|
|
|
|
options:
|
|
|
|
|
max-size: 10m
|
|
|
|
|
max-file: "3"
|
|
|
|
|
|
2026-06-04 14:34:50 -04:00
|
|
|
services:
|
2026-11-08 10:36:07 -05:00
|
|
|
prosody:
|
|
|
|
|
image: ghcr.io/casjaysdevdocker/prosody:latest
|
|
|
|
|
pull_policy: always
|
2026-06-04 14:34:50 -04:00
|
|
|
restart: always
|
2026-11-08 10:36:07 -05:00
|
|
|
logging: *logging
|
|
|
|
|
environment:
|
|
|
|
|
XMPP_DOMAIN: meet.jitsi
|
|
|
|
|
XMPP_AUTH_DOMAIN: auth.meet.jitsi
|
|
|
|
|
XMPP_GUEST_DOMAIN: guest.meet.jitsi
|
|
|
|
|
XMPP_MUC_DOMAIN: muc.meet.jitsi
|
|
|
|
|
XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi
|
|
|
|
|
XMPP_HIDDEN_DOMAIN: hidden.meet.jitsi
|
|
|
|
|
JICOFO_AUTH_PASSWORD: ${JICOFO_AUTH_PASSWORD:?set in .env}
|
|
|
|
|
JVB_AUTH_PASSWORD: ${JVB_AUTH_PASSWORD:?set in .env}
|
|
|
|
|
ENABLE_AUTH: "0"
|
|
|
|
|
ENABLE_GUESTS: "0"
|
|
|
|
|
ENABLE_XMPP_WEBSOCKET: "1"
|
|
|
|
|
LOG_LEVEL: info
|
|
|
|
|
# internal = local accounts only; openfire = also accept Openfire accounts
|
|
|
|
|
ENABLE_REGISTRATION: "0"
|
|
|
|
|
AUTH_TYPE: internal
|
|
|
|
|
OPENFIRE_AUTH_ENABLED: "0"
|
|
|
|
|
OPENFIRE_AUTH_HOST: 172.17.0.1
|
|
|
|
|
OPENFIRE_AUTH_PORT: "5223"
|
|
|
|
|
OPENFIRE_AUTH_DOMAIN: ""
|
|
|
|
|
OPENFIRE_AUTH_EXCLUDE: focus,jvb,jibri,recorder
|
|
|
|
|
volumes:
|
|
|
|
|
- ./volumes/config:/config
|
|
|
|
|
ports:
|
|
|
|
|
- "5222:5222"
|
|
|
|
|
- "5280:5280"
|
|
|
|
|
- "5347:5347"
|
|
|
|
|
networks:
|
|
|
|
|
- prosody
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "/usr/local/bin/healthcheck.sh"]
|
|
|
|
|
interval: 30s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 3
|
|
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
prosody:
|
|
|
|
|
driver: bridge
|
|
|
|
|
enable_ipv6: true
|
|
|
|
|
ipam:
|
|
|
|
|
config:
|
|
|
|
|
- subnet: fd00:5a:30::/64
|
2026-06-04 14:34:50 -04:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Get source files
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
dockermgr download src casjaysdevdocker/prosody
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
OR
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
git clone "https://github.com/casjaysdevdocker/prosody" "$HOME/Projects/github/casjaysdevdocker/prosody"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Build container
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
cd "$HOME/Projects/github/casjaysdevdocker/prosody"
|
|
|
|
|
buildx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Authors
|
|
|
|
|
|
2026-05-19 12:54:07 -04:00
|
|
|
🤖 casjay: [Github](https://github.com/casjay) 🤖
|
2026-06-04 14:34:50 -04:00
|
|
|
⛵ casjaysdevdocker: [Github](https://github.com/casjaysdevdocker) [Docker](https://hub.docker.com/u/casjaysdevdocker) ⛵
|
2026-11-08 10:19:18 -05:00
|
|
|
|
|
|
|
|
## Authentication
|
|
|
|
|
|
|
|
|
|
| Variable | Default | Meaning |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| `AUTH_TYPE` | `internal` | `internal` = local accounts only; `openfire` = local accounts, then Openfire |
|
|
|
|
|
| `OPENFIRE_AUTH_HOST` | `172.17.0.1` | Openfire direct-TLS c2s host (certificate and hostname verified) |
|
|
|
|
|
| `OPENFIRE_AUTH_PORT` | `5223` | Openfire direct-TLS c2s port |
|
|
|
|
|
| `OPENFIRE_AUTH_DOMAIN` | empty | Openfire XMPP domain (required for `AUTH_TYPE=openfire`) |
|
|
|
|
|
| `OPENFIRE_AUTH_EXCLUDE` | `focus,jvb,jibri,recorder` | Service accounts that never use Openfire |
|
|
|
|
|
|
|
|
|
|
Service accounts (`focus`, `jvb`, `jibri`, `jigasi`) always use local `internal_hashed`.
|
|
|
|
|
Only SASL PLAIN is offered with `openfire`, since an external check cannot do SCRAM.
|
2026-11-08 10:34:11 -05:00
|
|
|
|
|
|
|
|
## Registration
|
|
|
|
|
|
|
|
|
|
| Variable | Default | Meaning |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| `ENABLE_REGISTRATION` | `0` | Serve `POST /user-api/register` (used by the jitsi-web `/register` page) |
|
|
|
|
|
|
|
|
|
|
Requires `ENABLE_AUTH=1` and `AUTH_TYPE=internal`; otherwise it is ignored (with a warning) or refused (403).
|
|
|
|
|
Rate limited to 5 attempts per IP per hour; reserved names (`admin`, `focus`, `jvb`, ...) are rejected.
|