hyperak / prosody

Self-hosted, pre-configured, compliant prosody server from https://616.pub

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prosody

From 616.pub. Using the following steps to setup a self-hosted jabber server.

0. Requirements

  • A linux server with docker installed
    • As low as 1 core, 512MB memory
  • A domain under your control
  • A pair of reCaptcha keys filter spamming in register page

1. Define some varibles

# You need a domain
DOMAIN=yourdomain.com
# Your jabber account on that server, will be created as admin.
JID=yourname@yourdomain.com
# Your contact email
EMAIL=your@email.com
# recaptcha keys
RECAPTCHA_PRIVATE=xxx
RECAPTCHA_PUBLIC=yyy

2. DNS configure

Suppose your server IP is 1.2.3.4, the following records should be set ( replace DOMAIN with your real domain name):

;; A Records
DOMAIN.	1	IN	A	1.2.3.4
proxy.DOMAIN.	1	IN	A	1.2.3.4
room.DOMAIN.	1	IN	A	1.2.3.4

;; SRV Records
_xmpp-client._tcp.DOMAIN.	1	IN	SRV	0 5 5222 DOMAIN.
_xmpps-client._tcp.DOMAIN.	1	IN	SRV	0 5 5223 DOMAIN.
_xmpp-server._tcp.DOMAIN.	1	IN	SRV	0 5 5269 DOMAIN.

3. Obtain domain SSL certs

mkdir -p acme.sh
docker volume create --driver local --opt type=none --opt device=$PWD/acme.sh \
  --opt o=bind acme.sh
docker run -it --rm --name acme.sh -p 80:80 -v acme.sh:/root/.acme.sh ichuan/prosody \
  /root/.acme.sh/acme.sh --home /root/.acme.sh --issue --standalone \
  -d $DOMAIN -d room.$DOMAIN -d proxy.$DOMAIN

Certs will be renewed automatically.

4. Running

# database
mkdir prosody

# datetime when this server goes live
SINCE="2018/9/2"

docker run --restart always -itd --name iprosody \
  -p 5223:5223 -p 80:5280 -p 5280:5280 -p 443:5281 -p 5281:5281 \
  -p 5000:5000 -p 5222:5222 -p 5269:5269 \
  -v $PWD/prosody:/var/lib/prosody \
  -v acme.sh:/root/.acme.sh \
  -e ADMIN_JID=$JID -e DOMAIN=$DOMAIN -e CONTACT_EMAIL=$EMAIL -e SINCE=$SINCE \
  -e RECAPTCHA_PRIVATE=$RECAPTCHA_PRIVATE \
  -e RECAPTCHA_PUBLIC=$RECAPTCHA_PUBLIC \
  ichuan/prosody

Now, head to https://DOMAIN to see it.

5. Maintenance

# Create your admin JID
docker exec -it iprosody prosodyctl adduser $JID
# or via web: https://${DOMAIN}/register

6. Upgrading

docker pull ichuan/prosody
docker stop iprosody && docker rm iprosody
# re-run with previous command line
docker run --restart always ...

About

Self-hosted, pre-configured, compliant prosody server from https://616.pub

License:MIT License


Languages

Language:CSS 94.1%Language:Lua 2.9%Language:HTML 2.0%Language:Shell 0.8%Language:Dockerfile 0.3%