Init
This commit is contained in:
commit
6a8b9708fd
9 changed files with 320 additions and 0 deletions
20
docker/createDockerComposeFile.sh
Normal file
20
docker/createDockerComposeFile.sh
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
container_name=$1
|
||||
output_dir=$2
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo -e "\nParameter fehlen!\n"
|
||||
echo -e "Usage: createDockerComposeFile.sh <containername> \n"
|
||||
echo -e "Beispiel: ./createDockerComposeFile.sh iobroker \n"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$2" ]; then
|
||||
output_dir=$(pwd)/docker-compose.yml
|
||||
fi
|
||||
|
||||
# Erstelle Docker-Compose-File
|
||||
echo -e "\nErstelle Docker-Compose-File in aktuellem Verzeichnis\n"
|
||||
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose $container_name > $output_dir
|
||||
echo -e "Fertig!\n"
|
||||
exit 0
|
||||
56
docker/remoteControlDocker.sh
Normal file
56
docker/remoteControlDocker.sh
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#!/bin/bash
|
||||
|
||||
CONFIG_FILE="/etc/docker/daemon.json"
|
||||
SYSTEMD_DIR="/etc/systemd/system/docker.service.d"
|
||||
SYSTEMD_FILE="$SYSTEMD_DIR/docker.conf"
|
||||
HOST_IP=$(hostname -I | awk '{print $1}')
|
||||
|
||||
echo "Überprüfe, ob $CONFIG_FILE existiert..."
|
||||
|
||||
if [ ! -f "$CONFIG_FILE" ]; then
|
||||
echo "Datei existiert nicht. Erstelle $CONFIG_FILE..."
|
||||
cat <<EOF > $CONFIG_FILE
|
||||
{
|
||||
"data-root": "/var/lib/docker",
|
||||
"hosts": ["unix:///var/run/docker.sock", "tcp://$HOST_IP:2375"]
|
||||
}
|
||||
EOF
|
||||
echo "$CONFIG_FILE wurde erstellt."
|
||||
else
|
||||
echo "$CONFIG_FILE existiert bereits. Passe den Inhalt an..."
|
||||
jq '. + {"data-root": "/var/lib/docker", "hosts": (if .hosts then (.hosts + ["tcp://$HOST_IP:2375"] | unique) else ["unix:///var/run/docker.sock", "tcp://$HOST_IP:2375"] end)}' $CONFIG_FILE > /tmp/daemon.json && mv /tmp/daemon.json $CONFIG_FILE
|
||||
echo "$CONFIG_FILE wurde angepasst."
|
||||
fi
|
||||
|
||||
echo "Überprüfe, ob $SYSTEMD_FILE existiert..."
|
||||
if [ ! -f "$SYSTEMD_FILE" ]; then
|
||||
echo "Datei existiert nicht. Erstelle $SYSTEMD_FILE..."
|
||||
mkdir -p "$SYSTEMD_DIR"
|
||||
cat <<EOF > $SYSTEMD_FILE
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/dockerd
|
||||
EOF
|
||||
echo "$SYSTEMD_FILE wurde erstellt."
|
||||
else
|
||||
echo "$SYSTEMD_FILE existiert bereits. Überprüfe den Inhalt..."
|
||||
if ! grep -q "ExecStart=/usr/bin/dockerd" "$SYSTEMD_FILE"; then
|
||||
echo "Inhalt unvollständig. Ergänze erforderliche Zeilen..."
|
||||
echo -e "[Service]\nExecStart=\nExecStart=/usr/bin/dockerd" >> "$SYSTEMD_FILE"
|
||||
echo "$SYSTEMD_FILE wurde aktualisiert."
|
||||
else
|
||||
echo "$SYSTEMD_FILE enthält bereits die notwendigen Einstellungen. Keine Änderungen erforderlich."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Systemd neu laden
|
||||
echo "Lade Systemd-Daemon neu..."
|
||||
systemctl daemon-reload
|
||||
|
||||
# Docker-Dienst neu starten
|
||||
echo "Starte Docker neu..."
|
||||
service docker restart
|
||||
|
||||
# Status von Docker überprüfen
|
||||
echo "Prüfe den Status von Docker..."
|
||||
systemctl status docker --no-pager
|
||||
20
system/adjustJournalSize.sh
Normal file
20
system/adjustJournalSize.sh
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Pfad zur Datei
|
||||
FILE="/etc/systemd/journald.conf"
|
||||
|
||||
# Überprüfen, ob die Datei existiert
|
||||
if [[ ! -f $FILE ]]; then
|
||||
echo "Datei $FILE existiert nicht."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ersetzen der betroffenen Zeilen in der Datei
|
||||
sed -i \
|
||||
-e 's/^#SystemMaxUse=.*$/SystemMaxUse=50M/' \
|
||||
-e 's/^SystemMaxUse=.*$/SystemMaxUse=50M/' \
|
||||
"$FILE"
|
||||
|
||||
# Datei neu laden
|
||||
systemctl restart systemd-journald
|
||||
echo "Die Änderungen wurden vorgenommen und systemd-journald wurde neu gestartet."
|
||||
29
system/cleanupLogs.sh
Normal file
29
system/cleanupLogs.sh
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
|
||||
YELLOW="\[\033[1;33m\]" # Yellow
|
||||
RED="\[\033[1;31m\]" # Red
|
||||
ENDCOLOR="\033[0m"
|
||||
|
||||
if [ $USER != root ]; then
|
||||
echo -e $RED"Error: Du musst root sein"
|
||||
echo -e $YELLOW"Exiting..."$ENDCOLOR
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo -e $YELLOW"Leere apt cache..."$ENDCOLOR
|
||||
apt-get clean
|
||||
|
||||
echo -e $YELLOW"Entferne alle nicht mehr verwendete Pakete..."$ENDCOLOR
|
||||
apt-get autoremove
|
||||
|
||||
if [ "$1" = "-l" ]; then
|
||||
echo -e $YELLOW"Entferne alte Logdateien..."$ENDCOLOR
|
||||
rm /var/log/*.gz >/dev/null 2>&1
|
||||
rm /var/log/*.log.* >/dev/null 2>&1
|
||||
rm /var/log/*.1 >/dev/null 2>&1
|
||||
else
|
||||
echo -e $YELLOW"Finish!"$ENDCOLOR
|
||||
exit
|
||||
fi
|
||||
echo -e $YELLOW"Finish!"$ENDCOLOR
|
||||
exit
|
||||
55
update/deConz/README.md
Normal file
55
update/deConz/README.md
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# Firmware Upgrade Script
|
||||
|
||||
Dieses Script ermöglicht es, eine Firmware für das DeCONZ ConBee II oder ähnliche Geräte herunterzuladen und auf einem angegebenen Gerät zu installieren. Es verwendet einen Docker-Container, um die Aktualisierung sicher und isoliert durchzuführen.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Installierter Docker-Client auf dem System.
|
||||
- Das Zielgerät muss per USB an das System angeschlossen und unter `/dev/` verfügbar sein.
|
||||
- Die URL der Firmware, die heruntergeladen und installiert werden soll.
|
||||
|
||||
## Verwendung
|
||||
|
||||
**Hinweis:
|
||||
Stelle sicher, dass das angegebene Gerät korrekt angeschlossen ist, bevor du das Skript ausführst!**
|
||||
|
||||
Das Skript erwartet zwei Parameter:
|
||||
|
||||
- **URL der Firmware**: Diese findest du auf der [DeCONZ-Firmware-Seite](https://deconz.dresden-elektronik.de/deconz-firmware/).
|
||||
- **Device**: Der Pfad zum Gerät (z.B. `/dev/ttyACM0`).
|
||||
|
||||
**Beispiel:**
|
||||
|
||||
|
||||
```bash
|
||||
./firmware-upgrade.sh https://deconz.dresden-elektronik.de/deconz-firmware/deCONZ_ConBeeII_0x26780700.bin.GCF /dev/ttyACM0
|
||||
```
|
||||
|
||||
# Was tut das Script?
|
||||
|
||||
### Firmware-Download:
|
||||
|
||||
Das Skript wechselt in das temporäre Verzeichnis /tmp und lädt die Firmware über die angegebene URL herunter.Falls der Download fehlschlägt, gibt das Skript eine entsprechende Fehlermeldung aus.
|
||||
|
||||
### Docker-Container starten:
|
||||
|
||||
Ein temporärer Docker-Container wird gestartet, um die Firmware-Installation sicher durchzuführen. Der Container erhält Zugriff auf notwendige Systemverzeichnisse wie /dev, /lib/modules, /sys und /tmp.
|
||||
|
||||
### Firmware-Flashen:
|
||||
|
||||
Der Flasher GCFFlasher_internal wird innerhalb des Containers aufgerufen und führt das Update auf dem angegebenen Gerät durch.
|
||||
|
||||
### Cleanup:
|
||||
|
||||
Nach erfolgreichem Flashen wird der Docker-Container gestoppt und entfernt. Außerdem wird die heruntergeladene Firmware-Datei gelöscht, um Speicherplatz freizugeben.
|
||||
|
||||
|
||||
|
||||
### Fehlerbehandlung
|
||||
**Fehlende Parameter:** Wenn keine URL oder kein Gerät angegeben wird, erinnert das Skript daran, wie es korrekt verwendet wird.
|
||||
|
||||
|
||||
**Gerät nicht gefunden:** Falls das angegebene Gerät nicht existiert, wird das Skript mit einem entsprechenden Hinweis abgebrochen.
|
||||
|
||||
|
||||
**Fehler beim Download:** Wenn der Download fehlschlägt (z.B. durch eine falsche URL), bricht das Skript ebenfalls ab.
|
||||
50
update/deConz/firmware-upgrade.sh
Normal file
50
update/deConz/firmware-upgrade.sh
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#!/bin/bash
|
||||
url=$1
|
||||
filename="${url##*/}"
|
||||
device=$2
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo -e "\nParameter fehlen!\n"
|
||||
echo -e "Die Firmware findest du hier: https://deconz.dresden-elektronik.de/deconz-firmware/\n"
|
||||
echo -e "Usage: firmware-upgrade.sh <url> <device>\n"
|
||||
echo -e "Beispiel: ./firmware-upgrade.sh https://deconz.dresden-elektronik.de/deconz-firmware/deCONZ_ConBeeII_0x26780700.bin.GCF /dev/ttyACM0\n"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Check ob Gerät existiert
|
||||
if [ -e "$device" ]; then
|
||||
echo -e "\nDas Gerät $device existiert."
|
||||
else
|
||||
echo -e "\nDas Gerät $device existiert nicht. Hast du dich verschrieben?\n"
|
||||
exit 1 # Abbruch mit Fehlercode 1
|
||||
fi
|
||||
|
||||
#Wechse in das Arbeits-Verzeichnis und lade die Firmware herunter
|
||||
cd /tmp
|
||||
wget $url
|
||||
|
||||
# Check ob Download erfolgreich war
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "\nDownload erfolgreich!\n"
|
||||
else
|
||||
echo -e "\nDownload fehlgeschlagen! Die URL ist eventuell nicht korrekt!\n"
|
||||
exit 1 # Abbruch mit Fehlercode 1
|
||||
fi
|
||||
|
||||
#Starte deconz-docker-container
|
||||
docker run -d --name deconz-firmware --privileged --cap-add=ALL -v /dev:/dev -v /lib/modules:/lib/modules -v /sys:/sys -v /tmp:/tmp deconzcommunity/deconz:stable
|
||||
|
||||
#Führen den Flasher im deconz-container aus mit den zugehörigen Parametern
|
||||
docker exec deconz-firmware /bin/bash -c "cd /tmp && GCFFlasher_internal -d $device -f ./$filename"
|
||||
|
||||
#Cleanup
|
||||
echo -e "Stopped deconz-firmware\n"
|
||||
docker stop deconz-firmware
|
||||
|
||||
echo -e "Removed deconz-firmware\n"
|
||||
docker rm deconz-firmware
|
||||
|
||||
echo -e "Cleanup\n"
|
||||
rm -f /tmp/$filename
|
||||
|
||||
echo "Done"
|
||||
32
update/ioBroker/update_iobroker_docker_full.sh
Normal file
32
update/ioBroker/update_iobroker_docker_full.sh
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
# This script will automatically update your whole ioBroker-System inside Docker including adapters
|
||||
# Define your common ioBroker-container-name from Docker
|
||||
iobroker_container_name=iobroker
|
||||
|
||||
echo -e "\nBackup ioBroker...\n"
|
||||
docker exec $iobroker_container_name iob backup
|
||||
|
||||
echo -e "\nStopping ioBroker...\n"
|
||||
docker exec $iobroker_container_name pkill -u iobroker
|
||||
|
||||
echo -e "\nStopping ioBroker...\n"
|
||||
docker exec $iobroker_container_name iob stop
|
||||
|
||||
echo -e "\nFixxing ioBroker if necessary...\n"
|
||||
docker exec $iobroker_container_name iob fix
|
||||
|
||||
echo -e "\nUpdating database...\n"
|
||||
docker exec $iobroker_container_name iob update
|
||||
|
||||
echo -e "\nUpgrade all updatable adapters\n"
|
||||
docker exec $iobroker_container_name iob upgrade
|
||||
|
||||
echo -e "\nUpdate ioBroker js-controller (core). This may take a while..\n"
|
||||
docker exec $iobroker_container_name iob upgrade self
|
||||
|
||||
echo -e "\nRestarting ioBroker\n"
|
||||
docker exec $iobroker_container_name iob start
|
||||
|
||||
echo -e "\nAll done!\n"
|
||||
echo Finish!
|
||||
exit
|
||||
16
update/ioBroker/update_iobroker_docker_js-controller.sh
Normal file
16
update/ioBroker/update_iobroker_docker_js-controller.sh
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
#This script will automatically update the js-controller of your ioBroker-System inside Docker
|
||||
iobroker_container_name=iobroker
|
||||
|
||||
echo -e "Stopping ioBroker...\n"
|
||||
docker exec $iobroker_container_name pkill -u iobroker
|
||||
|
||||
echo -e "\nUpdating database...\n"
|
||||
docker exec $iobroker_container_name iob update
|
||||
|
||||
echo -e "\nUpdate ioBroker js-controller (core). This may take a while..\n"
|
||||
docker exec $iobroker_container_name iob upgrade self
|
||||
|
||||
echo -e "\nAll done!\n"
|
||||
echo Finish!
|
||||
exit
|
||||
42
update/postgres/upgrade_postgres_version.sh
Normal file
42
update/postgres/upgrade_postgres_version.sh
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Create docker-volume if not exists
|
||||
#docker run -d \
|
||||
# --name postgres \
|
||||
# -e POSTGRES_USER=matrix \
|
||||
# -e POSTGRES_PASSWORD="9uZoFV%cJi&EAZCV*dm7gSSyLs5XS@F8" \
|
||||
# -e POSTGRES_DB=matrix_synapse \
|
||||
# -e LC_COLLATE='C' \
|
||||
# -e LC_CTYPE='C' \
|
||||
# -e POSTGRES_INITDB_ARGS="--encoding=UTF-8" \
|
||||
# -v /mnt/Docker/Synapse/postgres:/var/lib/postgresql/data \
|
||||
# --restart=unless-stopped postgres:alpine
|
||||
|
||||
echo "Sichere PostgresSQL..."
|
||||
docker exec postgres sh -c "pg_dumpall -U matrix > /var/lib/postgresql/data/dump.sql"
|
||||
mv /mnt/Docker/Synapse/postgres/dump.sql /mnt/Docker/Synapse/dump.sql
|
||||
|
||||
echo "Erledigt!"
|
||||
echo "Stoppe Docker-Container"
|
||||
docker stop postgres
|
||||
|
||||
echo "Lösche Postgres-Volume..."
|
||||
rm -r /mnt/Docker/Synapse/postgres/*
|
||||
echo "Erledigt!"
|
||||
|
||||
echo "Jetzt aktualisiere das PostgresSQL-Image auf eine neue Version!"
|
||||
echo "Bestätige mit OK wenn der Container läuft..."
|
||||
|
||||
read -p "Warte auf Eingabe" readline
|
||||
|
||||
if [ "$readline" = "OK" ]; then
|
||||
echo "Restore PostgresSQL aus Backup in neue Version...!"
|
||||
cp /mnt/Docker/Synapse/dump.sql /mnt/Docker/Synapse/postgres/dump.sql
|
||||
docker exec postgres sh -c "psql -U matrix -d matrix_synapse < /var/lib/postgresql/data/dump.sql"
|
||||
docker restart postgres
|
||||
else
|
||||
echo "Abbruch"
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "Finish!"
|
||||
Loading…
Add table
Add a link
Reference in a new issue