dockerized openAger

Ein Docker-Stack zur Installation von openAger

## About The Project Dieses Projekt beinhaltet einen Docker-Stack zur schnellen Installation der Cloud Komponenten von openAger. openAger findet sich hier: https://www.valki.com/smartager/ Dieses Projekt verwendet https://git.valki.com/valki/openAger <-- für dieses Repo bitte Berechtigungen anfordern! https://www.valki.com/kontakt/ ## Getting Started Repo klonen und Installationsanleitung befolgen! ### Prerequisites Damit das ganze Funktioniert, muss natürlich Docker installiert sein. Raspis sind nicht zu empfehlen - dennoch hier kurz wie man Docker installiert (auf Basis eines Raspian light): * sudo passwd (root Passwort setzen) * passwd pi (Passwort für user pi setzen) * sudo raspi-config (Localisation, Tastatur, Wifi etc. einrichten) * sudo apt-get update && sudo apt-get upgrade (Pakete rasbian upgraden) * curl -fsSL https://get.docker.com -o get-docker.sh * sudo sh get-docker.sh * sudo usermod -aG docker pi * sudo shutdown -r * sudo apt-get update && sudo apt-get upgrade * sudo apt-get install git * sudo apt-get install libffi-dev libssl-dev * sudo apt install python3-dev * sudo apt-get install -y python3 python3-pip * sudo pip3 install docker-compose * docker version Optionale Docker Images: * Portainer (zur bequemen Bedienung von Docker): https://hub.docker.com/r/portainer/portainer Des weiteren wird für Fälle wo NICHT alles lokal im Netzwerk bleibt optional empfohlen: * nginx Reverse-Proxy von jwilder https://hub.docker.com/r/jwilder/nginx-proxy * letsencrypt - Companion für nginx von jrcs: https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-companion Wieso der Reverse Proxy und Letsencrypt eine feine Sache sind: http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/ Exemplarisch: ```sh docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -e VIRTUAL_HOST="subdomain.domain.com" -e LETSENCRYPT_EMAIL="email@email.com" -e LETSENCRYPT_HOST="subdomain.domain.com" -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest docker run -d --name nginx-proxy --restart always --publish 80:80 --publish 443:443 -v nginx_etc:/etc/nginx: -v nginx_html:/usr/share/nginx/html: -v nginx_cert:/etc/nginx/certs: -v nginx_dhparms:/etc/nginx/dhparam: -v nginx_vhost:/etc/nginx/vhost.d: -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy docker run -d --name nginx-proxy-letsencrypt --restart always --volumes-from nginx-proxy -v /var/run/docker.sock:/var/run/docker.sock:ro jrcs/letsencrypt-nginx-proxy-companion ``` ### Installation 1. nach /opt gehen und Repo klonen ```sh cd /opt sudo git clone https://git.valki.com/valki/dockerized_openAger.git ``` 2. Umbenennen ```sh sudo mv dockerized_openAger openAger cd openAger ``` 3. .env bei Bedarf bearbeiten und dann installieren ```sh docker-compose up -d ``` ## Usage Folgende Services werden installiert: * openager_mosquitto_1 * openager_nodered_1 * Backend auf dem konfiguriertem Port erreichbar (1880) * Adminzugang im .env konfiguriert (admin:openager) * Frontend / Dashboard unter dem Pfad /ui erreichbar (open:openager) * openager_influxdb_1 * openager_grafana_1 * Grafana ist auf dem konfiguriertem Port erreichbar. * Initialer Login lautet admin:admin * die Verbindung zur InfluxDB wird eingerichtet mit * URL = http://openager_influxdb_1:8086 und * den Zugangsdaten aus .env (im Standard open:ager) * die Standarddatenbank lautet openAger (auch im .env einstellbar) * openager_phpmyadmin_1 * via im .env konfiguriertem Port erreichbar (8088) * Standarduser lautet open:ager * openager_mariadb_1 Hier kommt noch ein wenig Doku irgendwann. Den User in der influxDB berechtigen (nur für den Fehlerfall!) ```sh docker exec -it openager_influxdb_1 influx -username "admin" -password "openager" show databases use openAger show users show grants for open GRANT ALL on openAger to open ``` ## Screens ![Installation](images/1.png) Installation ![Installation](images/2.png) Ende der Installation - nodered kann nachgestartet werden ![Installation](images/3.png) in Portainer sind alle Dienste sichtbar und steuerbar ![Installation](images/4.png) phpMyAdmin ![Installation](images/5.png) Nodered Frontend ![Installation](images/6.png) Nodered Backend - mqtt, mysql und influx schon konfiguriert! ![Installation](images/7.png) Einrichtung Datasource in Grafana ![Installation](images/8.png) Grafana ready to play ## License Distributed under the CC BY-NC-SA License. See license.txt for more information.