Compare commits

..

47 Commits

Author SHA1 Message Date
Andre
250acdc992 workaround for install problems 2018-12-07 18:23:19 +01:00
Andre
f2e6780456 changes for iobroker setup 2018-12-07 17:10:55 +01:00
Andre
2983f1f63d Update Dockerfile 2018-12-07 14:19:26 +01:00
Andre
ddccbe7dfa Update iobroker_startup.sh 2018-12-07 14:16:08 +01:00
Andre
e99ab6fa82 Update README.md 2018-12-06 21:49:20 +01:00
Andre
16b9d318fd changes for new iobroker setup 2018-12-06 21:48:35 +01:00
Andre
13182735f8 Update README.md 2018-12-05 14:42:53 +01:00
Andre
426035fa9b Merge pull request #13 from buanet/node8
Node 8 is now required for ioBroker
2018-12-05 14:23:01 +01:00
Andre
5eb3e6ef1d Merge branch 'master' into node8 2018-12-05 14:22:40 +01:00
Andre
d56fca4074 Update iobroker_stop.sh 2018-11-08 21:35:21 +01:00
Andre
6f2eb382d5 Update iobroker_restart.sh 2018-11-08 21:34:50 +01:00
andre
82aa3f0062 changes for node 8 2018-11-05 00:33:00 +01:00
Andre
eb72bfea00 Update README.md 2018-09-12 14:03:39 +02:00
Andre
6e8f3a1448 added support for firetv-adapter 2018-09-12 14:01:42 +02:00
Andre
dc31095c1c Update README.md 2018-08-21 13:31:59 +02:00
Andre
834fd976c0 added ffmpeg-package 2018-08-21 12:20:01 +02:00
Andre
609804ea0d Update Dockerfile 2018-08-20 15:26:37 +02:00
Andre
0f39f7ae5e Update Dockerfile 2018-08-20 15:23:12 +02:00
Andre
fdfbed9846 Update README.md 2018-04-04 11:20:28 +02:00
Andre
b4f7ba98b1 added ENV for timezone issue 2018-04-04 11:15:36 +02:00
Andre
351bfddc8d Update README.md 2018-03-29 23:02:02 +02:00
andre
8a8ac64952 added package 2018-03-21 23:24:58 +01:00
andre
e015276fc4 optimizing and testing 2017-12-27 16:55:54 +01:00
andre
4f41716e77 testing 2017-12-27 15:55:51 +01:00
andre
d301f754f4 optimized dockerfile and node 8 test 2017-12-27 12:03:58 +01:00
Andre
a0adbc121e released v1.1.0 2017-12-10 14:24:10 +01:00
Andre
17ac1a5bcf added fix for avahi issue 2017-12-10 11:41:46 +01:00
Andre
f440613049 Update Dockerfile 2017-12-07 23:10:56 +01:00
Andre
7a6de5b3c5 Update Dockerfile 2017-12-07 22:17:44 +01:00
Andre
0687a2ef18 Update Dockerfile 2017-12-07 21:31:57 +01:00
Andre
3d191b9fd9 Update iobroker_startup.sh 2017-12-06 22:19:27 +01:00
Andre
0cc07e148d Update iobroker_startup.sh 2017-12-01 23:41:15 +01:00
Andre
f841ccf882 Update iobroker_startup.sh 2017-12-01 23:06:34 +01:00
Andre
b8622098b2 Update iobroker_startup.sh 2017-12-01 23:01:46 +01:00
Andre
9aab687492 Update iobroker_startup.sh 2017-11-30 23:18:45 +01:00
Andre
c69f7145b3 Update Dockerfile 2017-11-30 23:17:51 +01:00
Andre
1fbbd33979 Delete startup.sh 2017-11-30 22:39:34 +01:00
Andre
911beabb6a Update iobroker_startup.sh 2017-11-30 22:37:46 +01:00
Andre
945c7bfbaa Update Dockerfile 2017-11-30 22:34:15 +01:00
Andre
19a6eb74bb Update Dockerfile 2017-09-25 10:56:24 +02:00
Andre
1713562071 Update backup_iobroker_folder.sh 2017-09-22 23:24:58 +02:00
Andre
a34cdfe7bf Update backup_iobroker_folder.sh 2017-09-22 23:02:05 +02:00
Andre
c0eb88812f Update backup_iobroker_folder.sh 2017-09-22 22:56:52 +02:00
Andre
d3737203dc Update backup_iobroker_folder.sh 2017-09-05 21:34:22 +02:00
Andre
a87286ca08 Update backup_iobroker_folder.sh 2017-09-05 20:22:58 +02:00
Andre
220d07cf95 Update README.md 2017-08-25 20:49:21 +02:00
Andre
0d740d4626 added locales 2017-08-25 20:47:25 +02:00
7 changed files with 74 additions and 44 deletions

View File

@@ -1,13 +1,19 @@
FROM debian:latest FROM debian:latest
MAINTAINER Andre Germann <info@buanet.de> MAINTAINER Andre Germann <https://buanet.de>
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y apt-utils curl avahi-daemon git libpcap-dev libavahi-compat-libdnssd-dev libfontconfig gnupg2 RUN apt-get update && apt-get install -y build-essential python apt-utils curl avahi-daemon git libpcap-dev libavahi-compat-libdnssd-dev libfontconfig gnupg2 locales procps libudev-dev libpam0g-dev unzip sudo wget ffmpeg android-tools-adb android-tools-fastboot
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash
RUN apt-get install -y build-essential python nodejs RUN curl -sL https://deb.nodesource.com/setup_8.x | bash
RUN apt-get install -y nodejs
RUN sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf
RUN sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen && \dpkg-reconfigure --frontend=noninteractive locales && \update-locale LANG=de_DE.UTF-8
ENV LANG de_DE.UTF-8
RUN cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime RUN cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
ENV TZ Europe/Berlin
RUN mkdir -p /opt/iobroker/ && chmod 777 /opt/iobroker/ RUN mkdir -p /opt/iobroker/ && chmod 777 /opt/iobroker/
RUN mkdir -p /opt/scripts/ && chmod 777 /opt/scripts/ RUN mkdir -p /opt/scripts/ && chmod 777 /opt/scripts/
@@ -23,8 +29,9 @@ RUN chmod +x iobroker_startup.sh
WORKDIR /opt/iobroker/ WORKDIR /opt/iobroker/
RUN npm install iobroker --unsafe-perm && echo $(hostname) > .install_host RUN npm install iobroker --unsafe-perm && npm i --production --unsafe-perm
RUN update-rc.d iobroker.sh disable RUN update-rc.d iobroker.sh remove && echo $(hostname) > .install_host
RUN npm install node-gyp -g
CMD ["sh", "/opt/scripts/iobroker_startup.sh"] CMD ["sh", "/opt/scripts/iobroker_startup.sh"]

View File

@@ -1,15 +1,49 @@
# docker-iobroker # docker-iobroker
Docker image for ioBroker (http://iobroker.net) based on debian:latest (http://hub.docker.com/_/debian/) Docker image for ioBroker (http://iobroker.net) based on debian:latest (http://hub.docker.com/_/debian/)
This project creates a Docker image for running ioBroker in a Docker container. It is made for and tested on a Synology disk station with DSM 6.0.2 and Docker 1.11.2. But it should also work on other systems running Docker.<br> This project creates a Docker image for running ioBroker in a Docker container. It is made for and tested on a Synology Disk Station 1515+ with DSM 6 and Docker-package installed. But it should also work on other systems with Docker!<br>
Cause the container ist based on debian:latest, it acts nearly like a full virtual machine. That makes it possible to easily add some additional dependies for some ioBroker-Adapters. Cause the container ist based on debian:latest, it acts nearly like a full virtual machine. That makes it possible to easily add some additional dependies for some ioBroker-Adapters.
## Installation & Usage ## Installation & Usage
For instructions and discussion (in german) please visit ioBroker-Forum (http://forum.iobroker.net/viewtopic.php?f=17&t=5089). **Important Notice: Switching an existing ioBroker-installation from node6 to node8 (docker-iobroker v1 to v2) requires an additional step inside ioBroker! After Upgrade you have to call "reinstall.sh" for recompiling your Installation for the use with node8. For Details see official ioBroker-documentation (http://www.iobroker.net/docu/?page_id=5106&lang=de). Make backup first!!!**
A detailed tutorial (german) can be found on my website (https://buanet.de/2017/09/iobroker-unter-docker-auf-der-synology-diskstation/).<br>
For discussion and support please visit ioBroker-forum-thread (http://forum.iobroker.net/viewtopic.php?f=17&t=5089) or use the comments section at the linked tutorial. Please do not contact me directly for any support-reasons. Every support-question should be answered in a public place. Thank you.
## Changelog ## Changelog
### v2.0.0 (2018-12-05)
* using node8 instead of node6
* changes for new iobroker setup
### v1.2.1beta (2018-09-12)
* added support for firetv-adapter
### v1.2.0 (2018-08-21)
* after testing making 1.1.3beta to latest stable release
### v1.1.3beta (2018-08-21)
* added ffmpeg-package for yahka to support webcams
### v1.1.2beta (2018-04-04)
* added ENV for timezone issue
### v1.1.1beta (2018-03-29)
* added wget package
* updated readme.md
### v1.1.0 (2017-12-10)
* changed startup call to fix restart issue
* fixed avahi startup issue
* fixed hostname issue
* added z-wave support
* added logging to /opt/scripts/docker_iobroker_log.txt
### v1.0.1beta (2017-08-25)
* fixed locales issue
### v1.0.0 (2017-08-22) ### v1.0.0 (2017-08-22)
* moved and renamed iobroker startup script * moved and renamed iobroker startup script
* disabled iobroker deamon to (hopefully) fix restart issue * disabled iobroker deamon to (hopefully) fix restart issue

View File

@@ -1,27 +1,27 @@
#!/bin/bash #!/bin/bash
# Backupscript für ein (wöchentliches) Backup von ioBroker unter Docker auf einer Synology Disk Station (Sicherung des ioBroker-Verzeichnises). # Backupscript fuer ein Backup von ioBroker unter Docker auf einer Synology Disk Station (Sicherung des ioBroker-Verzeichnises).
# Vorhaltezeit der letzten Backups: 90 Tage, ältere Backups werden automatisch gelöscht. # Vorhaltezeit der letzten Backups: 90 Tage, ältere Backups werden automatisch geloescht.
# #
# By André Germann # By Andre Germann
# Version 1.0 (22.03.2017) # Version 1.1 (22.09.2017)
# #
# ACHTUNG: Dieses Script muss vorher auf die Synology Disk Station kopiert und dann auch dort ausgeführt werden! # ACHTUNG: Dieses Script muss vorher auf die Synology Disk Station kopiert und dann auch dort ausgefuehrt werden!
# Für die geplante, regelmäßige Ausführung bietet sich der Aufgabenplaner der Disk Station an. # Fuer die geplante, regelmaessige Ausfuehrung bietet sich der Aufgabenplaner der Disk Station an.
# #
# ACHTUNG: Dieses Script stoppt vor der Sicherung des Verzeichnises den ioBroker Container! # ACHTUNG: Dieses Script stoppt vor der Sicherung des Verzeichnises den ioBroker Container!
# Zur Sicherheit wird empfohlen ioBroker vor dem Backup innerhalb des Containers zu stoppen. # Zur Sicherheit wird empfohlen ioBroker vor dem Backup innerhalb des Containers zu stoppen.
# Dieses kann zum Beispiel über den vorherigen Aufruf des Scripts iobroker_stop.sh aus ioBroker heraus erledigt werden. # Dieses kann zum Beispiel ueber den vorherigen Aufruf des Scripts iobroker_stop.sh aus ioBroker heraus erledigt werden.
# Deklaration der Variablen. Pfade und Bezeichnungen müssen ggf. entsprechend angepasst werden. # Deklaration der Variablen. Pfade und Bezeichnungen muessen ggf. entsprechend angepasst werden.
iobrokerPATH='/volume1/docker/mount/iobroker' # Pfad des gemounteten ioBroker-Verzeichnises (zu sicherndes Verzeichnis) auf der Synology Disk Station iobrokerPATH='/volume1/docker/iobroker_mount' # Pfad des gemounteten ioBroker-Verzeichnises (zu sicherndes Verzeichnis) auf der Synology Disk Station
backupPATH='/volume1/backup/Homeautomation/iobroker/backup.weekly' # Pfad zum Speichern des Backups backupPATH='/volume1/docker/iobroker_backup/archiv' # Pfad zum Speichern des Backups
iobrokerCONTAINERNAME='iobroker' # Name des ioBroker-Containers in Docker iobrokerCONTAINERNAME='iobroker' # Name des ioBroker-Containers in Docker
# Start Script - Ab hier muss nichts mehr geändert werden! # Start Script - Ab hier muss nichts mehr geaendert werden!
echo "#####################################################" echo "#####################################################"
echo "############## Backupscript gestartet. ##############" echo "############## Backupscript gestartet. ##############"
@@ -49,7 +49,7 @@ sleep 5
echo "" echo ""
echo "Der Ordner $iobrokerPATH wird gesichert..." echo "Der Ordner $iobrokerPATH wird gesichert..."
tar -czf "$backupPATH/backup-$(date +%d.%m.%y-%R).tar.gz" "$iobrokerPATH" tar -C "$iobrokerPATH" -czf "$backupPATH/backup-$(date +%Y-%m-%d_%H-%M).tar.gz" .
echo "Sicherung des Ordners erstellt." echo "Sicherung des Ordners erstellt."
echo "" echo ""
@@ -57,12 +57,12 @@ echo "######################################################"
sleep 5 sleep 5
# Alte Backups löschen (Löscht per "rm" alle "*.tar.gz"-Dateien im Ordner, die älter als 90 Tage sind) # Alte Backups loeschen (Loescht per "rm" alle "*.tar.gz"-Dateien im Ordner, die aelter als 90 Tage sind)
echo "" echo ""
echo "Entfernen alter Backups aus dem Verzeichnis $backupPATH..." echo "Entfernen alter Backups aus dem Verzeichnis $backupPATH..."
find -P "$backupPATH/" -maxdepth 1 -type f \( -name '*.tar.gz' \) -ctime +19 -exec rm {} \; find -P "$backupPATH/" -maxdepth 1 -type f \( -name '*.tar.gz' \) -ctime +90 -exec rm {} \;
echo "Alte Backups wurden entfernt." echo "Alte Backups wurden entfernt."
echo "" echo ""

View File

@@ -4,8 +4,8 @@
# Kann zum Beispiel aus ioBroker heraus aufgerufen werden um ioBroker neu zu starten. # Kann zum Beispiel aus ioBroker heraus aufgerufen werden um ioBroker neu zu starten.
cd /opt/iobroker cd /opt/iobroker
./iobroker stop pkill io
sleep 5 sleep 5
./iobroker start node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
exit 0 exit 0

View File

@@ -4,6 +4,6 @@
# Kann zum Beispiel aus ioBroker heraus aufgerufen werden um ioBroker zu stoppen. # Kann zum Beispiel aus ioBroker heraus aufgerufen werden um ioBroker zu stoppen.
cd /opt/iobroker cd /opt/iobroker
./iobroker stop pkill io
exit 0 exit 0

View File

@@ -1,14 +1,16 @@
#!/bin/sh #!/bin/sh
cd /opt/iobroker
if [ -f .install_host ]; if [ -f .install_host ];
then then
sed -i "s/$(cat .install_host)/$(hostname)/g" iobroker-data/objects.json echo $(hostname) > .install_host && ./iobroker host $(cat .install_host)
rm .install_host iobroker del admin.0 && iobroker del discovery.0
iobroker add admin && iobroker add discovery
rm .install_host
fi fi
/opt/scripts/avahi_startup.sh /opt/scripts/avahi_startup.sh
sleep 5 sleep 5
cd /opt/iobroker node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
./iobroker start
cd /
/bin/bash /bin/bash

View File

@@ -1,13 +0,0 @@
#!/bin/sh
if [ -f .install_host ];
then
sed -i "s/$(cat .install_host)/$(hostname)/g" iobroker-data/objects.json
rm .install_host
fi
/opt/scripts/avahi_startup.sh
sleep 5
./iobroker start
cd /
/bin/bash