===== 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