mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-17 18:39:01 +02:00
Compare commits
125 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74b0f246cd | ||
|
|
e0c1cec14b | ||
|
|
79aa59cf69 | ||
|
|
b89ee16f44 | ||
|
|
b74cfe57c1 | ||
|
|
305a13b0b0 | ||
|
|
c80f25cca1 | ||
|
|
aed7604906 | ||
|
|
a8dd8897eb | ||
|
|
7736e05e08 | ||
|
|
2c2abee86a | ||
|
|
b28250e9f8 | ||
|
|
8bb400270d | ||
|
|
caa5a1f763 | ||
|
|
59e3c79574 | ||
|
|
0fe15e0918 | ||
|
|
a1cd12dbfd | ||
|
|
f32d26de7f | ||
|
|
38d352ac9c | ||
|
|
fdb68d7ca8 | ||
|
|
40abbca1a1 | ||
|
|
445ad691c2 | ||
|
|
525d6db3f4 | ||
|
|
5c43c56694 | ||
|
|
94fcc3b98c | ||
|
|
a34e3e0549 | ||
|
|
6d9bf4da5a | ||
|
|
9d7d4e3cd9 | ||
|
|
c109764694 | ||
|
|
6a32591da4 | ||
|
|
4321bd7bfb | ||
|
|
83f3542f68 | ||
|
|
672bca2630 | ||
|
|
bdc6570a71 | ||
|
|
4010c68e20 | ||
|
|
22ea1df41a | ||
|
|
9656527db4 | ||
|
|
13a511f875 | ||
|
|
686b517d6f | ||
|
|
610deb0974 | ||
|
|
c91be00fa7 | ||
|
|
fefe510b93 | ||
|
|
8d0bb13cf2 | ||
|
|
c6d265aa1d | ||
|
|
07c3fe7118 | ||
|
|
a9bb9aacf1 | ||
|
|
3ba390277c | ||
|
|
88eb4ca065 | ||
|
|
fd72d450f1 | ||
|
|
97b5641372 | ||
|
|
eeacc6d4fb | ||
|
|
d50d88ddd0 | ||
|
|
efee71f212 | ||
|
|
eea1c61ac5 | ||
|
|
75468e58d6 | ||
|
|
dc614879be | ||
|
|
d03ce6d24c | ||
|
|
98ad4e8666 | ||
|
|
f3cb86cb94 | ||
|
|
d5a69c506f | ||
|
|
f75043438c | ||
|
|
8e79ccfc2c | ||
|
|
4908fed871 | ||
|
|
9b6273b50f | ||
|
|
4d76a05f5d | ||
|
|
0fcccf3b42 | ||
|
|
23d8b34113 | ||
|
|
04f51a6f47 | ||
|
|
3decc2fec3 | ||
|
|
e2ccabb6e2 | ||
|
|
9b932594fa | ||
|
|
c3aef24ead | ||
|
|
9abc86ddd3 | ||
|
|
bc41f708bf | ||
|
|
fdbde6eb15 | ||
|
|
4f0d07878b | ||
|
|
beb689c33c | ||
|
|
e733f77253 | ||
|
|
1fdce0ae78 | ||
|
|
7ced614900 | ||
|
|
250acdc992 | ||
|
|
f2e6780456 | ||
|
|
2983f1f63d | ||
|
|
ddccbe7dfa | ||
|
|
e99ab6fa82 | ||
|
|
16b9d318fd | ||
|
|
13182735f8 | ||
|
|
426035fa9b | ||
|
|
5eb3e6ef1d | ||
|
|
d56fca4074 | ||
|
|
6f2eb382d5 | ||
|
|
82aa3f0062 | ||
|
|
eb72bfea00 | ||
|
|
6e8f3a1448 | ||
|
|
dc31095c1c | ||
|
|
834fd976c0 | ||
|
|
609804ea0d | ||
|
|
0f39f7ae5e | ||
|
|
fdfbed9846 | ||
|
|
b4f7ba98b1 | ||
|
|
351bfddc8d | ||
|
|
8a8ac64952 | ||
|
|
e015276fc4 | ||
|
|
4f41716e77 | ||
|
|
d301f754f4 | ||
|
|
a0adbc121e | ||
|
|
17ac1a5bcf | ||
|
|
f440613049 | ||
|
|
7a6de5b3c5 | ||
|
|
0687a2ef18 | ||
|
|
3d191b9fd9 | ||
|
|
0cc07e148d | ||
|
|
f841ccf882 | ||
|
|
b8622098b2 | ||
|
|
9aab687492 | ||
|
|
c69f7145b3 | ||
|
|
1fbbd33979 | ||
|
|
911beabb6a | ||
|
|
945c7bfbaa | ||
|
|
19a6eb74bb | ||
|
|
1713562071 | ||
|
|
a34cdfe7bf | ||
|
|
c0eb88812f | ||
|
|
d3737203dc | ||
|
|
a87286ca08 |
86
Dockerfile
86
Dockerfile
@@ -1,33 +1,79 @@
|
|||||||
FROM debian:latest
|
FROM debian:stretch
|
||||||
|
|
||||||
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 locales
|
# Install prerequisites
|
||||||
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
|
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
|
||||||
ENV LANG de_DE.UTF-8
|
acl \
|
||||||
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash
|
apt-utils \
|
||||||
RUN apt-get install -y build-essential python nodejs
|
build-essential \
|
||||||
RUN cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
|
curl \
|
||||||
|
git \
|
||||||
|
gnupg2 \
|
||||||
|
libcap2-bin \
|
||||||
|
libpam0g-dev \
|
||||||
|
libudev-dev \
|
||||||
|
locales \
|
||||||
|
procps \
|
||||||
|
python \
|
||||||
|
gosu \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN mkdir -p /opt/iobroker/ && chmod 777 /opt/iobroker/
|
# Install node8
|
||||||
RUN mkdir -p /opt/scripts/ && chmod 777 /opt/scripts/
|
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash \
|
||||||
|
&& apt-get update && apt-get install -y \
|
||||||
|
nodejs \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Generating locales
|
||||||
|
RUN sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \
|
||||||
|
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
|
||||||
|
&& locale-gen
|
||||||
|
|
||||||
|
# Create scripts directory and copy scripts
|
||||||
|
RUN mkdir -p /opt/scripts/ \
|
||||||
|
&& chmod 777 /opt/scripts/
|
||||||
WORKDIR /opt/scripts/
|
WORKDIR /opt/scripts/
|
||||||
|
COPY scripts/iobroker_startup.sh iobroker_startup.sh
|
||||||
|
COPY scripts/setup_avahi.sh setup_avahi.sh
|
||||||
|
COPY scripts/setup_packages.sh setup_packages.sh
|
||||||
|
RUN chmod +x iobroker_startup.sh \
|
||||||
|
&& chmod +x setup_avahi.sh \
|
||||||
|
&& chmod +x setup_packages.sh
|
||||||
|
|
||||||
ADD scripts/avahi_startup.sh avahi_startup.sh
|
# Install ioBroker
|
||||||
RUN chmod +x avahi_startup.sh
|
WORKDIR /
|
||||||
RUN mkdir /var/run/dbus/
|
RUN apt-get update \
|
||||||
|
&& curl -sL https://raw.githubusercontent.com/ioBroker/ioBroker/stable-installer/installer.sh | bash - \
|
||||||
ADD scripts/iobroker_startup.sh iobroker_startup.sh
|
&& echo $(hostname) > /opt/iobroker/.install_host \
|
||||||
RUN chmod +x iobroker_startup.sh
|
&& echo $(hostname) > /opt/.firstrun \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Install node-gyp
|
||||||
WORKDIR /opt/iobroker/
|
WORKDIR /opt/iobroker/
|
||||||
|
RUN npm install -g node-gyp
|
||||||
|
|
||||||
RUN npm install iobroker --unsafe-perm && echo $(hostname) > .install_host
|
# Backup initial ioBroker-folder
|
||||||
RUN update-rc.d iobroker.sh disable
|
RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker
|
||||||
|
|
||||||
CMD ["sh", "/opt/scripts/iobroker_startup.sh"]
|
# Setting up iobroker-user
|
||||||
|
RUN chsh -s /bin/bash iobroker
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND teletype
|
# Setting up ENVs
|
||||||
|
ENV DEBIAN_FRONTEND="teletype" \
|
||||||
|
LANG="de_DE.UTF-8" \
|
||||||
|
LANGUAGE="de_DE:de" \
|
||||||
|
LC_ALL="de_DE.UTF-8" \
|
||||||
|
TZ="Europe/Berlin" \
|
||||||
|
PACKAGES="nano" \
|
||||||
|
AVAHI="false"
|
||||||
|
|
||||||
|
# Setting up EXPOSE for Admin
|
||||||
|
EXPOSE 8081/tcp
|
||||||
|
|
||||||
|
# Run startup-script
|
||||||
|
ENTRYPOINT ["/opt/scripts/iobroker_startup.sh"]
|
||||||
|
|||||||
114
README.md
114
README.md
@@ -1,16 +1,120 @@
|
|||||||
# 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:stretch (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 installed!
|
||||||
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.
|
|
||||||
|
## Important
|
||||||
|
|
||||||
|
Switching an existing installation from docker-iobroker-image v1 to v2 or greater means switching iobroker itself from node6 to node8! This requires additional steps inside ioBroker! After upgrading iobroker-container 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=8323&lang=de). Make backup first!!!
|
||||||
|
|
||||||
## Installation & Usage
|
## Installation & Usage
|
||||||
|
|
||||||
For instructions and discussion (in german) please visit ioBroker-Forum (http://forum.iobroker.net/viewtopic.php?f=17&t=5089).
|
A detailed tutorial (german, based on new v3.0.0) can be found here: [https://buanet.de](https://buanet.de/2019/05/iobroker-unter-docker-auf-der-synology-diskstation-v3/). Please notice that the old tutorial does no longer work!
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## Special Settings
|
||||||
|
|
||||||
|
In v3.0.0 I added some new features. The following will give some short information about that.
|
||||||
|
|
||||||
|
### Environment Variables
|
||||||
|
|
||||||
|
|env|value|description|
|
||||||
|
|---|---|---|
|
||||||
|
|PACKAGES|package1 package2 package2|seperateed by whitespace; will install the listed packages on startup<br>(be paitient, this may take some time!)|
|
||||||
|
|AVAHI|true|will install and activate avahi-daemon for supporting yahka-adapter|
|
||||||
|
|LANGUAGE|de_DE:de|following locales are pre-generated: de_DE:de, en_US:en|
|
||||||
|
|LANG|de_DE.UTF-8|following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8|
|
||||||
|
|LC_ALL|de_DE|following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8|
|
||||||
|
|TZ|Europe/Berlin|all valid Linux-timezones|
|
||||||
|
|
||||||
|
### Mounting Folder/ Volume
|
||||||
|
|
||||||
|
It is now possible to mount an empty folder to /opt/iobroker during first startup of the container. The Startupscript will check this folder and restore content if empty.
|
||||||
|
|
||||||
|
It is absolutely recommended to use a mounted folder or persistent volume for /opt/iobroker folder!
|
||||||
|
|
||||||
|
This also works with mounting a folder containing an existing ioBroker-installation (e.g. when moving an existing installation to docker).
|
||||||
|
|
||||||
|
### Permission Fixer
|
||||||
|
|
||||||
|
I added some code for fixing permissions for new iobroker-user. Permission-fixing is called on first start of the container. This might take a few minutes. Please take a look at the logs and be patient!
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
### v1.0.1 (2017-08-25)
|
### v3.1.0 (2019-08-21)
|
||||||
|
* switching base image from "debian:latest" to "debian:stretch"
|
||||||
|
* bringing beta changes to stable
|
||||||
|
|
||||||
|
### v3.0.2beta (2019-06-13)
|
||||||
|
* using gosu instead of sudo
|
||||||
|
* changing output of ioBroker logging
|
||||||
|
|
||||||
|
### v3.0.1beta (2019-05-18)
|
||||||
|
* ~~switching back to iobroker-daemon for startup~~
|
||||||
|
|
||||||
|
### v3.0.0 (2019-05-09)
|
||||||
|
* bringing changes since v2.0.0 to stable
|
||||||
|
* new tutorial available
|
||||||
|
|
||||||
|
### v2.0.6beta (2019-04-14)
|
||||||
|
* added some additional logging
|
||||||
|
* fixing some issues for languag env
|
||||||
|
* added permission fixing on first start
|
||||||
|
|
||||||
|
### v2.0.5beta (2019-02-09)
|
||||||
|
* added ENV to dockerfile
|
||||||
|
* added EXPOSE for admin
|
||||||
|
* final testing
|
||||||
|
|
||||||
|
### v2.0.4beta (2019-01-28)
|
||||||
|
* added support for env variables "avahi" and "packages"
|
||||||
|
* moving avahi-daemon installation into avahi startup script
|
||||||
|
* added script for installing optional packages
|
||||||
|
* optimizing logging output
|
||||||
|
|
||||||
|
### v2.0.3beta (2019-01-24)
|
||||||
|
* added support for running ioBroker under iobroker user
|
||||||
|
* optimizing logging output
|
||||||
|
* optimizing scripts
|
||||||
|
|
||||||
|
### v2.0.2beta (2019-01-23)
|
||||||
|
* optimizing and rearraged dockerfile
|
||||||
|
* changes for new ioBroker install script
|
||||||
|
* added restoring for empty mounted /opt/iobroker folder
|
||||||
|
* some more small fixes
|
||||||
|
|
||||||
|
### v2.0.1beta (2019-01-07)
|
||||||
|
* some changes for supporting other docker-environments than synology ds
|
||||||
|
|
||||||
|
### 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
|
* fixed locales issue
|
||||||
|
|
||||||
### v1.0.0 (2017-08-22)
|
### v1.0.0 (2017-08-22)
|
||||||
|
|||||||
@@ -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 ""
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
rm /var/run/dbus/pid
|
|
||||||
dbus-daemon --system
|
|
||||||
|
|
||||||
/etc/init.d/avahi-daemon stop
|
|
||||||
sleep 5
|
|
||||||
/etc/init.d/avahi-daemon start
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
@@ -1,14 +1,93 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
if [ -f .install_host ];
|
# Reading env-variables
|
||||||
|
packages=$PACKAGES
|
||||||
|
avahi=$AVAHI
|
||||||
|
|
||||||
|
# Getting date and time for logging
|
||||||
|
dati=`date '+%Y-%m-%d %H:%M:%S'`
|
||||||
|
|
||||||
|
# Information
|
||||||
|
echo ''
|
||||||
|
echo '----------------------------------------'
|
||||||
|
echo '----- Image-Version: 3.1.0 -----'
|
||||||
|
echo '----- '$dati' -----'
|
||||||
|
echo '----------------------------------------'
|
||||||
|
echo ''
|
||||||
|
echo 'Startupscript running...'
|
||||||
|
|
||||||
|
# Checking and installing additional packages
|
||||||
|
if [ "$packages" != "" ]
|
||||||
then
|
then
|
||||||
sed -i "s/$(cat .install_host)/$(hostname)/g" iobroker-data/objects.json
|
echo ''
|
||||||
rm .install_host
|
echo 'Installing additional packages...'
|
||||||
|
echo 'The following packages will be installed:' $packages
|
||||||
|
echo $packages > /opt/scripts/.packages
|
||||||
|
sh /opt/scripts/setup_packages.sh > /opt/scripts/setup_packages.log 2>&1
|
||||||
|
echo 'Installing additional packages done...'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
/opt/scripts/avahi_startup.sh
|
|
||||||
sleep 5
|
|
||||||
cd /opt/iobroker
|
cd /opt/iobroker
|
||||||
./iobroker start
|
|
||||||
cd /
|
# Checking and restoring ioBroker to empty mounted folder
|
||||||
/bin/bash
|
if [ `ls -1a|wc -l` -lt 3 ]
|
||||||
|
then
|
||||||
|
echo ''
|
||||||
|
echo 'Directory /opt/iobroker is empty!'
|
||||||
|
echo 'Restoring data from image...'
|
||||||
|
tar -xf /opt/initial_iobroker.tar -C /
|
||||||
|
echo 'Restoring done...'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Backing up original iobroker-file and changing sudo to gosu
|
||||||
|
cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak
|
||||||
|
sed -i 's/sudo -H -u/gosu/g' /opt/iobroker/iobroker
|
||||||
|
|
||||||
|
# Checking for first run of a new installation and renaming ioBroker
|
||||||
|
if [ -f /opt/iobroker/.install_host ]
|
||||||
|
then
|
||||||
|
echo ''
|
||||||
|
echo 'This is the first run of an new installation...'
|
||||||
|
echo 'Hostname given is' $(hostname)'...'
|
||||||
|
echo 'Renaming ioBroker...'
|
||||||
|
iobroker host $(cat /opt/iobroker/.install_host)
|
||||||
|
rm -f /opt/iobroker/.install_host
|
||||||
|
echo 'Renaming ioBroker done...'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checking for first run and change permissions
|
||||||
|
if [ -f /opt/.firstrun ]
|
||||||
|
then
|
||||||
|
echo ''
|
||||||
|
echo 'Changing permissions upon first run (This might take a while! Please be patient!)...'
|
||||||
|
chown -R iobroker /opt/iobroker
|
||||||
|
chown -R iobroker /opt/scripts
|
||||||
|
rm -f /opt/.firstrun
|
||||||
|
echo 'Changing permissions done...'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checking for and setting up avahi-daemon
|
||||||
|
if [ "$avahi" = "true" ]
|
||||||
|
then
|
||||||
|
echo ''
|
||||||
|
echo 'Initializing Avahi-Daemon...'
|
||||||
|
sh /opt/scripts/setup_avahi.sh
|
||||||
|
echo 'Initializing Avahi-Daemon done...'
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
# Starting ioBroker
|
||||||
|
echo ''
|
||||||
|
echo 'Starting ioBroker...'
|
||||||
|
echo ''
|
||||||
|
echo '----------------------------------------'
|
||||||
|
echo '------- ioBroker Logging -------'
|
||||||
|
echo '----------------------------------------'
|
||||||
|
echo ''
|
||||||
|
|
||||||
|
# gosu iobroker node node_modules/iobroker.js-controller/controller.js > /opt/scripts/iobroker.log 2>&1 &
|
||||||
|
gosu iobroker node node_modules/iobroker.js-controller/controller.js
|
||||||
|
|
||||||
|
# Preventing container restart by keeping a process alive even if iobroker will be stopped
|
||||||
|
tail -f /dev/null
|
||||||
|
|||||||
35
scripts/setup_avahi.sh
Normal file
35
scripts/setup_avahi.sh
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo 'Checking avahi-daemon installation state...'
|
||||||
|
|
||||||
|
if [ -f /usr/sbin/avahi-daemon ]
|
||||||
|
then
|
||||||
|
echo 'Avahi already installed...'
|
||||||
|
else
|
||||||
|
echo 'Installing avahi-daemon...'
|
||||||
|
apt-get update > /opt/scripts/avahi_startup.log 2>&1
|
||||||
|
apt-get install -y libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1
|
||||||
|
rm -rf /var/lib/apt/lists/* >> /opt/scripts/avahi_startup.log 2>&1
|
||||||
|
echo 'Configuring avahi-daemon...'
|
||||||
|
sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf
|
||||||
|
echo 'Configuring dbus...'
|
||||||
|
mkdir /var/run/dbus/
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /var/run/dbus/pid ];
|
||||||
|
then
|
||||||
|
rm -f /var/run/dbus/pid
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /var/run/avahi-daemon//pid ];
|
||||||
|
then
|
||||||
|
rm -f /var/run/avahi-daemon//pid
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'Starting dbus...'
|
||||||
|
dbus-daemon --system
|
||||||
|
|
||||||
|
echo 'Starting avahi-daemon...'
|
||||||
|
/etc/init.d/avahi-daemon start
|
||||||
|
|
||||||
|
exit 0
|
||||||
8
scripts/setup_packages.sh
Normal file
8
scripts/setup_packages.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y $(cat /opt/scripts/.packages)
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
rm -f /opt/scripts/.packages
|
||||||
|
|
||||||
|
exit 0
|
||||||
@@ -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
|
|
||||||
Reference in New Issue
Block a user