Größe: 3736
Kommentar:
|
← Revision 108 vom 2022-10-07 16:55:32 ⇥
Größe: 3842
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 18: | Zeile 18: |
apt-get update && apt-get -y dist-upgrade && apt-get -y install -f init procps wget vim bash-completion perl-base libdevice-serialport-perl libwww-perl libio-socket-ssl-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libtimedate-perl libmail-imapclient-perl libgd-graph-perl libtext-csv-perl libxml-simple-perl liblist-moreutils-perl fonts-liberation libimage-librsvg-perl libgd-text-perl libsocket6-perl libio-socket-inet6-perl libmime-base64-perl libimage-info-perl libusb-1.0-0-dev libnet-server-perl libdate-manip-perl libhtml-treebuilder-xpath-perl libmojolicious-perl libxml-bare-perl libauthen-oath-perl libconvert-base32-perl libmodule-pluggable-perl libnet-bonjour-perl libcrypt-urandom-perl nodejs npm libnet-dbus-perl default-jre git curl mc autoconf libtool sudo protobuf-compiler zip unzip tar | apt-get update && apt-get -y dist-upgrade && apt-get -y install -f init procps cron mc wget vim bash-completion perl-base libdevice-serialport-perl libwww-perl libio-socket-ssl-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libtimedate-perl libmail-imapclient-perl libgd-graph-perl libtext-csv-perl libxml-simple-perl liblist-moreutils-perl fonts-liberation libimage-librsvg-perl libgd-text-perl libsocket6-perl libio-socket-inet6-perl libmime-base64-perl libimage-info-perl libusb-1.0-0-dev libnet-server-perl libdate-manip-perl libhtml-treebuilder-xpath-perl libmojolicious-perl libxml-bare-perl libauthen-oath-perl libconvert-base32-perl libmodule-pluggable-perl libnet-bonjour-perl libcrypt-urandom-perl nodejs npm libnet-dbus-perl sudo zip unzip tar avrdude libdbd-mysql-perl iputils-ping net-tools libxml-parser-perl libxml-xpath-perl usbutils curl telnet jq locales timedatectl set-timezone Europe/Berlin sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen dpkg-reconfigure -f noninteractive locales update-locale LANG=de_DE.UTF-8 |
Zeile 30: | Zeile 36: |
systemctl stop fhem rm -rf /opt/fhem/ mkdir -p /opt/fhem chown fhem:dialout /opt/fhem useradd --home-dir /home/hss --groups dialout --create-home --shell /bin/bash --user-group hss su hss cd mkdir ~/scripts cd scripts wget https://raw.githubusercontent.com/fhem/fhem-docker/dev/src/health-check.sh chmod 755 health-check.sh |
|
Zeile 32: | Zeile 52: |
4. signal-cli installieren | 4. Aus dem nun entstandenen Docker Container ein eigenes Image ("bullseye_fhem") machen: |
Zeile 35: | Zeile 55: |
#cd ~/_download #wget https://svn.fhem.de/fhem/trunk/fhem/contrib/signal/signal_install.sh #chmod 755 signal_install.sh #./signal_install.sh |
docker container stop fhem2 |
Zeile 40: | Zeile 57: |
cpan install Protocol::DBus adduser --disabled-password --gecos none signal-cli |
docker commit $(docker ps -a | grep fhem2 | cut -d' ' -f1) bullseye_fhem docker save bullseye_fhem > /home/hss/bullseye_fhem.tar |
Zeile 45: | Zeile 61: |
4.1 Kurze Unterbrechung: Wenn ausgegeben wird: "Waiting for signal-cli to become ready.........." Mit Strg + C unterbrechen |
5. Das neu entstandene Image in Betrieb nehmen: |
Zeile 52: | Zeile 64: |
cd ~/_download wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17%2B35/OpenJDK17-jdk_arm_linux_hotspot_17_35.tar.gz cd /opt tar zxf ~/_download/OpenJDK17-jdk_arm_linux_hotspot_17_35.tar.gz rm -rf /opt/java mv jdk* java cat >> ~/.bashrc << "EOFJAVA" export JAVA_HOME="/opt/java" EOFJAVA |
# Falls das Image aus einem Backup eingespielt werden soll: # docker load --input bullseye_fhem.tar |
Zeile 62: | Zeile 67: |
cd ~/_download wget https://downloads.gradle-dn.com/distributions/gradle-7.1-bin.zip rm -rf /opt/gradle mkdir -p /opt/gradle unzip -d /opt/gradle ./gradle-7.1-bin.zip cat >> ~/.bashrc << "EOFPROFILE" export PATH="$PATH:/opt/gradle/gradle-7.1/bin" EOFPROFILE |
docker run -d --network fhem-netzwerk --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name fhem -e FHEM_UID=$(id -u hss) -e FHEM_GID=$(id -g hss) -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 8088:8088 -p 8383:8383 -v /fhem-config:/opt/fhem --device=/dev/ttyUSB0 --device=/dev/ttyUSB1 --device=/dev/ttyUSB2 --device=/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A106YICN-if00-port0 --device=/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH06NIQN-if00-port0 --device=/dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_01304F5B-if00-port0 --restart unless-stopped --health-cmd /home/hss/scripts/health-check.sh --health-interval 30s --health-retries 3 --health-timeout 10s bullseye_fhem |
Zeile 72: | Zeile 70: |
4.2 Rust installieren |
6. Rechte anpassen |
Zeile 77: | Zeile 73: |
cd ~/_download curl https://sh.rustup.rs -sSf | sh source ~/.cargo/env |
docker exec -it fhem /bin/bash systemctl stop fhem chown -R fhem:dialout /opt/fhem systemctl start fhem systemctl enable fhem |
Zeile 81: | Zeile 79: |
reboot | timedatectl set-timezone Europe/Berlin |
Zeile 84: | Zeile 82: |
4.3 zkgroup libs übersetzen |
5. signal-cli installieren (eigener Docker Container) |
Zeile 89: | Zeile 85: |
cd ~/_download git clone https://github.com/signalapp/zkgroup.git cd zkgroup git checkout v0.8.2 cd ffi/java make # Fehler am Ende ignorieren! mkdir -p /opt/signal/lib chown -R signal-cli:dialout /opt/signal cp ../../target/release/libzkgroup.so /opt/signal/lib |
docker pull bbernhard/signal-cli-rest-api docker run -d --network fhem-netzwerk --restart unless-stopped --name signal-cli -v /signal-cli-config:/home/.local/share/signal-cli -p 8080:8080 -e MODE=json-rpc bbernhard/signal-cli-rest-api:latest |
Zeile 102: | Zeile 89: |
4.4 prutobuf installieren {{{ cd ~/_download git clone https://github.com/protocolbuffers/protobuf.git cd protobuf git submodule update --init --recursive ./autogen.sh ./configure make make check make install ldconfig }}} 4.5 libsignal-client übersetzen {{{ cd ~/_download git clone https://github.com/signalapp/libsignal-client.git cd libsignal-client git checkout v0.9.7 cd java ./build_jni.sh desktop cp ../target/release/libsignal_jni.so /opt/signal/lib ldconfig }}} 4.6 Libraries ersetzen {{{ cd /opt/signal/lib sudo -u signal-cli zip -u signal-client-java-*.jar libsignal_jni.so sudo -u signal-cli zip -u zkgroup-java-*.jar libzkgroup.so cd ~/_download ./signal_install.sh systemctl start signal }}} |
---- KategorieRaspberry |
Eigenen Debian-Container mit fhem erzeugen
1. Den Container als Daemon laufen lassen
docker run -d --network fhem-netzwerk --restart unless-stopped --name fhem2 --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-debian:bullseye
2. Konsole im Container ausführen
docker exec -it fhem2 /bin/bash
3. Container für fhem vorbereiten (natürlich im Konsolenfenster!)
apt-get update && apt-get -y dist-upgrade && apt-get -y install -f init procps cron mc wget vim bash-completion perl-base libdevice-serialport-perl libwww-perl libio-socket-ssl-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libtimedate-perl libmail-imapclient-perl libgd-graph-perl libtext-csv-perl libxml-simple-perl liblist-moreutils-perl fonts-liberation libimage-librsvg-perl libgd-text-perl libsocket6-perl libio-socket-inet6-perl libmime-base64-perl libimage-info-perl libusb-1.0-0-dev libnet-server-perl libdate-manip-perl libhtml-treebuilder-xpath-perl libmojolicious-perl libxml-bare-perl libauthen-oath-perl libconvert-base32-perl libmodule-pluggable-perl libnet-bonjour-perl libcrypt-urandom-perl nodejs npm libnet-dbus-perl sudo zip unzip tar avrdude libdbd-mysql-perl iputils-ping net-tools libxml-parser-perl libxml-xpath-perl usbutils curl telnet jq locales timedatectl set-timezone Europe/Berlin sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen dpkg-reconfigure -f noninteractive locales update-locale LANG=de_DE.UTF-8 mkdir -p ~/_download cd ~/_download wget http://fhem.de/fhem-6.1.deb apt-get -y install -f ./fhem-6.1.deb cp /opt/fhem/contrib/init-scripts/fhem.service /etc/systemd/system/ systemctl daemon-reload systemctl stop fhem rm -rf /opt/fhem/ mkdir -p /opt/fhem chown fhem:dialout /opt/fhem useradd --home-dir /home/hss --groups dialout --create-home --shell /bin/bash --user-group hss su hss cd mkdir ~/scripts cd scripts wget https://raw.githubusercontent.com/fhem/fhem-docker/dev/src/health-check.sh chmod 755 health-check.sh
4. Aus dem nun entstandenen Docker Container ein eigenes Image ("bullseye_fhem") machen:
docker container stop fhem2 docker commit $(docker ps -a | grep fhem2 | cut -d' ' -f1) bullseye_fhem docker save bullseye_fhem > /home/hss/bullseye_fhem.tar
5. Das neu entstandene Image in Betrieb nehmen:
# Falls das Image aus einem Backup eingespielt werden soll: # docker load --input bullseye_fhem.tar docker run -d --network fhem-netzwerk --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name fhem -e FHEM_UID=$(id -u hss) -e FHEM_GID=$(id -g hss) -p 7072:7072 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 8088:8088 -p 8383:8383 -v /fhem-config:/opt/fhem --device=/dev/ttyUSB0 --device=/dev/ttyUSB1 --device=/dev/ttyUSB2 --device=/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A106YICN-if00-port0 --device=/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH06NIQN-if00-port0 --device=/dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_01304F5B-if00-port0 --restart unless-stopped --health-cmd /home/hss/scripts/health-check.sh --health-interval 30s --health-retries 3 --health-timeout 10s bullseye_fhem
6. Rechte anpassen
docker exec -it fhem /bin/bash systemctl stop fhem chown -R fhem:dialout /opt/fhem systemctl start fhem systemctl enable fhem timedatectl set-timezone Europe/Berlin
5. signal-cli installieren (eigener Docker Container)
docker pull bbernhard/signal-cli-rest-api docker run -d --network fhem-netzwerk --restart unless-stopped --name signal-cli -v /signal-cli-config:/home/.local/share/signal-cli -p 8080:8080 -e MODE=json-rpc bbernhard/signal-cli-rest-api:latest