2023-11-08 22:49:30 +01:00
|
|
|
# XMPP server setup script
|
2023-11-13 13:38:08 +01:00
|
|
|
<div style="text-align: center;">
|
2023-11-13 13:36:59 +01:00
|
|
|
<img src="images/thumbnail.png" alt="A priest aiming a gun at the Discord logo" width="500"/>
|
2023-11-13 13:35:55 +01:00
|
|
|
</div>
|
2023-11-13 13:31:41 +01:00
|
|
|
|
2023-11-08 22:49:30 +01:00
|
|
|
An XMPP server is hecking hard to configure!! But not any more.
|
|
|
|
|
|
|
|
You too, can be an XMPP server operator, through the use of this simple script!
|
|
|
|
No scouring over documentation for hours or headache required ;)
|
|
|
|
|
2023-11-08 22:51:19 +01:00
|
|
|
However, celibacy is required, since this script is written for use on __Arch
|
|
|
|
Linux* only__.
|
2023-11-08 22:49:30 +01:00
|
|
|
|
2023-11-13 13:30:02 +01:00
|
|
|
## Features
|
|
|
|
* Modern TLS configuration by default
|
|
|
|
* Uses MariaDB as the SQL database
|
|
|
|
* Adds an admin account
|
|
|
|
|
|
|
|
## Modules configured
|
|
|
|
* HTTP uploads (XEP-0363)
|
|
|
|
* HTTP upload quotas (by total size)
|
|
|
|
* STUN/TURN server
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
### Prerequisites
|
2023-11-08 22:49:30 +01:00
|
|
|
Make sure you have the following packages installed:
|
2023-09-21 18:09:51 +02:00
|
|
|
```
|
|
|
|
Nginx
|
2023-11-13 13:30:02 +01:00
|
|
|
MariaDB
|
2023-09-21 18:09:51 +02:00
|
|
|
```
|
|
|
|
|
2023-11-13 13:30:02 +01:00
|
|
|
### Installs
|
|
|
|
This script installs the following packages:
|
|
|
|
* ejabberd - XMPP server
|
|
|
|
* certbot - managing certificates
|
|
|
|
|
|
|
|
|
|
|
|
### Running
|
2023-11-08 22:49:30 +01:00
|
|
|
The script should be run as root.
|
2023-11-08 22:52:10 +01:00
|
|
|
|
2023-11-08 22:49:30 +01:00
|
|
|
```doas/sudo bash xmpp-wizard.sh```
|
|
|
|
|
|
|
|
## To do
|
|
|
|
### mod_http_upload_quota
|
|
|
|
Allow for toggling of this module and configuring of max_days in script
|
|
|
|
|
|
|
|
## Disclaimers
|
|
|
|
Much of the inspiration for this project, along with some of the logic
|
|
|
|
(particularly the certificate detection) was taken from Luke Smith's
|
|
|
|
[emailwiz](https://github.com/LukeSmithxyz/emailwiz) script.
|
|
|
|
|
|
|
|
## Notes
|
|
|
|
*fedora and cringe atheistic world view not included
|