Compare commits

..

125 Commits

Author SHA1 Message Date
buanet
74b0f246cd release new stable 2019-08-21 21:10:27 +02:00
Andre
e0c1cec14b change image 2019-07-14 22:27:21 +02:00
buanet
79aa59cf69 deletions 2019-07-04 11:36:07 +02:00
buanet
b89ee16f44 added armv7 support 2019-07-03 16:10:17 +02:00
Andre
b74cfe57c1 fixing avahi issue 2019-06-21 23:23:37 +02:00
Andre
305a13b0b0 deletions after testing 2019-06-13 14:45:58 +02:00
Andre
c80f25cca1 some changes for new beta 2019-06-13 13:58:36 +02:00
Andre
aed7604906 Merge pull request #26 from smarthomefans/use_gosu
Try to use gosu, not sudo
2019-06-13 13:20:05 +02:00
SchumyHao
a8dd8897eb Try to use gosu, not sudo
Signed-off-by: SchumyHao <schumyhaojl@126.com>
2019-06-07 01:41:24 +08:00
andre
7736e05e08 docu 2019-05-18 22:55:03 +02:00
andre
2c2abee86a new beta 2019-05-18 22:51:38 +02:00
andre
b28250e9f8 some testing 2019-05-18 19:41:52 +02:00
Andre
8bb400270d fixing permission issues and logging 2019-05-09 20:48:44 +02:00
Andre
caa5a1f763 some testing 2019-05-09 19:50:09 +02:00
Andre
59e3c79574 Update Dockerfile 2019-05-09 18:17:03 +02:00
Andre
0fe15e0918 Update Dockerfile 2019-05-09 17:31:13 +02:00
Andre
a1cd12dbfd moving permission fixer 2019-05-09 17:28:38 +02:00
Andre
f32d26de7f Update iobroker_startup.sh 2019-05-09 16:37:51 +02:00
Andre
38d352ac9c Update README.md 2019-05-09 12:11:26 +02:00
buanet
fdb68d7ca8 optimizing dockerfile 2019-04-29 15:43:14 +02:00
andre
40abbca1a1 updated documentation 2019-04-15 23:32:43 +02:00
andre
445ad691c2 some informations for v2.0.6beta 2019-04-15 23:04:26 +02:00
andre
525d6db3f4 changes in logging 2019-04-14 01:55:46 +02:00
andre
5c43c56694 changes for locale 2019-04-14 01:36:15 +02:00
andre
94fcc3b98c fixin env 2019-04-14 00:42:06 +02:00
andre
a34e3e0549 some testing 2019-04-14 00:22:08 +02:00
andre
6d9bf4da5a some testing 2019-04-13 23:23:07 +02:00
andre
9d7d4e3cd9 some testing 2019-04-13 23:20:52 +02:00
andre
c109764694 some testing 2019-04-13 22:18:37 +02:00
buanet
6a32591da4 some renaming 2019-03-20 08:49:04 +01:00
buanet
4321bd7bfb optimized logging 2019-03-14 14:41:11 +01:00
buanet
83f3542f68 optimized logging 2019-03-14 13:54:44 +01:00
buanet
672bca2630 updating/ removing comments 2019-03-06 07:51:14 +01:00
buanet
bdc6570a71 added prerequisites 2019-03-06 07:46:06 +01:00
Andre
4010c68e20 Update Dockerfile 2019-02-28 22:39:04 +01:00
Andre
22ea1df41a Update Dockerfile 2019-02-28 22:11:05 +01:00
andre
9656527db4 Update Dockerfile 2019-02-27 20:58:18 +01:00
Andre
13a511f875 Update Dockerfile 2019-02-14 15:38:09 +01:00
andre
686b517d6f Update iobroker_startup.sh 2019-02-10 00:09:36 +01:00
andre
610deb0974 Update README.md 2019-02-09 23:46:36 +01:00
andre
c91be00fa7 Added ENV and EXPOSE 2019-02-09 23:43:04 +01:00
andre
fefe510b93 Update iobroker_startup.sh 2019-02-07 21:01:10 +01:00
Andre
8d0bb13cf2 Update README.md 2019-01-29 12:31:36 +01:00
Andre
c6d265aa1d fix logging 2019-01-29 11:25:23 +01:00
Andre
07c3fe7118 renaming logfiles 2019-01-29 11:23:15 +01:00
Andre
a9bb9aacf1 small fixes and add logging 2019-01-29 10:56:20 +01:00
Andre
3ba390277c Update iobroker_startup.sh 2019-01-29 10:48:44 +01:00
Andre
88eb4ca065 deleted optional packages from dockerfile
install optional packages by using env "PACKAGES" with value "package1 package2 package3"
2019-01-29 10:35:29 +01:00
Andre
fd72d450f1 updated iobroker docu link 2019-01-28 22:19:00 +01:00
andre
97b5641372 optimizing logging 2019-01-28 22:15:33 +01:00
buanet
eeacc6d4fb corrections 2019-01-28 16:03:30 +01:00
buanet
d50d88ddd0 additional packages setup 2019-01-28 15:12:48 +01:00
buanet
efee71f212 corrections 2019-01-28 14:23:24 +01:00
buanet
eea1c61ac5 moving avahi to script 2019-01-28 13:57:27 +01:00
buanet
75468e58d6 testing env 2019-01-28 08:57:38 +01:00
buanet
dc614879be ? 2019-01-28 08:53:24 +01:00
buanet
d03ce6d24c fix 2019-01-28 08:49:35 +01:00
Andre
98ad4e8666 Update iobroker_startup.sh 2019-01-24 21:25:30 +01:00
Andre
f3cb86cb94 Update avahi_startup.sh 2019-01-24 20:51:25 +01:00
Andre
d5a69c506f Update iobroker_startup.sh 2019-01-24 20:03:19 +01:00
Andre
f75043438c changes for first run 2019-01-24 18:11:30 +01:00
buanet
8e79ccfc2c changes for avahi-daemon 2019-01-24 13:31:02 +01:00
buanet
4908fed871 testing 2019-01-24 11:53:06 +01:00
buanet
9b6273b50f testing user option 2019-01-24 10:28:56 +01:00
buanet
4d76a05f5d some testing 2019-01-24 08:25:58 +01:00
buanet
0fcccf3b42 moved env 2019-01-23 11:58:41 +01:00
buanet
23d8b34113 optimized docker file 2019-01-23 09:30:12 +01:00
Andre
04f51a6f47 Update iobroker_startup.sh 2019-01-21 15:26:05 +01:00
Andre
3decc2fec3 added restoring if folder empty 2019-01-21 14:40:31 +01:00
Andre
e2ccabb6e2 moved initial backup 2019-01-21 14:30:54 +01:00
Andre
9b932594fa moved .install_host file 2019-01-21 13:36:24 +01:00
Andre
c3aef24ead moved .install_host file 2019-01-21 13:33:07 +01:00
Andre
9abc86ddd3 changes for new iobroker setup 2019-01-21 13:13:29 +01:00
Andre
bc41f708bf added initial backup 2019-01-21 11:24:49 +01:00
Andre
fdbde6eb15 changes for iobroker host this issues 2019-01-11 10:17:55 +01:00
Andre
4f0d07878b Update README.md 2019-01-07 14:13:14 +01:00
Andre
beb689c33c Update iobroker_startup.sh 2019-01-07 13:41:57 +01:00
Andre
e733f77253 Update iobroker_startup.sh 2019-01-07 12:46:01 +01:00
Andre
1fdce0ae78 Update iobroker_startup.sh 2019-01-07 11:52:46 +01:00
Andre
7ced614900 added output for debugging 2019-01-07 11:12:40 +01:00
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
10 changed files with 324 additions and 75 deletions

View File

@@ -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
RUN apt-get update && apt-get install -y apt-utils curl avahi-daemon git libpcap-dev libavahi-compat-libdnssd-dev libfontconfig gnupg2 locales
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 curl -sL https://deb.nodesource.com/setup_6.x | bash
RUN apt-get install -y build-essential python nodejs
RUN cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
# Install prerequisites
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
acl \
apt-utils \
build-essential \
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/
RUN mkdir -p /opt/scripts/ && chmod 777 /opt/scripts/
# Install node8
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/
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
RUN chmod +x avahi_startup.sh
RUN mkdir /var/run/dbus/
ADD scripts/iobroker_startup.sh iobroker_startup.sh
RUN chmod +x iobroker_startup.sh
# Install ioBroker
WORKDIR /
RUN apt-get update \
&& curl -sL https://raw.githubusercontent.com/ioBroker/ioBroker/stable-installer/installer.sh | bash - \
&& echo $(hostname) > /opt/iobroker/.install_host \
&& echo $(hostname) > /opt/.firstrun \
&& rm -rf /var/lib/apt/lists/*
# Install node-gyp
WORKDIR /opt/iobroker/
RUN npm install -g node-gyp
RUN npm install iobroker --unsafe-perm && echo $(hostname) > .install_host
RUN update-rc.d iobroker.sh disable
# Backup initial ioBroker-folder
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
View File

@@ -1,16 +1,120 @@
# 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>
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.
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!
## 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
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
### 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
### v1.0.0 (2017-08-22)

View File

@@ -1,27 +1,27 @@
#!/bin/bash
# Backupscript für ein (wöchentliches) 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.
# 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 geloescht.
#
# By André Germann
# Version 1.0 (22.03.2017)
# By Andre Germann
# Version 1.1 (22.09.2017)
#
# ACHTUNG: Dieses Script muss vorher auf die Synology Disk Station kopiert und dann auch dort ausgeführt werden!
# Für die geplante, regelmäßige Ausführung bietet sich der Aufgabenplaner der Disk Station an.
# ACHTUNG: Dieses Script muss vorher auf die Synology Disk Station kopiert und dann auch dort ausgefuehrt werden!
# 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!
# 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
backupPATH='/volume1/backup/Homeautomation/iobroker/backup.weekly' # Pfad zum Speichern des Backups
iobrokerCONTAINERNAME='iobroker' # Name des ioBroker-Containers in Docker
iobrokerPATH='/volume1/docker/iobroker_mount' # Pfad des gemounteten ioBroker-Verzeichnises (zu sicherndes Verzeichnis) auf der Synology Disk Station
backupPATH='/volume1/docker/iobroker_backup/archiv' # Pfad zum Speichern des Backups
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 "############## Backupscript gestartet. ##############"
@@ -49,7 +49,7 @@ sleep 5
echo ""
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 ""
@@ -57,12 +57,12 @@ echo "######################################################"
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 "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 ""

View File

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

View File

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

View File

@@ -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

View File

@@ -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
sed -i "s/$(cat .install_host)/$(hostname)/g" iobroker-data/objects.json
rm .install_host
echo ''
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
/opt/scripts/avahi_startup.sh
sleep 5
cd /opt/iobroker
./iobroker start
cd /
/bin/bash
# Checking and restoring ioBroker to empty mounted folder
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
View 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

View 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

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