Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi im Docker-Container - revised

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hallo Hannes,

    der Develop-Stand ist eben genau das: der Stand der aktuellen Entwicklung.

    Der Build des Develop wird im Moment nicht funktionieren, da gaert am Vorbereiten der v2.0 ist. Siehe dazu #331. Der Build eines älteren Standes wird ebenfalls nicht funktionieren, da die älteren Edomi-Versionen nicht mehr verfügbar sind.

    Wenn es Dir nur um die Mountpoints geht: Nimm einfach die 1.63 und mounte beim Starten des Containers, wie im aktuellen Readme auf dem Develop-Branch beschrieben. Wenn "händisch" gemountet wird, braucht es die Mountpoint-Definition im Dockerfile nicht.
    Kind regards,
    Yves

    Kommentar


      Hi Yves,

      danke für die fixe Antwort - dann war ich doch nicht zu doof und werde ich meine Spielwiese mal mit dem master-Branch aufsetzen und ein lokales Volume einhängen

      Kleines Offtopic: gibt es irgendwo eine Roadmap zu v2.0? Wenn das eh in den nächsten 2-3 Monaten kommt würde ich das Projekt Edomi pausieren und andere Baustellen angehen.

      Kommentar


        Du hast mich vermutlich nicht richtig verstanden. Es spielt im Moment keine Rolle auf welchem Branch Du bist. Das Image lässt sich aktuell gar nicht bauen, da das mit Edomi 1.64 noch nicht funktioniert und das 1.63er Archiv nicht mehr verfügbar ist.

        gaert : Wäre es möglich, das 1.63er Archiv rein für den Download wieder zur Verfügung zu stellen? Dann kann man das Docker-Image wieder bauen, bis das mit der kommenden Edomi-Version dann auch wieder geht. Es muss auch nicht auf der Page verlinkt sein, ist nur eine Übergangslösung.
        Kind regards,
        Yves

        Kommentar


          Ah okay, dass das 1.63er Archiv nicht mehr da ist wusste ich nicht bzw. irgendwie habe ich den Teil des Satzes heute früh gekonnt überlesen
          Aber starwarsfan/edomi-docker:1.63 iss ja noch verfügbar

          Kommentar


            Hi Ives,

            hast du Erfahrungen mit Edomi im COntainer und IPtables am Server Host? Besonders die Regeln zur IP Schnittstelle würden mich interessieren.
            Ich habe UFW genutzt zum Regeln erstellen.

            Viele Grüße
            RObert

            Kommentar


              Hallo Robert,

              nein, dabei kann ich Dir leider nicht weiterhelfen. Für meine Begriffe ist es auch nicht der ideale Ansatz, auf einem Server an den Netzwerk-Regeln zu schrauben. Dafür gibt's den Router davor. Ein Server ist ein Server ist ein Server! Ein Router ist ein Router ist ein Router!
              Kind regards,
              Yves

              Kommentar


                Naja finde es nun nicht so ungewöhnlich auf einem Server eine Firewall laufen zu lassen.... Vorallem ich habe auf dem Server noch andere DOcker container am laufen...

                Kommentar


                  Hallo!
                  Kann es sein dass das Docker von dem lib-curl mmemory leak betroffen ist?
                  Jedenfalls steigt mein Ramverbrauch ständig, und ein Update der lib wie hier (unten per yum)
                  beschrieben scheint nach den ersten Tagen eine Besserung zu bringen.
                  GGf. könnte man die 3 zeilen in das im Docker-Image integrieren?
                  https://knx-user-forum.de/forum/proj...-control/page2


                  sG
                  Joe

                  Kommentar


                    Hi Joe

                    Zitat von givemeone Beitrag anzeigen
                    Hallo!
                    Kann es sein dass das Docker von dem lib-curl mmemory leak betroffen ist?
                    Ausschliessen kann ich das im Moment nicht, von daher durchaus möglich. Du kannst gerne hier ein Ticket dafür aufmachen, dann geht's auch nicht vergessen...
                    Kind regards,
                    Yves

                    Kommentar


                      starwarsfan
                      Hier der neue Installer:

                      Code:
                      #!/bin/sh
                      
                      # -----------------------------------------------------------------------------------------------------------------------------------------
                      #
                      # Dieses EDOMI-Installationsscript unterliegt den EDOMI-Lizenzbestimmungen (siehe /usr/local/edomi/Lizenzhinweis.txt nach der Installation)
                      # EDOMI (c) Dr. Christian Gärtner
                      #
                      # -----------------------------------------------------------------------------------------------------------------------------------------
                      #
                      # 1. USB-Stick mounten:
                      #         mkdir /mnt/usb
                      #         mount -t vfat /dev/sdb1 /mnt/usb (Devicename sdb1 ggf. anpassen)
                      #
                      # 2. Installation starten:
                      #         /mnt/usb/edomi/install.sh
                      #        Hinweis: u.U. ist das Script zunächst ausführbar zu machen mit: chmod 777 /mnt/usb/edomi/install.sh
                      #
                      # 3. nach Abschluss der Installation ggf. den USB-Stick auswerfen:
                      #         umount /mnt/usb
                      #
                      # -----------------------------------------------------------------------------------------------------------------------------------------
                      
                      cd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
                      SERVERIP="$(hostname -I | cut -d' ' -f1)"
                      MAIN_PATH="/usr/local/edomi"
                      CENTOSVERSION=$(rpm -qa \*-release | grep -Ei "oracle|redhat|centos" | cut -d"-" -f3)
                      
                      install_onCentos65 () {
                          echo -e "\033[32m"
                          echo ">>> EDOMI und Systemdienste für CentOS 6.5 installieren..."
                          echo -e "\033[39m"
                          sleep 3
                      
                          # -------------------------------
                          echo -e "\033[32m>>> Packete installieren\033[39m"
                          rpm -Uvh centos65/rpm/*.rpm
                      
                          # -------------------------------
                          echo -e "\033[32m>>> SELinux deaktivieren\033[39m"
                          cp centos65/config/config /etc/selinux/
                          
                          # -------------------------------
                          echo -e "\033[32m>>> Apache konfigurieren\033[39m"
                          cp centos65/config/welcome.conf /etc/httpd/conf.d/
                          cp centos65/config/httpd.conf /etc/httpd/conf/
                          sed -i -e "s#===INSTALL-HTTP-ROOT===#$MAIN_PATH/www#g" /etc/httpd/conf/httpd.conf
                          sed -i -e "s#===INSTALL-SERVERIP===#$SERVERIP#g" /etc/httpd/conf/httpd.conf
                          chkconfig --add httpd
                          chkconfig --level 235 httpd on
                          
                          # -------------------------------
                          echo -e "\033[32m>>> PHP konfigurieren\033[39m"
                          cp centos65/config/php.conf /etc/httpd/conf.d/
                          cp centos65/config/php.ini /etc/
                          
                          # -------------------------------
                          echo -e "\033[32m>>> mySQL konfigurieren\033[39m"
                          cp centos65/config/my.cnf /etc/
                          chkconfig --add mysqld
                          chkconfig --level 235 mysqld on
                          service mysqld start
                      
                          # Passwort setzen (leer), diverses
                          /usr/bin/mysqladmin -u root password ""
                          mysql -e "DROP DATABASE test;"
                          mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
                          mysql -e "FLUSH PRIVILEGES;"
                          
                          # Remote-Access aktivieren
                          mysql -e "GRANT ALL ON *.* TO mysql@'%';"
                          
                          # -------------------------------
                          echo -e "\033[32m>>> FTP konfigurieren\033[39m"
                          cp centos65/config/vsftpd.conf /etc/vsftpd/
                          rm -f /etc/vsftpd/ftpusers
                          rm -f /etc/vsftpd/user_list
                          chkconfig --add vsftpd
                          chkconfig --level 235 vsftpd on
                          service vsftpd start
                          
                          # -------------------------------
                          echo -e "\033[32m>>> Dienste konfigurieren\033[39m"
                          # NTP
                          chkconfig --add ntpd    
                          chkconfig --level 235 ntpd on
                          
                          # Diverses
                          chkconfig --level 123456 crond off
                          chkconfig crond --del
                          chkconfig --level 123456 postfix off
                          chkconfig postfix --del
                          chkconfig --level 123456 blk-availability off
                          chkconfig blk-availability --del
                          chkconfig --level 123456 lvm2-monitor off
                          chkconfig lvm2-monitor --del
                          chkconfig --level 123456 mdmonitor off
                          chkconfig mdmonitor --del
                          chkconfig --level 123456 multipathd off
                          chkconfig multipathd --del
                          chkconfig --level 123456 netconsole off
                          chkconfig netconsole --del
                          chkconfig --level 123456 rdisc off
                          chkconfig rdisc --del
                          chkconfig --level 123456 restorecond off
                          chkconfig restorecond --del
                          chkconfig --level 123456 saslauthd off
                          chkconfig saslauthd --del
                          chkconfig --level 123456 auditd off
                          chkconfig auditd --del
                          
                          # Firewall IP4 ausschalten
                          service iptables save
                          service iptables stop
                          chkconfig --level 123456 iptables off
                          chkconfig iptables --del
                          
                          # Firewall IP6 ausschalten
                          service ip6tables save
                          service ip6tables stop
                          chkconfig --level 123456 ip6tables off
                          chkconfig ip6tables --del
                          
                          # System-Logging ausschalten
                          service rsyslog stop
                          chkconfig rsyslog off
                          chkconfig rsyslog --del
                                  
                          # -------------------------------
                          echo -e "\033[32m>>> Bootvorgang konfigurieren\033[39m"
                          sed -i -e '/timeout=/ s/=.*/=1/' /boot/grub/grub.conf
                          sed -i -e 's/quiet//g' /boot/grub/grub.conf
                          sed -i -e 's/rhgb//g' /boot/grub/grub.conf
                          
                          # boot.log löschen
                          chmod 777 /var/log/boot.log
                          rm -f /var/log/boot.log
                          # -------------------------------
                      
                          install_edomi
                      
                          # -------------------------------
                          echo -e "\033[32m"
                          echo "Autostart konfigurieren"
                          echo -e "\033[39m"
                          echo "/bin/sh $MAIN_PATH/main/start.sh" >> /etc/rc.d/rc.local
                      
                          # -------------------------------
                          show_splash
                          exit
                      }
                      
                      install_onCentos7 () {
                          echo -e "\033[32m"
                          echo ">>> EDOMI und Systemdienste für CentOS 7 installieren..."
                          echo -e "\033[39m"
                          sleep 3
                      
                          # -------------------------------
                          echo -e "\033[32m>>> Firewall deaktivieren\033[39m"
                          systemctl stop firewalld
                          systemctl disable firewalld
                      
                          # -------------------------------
                          echo -e "\033[32m>>> Packete installieren\033[39m"
                          # NTP, nano und vsFTP installieren
                          yum -y install ntp
                          yum -y install nano
                          yum -y install vsftpd
                          
                          # Apache installieren
                          yum -y install httpd
                      
                          # mySQL/MariaDB installieren
                          yum -y install mariadb-server
                      
                          # PHP 7.2 installieren
                          yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
                          yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
                          yum -y install yum-utils
                          yum-config-manager --enable remi-php72
                          yum -y install php
                          yum -y install php-mysql
                          yum -y install php-soap
                      
                          # -------------------------------
                          echo -e "\033[32m>>> Dienste konfigurieren\033[39m"
                          systemctl enable ntpd
                          systemctl enable vsftpd
                          systemctl enable httpd
                          systemctl enable mariadb
                          systemctl disable postfix
                      
                          # -------------------------------
                          echo -e "\033[32m>>> SELinux deaktivieren\033[39m"
                          sed -i -e '/SELINUX=/ s/=.*/=disabled/' /etc/selinux/config
                      
                          # -------------------------------
                          echo -e "\033[32m>>> FTP konfigurieren\033[39m"
                          rm -f /etc/vsftpd/ftpusers
                          rm -f /etc/vsftpd/user_list
                          sed -i -e '/listen=/ s/=.*/=YES/' /etc/vsftpd/vsftpd.conf
                          sed -i -e '/listen_ipv6=/ s/=.*/=NO/' /etc/vsftpd/vsftpd.conf
                          sed -i -e '/userlist_enable=/ s/=.*/=NO/' /etc/vsftpd/vsftpd.conf
                      
                          # -------------------------------
                          echo -e "\033[32m>>> Apache konfigurieren\033[39m"
                          sed -i -e "s/#ServerName www\.example\.com/ServerName $SERVERIP/" /etc/httpd/conf/httpd.conf
                          sed -i -e "s#DocumentRoot \"/var/www/html\"#DocumentRoot \"$MAIN_PATH/www\"#" /etc/httpd/conf/httpd.conf
                          sed -i -e "s#<Directory \"/var/www\">#<Directory \"$MAIN_PATH/www\">#" /etc/httpd/conf/httpd.conf
                          sed -i -e "s#<Directory \"/var/www/html\">#<Directory \"$MAIN_PATH/www\">#" /etc/httpd/conf/httpd.conf
                      
                          # -------------------------------
                          echo -e "\033[32m>>> mySQL/MariaDB konfigurieren\033[39m"
                          systemctl start mariadb
                          /usr/bin/mysqladmin -u root password ""
                          mysql -e "DROP DATABASE test;"
                          mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
                          mysql -e "FLUSH PRIVILEGES;"
                          mysql -e "GRANT ALL ON *.* TO mysql@'%';"
                      
                          echo "key_buffer_size=256M"             > /tmp/tmp.txt
                          echo "sort_buffer_size=8M"                 >> /tmp/tmp.txt
                          echo "read_buffer_size=16M"             >> /tmp/tmp.txt
                          echo "read_rnd_buffer_size=4M"             >> /tmp/tmp.txt
                          echo "myisam_sort_buffer_size=4M"         >> /tmp/tmp.txt
                          echo "join_buffer_size=4M"                 >> /tmp/tmp.txt
                          echo "query_cache_limit=8M"             >> /tmp/tmp.txt
                          echo "query_cache_size=8M"                 >> /tmp/tmp.txt
                          echo "query_cache_type=1"                 >> /tmp/tmp.txt
                          echo "wait_timeout=28800"                 >> /tmp/tmp.txt
                          echo "interactive_timeout=28800"         >> /tmp/tmp.txt
                          sed -i '/\[mysqld\]/r /tmp/tmp.txt' /etc/my.cnf
                      
                          # mySQL-Symlink erstellen
                          echo "Alias=mysqld.service"             > /tmp/tmp.txt
                          sed -i '/\[Install\]/r /tmp/tmp.txt' /usr/lib/systemd/system/mariadb.service
                          ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/mysqld.service'
                          systemctl daemon-reload
                      
                          # -------------------------------
                          echo -e "\033[32m>>> PHP konfigurieren\033[39m"
                          sed -i -e '/short_open_tag =/ s/=.*/= On/' /etc/php.ini
                          sed -i -e '/post_max_size =/ s/=.*/= 100M/' /etc/php.ini
                          sed -i -e '/upload_max_filesize =/ s/=.*/= 100M/' /etc/php.ini
                          sed -i -e '/max_file_uploads =/ s/=.*/= 1000/' /etc/php.ini
                      
                           # -------------------------------
                          echo -e "\033[32m>>> Bootvorgang konfigurieren\033[39m"
                          sed -i -e '/GRUB_TIMEOUT=/ s/=.*/=1/' /etc/default/grub
                          sed -i -e 's/quiet//g' /etc/default/grub
                          sed -i -e 's/rhgb//g' /etc/default/grub
                          grub2-mkconfig -o /boot/grub2/grub.cfg
                             # -------------------------------
                      
                          install_edomi
                      
                          # -------------------------------
                          echo -e "\033[32m>>> Autostart konfigurieren\033[39m"
                          echo "[Unit]"                        > /etc/systemd/system/edomi.service
                          echo "Description=EDOMI"            >> /etc/systemd/system/edomi.service
                          echo "Before=getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service" >> /etc/systemd/system/edomi.service
                          echo "After=httpd.service mysqld.service network.target" >> /etc/systemd/system/edomi.service
                          echo "Conflicts=getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service" >> /etc/systemd/system/edomi.service
                          echo "[Service]"                    >> /etc/systemd/system/edomi.service
                          echo "Type=simple"                     >> /etc/systemd/system/edomi.service
                          echo "ExecStart=/bin/sh /usr/local/edomi/main/start.sh" >> /etc/systemd/system/edomi.service
                          echo "TimeoutStartSec=0"            >> /etc/systemd/system/edomi.service
                          echo "StandardInput=tty-force"        >> /etc/systemd/system/edomi.service
                          echo "StandardOutput=inherit"         >> /etc/systemd/system/edomi.service
                          echo "StandardError=inherit"         >> /etc/systemd/system/edomi.service
                          echo "[Install]"                     >> /etc/systemd/system/edomi.service
                          echo "WantedBy=default.target"        >> /etc/systemd/system/edomi.service
                          systemctl daemon-reload
                          systemctl enable edomi
                      
                          # -------------------------------
                          show_splash
                          exit
                      }
                      
                      install_edomi () {
                          echo -e "\033[32m>>> EDOMI installieren\033[39m"
                          service mysqld stop
                          mkdir -p $MAIN_PATH
                          tar -xvf edomi.edomiinstall -C $MAIN_PATH
                          chmod 777 -R $MAIN_PATH
                      
                          # edomi.ini anpassen
                          sed -i -e "s#global_serverIP.*#global_serverIP='$SERVERIP'#" $MAIN_PATH/edomi.ini
                      }
                      
                      delete_edomi () {
                          echo -e "\033[32m>>> EDOMI-Installation löschen\033[39m"
                          service mysqld stop
                          
                          rm -rf $MAIN_PATH
                          rm -rf /var/lib/mysql/edomi*
                      }
                      
                      show_title () {
                          echo -e "\033[42m\033[30m                                                                                \033[49m\033[39m"
                          echo -e "\033[42m\033[30m                       EDOMI - (c) Dr. Christian Gärtner                        \033[49m\033[39m"
                          echo -e "\033[42m\033[30m                                                                                \033[49m\033[39m"
                      }
                      
                      show_splash () {
                          show_title
                          echo -e "\033[32mDie EDOMI-Installation ist abgeschlossen.\033[39m"
                          echo -e "\033[32mBeim nächsten Systemstart wird EDOMI automatisch gestartet.\033[39m"
                          echo -e "\033[32mNeustart mit: reboot (ENTER)\033[39m"
                          echo ""
                      }
                      
                      
                      while : ; do
                      
                          clear
                          show_title
                          echo ""
                          echo -e " IP-Adresse: \033[32m$SERVERIP\033[39m (wird zur Konfiguration verwendet)"
                          echo ""
                          echo "--------------------------------------------------------------------------------"
                          echo " 6 = EDOMI und Systemdienste für CentOS 6.5 installieren"
                          echo " 7 = EDOMI und Systemdienste für CentOS 7.x installieren"
                          echo ""
                          echo " e = nur EDOMI installieren (eine vorhandene Installation wird überschrieben!)"
                          echo " x = Beenden"
                          echo "--------------------------------------------------------------------------------"
                      
                          read MENUOPTION
                          if [ "$MENUOPTION" == "6" ]; then
                              if [ "$CENTOSVERSION" == "6" ]; then
                                  install_onCentos65
                              else
                                  echo "Das installierte CentOS scheint Version $CENTOSVERSION zu sein!"
                                  echo "Sollen dennoch die Systemdienste für CentOS 6.5 installiert werden (j/n)?"
                                  read CONFIRM
                                  if [ "$CONFIRM" == "j" ]; then 
                                      install_onCentos65
                                  fi    
                              fi
                          fi 
                          if [ "$MENUOPTION" == "7" ]; then 
                              if [ "$CENTOSVERSION" == "7" ]; then
                                  install_onCentos7
                              else
                                  echo "Das installierte CentOS scheint Version $CENTOSVERSION zu sein!"
                                  echo "Sollen dennoch die Systemdienste für CentOS 7.x installiert werden (j/n)?"
                                  read CONFIRM
                                  if [ "$CONFIRM" == "j" ]; then 
                                      install_onCentos7
                                  fi    
                              fi
                          fi 
                          if [ "$MENUOPTION" == "e" ]; then 
                              echo -e "\033[32m"
                              echo ">>> nur EDOMI installieren..."
                              echo -e "\033[39m"
                              sleep 3
                              delete_edomi
                              install_edomi
                              show_splash
                              exit
                          fi 
                          if [ "$MENUOPTION" == "x" ]; then 
                              exit
                          fi 
                      
                      done
                      EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                      Kommentar


                        wow... 2.0 rückt näher...

                        Kommentar


                          Habt ihr schonmal versucht, den PhpMyAdmin Container (oder anderen) mit dem Edomi Image zu linken?
                          Muss ich da wegen Username und Password der Datenbank irgendwas beachten (welche Zugangsdaten werden hier eigentlich verwendet?).

                          Ich würde gerne an die gespeicherten Daten in den Datenarchiven rankommen, um den einen oder anderen falsch reingeschriebenen Wert manuell zu korrigieren.

                          Grüße
                          Stefan
                          Autor der SonoPhone, SonoPad und SqueezePad Apps.

                          Kommentar


                            Moin zusammen,

                            bei mir läuft die Installation mit CentOS 7 nach dem reboot in folgenden Fehler und steht fest :-(
                            Die CentOS + edomi 1.64 ist vom Googledrive von Gaert.

                            Braucht ihr noch eine Info?

                            Ach: Auf einer VMM auf der Synology installiert. Internettest und IP OK...


                            Grüße und bis die Tage
                            Hiele

                            PS: Natürlich habe ich die install.sh im edomi Verzeichnis mit dem obigen scipt ersetzt.

                            Anmerkung 2019-05-05 211926.jpg

                            Habe es nochmal installiert und dann das Verzeichnis geprüft -> leer

                            Anmerkung 2019-05-05 220021.jpg
                            Zuletzt geändert von Hiele; 05.05.2019, 21:02. Grund: Neuinstallation
                            Gruß Hiele
                            ______________________________________________
                            EIB Stuff:
                            Gira Homeserver V2 / Gira 15" Touch-Panel / Info-Display2 / Wiregate / Wetterstation

                            Kommentar


                              Hi

                              Zitat von Hiele Beitrag anzeigen
                              Braucht ihr noch eine Info?

                              Ach: Auf einer VMM auf der Synology installiert. Internettest und IP OK...
                              Du bist hier völlig falsch. Was hat Dein Versuch der Edomi-Installation unter CentOS7 mit dem Edomi-Dockerimage zu tun?


                              Zitat von Hiele Beitrag anzeigen
                              PS: Natürlich habe ich die install.sh im edomi Verzeichnis mit dem obigen scipt ersetzt.
                              Wozu? Hat irgendwer beschrieben, dass das zu machen ist?

                              Edomi für CentOS7 ist schlicht und ergreifend noch nicht fertig geschweige denn von gaert released! Erst wenn das der Fall ist, wird es auch ein entsprechendes Docker-Image geben.
                              Kind regards,
                              Yves

                              Kommentar


                                Hallo
                                Ich habe das Dockerimage auf dem Synology NAS am laufen. Leider bekomme ich die KNX Verbindung nicht hin.
                                Was mache ich nur falsch ? Kann mir einer helfen. Die Einstellungen sind auf den Bildern zu erkennen .

                                Einstellung 2 in Synology Kopie.jpg Einstellung 3 Edomi Kopie.jpgEinstellung in Synology Kopie.jpg

                                Einstellung 2 Edomi Kopie.jpg Einstellung 1 Edomi Kopie.jpg Einstellung 4 Edomi Kopie.jpg

                                Angehängte Dateien

                                Kommentar

                                Lädt...
                                X