Vorsicht

Dies ist die Dokumentation des aktuellen Entwicklungszweigs der CometVisu. Es besteht daher die Möglichkeit, dass einige der hier beschriebenen Features mit dem aktuellsten Release der CometVisu nicht genutzt werden können.

Installation auf einem Ubuntu System mit openHAB und Docker

1. Voraussetzungen

Für den Betrieb der CometVisu mit openHAB und Docker werden folgende Dinge benötigt:

  1. Server mit funktionierender openHAB Installation.

  2. Docker-CE und Docker Compose

Hinweis

Es wird kein zusätzlicher Webserver, wie z.B. Apache o.ä. mit installiertem PHP Support benötigt, da dies alles Bestandteil des Containers ist. Die o.g. Punkte sind alles, was zur erfolgreichen Inbetriebnahme erforderlich ist.

2. Installation von Docker-CE und Compose auf dem Server

Dies alles kann durch folgenden Konsolenbefehle ausgeführt werden:

# Update
sudo apt-get update

# Vorausetzungen installieren
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# Hinzufügen vom Docker GPG-Key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Hinzufügen vom Docker Repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# Nochmal ein Update
sudo apt-get update

# Installation docker-ce und Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose

3. Systemvorbereitungen

# Aktuellen Benutzer zur Gruppe *Docker* hinzufügen
sudo usermod -aG docker $USER

Nach dem Aufnehmen des Benutzers nochmal neu Anmelden

# Anlegen vom Verzeichnis resource/config unter dem aktuellen Benutzer
sudo mkdir -p resource/config

# Anlegen einer Beispiel XML-Datei unter resource/config
sudo nano resource/config/visu_config.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" design="pure" xsi:noNamespaceSchemaLocation="../visu_config.xsd" lib_version="8">
<meta>
    <statusbar>
    <status type="html"><![CDATA[
            <img src="resource/icons/comet_64_ff8000.png" alt="CometVisu" /> by <a href="http://www.cometvisu.org/">CometVisu.org</a>
            -<a href=".?forceReload=true">Reload</a>
            -<a href="?config=demo">Widget Demo</a>
            ]]></status>
    <status type="html" condition="!edit" hrefextend="config"><![CDATA[
            - <a href="edit_config.html">Edit</a>
            ]]></status>
    <status type="html" condition="edit" hrefextend="all"><![CDATA[
            - <a href=".">normal Mode</a>
        ]]></status>
    <status type="html"><![CDATA[
        - <a href="check_config.php">Check Config</a>
        <div style="float:right;padding-right:0.5em">Version: SVN</div>
        ]]></status>
    </statusbar>
</meta>
<page name="Startseite">
</page>
</pages>
# Anlegen der Verzeichnisse Backup und media unter resource/config
sudo mkdir -p resource/config/media
sudo mkdir -p resource/config/backup

# Rechte für den Webserver setzen
sudo chown -hR www-data:www-data resource/config

4. CometVisu per Docker installieren

Jetzt den Container installieren

# yaml datei Anlegen
sudo nano docker-compose.yaml

# Beispielinhalt für openhab

version: '3.4'
services:
    cometvisu:
        image: "cometvisu/cometvisu:latest"
        restart: always
        ports:
        - 80:80
        volumes:
            - ./resource/config:/var/www/html/resource/config
        environment:
            BACKEND_NAME: "openhab"
            BACKEND_OPENHAB: "/rest/"
            BACKEND_PROXY_SOURCE: "/rest"
            BACKEND_PROXY_TARGET: "http://<IP-Openhab2>:8080/rest"

Hinweis

Bei der YAML-Datei ist darauf zu achten, dass die Einrückungen jeweils mit 2 Leerzeichen erstellt werden.

# docker starten
docker-compose up -d

# Name des laufenden containers herausfinden
docker-compose ps

# IP Adresse des Docker Container herausfinden <name> bitte mit dem passenden Namen ersetzen
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <name>

Die CometVisu ist dann direkt unter der URL http://<container-IP>: im Browser erreichbar.