dockerized_openAger/README.md

163 lines
4.8 KiB
Markdown

<!-- PROJECT LOGO -->
<br />
<p align="center">
<h3 align="center">dockerized openAger</h3>
<p align="center">
Ein Docker-Stack zur Installation von openAger
<br />
</p>
</p>
<!-- ABOUT THE PROJECT -->
## 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 -->
## 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 EXAMPLES -->
## 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 -->
## 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 -->
## License
Distributed under the CC BY-NC-SA License. See license.txt for more information.