===== ejabberd mit mehreren Domains =====
==== Voraussetzung ====
* Dieses Howto ist eine Ergänzung zu [[de:ejabberd_installation|ejabberd Installation]].
* Dieses Howto setzt [[de:wechsel_von_mnesia_zu_mariadb|Wechsel von mnesia zu MariaDB]] voraus.
==== Einleitung ====
Die Howto-Serie geht immer davon aus, dass du nur eine Domain einrichten und verwenden möchtest. ejabberd bietet aber mehrere Möglichkeiten verschiedene Domains zu verwenden. Deine User:innen können dann wählen zwischen name@beispiel.de oder name@example.com.
==== Einrichtung ====
=== bei der Erstinstallation ===
Wenn du deinen XMPP-Server zum ersten mal einrichtest, kannst du direkt mehrere Domains berücksichtigen, auch wenn du zunächst nur eine Domain besitzt. Voraussetzung ist, dass du direkt mit MySQL arbeitest.
Ergänze den SQL Block:
sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: ""
auth_method: sql
default_db: sql
default_ram_db: sql
mit der Zeile:
sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: ""
auth_method: sql
default_db: sql
default_ram_db: sql
new_sql_schema: true
Die zusätzliche Domain fügst du dann zum hosts Block hinzu:
- hosts:
-
-
=== im laufenden Betrieb ===
Wenn du später eine weitere Domain ergänzen möchtest, ist auch das möglich. Du kannst hierbei wählen, ob du jede Domain individuell konfigurierst, oder direkt auf das "neue" SQL Schema wechselt. Letztere ist wohl die sinnvollere Variante, da eine dritte oder vierte Domain so sehr einfach hinzugefügt werden kann und auch die Wartung der Datenbank einfacher bleibt. Bei individueller Konfiguration hättest du für jede Domain eine eigene Datenbank.
ejabberd stoppen und neues Datenbankschema einspielen:
$ systemctl stop ejabberd.service
$ wget https://raw.githubusercontent.com/processone/ejabberd/master/sql/mysql.old-to-new.sql
$ mysql -D ejabberd -u ejabberd -p < mysql.old-to-new.MySQL
Enter password:
Als ejabberd weiterarbeiten und die Konfiguration anpassen:
$ su - ejabberd
$ jed opt/ejabberd/conf/ejabber.yml
Ergänze den SQL Block:
sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: ""
auth_method: sql
default_db: sql
default_ram_db: sql
mit der Zeile:
sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: ""
auth_method: sql
default_db: sql
default_ram_db: sql
new_sql_schema: true
Die zusätzliche Domain fügst du dann zum hosts Block hinzu:
- hosts:
-
-
Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen.
Den ejabberd Kontext verlassen und den XMPP-Server wieder starten:
$ exit
$ systemctl start ejabberd.service
=== jede Domain individuell ===
Da ich meinen Server jabjab.de schon länger betreibe, habe ich noch eine individuelle Konfiguration für jede Domain. Die Möglichkeit mehrere Domains mit nur einer Datenbank zu betreiben kam erst sehr viel später.
Der Vollständigkeit halber, möchte ich hier die Konfiguration auch einmal vorstellen:
hosts:
- ""
- ""
host_config:
"":
sql_username: ""
sql_type: mysql
sql_server: "localhost"
sql_port: 3306
sql_password: ""
sql_database: ""
auth_method:
- sql
auth_password_format: scram
auth_scram_hash: sha512
"":
sql_username: ""
sql_type: mysql
sql_server: "localhost"
sql_port: 3306
sql_password: ""
sql_database: ""
auth_method:
- sql
auth_password_format: scram
auth_scram_hash: sha512