mirror of
https://github.com/casjaysdevdocker/prosody
synced 2026-11-12 03:22:28 -05:00
93bbb705ccb73d91733f5ca6016c233ee56968ec
CI / Build image (push) Failing after 1h40m8s
- Dockerfile: moved from docker/Dockerfile; COPY paths now rootfs/ and Dockerfile - rootfs/usr/local/bin/entrypoint.sh, healthcheck.sh: moved from docker/rootfs/ - rootfs/usr/local/share/prosody-plugins/: moved from docker/rootfs/ (mod_auth_openfire_hybrid, mod_user_api) - docker/compose.yml: removed; the example now lives in the README compose section - .github/workflows/ci.yml, release.yml: build file is now Dockerfile - .github/CODEOWNERS: drop the docker/ entry - .gitignore, .dockerignore: drop docker/volumes/ - README.md: compose section replaced with the current example
👋 Welcome to prosody 🚀
prosody README
Install my system scripts
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
dockermgr update prosody
Install and run container
dockerHome="/srv/$USER/docker/casjaysdevdocker/prosody/prosody/latest/volumes"
mkdir -p "/srv/$USER/docker/prosody/volumes"
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
# nginx proxy address - http://172.17.0.1:5280
name: prosody
x-logging: &logging
driver: json-file
options:
max-size: 10m
max-file: "3"
services:
prosody:
image: ghcr.io/casjaysdevdocker/prosody:latest
pull_policy: always
restart: always
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
Get source files
dockermgr download src casjaysdevdocker/prosody
OR
git clone "https://github.com/casjaysdevdocker/prosody" "$HOME/Projects/github/casjaysdevdocker/prosody"
Build container
cd "$HOME/Projects/github/casjaysdevdocker/prosody"
buildx
Authors
🤖 casjay: Github 🤖
⛵ casjaysdevdocker: Github Docker ⛵
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.
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.
Languages
Shell
50%
Lua
41.8%
Dockerfile
8.2%