#!/bin/bash # Farben für die Ausgabe RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # No Color # Funktion zur Überprüfung des Linux-Derivats check_distro() { if [ -f /etc/debian_version ]; then echo "Debian/Ubuntu erkannt." DISTRO="debian" elif [ -f /etc/redhat-release ]; then echo "RedHat/CentOS erkannt." DISTRO="redhat" else echo -e "${RED}Unbekanntes Linux-Derivat. Das Skript unterstützt nur Debian/Ubuntu und RedHat/CentOS.${NC}" exit 1 fi } # Funktion zur Installation von Openfire auf Debian/Ubuntu install_openfire_debian() { echo -e "${GREEN}Installation von Openfire auf Debian/Ubuntu...${NC}" wget -O openfire.deb https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.6.0_all.deb sudo dpkg -i openfire.deb sudo apt-get install -f -y # Um Abhängigkeiten zu installieren sudo systemctl enable openfire sudo systemctl start openfire } # Funktion zur Installation von Openfire auf RedHat/CentOS install_openfire_redhat() { echo -e "${GREEN}Installation von Openfire auf RedHat/CentOS...${NC}" wget -O openfire.rpm https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-4.6.0-1.noarch.rpm sudo yum install -y openfire.rpm sudo systemctl enable openfire sudo systemctl start openfire } # Funktion zur Konfiguration als Publisher configure_publisher() { echo -e "${GREEN}Konfiguration als Publisher...${NC}" read -p "Geben Sie die JID des Publishers ein (z.B. publisher@deinserver.com): " PUBLISHER_JID read -sp "Geben Sie das Passwort des Publishers ein: " PUBLISHER_PASSWORD echo "" read -p "Geben Sie den PubSub-Server ein (z.B. pubsub.deinserver.com): " PUBSUB_SERVER read -p "Geben Sie den PubSub-Node ein (z.B. mynode): " PUBSUB_NODE # Erstelle ein Bash-Skript für den Publisher cat < publisher.sh #!/bin/bash JID="$PUBLISHER_JID" PASSWORD="$PUBLISHER_PASSWORD" SERVER="$PUBSUB_SERVER" NODE="$PUBSUB_NODE" MESSAGE="Dies ist eine Testnachricht vom Publisher" echo "\$MESSAGE" | sendxmpp -t -u "\$JID" -p "\$PASSWORD" -j "\$SERVER" "\$NODE" EOL chmod +x publisher.sh echo -e "${GREEN}Publisher-Skript 'publisher.sh' erstellt.${NC}" } # Funktion zur Konfiguration als Subscriber configure_subscriber() { echo -e "${GREEN}Konfiguration als Subscriber...${NC}" read -p "Geben Sie die JID des Subscribers ein (z.B. subscriber@deinserver.com): " SUBSCRIBER_JID read -sp "Geben Sie das Passwort des Subscribers ein: " SUBSCRIBER_PASSWORD echo "" read -p "Geben Sie den PubSub-Server ein (z.B. pubsub.deinserver.com): " PUBSUB_SERVER read -p "Geben Sie den PubSub-Node ein (z.B. mynode): " PUBSUB_NODE # Erstelle ein Bash-Skript für den Subscriber cat < subscriber.sh #!/bin/bash JID="$SUBSCRIBER_JID" PASSWORD="$SUBSCRIBER_PASSWORD" SERVER="$PUBSUB_SERVER" NODE="$PUBSUB_NODE" profanity --server "\$SERVER" --username "\$JID" --password "\$PASSWORD" --join "\$NODE" EOL chmod +x subscriber.sh echo -e "${GREEN}Subscriber-Skript 'subscriber.sh' erstellt.${NC}" } # Auswahlmenü für die Konfiguration show_menu() { echo -e "${GREEN}Openfire wurde erfolgreich installiert!${NC}" echo "Wählen Sie die gewünschte Rolle:" echo "1) Publisher konfigurieren" echo "2) Subscriber konfigurieren" echo "3) Abbrechen" read -p "Option [1-3]: " OPTION case $OPTION in 1) configure_publisher ;; 2) configure_subscriber ;; 3) echo -e "${RED}Abbruch.${NC}" exit 1 ;; *) echo -e "${RED}Ungültige Option.${NC}" show_menu ;; esac } # Hauptskript check_distro if [ "$DISTRO" == "debian" ]; then install_openfire_debian elif [ "$DISTRO" == "redhat" ]; then install_openfire_redhat fi show_menu