├── .gitignore ├── DOCS ├── DE │ ├── docs │ │ ├── hardware │ │ │ ├── edge-devices.md │ │ │ ├── server.md │ │ │ └── structure.md │ │ ├── index.md │ │ ├── js │ │ │ └── matomo.js │ │ ├── media │ │ │ ├── ei23.svg │ │ │ └── favicon.png │ │ ├── software │ │ │ ├── esphome.md │ │ │ ├── grafana.md │ │ │ ├── homeassistant.md │ │ │ ├── immich.md │ │ │ ├── influx.md │ │ │ ├── lms.md │ │ │ ├── mqttexplorer.md │ │ │ ├── nextcloud.md │ │ │ ├── nginxproxy.md │ │ │ ├── nodered.md │ │ │ ├── overview.md │ │ │ ├── paperlessngx.md │ │ │ ├── traefik.md │ │ │ ├── uptimekuma.md │ │ │ ├── vaultwarden.md │ │ │ ├── vscode.md │ │ │ └── wireguard.md │ │ ├── start │ │ │ ├── acceptance.md │ │ │ ├── backuprestore.md │ │ │ ├── docker-compose.md │ │ │ ├── ei23-dashboard.md │ │ │ ├── faq.md │ │ │ ├── install.md │ │ │ ├── remote-access.md │ │ │ ├── security-monitoring.md │ │ │ ├── shortcuts.md │ │ │ └── update.md │ │ └── stylesheets │ │ │ └── extra.css │ └── mkdocs.yml ├── EN │ ├── docs │ │ ├── hardware │ │ │ ├── edge-devices.md │ │ │ ├── server.md │ │ │ └── structure.md │ │ ├── index.md │ │ ├── js │ │ │ └── matomo.js │ │ ├── media │ │ │ ├── ei23.svg │ │ │ └── favicon.png │ │ ├── software │ │ │ ├── esphome.md │ │ │ ├── grafana.md │ │ │ ├── homeassistant.md │ │ │ ├── immich.md │ │ │ ├── influx.md │ │ │ ├── lms.md │ │ │ ├── mqttexplorer.md │ │ │ ├── nextcloud.md │ │ │ ├── nginxproxy.md │ │ │ ├── nodered.md │ │ │ ├── overview.md │ │ │ ├── paperlessngx.md │ │ │ ├── traefik.md │ │ │ ├── uptimekuma.md │ │ │ ├── vaultwarden.md │ │ │ ├── vscode.md │ │ │ └── wireguard.md │ │ ├── start │ │ │ ├── acceptance.md │ │ │ ├── backuprestore.md │ │ │ ├── docker-compose.md │ │ │ ├── ei23-dashboard.md │ │ │ ├── faq.md │ │ │ ├── install.md │ │ │ ├── remote-access.md │ │ │ ├── security-monitoring.md │ │ │ ├── shortcuts.md │ │ │ └── update.md │ │ └── stylesheets │ │ │ └── extra.css │ └── mkdocs.yml └── guidelines.md ├── EN ├── docs │ └── mkdocs.yml └── web │ ├── 404.html │ ├── bottom-logo.html │ ├── dashboard-head.html │ ├── index.html │ ├── localnet.html │ ├── navbar.html │ ├── server.html │ └── static │ └── programs.json ├── LICENSE ├── README.md ├── de-file.txt ├── ei23-docker ├── backup.sh ├── compose_templates │ ├── adguardhome.yml │ ├── archivebox.yml │ ├── awtrix.yml │ ├── bitwarden.yml │ ├── blocky.yml │ ├── deconz.yml │ ├── domoticz.yml │ ├── duplicati.yml │ ├── ei23.yml │ ├── env │ │ ├── immich.env │ │ └── n8n.env │ ├── esphome.yml │ ├── fhem.yml │ ├── fireflyiii.yml │ ├── fooocus.yml │ ├── freepbx-asterisk.yml │ ├── gitlab.yml │ ├── go2rtc.yml │ ├── gotify.yml │ ├── grafana.yml │ ├── grocy.yml │ ├── heimdall.yml │ ├── homeassistant-matterserver.yml │ ├── homeassistant.yml │ ├── homebridge.yml │ ├── immich.yml │ ├── influxdb.yml │ ├── influxdb18.yml │ ├── influxdb2.yml │ ├── iobroker.yml │ ├── jellyfin.yml │ ├── lyrionmusicserver.yml │ ├── mealie.yml │ ├── mosquitto.yml │ ├── motioneye.yml │ ├── mqtt-explorer.yml │ ├── music-assistant-server.yml │ ├── n8n.yml │ ├── nextcloud-network.yml │ ├── nextcloudofficial.yml │ ├── nextcloudpi.yml │ ├── nginxproxymanger.yml │ ├── nginxssl.yml │ ├── nocodb.yml │ ├── octoprint.yml │ ├── ollama.yml │ ├── open-webui.yml │ ├── openedai-speech.yml │ ├── openhab.yml │ ├── pairdrop.yml │ ├── paperlessngx.yml │ ├── perplexica.yml │ ├── pihole.yml │ ├── plex.yml │ ├── portainer.yml │ ├── rhasspy.yml │ ├── stirling-pdf.yml │ ├── syncthing.yml │ ├── tasmoadmin.yml │ ├── teamspeak.yml │ ├── teddycloud.yml │ ├── teslamate.yml │ ├── theengs-gateway.yml │ ├── timescaledb.yml │ ├── traefik.yml │ ├── uptime-kuma.yml │ ├── vscode.yml │ ├── watchyourlan.yml │ ├── whisper-webui.yml │ ├── wireguard.yml │ ├── wyoming-openwakeword.yml │ ├── wyoming-piper.yml │ ├── wyoming-whisper.yml │ └── zigbee2mqtt.yml ├── custom_ha_addons-example.sh ├── docker-compose.yml ├── env │ └── immich.env ├── firstinstall.txt ├── flows │ ├── CreateMainDB.json │ ├── DVB-T-433Mhz.json │ ├── Pi-Hardware-Stats-to-InfluxDB.json │ ├── Speedtest.json │ ├── Telegram-Examples.json │ └── TutorialUpdate.json ├── led_service.sh ├── settings.txt ├── update.sh └── volumes │ ├── ei23 │ ├── config.ini │ ├── docs │ │ ├── docs │ │ │ ├── index.md │ │ │ ├── media │ │ │ │ ├── ei23.svg │ │ │ │ └── favicon.png │ │ │ ├── sample.md │ │ │ └── stylesheets │ │ │ │ ├── codehilite.css │ │ │ │ └── dark_theme.css │ │ └── mkdocs.yml │ ├── ei23-supervisor.py │ ├── ei23.service │ ├── scripts │ │ └── yaml_editor.py │ └── web │ │ ├── 404.html │ │ ├── bottom-logo.html │ │ ├── dashboard-head.html │ │ ├── index.html │ │ ├── localnet.html │ │ ├── navbar.html │ │ ├── server.html │ │ ├── static │ │ ├── dist │ │ │ ├── Karla-700.eot │ │ │ ├── Karla-700.svg │ │ │ ├── Karla-700.ttf │ │ │ ├── Karla-700.woff │ │ │ ├── Karla-700.woff2 │ │ │ ├── Karla-regular.eot │ │ │ ├── Karla-regular.svg │ │ │ ├── Karla-regular.ttf │ │ │ ├── Karla-regular.woff │ │ │ ├── Karla-regular.woff2 │ │ │ ├── bootstrap.bundle.min.js │ │ │ ├── bootstrap.min.css │ │ │ ├── cropped-favicon-180x180.png │ │ │ ├── cropped-favicon-192x192.png │ │ │ ├── cropped-favicon-270x270.png │ │ │ ├── cropped-favicon-32x32.png │ │ │ ├── favicon-150x150.png │ │ │ ├── favicon-300x300.png │ │ │ ├── favicon-768x768.png │ │ │ ├── jquery-3.5.1.min.js │ │ │ └── karla.css │ │ ├── img │ │ │ ├── adguardhome.png │ │ │ ├── asterisk-freepbx.png │ │ │ ├── avmfritzbox.png │ │ │ ├── awtrix.png │ │ │ ├── bitwarden.png │ │ │ ├── camera.png │ │ │ ├── deconz.png │ │ │ ├── docs.png │ │ │ ├── domoticz.png │ │ │ ├── duplicati.png │ │ │ ├── ei23.svg │ │ │ ├── esphome.png │ │ │ ├── fhem.png │ │ │ ├── fireflyiii.png │ │ │ ├── gotify.png │ │ │ ├── grafana.png │ │ │ ├── grocy.png │ │ │ ├── homeassistant.png │ │ │ ├── homebridge.png │ │ │ ├── immich.png │ │ │ ├── iobroker.png │ │ │ ├── jellyfin.png │ │ │ ├── kodi.png │ │ │ ├── lyrionmusicserver.png │ │ │ ├── motioneye.png │ │ │ ├── mqtt-explorer.png │ │ │ ├── music-assistant-server.png │ │ │ ├── nextcloudofficial.png │ │ │ ├── nextcloudpi.png │ │ │ ├── nginxproxymanger.png │ │ │ ├── nodered.png │ │ │ ├── octoprint.png │ │ │ ├── omv.png │ │ │ ├── openhab.png │ │ │ ├── paperlessngx.png │ │ │ ├── pihole.png │ │ │ ├── plex.png │ │ │ ├── portainer.png │ │ │ ├── proxmox.png │ │ │ ├── rhasspy.png │ │ │ ├── router.png │ │ │ ├── stirlingpdf.png │ │ │ ├── syncthing.png │ │ │ ├── synology.png │ │ │ ├── tasmoadmin.png │ │ │ ├── teddycloud.png │ │ │ ├── teslamate.png │ │ │ ├── traefik.png │ │ │ ├── uptime-kuma.png │ │ │ ├── volumio.png │ │ │ ├── vscode.png │ │ │ └── wordpress.png │ │ └── programs.json │ │ └── tree.html │ ├── homeassistant │ └── config │ │ ├── automations.yaml │ │ ├── configuration.yaml │ │ ├── groups.yaml │ │ ├── scenes.yaml │ │ ├── scripts.yaml │ │ └── www │ │ └── wallpaper │ │ └── ei23-tiles.svg │ ├── mosquitto │ └── config │ │ ├── mosquitto.conf │ │ └── pwfile │ ├── pihole │ └── hosts │ └── traefik │ └── traefik │ ├── dynamic │ └── config.yml │ └── traefik.yml ├── ei23.sh ├── en-file.txt └── updates ├── 1.00.sh ├── 1.01.sh ├── 1.02.sh ├── 1.03.sh ├── 1.04.sh ├── 1.10.sh ├── 1.11.sh └── 1.12.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # just ignore me -------------------------------------------------------------------------------- /DOCS/DE/docs/hardware/edge-devices.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/hardware/server.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/hardware/structure.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/index.md: -------------------------------------------------------------------------------- 1 | # ei23 Smart Home Installationsskript 2 | 3 | Hi und danke für dein Interesse an der Dokumentation! Damit du dir schnell einen Überblick verschaffen kannst, habe ich den bisherigen Stand meines Smart Home Skripts in einem Video zusammengefasst: 4 | [![YT](https://ei23.de/bilder/ei23-dashboard.jpg)](https://www.youtube.com/watch?v=pKUv_rXONas) 5 | 6 | ## Warum brauchst du das Skript? 7 | 8 | Zuerst zur Motivation hinter meinem Skript und seiner Veröffentlichung: 9 | 10 | Um das Jahr 2017 plante ich die Installation eines Smart Home Systems. Es gab verschiedene Optionen zur Auswahl, und ich war unsicher, welches Programm das Richtige für mich war. Es war auch klar, dass ich einen Computer, in diesem Fall einen Raspberry Pi, dauerhaft betreiben würde. Es wäre schade gewesen, wenn darauf nur eine einzige Anwendung laufen würde. Zu diesem Zeitpunkt hatte ich bereits einige Experimente mit NodeRED durchgeführt und die Vorteile der GPIOs des Raspberry Pi geschätzt. 11 | 12 | Obwohl mir das [Home Assistant System](https://home-assistant.io) insgesamt gut gefiel, bedeutete die Verwendung davon, dass ich die Flexibilität eines herkömmlichen Linux-Systems aufgeben musste. Deshalb habe ich einen Kompromiss gefunden: Mein Installations-Skript übernimmt die Installation und Einrichtung aller erforderlichen Programme und Einstellungen, und wenn möglich, werden alle Programme in Docker-Containern betrieben. Dies erleichtert die Wartung und Experimente am System erheblich und bietet mehr Komfort. 13 | 14 | Das Skript entstand also aus der Notwendigkeit heraus, mehr Flexibilität, Anpassungsmöglichkeiten und Programme anzubieten als das Home Assistant Betriebssystem. Für diejenigen, die ihr System selbst erweitern möchten, ohne einen weiteren Server / Raspberry Pi oder virtuelle Maschinen parallel zu betreiben, bietet dieses Skript eine Lösung. Zuerst werden notwendige und nützliche Programme und Frameworks wie Docker, Python, etc. auf dem rohen Raspbian OS oder auch Debian installiert. Anschließend wird NodeRED in nativer Form installiert, nicht als Docker-Container. Dies bietet zusätzliche Funktionen und eine einfachere Konfiguration ohne lästige Workarounds. Darüber hinaus können Log2Ram (um SD-Karten-Schreibvorgänge zu reduzieren), RTL_SDR Software (zum Beispiel für 433MHz Sensoren) und rpiClone (für einfache Backups) direkt mit installiert werden. Das Skript automatisiert derzeit die Installation der folgenden Programme und enthält teilweise auch bereits einige Addons (eigene Erweiterungen sind natürlich möglich). 15 | 16 | ## Automatisierte Installation mit dem ei23 Smart Home Installationsskript 17 | 18 | ![ei23 terminal](https://ei23.de/bilder/ei23-terminal.gif) 19 | 20 | Ursprünglich war das System nur für den Raspberry Pi (armv7) verfügbar. Inzwischen empfehle ich jedoch die Verwendung eines 64-Bit-Systems (arm64). Das Skript ist auch auf Debian 12 und AMD64-Architekturen (einschließlich der meisten Docker-Container) funktionsfähig. 21 | 22 | Du kannst das Skript ausschließlich über [meinen Newsletter](https://ei23.de/newsletter) beziehen. Dies ermöglicht es mir, einerseits einen kleinen Marketingeffekt zu erzielen und andererseits die Möglichkeit, dich zeitnah über Änderungen oder Sicherheitslücken zu informieren. 23 | 24 | ## Installation 25 | 26 | Die Installation ist **selbsterklärend**. Nach der [Anmeldung zum Newsletter](https://ei23.de/newsletter) bekommst du zwei Kommandozeilen zugeschickt, die du über die Eingabekonsole oder SSH ausführen musst. Die erste Zeile lädt das Skript (Bash-Skript) herunter, und mit der zweiten Zeile führst du es aus. 27 | 28 | ## Unterstützung 29 | 30 | Die Weiterentwicklung, Wartung und der Support von Softwareprojekten kosten viel Arbeit und Zeit. Zu erwarten, dass es kostenlos ist, ist falsch. Forderungen ohne Gegenleistung akzeptiere auch ich nicht auf Dauer. 31 | 32 | Denkt daher also über selbstlose Unterstützung dieses (oder anderer) Projekte nach. Das kann in Form von nützlichen Beiträgen, Hinweisen oder auch einfach in finanzieller Form passieren. [Das geht hier](https://ei23.de/donate/). 33 | 34 | ## Statistik 35 | 36 | ![ei23 Counter](https://ei23.de/bilder/svg-stats.svg) 37 | 38 | Viel Spaß beim Tüfteln und unabhängig bleiben! 39 | 40 | ``` 41 | Viele Grüße 42 | Felix von ei23 43 | ``` 44 | 45 | --- -------------------------------------------------------------------------------- /DOCS/DE/docs/js/matomo.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DOCS/DE/docs/media/ei23.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DOCS/DE/docs/media/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/DOCS/DE/docs/media/favicon.png -------------------------------------------------------------------------------- /DOCS/DE/docs/software/esphome.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/software/grafana.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/software/homeassistant.md: -------------------------------------------------------------------------------- 1 | # Home Assistant 2 | (Noch im Aufbau) 3 | 4 | ## Von Home Assistant OS zu Home Assistant Docker vom ei23 Skript wechseln 5 | Home Assistant OS ist [etwas anders](/software/homeassistant/#home-assistant-docker-vs-supervised-home-assistant) aufgebaut, aber letztlich läuft exakt die selbe Version vom Home Assistant wie in meinem Skript. 6 | Um ein Backup von Home Assistant OS zu Home Assistant Docker vom ei23 Skript wiederherzustellen ist folgendes nötig. 7 | 8 | 1. Erstelle mit Home Assistant OS ein Backup über die Backupfunktion der Weboberfläche. 9 | 2. Speichere die *.tar Datei. Die Struktur ist die folgende `backup.tar\homeassistant.tar.gz\homeassistant.tar\data\` 10 | 3. kopiere die Inhalte in diesen Ordner von meinem System `/home/user/ei23-docker/volumes/homeassistant/config` 11 | 4. Starte dein System oder den Home Assistant Docker Container `docker restart homeassistant` neu. 12 | 5. Nach einem Neustart von Home Assistant Docker wird das Backup eingelesen und du solltest dein altbekanntes System wiederfinden. 13 | 14 | ## Home Assistant Docker vs. Supervised Home Assistant 15 | 16 | Es gibt zwei Versionen von Home Assistant: 17 | 18 | 1. Home Assistant Docker 19 | 2. Supervised Home Assistant (auch bekannt als Home Assistant OS) 20 | 21 | In diesem Skript verwenden wir Home Assistant Docker. Das hat zwar Nachteile auf der einen Seite, bietet jedoch auf der anderen Seite deutlich mehr Vorteile. Die "Nachteile" beinhalten das Fehlen von "Addons" im Sinne von Home Assistant OS und die notwendige Konfiguration von Hardware über die [docker-compose.yml](/start/docker-compose). Es ist wichtig zu erwähnen, dass die Addons technisch gesehen vorkonfigurierte Docker Container sind. Der Supervisor übernimmt lediglich einen Teil der Konfiguration. Dieses Skript bietet jedoch die [docker-compose Templates](/start/docker-compose), die die Konfiguration vereinfachen. 22 | Das [Einbinden von Hardware](#hardware) ist mit ein paar Anweisungen außerdem nicht kompliziert. 23 | 24 | Ein Nachteil von Home Assistant OS ist, dass wenn ein "Addon" nicht für Home Assistant OS verfügbar ist, man darauf angewiesen ist, dass die Entwickler oder die Community ein solches erstellen. Die Anzahl der verfügbaren Docker Images hingegen ist unverhältnismäßig größer, was einen großen Vorteil darstellt. Außerdem ist es nicht sehr schwierig, eigene Docker Images zu erstellen oder notfalls native Programme auf dem Linux-Host-Betriebssystem zu installieren. Die Installation von Software auf dem Host-System wird jedoch nur eingeschränkt empfohlen. 25 | 26 | Es gibt gelegentlich ein Missverständnis, dass die Docker-Version von Home Assistant weniger Möglichkeiten bietet. Das ist nur der Fall, wenn man nicht weiß, wie man sie richtig nutzt. Tatsächlich schränkt Home Assistant OS diese Möglichkeiten aus Gründen der Nutzerfreundlichkeit aktiv ein. Oder man könnte es bei Apple ausdrücken: "think different" ;-) 27 | 28 | Deshalb nutzen wir Home Assistant Docker. 29 | 30 | ## Einbinden von Hardware 31 | Bereits teilweise in [docker-compose](/start/docker-compose) beschrieben. 32 | 33 | ## Home Assistant über HTTPS absichern 34 | Siehe [Reverse Proxy mit Traefik](/software/traefik) oder [Reverse Proxy mit Nginx](/software/nginxproxy) 35 | -------------------------------------------------------------------------------- /DOCS/DE/docs/software/immich.md: -------------------------------------------------------------------------------- 1 | # Immich.app lokale Foto Cloud 2 | Immich.app ist ein Open Source Projekt das viele Foto-Cloud Lösungen in den Schatten stellt, nicht nur weil es vermeintlich "kostenlos" (im Sinne von Open Source) ist, sondern weil es auf dem eigenen Server läuft. 3 | 4 | Dazu habe ich ein Video: 5 | [![YT](https://ei23.de/bilder/YTthumbs/8IWbTQAdxZ8.webp)](https://www.youtube.com/watch?v=8IWbTQAdxZ8) -------------------------------------------------------------------------------- /DOCS/DE/docs/software/influx.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/software/lms.md: -------------------------------------------------------------------------------- 1 | # Logitech Media Server & Squeezelite 2 | Mit dem Logitech Media Server und Squeezelite kann man sich mit ein systemunabhängiges Multi-Room-Audio System baut. Es lässt sich perfekt in Home Assistant integrieren, die Lautsprecher können synchronisiert werden und es spielt eigene Musik vom Home Server, Internetradio und auch Dienste wie Spotify laufen! 3 | Mir gefällt es richtig gut! 4 | 5 | Dazu habe ich ein Video: 6 | [![YT](https://ei23.de/bilder/YTthumbs/DwotxrCvHTA.webp)](https://www.youtube.com/watch?v=DwotxrCvHTA) -------------------------------------------------------------------------------- /DOCS/DE/docs/software/mqttexplorer.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/software/nextcloud.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/software/nginxproxy.md: -------------------------------------------------------------------------------- 1 | [nginxproxymanager.com](https://nginxproxymanager.com/) -------------------------------------------------------------------------------- /DOCS/DE/docs/software/nodered.md: -------------------------------------------------------------------------------- 1 | # Überblick 2 | TODO... 3 | Hier werden wahrscheinlich Videos eingefügt 4 | 5 | # Nodes 6 | Nodes sind die zentralen Komponenten von NodeRED. 7 | [Subflows](#subflows) können optisch wie Nodes aussehen und sich auch wie solche verhalten, sind technisch allerdings nur eine Zusammensetzung von Nodes. 8 | 9 | ## Einrichtung vom MQTT Node (Mosquitto) 10 | ToDo 11 | 12 | ## Einrichtung vom Home Assistant Node 13 | ToDo 14 | 15 | ## Einrichtung vom Telegram Node 16 | ToDo 17 | 18 | ## Inject Node 19 | ToDo 20 | 21 | ## Debug Node 22 | ToDo 23 | 24 | ## Config Nodes 25 | ToDo 26 | 27 | # Flows 28 | 29 | ## Seiten 30 | ToDo 31 | 32 | ## Subflows 33 | ToDo 34 | 35 | ## Flow Bibliothek 36 | ToDo 37 | 38 | # Variablen und Kontext -------------------------------------------------------------------------------- /DOCS/DE/docs/software/overview.md: -------------------------------------------------------------------------------- 1 | # Überblick 2 | ``` yaml 3 | theme: 4 | features: 5 | - content.code.annotate # (1) 6 | - content.code.yaaa 7 | ``` 8 | 9 | 1. :man_raising_hand: I'm a code annotation! I can contain `code`, __formatted 10 | text__, images, ... basically anything that can be written in Markdown. 11 | 12 | Lorem ipsum dolor sit amet, (1) consectetur adipiscing elit. 13 | { .annotate } 14 | 15 | 1. irgendwas -------------------------------------------------------------------------------- /DOCS/DE/docs/software/paperlessngx.md: -------------------------------------------------------------------------------- 1 | # Paperless-NGX 2 | 3 | Paperless-NGX ist eine freie Dokumentenverwaltungssoftware mit Texterkennung (OCR). 4 | [docs.paperless-ngx.com](https://docs.paperless-ngx.com/) 5 | Damit ist die Digitalisierung von Dokumenten im Papierformat, aber auch die Zusammenführung der "digitalen Cousins" im PDF oder Bildformat sehr schön gelöst. 6 | Es existieren Apps dafür und es ist ein wirklich hilfreiches Tool für die Verwaltung von Papierkram. 7 | Ich scanne mittlerweile alles was reinkommt direkt ein und lege es dann einfach nur noch in einen Karton und im Prinzip könnte ich das Papier auch direkt verheizen (hab aber keinen Ofen) 8 | PDF Dateien kopiere ich auch direkt rein, so habe ich alles direkt beisammen. 9 | Daher ist Paplerless-NGX auch fester Bestandteil von meinem SmartHome Skript. 10 | 11 | Video dazu: 12 | [![YT](https://ei23.de/bilder/YTthumbs/qyXz5gJnu_8.webp)](https://www.youtube.com/watch?v=qyXz5gJnu_8) -------------------------------------------------------------------------------- /DOCS/DE/docs/software/uptimekuma.md: -------------------------------------------------------------------------------- 1 | # Uptime Kuma 2 | Uptime Kuma ist ein einfaches Monitoring Tool. Damit kann man überwachen welche Dienste und Geräte ordnungsgemäß laufen und ggf. eine Mitteilung über eine Störung versenden. 3 | Das ist durchaus praktisch. 4 | 5 | Darum habe ich dazu auch ein eigenes Video gemacht 6 | [![YT](https://ei23.de/bilder/YTthumbs/Nr-re1kszvk.webp)](https://www.youtube.com/watch?v=Nr-re1kszvk) -------------------------------------------------------------------------------- /DOCS/DE/docs/software/vaultwarden.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/software/vscode.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/software/wireguard.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/start/acceptance.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/DE/docs/start/backuprestore.md: -------------------------------------------------------------------------------- 1 | 2 | ## Hier ein Video zum Backup und dessen Wiederherstellung 3 | Das Skript wird demnächst um eine vereinfachte Restorefunktion erweitert. 4 | [![YT](https://ei23.de/bilder/YTthumbs/_yG0uWeRCDI.webp)](https://www.youtube.com/watch?v=_yG0uWeRCDI) 5 | 6 | ## Wechsel vom Home Assistant OS zu Home Assistant Docker vom ei23 Skript 7 | Wenn du vom Home Assistant OS zum ei23 Skript wechselst, findest du eine [Beschreibung zur Wiederherstellung](/software/homeassistant/#von-home-assistant-os-zu-home-assistant-docker-vom-ei23-skript-wechseln) hier. -------------------------------------------------------------------------------- /DOCS/DE/docs/start/docker-compose.md: -------------------------------------------------------------------------------- 1 | # Programme als Container installieren 2 | 3 | Mach dich mit dem Bearbeiten der [docker-compose.yml](https://docs.docker.com/compose/compose-file/compose-file-v3/) vertraut. Diese findest du unter `/home/[user]/ei23-docker/docker-compose.yml`. 4 | 5 | **Ich habe dazu ein ausführliches Video:** 6 | [![YT](https://ei23.de/bilder/YTthumbs/teV-yfBoTuA.webp)](https://www.youtube.com/watch?v=teV-yfBoTuA) 7 | 8 | Für die Bearbeitung musst du mit dem Benutzer "root" angemeldet sein oder z.B. `sudo nano /home/[user]/ei23-docker/docker-compose.yml` verwenden, um Schreibrechte zu bekommen. Alternativ kannst du die Datei auch im Webbrowser mit [vscode](/software/vscode/). Es liegen Templates, also "Installationsschablonen," zum nachträglichen Installieren in `/home/pi/ei23-docker/compose_templates` bereit. Du kannst sie benutzen und entsprechend in die docker-compose.yml kopieren. 9 | 10 | Nach der Anpassung der docker-compose.yml (Achtung, falsche Zeileneinrückung kann dazu führen, dass die Installation nicht richtig ausgeführt wird) musst du nur noch `ei23` und dann "Docker Compose" bzw. `ei23 dc` ausführen. 11 | 12 | Je nach Architektur (armv7/arm64/amd64) kann es vorkommen, dass es kein aktuelles Image des Containers gibt. Dies kann man beispielsweise unter [hub.docker.com](https://hub.docker.com/) nachschauen. Ggf. muss man auf ein älteres Image zurückgreifen - im Beispiel unten wurde `:1.24.0` angehängt. 13 | 14 | Auch kann es vorkommen, dass ein Port bereits belegt ist. Das Routing für Docker funktioniert wie die Portfreigabe an einem normalen Router. Die Notation ist folgendermaßen (auch bei Volumes und Devices): 15 | 16 | ```yaml 17 | Hostsystem:Container 18 | ``` 19 | 20 | Man kann so einfach beliebige Ports weiterleiten. Im Beispiel unten steht `8080` für den externen Port (host), also der Port am Computer ansprechbar ist. Der hintere Port (container) ist nur Docker-intern erreichbar. Das funktioniert gleichermaßen für Ordner, Geräte, etc. im Hostsystem - Sehr praktisch und sicher! 21 | 22 | Beispiel: 23 | ```yaml 24 | image: nginx:1.24.0 25 | volumes: 26 | - ./volumes/nginx:/etc/nginx/templates 27 | ports: 28 | - 8080:80 #(1) 29 | devices: 30 | - /dev/video0:/dev/video0 31 | ``` 32 | 33 | 1. `8080` ist hier der externe Port (host) und `80` der interne Port (container). Im Prinzip genau wie bei einem Router/Modem. -------------------------------------------------------------------------------- /DOCS/DE/docs/start/ei23-dashboard.md: -------------------------------------------------------------------------------- 1 | # Das ei23 Dashboard / Der Supervisor 2 | ![ei23 Dashboard](https://ei23.de/bilder/dashboard01.jpg) 3 | Seit der Version 1.1 Von ei23 Smart Home Server hat sich das Dashboard grundlegend verändert. 4 | Jetzt ist es nicht nur mehr die Anzeige der verfügbaren Programme, sondern auch ein Supervisor. Zumindest ist der Unterbau schon mal so weit. Das heißt, mit dem Dashboard kann man bald auch einige Programme nachinstallieren und auch Systemfunktionen verwalten. 5 | 6 | ## Programme im Dashboard anpassen 7 | 8 | Um Programme und externe Links wie z.B. Kameras oder andere Geräte oder auch Webseiten auf dem Dashboard zu verknüpfen, gibt es die Möglichkeit, die programs.json anzupassen. 9 | Die Datei befindet sich unter `/home/[user]/ei23-docker/volumes/ei23/web/static/programs.json` 10 | !!!note 11 | [user] muss an dieser Stelle durch deinen Nutzernamen ersetzt werden. 12 | 13 | ### Erklärung der `programs.json` 14 | 15 | ```json 16 | {"programs": [ 17 | {"active": true, "port": "", "custom_url": "http://10.1.1.11:1880", "name": "NodeRED", "title": "Garage", "img": "img/nodered.png"}, // (1) 18 | {"active": true, "port": "4004", "custom_url": "", "name": "MQTT-Explorer", "title": "MQTT-Explorer", "img": "img/mqtt-explorer.png"}, // (2) 19 | {"active": false, "port": "", "custom_url": "http://10.1.1.12", "name": "Kamera Garten", "title": "Schöner Garten", "img": "img/camera.png"}, // (3) 20 | {"active": true, "port": "3000", "custom_url": "", "name": "Grafana", "title": "Datenvisualisierung", "img": "img/grafana.png"} // (4) 21 | ]} 22 | ``` 23 | 24 | 1. Hier ist "http://10.1.1.11:1880" eine Custom URL, diese kann auch eine externe Adresse sein. 25 | 2. Wenn keine Custom URL gesetzt ist, wird der Port mit IP-Adresse des Geräts kombiniert. Beispielsweise http://10.1.1.2:4004 26 | 3. Da Active auf False gesetzt ist, wird dieser Eintrag nicht gezeigt. Außerdem wird hier ein generisches Icon genutzt. Davon stehen einige im img Ordner zur Verfügung. 27 | 4. Im letzten Eintrag ist es wichtig, dass kein Komma hinter der geschweiften Klammer angehängt wird. 28 | 29 | !!!note 30 | 1. Hier ist "http://10.1.1.11:1880" eine Custom URL, diese kann auch eine externe Adresse sein. 31 | 2. Wenn keine Custom URL gesetzt ist, wird der Port mit IP-Adresse des Geräts kombiniert. Beispielsweise http://10.1.1.2:4004 32 | 3. Da Active auf False gesetzt ist, wird dieser Eintrag nicht gezeigt. Außerdem wird hier ein generisches Icon genutzt. Davon stehen einige im img Ordner zur Verfügung. 33 | 4. Im letzten Eintrag ist es wichtig, dass kein Komma hinter der geschweiften Klammer angehängt wird. 34 | 35 | 36 | ## Netzwerk: Geräte im Netzwerk auflisten und kontrollieren 37 | 38 | ![ei23 Dashboard](https://ei23.de/bilder/dashboard02.jpg) 39 | Auf der Netzwerkseite gibt es die Möglichkeit, Geräte im Netzwerk zu scannen, deren Hostname, IP-Adresse, MAC-Adresse anzuzeigen und eine Herstellerinfo. Wenn ein Webport 80 erkannt wird, das heißt, dass das Gerät eine Weboberfläche zur Verfügung stellt, wird diese direkt verlinkt und das Gerät blau markiert. 40 | 41 | ## Server: Installierte Docker Compose Programme überprüfen 42 | 43 | ![ei23 Dashboard](https://ei23.de/bilder/dashboard03.jpg) 44 | In dieser Ansicht wird automatisch die [docker-compose.yml](docker-compose.md) nach installierten und laufenden Containern bzw. Programmen durchsucht und damit eine Liste erstellt und angezeigt. 45 | Ist ein Webport erkannt worden, wird das Programm dementsprechend markiert und kann auch direkt aufgerufen werden. 46 | Dies kann praktisch sein, um einen schnellen Überblick der konfigurierten Programme und deren Ports zu bekommen oder die Weboberfläche direkt zu erreichen oder zu prüfen, ob das Programm läuft. 47 | Auch wenn es automatisch passiert, kann es hilfreich sein, den Button für die Aktualisierung zu nutzen. So werden die Programme neu eingelesen und geprüft. 48 | 49 | Außerdem kann unter dieser Ansicht auf die Schnelle die eigene Dokumentation für den Home-Server neu generiert werden. -------------------------------------------------------------------------------- /DOCS/DE/docs/start/install.md: -------------------------------------------------------------------------------- 1 | ## Installation 2 | 3 | Dieses Projekt ist ein super einfaches, sauberes und schlankes Installations- und Wartungstool für eine große Anzahl von meist Docker-basierter Home-Automation- und Medien-Software, die leicht über ein sauberes, schlankes und anpassbares Web-Dashboard zugänglich ist. Es wurde für Debian und Raspberry OS entwickelt und funktioniert auf den meisten Architekturen. Vielleicht ist es nicht ganz so einfach zu konfigurieren wie zum Beispiel Home Assistant OS, aber dafür bietet es deutlich mehr Anpassungsoptionen und ermöglicht dir den Umgang mit der docker-compose.yml-Syntax zu erlernen, was ebenfalls ein großartiges Werkzeug ist. Und du musst nicht einmal Home Assistant verwenden, wenn du lieber OpenHAB oder IObroker nutzen möchtest – alles auf einem System. 4 | 5 | Viel Spaß, werde smart und unabhängig! 6 | 7 | ### Einfache Installation: 8 | 9 | Die einfache Installation ist selbsterklärend. 10 | Nach der Anmeldung für den Newsletter ([ENGLISCHER NEWSLETTER](https://ei23.com/newsletter) / [DEUTSCHER NEWSLETTER](https://ei23.de/newsletter)) erhältst du zwei Befehlszeilen, die du über die Konsole oder SSH ausführen musst. 11 | Die erste Zeile lädt das Skript (bash script) herunter, und die zweite Zeile führt es aus. 12 | 13 | *Warum Newsletter?* 14 | 15 | 1. Ich kann dich schnell über Sicherheitslücken und interessante neue Features informieren. 16 | 2. Der Aufbau einer Community wird einfacher. 17 | 3. Ein wenig Werbung für meine Arbeit und das Projekt ist möglich. 18 | 4. Und ich könnte heimlich bösartigen Code in dein Skript einfügen und ein Botnetz aus einer großen Anzahl von Servern erstellen! - Natürlich mache ich das nicht! Oder glaubst du, ich würde das tun? Jetzt bin ich verwirrt... Warum sollte ich das tun, sollte ich es tun? Jetzt bist du verwirrt? Mach einfach keinen Ärger! Ok, zurück zum Thema xD 19 | 20 | Die Dateien vom Newsletter sind identisch mit denen von Github, mit der Ausnahme einer eindeutigen USERID zum Herunterladen von Dateien von meinem Server und dem automatischen Setzen der LANGFILE, abhängig davon, welche Sprache vom Newsletter du wählst. 21 | Außerdem werde ich dich nicht unnötig belästigen, wenn du bedenken hast nutze halt eine Wegwerf-Mail... Dann bin ich allerdings traurig. 22 | 23 | ### Manuelle Installation: 24 | 25 | 1. Klone die Dateien in einen Ordner `git clone https://github.com/ei23com/diy-smart-home.git` 26 | 2. Füge die Sprachdatei deiner Wahl (de-file.txt / en-file.txt) in die ei23.sh ein und ersetze den Platzhalter "LANGFILE_PLACEHOLDER". 27 | 3. Installiere ein frisches Debian / Rasbian-System, melde dich per SSH oder Terminal an und erstelle einen Benutzer wie folgt: "useradd -m ei23" (oder einen anderen Namen). 28 | 4. Kopiere den gesamten Ordner "ei23-docker" in das Home-Verzeichnis des Benutzers (mit Root-Rechten). 29 | 5. Kopiere die ei23.sh in das Home-Verzeichnis des Benutzers. 30 | 6. Führe "bash ei23.sh part1" aus. 31 | 7. Folge den Anweisungen. 32 | 8. Nach dem Neustart führe "ei23" aus, das Skript wird dann die Installation abschließen. 33 | 34 | - Updates von ei23 funktionieren nicht bei manueller Installation (USERID aus dem Newsletter wird benötigt). 35 | - Du wirst keine Versionsnummer sehen und keine Informationen über neue Versionen erhalten (USERID aus dem Newsletter wird benötigt). 36 | - Alles andere funktioniert wie gewohnt. 37 | 38 | ## Nach der Installation 39 | 40 | Nach der Installation findest du auf dem http Port und der IP Adresse deines Servers das [ei23-Dashboard](/start/ei23-dashboard). 41 | Du kannst außerdem nun weitere Programme als [Docker Container installieren](/start/docker-compose) 42 | 43 | ## Weitere Fragen? 44 | 45 | Für alles weitere verweise ich auf die [Häufigen Fragen - FAQ](/start/faq) 46 | -------------------------------------------------------------------------------- /DOCS/DE/docs/start/remote-access.md: -------------------------------------------------------------------------------- 1 | #Noch im Aufbau 2 | 3 | Ich verweise zunächst auf die [Häufigen Fragen - FAQ](/start/faq) 4 | 5 | ## VPN 6 | Über ein VPN wie [Wireguard](/software/wireguard) kannst du ein virtuelles Kabel in dein Heimnetz legen und so von überall sicher (getunnelt) auf dein Heimnetz zugreifen. 7 | 8 | ## Reverse Proxy 9 | Über einen Reverse Proxy kannst du all deine Programme die lokal beispielsweise auf http://192.168.178.20:3000 auf eine Domain https://deinprogramm.deine-domain.de umleiten 10 | 11 | ### NGinx Proxy Manager 12 | Der [NGinx Proxy Manager](https://nginxproxymanager.com/) ist eine einfache Möglichkeit so einen Proxy einzurichten. Die Installation läuft über Docker und ein Template wird über das Skript zur Verfügung gestellt 13 | 14 | ### Traefik 15 | Der [Traefik Reverse Proxy](/software/traefik) ist in der Einrichtung etwas komplitzierter, lässt sich jedoch sehr gut automatisieren. Ich habe dazu eine Anleitung geschrieben 16 | 17 | 18 | ## SSH 19 | [SSH-Verbindungen mit Public Key (Schlüsseldatei) absichern](https://ei23.de/smarthome/ssh-verbindungen-mit-public-key-verfahren-absichern/) 20 | -------------------------------------------------------------------------------- /DOCS/DE/docs/start/security-monitoring.md: -------------------------------------------------------------------------------- 1 | # Sicherheit 2 | 3 | Sicherheit ist ein großes Thema, deswegen gehe ich zunächst nur ganz sporadisch darauf ein: 4 | 5 | - Wenn du nicht weißt, was du tust oder unsicher bist, lass es. 6 | - Grundsätzlich solltest du Ports nach außen nur öffnen, wenn du weißt, was du tust. 7 | - Alles nach dem Motto: **Nur viel wie nötig und so wenig wie möglich** 8 | 9 | Was [Fernzugriff](/start/remote-access) angeht, habe ich bereits einen groben Überblick erstellt. 10 | 11 | Ich verweise ansonsten auf die [Häufigen Fragen - FAQ](/start/faq) 12 | 13 | # Monitoring 14 | 15 | Bei einigen Programmen wird es mit der Zeit klar, dass man nicht mehr ohne kann. 16 | Also sollte man überwachen, ob das Programm ordnungsgemäß läuft. Beim Ausfall kann man so schnell reagieren oder automatisiert Aktionen ausführen. Dafür gibt es verschiedene Dienste, wie beispielsweise [Uptime Kuma](/software/uptimekuma). 17 | Aber auch hier sind die Lösungen sehr individuell und es gilt der Grundsatz Learning by Doing. -------------------------------------------------------------------------------- /DOCS/DE/docs/start/shortcuts.md: -------------------------------------------------------------------------------- 1 | Du kannst diese Kurzbefehle nutzen 2 | -------------------------- 3 | - `ei23 backup` - erstellt ein Backup 4 | - `ei23 dc` - führt Docker Compose aus 5 | - `ei23 docs` - erstellt deine eigenen Dokumente 6 | - `ei23 dstats` - zeigt den Docker-Status an 7 | - `ei23 du` - aktualisiert Docker-Images 8 | - `ei23 ei23update` - aktualisiert nur das ei23-Skript 9 | - `ei23 ei23upgrade` - notwendig bei einem Versionswechsel mit größeren Veränderungen 10 | - `ei23 fullreset X` - reinstalliert Container X und löscht alle Daten!! 11 | - `ei23 ha-addons` - aktualisiert Home Assistant Custom Addons 12 | - `ei23 install-rtl-sdr` - installiert RTL-SDR-Software 13 | - `ei23 newfunctions` - fügt neue Funktionen aus Skript-Updates hinzu 14 | - `ei23 setip` - setzt neue Standard-IP 15 | - `ei23 update` - führt ein vollständiges Update durch -------------------------------------------------------------------------------- /DOCS/DE/docs/stylesheets/extra.css: -------------------------------------------------------------------------------- 1 | [data-md-color-scheme="slate"] { 2 | --md-hue: 200; 3 | --md-default-bg-color: hsla(var(--md-hue),0%,15%,1); 4 | --md-default-fg-color--light: hsla(var(--md-hue),90%,0.62); 5 | --md-code-bg-color: hsla(var(--md-hue),0%,30%,1); 6 | } -------------------------------------------------------------------------------- /DOCS/DE/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: Docs | Smart Home Server by ei23.de 2 | site_url: https://ei23.de 3 | site_author: Felix Grave 4 | site_description: >- 5 | DIY Smart Home 6 | 7 | nav: 8 | - ei23 Smart Home Server: 9 | - Los gehts: index.md 10 | - Installation & erster Start: start/install.md 11 | - Programme installieren & anpassen (Docker-Compose): start/docker-compose.md 12 | - Shortcuts: start/shortcuts.md 13 | - ei23 Dashboard anpassen: start/ei23-dashboard.md 14 | - Update & Upgrade: start/update.md 15 | - Backup & Restore: start/backuprestore.md 16 | # - Changelog: https://github.com/ei23com/diy-smart-home/releases/ 17 | - Changelog: /start/update/#changelog 18 | - Häufige Fragen (FAQ): start/faq.md 19 | - Weitere Fragen?: 'https://ei23.de/donate' 20 | - Smart Home Allgemein: 21 | - Fernzugriff: start/remote-access.md 22 | - Sicherheit & Monitoring: start/security-monitoring.md 23 | - Akzeptanz der Mitbewohner: start/acceptance.md 24 | - Software: 25 | # - Überblick: software/overview.md 26 | - ESPHome: software/esphome.md 27 | - Grafana: software/grafana.md 28 | - Home Assinstant: software/homeassistant.md 29 | - InfluxDB: software/influx.md 30 | - Immich.app lokale Foto Cloud: software/immich.md 31 | - Logitech Media Server & Squeezelite: software/lms.md 32 | - MQTT-Explorer: software/mqttexplorer.md 33 | - Nextcloud: software/nextcloud.md 34 | - Nginx Proxy Manager: software/nginxproxy.md 35 | - NodeRED: software/nodered.md 36 | - PaperlessNGX: software/paperlessngx.md 37 | - Traefik: software/traefik.md 38 | - Uptime Kuma: software/uptimekuma.md 39 | - Vaultwarden/Bitwarden: software/vaultwarden.md 40 | - VSCode: software/vscode.md 41 | - WireguardVPN: software/wireguard.md 42 | - Hardware: 43 | - Struktur: hardware/structure.md 44 | - Server: hardware/server.md 45 | - Edge Devices: hardware/edge-devices.md 46 | 47 | repo_name: ei23com/diy-smart-home 48 | repo_url: https://github.com/ei23com/diy-smart-home 49 | copyright: by ei23.de 50 | 51 | markdown_extensions: 52 | - pymdownx.highlight: 53 | anchor_linenums: true 54 | line_spans: __span 55 | pygments_lang_class: true 56 | - pymdownx.inlinehilite 57 | - pymdownx.snippets 58 | - pymdownx.superfences 59 | - attr_list 60 | - md_in_html 61 | - admonition 62 | 63 | theme: 64 | name: material 65 | language: de 66 | logo: media/ei23.svg 67 | favicon: media/favicon.png 68 | palette: 69 | 70 | # Light mode 71 | - media: "(prefers-color-scheme: light)" 72 | scheme: default 73 | primary: grey 74 | accent: light blue 75 | toggle: 76 | icon: material/toggle-switch-off-outline 77 | name: Switch to dark mode 78 | 79 | # Dark mode 80 | - media: "(prefers-color-scheme: dark)" 81 | scheme: slate 82 | primary: grey 83 | accent: light blue 84 | toggle: 85 | icon: material/toggle-switch 86 | name: Switch to light mode 87 | 88 | features: 89 | - announce.dismiss 90 | - content.code.copy 91 | - content.code.annotate 92 | # - navigation.tabs 93 | # - navigation.instant 94 | # - navigation.sections 95 | # - navigation.top 96 | # - navigation.tracking 97 | # - navigation.footer 98 | - search.highlight 99 | - search.share 100 | - search.suggest 101 | 102 | font: 103 | text: Karla 104 | code: Roboto Mono 105 | 106 | extra_css: 107 | - stylesheets/extra.css 108 | 109 | plugins: 110 | - privacy 111 | - search: 112 | separator: '[\s\u200b\-_,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])' 113 | - minify: 114 | minify_html: true 115 | # - offline 116 | 117 | extra_javascript: 118 | - js/matomo.js 119 | 120 | extra: 121 | social: 122 | - icon: fontawesome/solid/globe 123 | link: 'https://ei23.de' 124 | - icon: fontawesome/brands/youtube 125 | link: 'https://youtube.com/ei23-de' 126 | - icon: fontawesome/brands/github 127 | link: 'https://github.com/ei23com/diy-smart-home' 128 | - icon: fontawesome/brands/discord 129 | link: 'https://ei23.de/discord' 130 | - icon: fontawesome/brands/telegram 131 | link: 'https://t.me/ei23de' -------------------------------------------------------------------------------- /DOCS/EN/docs/hardware/edge-devices.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/hardware/server.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/hardware/structure.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/js/matomo.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DOCS/EN/docs/media/ei23.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DOCS/EN/docs/media/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/DOCS/EN/docs/media/favicon.png -------------------------------------------------------------------------------- /DOCS/EN/docs/software/esphome.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/software/grafana.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/software/homeassistant.md: -------------------------------------------------------------------------------- 1 | # Home Assistant 2 | (Still under construction) 3 | 4 | ## Switching from Home Assistant OS to Home Assistant Docker using the ei23 script 5 | Home Assistant OS is [somewhat different](/software/homeassistant/#home-assistant-docker-vs-supervised-home-assistant) in structure, but ultimately runs the exact same version of Home Assistant as in my script. To restore a backup from Home Assistant OS to Home Assistant Docker using the ei23 script, follow these steps: 6 | 7 | 1. Create a backup with Home Assistant OS using the backup function of the web interface. 8 | 2. Save the *.tar file. The structure is as follows: `backup.tar\homeassistant.tar.gz\homeassistant.tar\data\` 9 | 3. Copy the contents into this folder on my system: `/home/user/ei23-docker/volumes/homeassistant/config` 10 | 4. Restart your System or the Home Assistant Docker Container with `docker restart homeassistant` 11 | 5. After restarting Home Assistant Docker, the backup will be read, and you should find your familiar system again. 12 | 13 | ## Home Assistant Docker vs. Supervised Home Assistant 14 | 15 | There are two versions of Home Assistant: 16 | 17 | 1. Home Assistant Docker 18 | 2. Supervised Home Assistant (also known as Home Assistant OS) 19 | 20 | In this script, we use Home Assistant Docker. While this has disadvantages on one side, it offers significantly more advantages on the other. The "disadvantages" include the absence of "Addons" in the sense of Home Assistant OS and the necessary configuration of hardware via the [docker-compose.yml](/start/docker-compose). It is important to mention that technically, the addons are pre-configured Docker containers. The Supervisor only takes care of part of the configuration. However, this script provides the [docker-compose Templates](/start/docker-compose), which simplify the configuration. 21 | Moreover, [integrating hardware](#hardware) is not complicated with a few instructions. 22 | 23 | A disadvantage of Home Assistant OS is that if an "Addon" is not available for Home Assistant OS, one relies on developers or the community to create one. However, the number of available Docker images is disproportionately larger, which is a major advantage. Additionally, creating custom Docker images or installing native programs on the Linux host operating system is not very difficult. However, installing software on the host system is only recommended to a limited extent. 24 | 25 | There is occasionally a misconception that the Docker version of Home Assistant offers fewer capabilities. This is only the case if one does not know how to use them correctly. In fact, Home Assistant OS actively restricts these capabilities for the sake of user-friendliness. Or one could express it in Apple terms: "think different" ;-) 26 | 27 | Therefore, we use Home Assistant Docker. 28 | 29 | ## Integrating Hardware 30 | Partially described in [docker-compose](/start/docker-compose). 31 | 32 | ## Securing Home Assistant over HTTPS 33 | See [Reverse Proxy with Traefik](/software/traefik) or [Reverse Proxy with Nginx](/software/nginxproxy) -------------------------------------------------------------------------------- /DOCS/EN/docs/software/immich.md: -------------------------------------------------------------------------------- 1 | # Immich.app private Photo Cloud 2 | Immich.app is an open-source project that outshines many photo cloud solutions, not only because it is ostensibly "free" (in terms of open source) but also because it runs on your own server. 3 | 4 | I've created a video on this (german audio - english subtitles): 5 | [![YT](https://ei23.de/bilder/YTthumbs/8IWbTQAdxZ8.webp)](https://www.youtube.com/watch?v=8IWbTQAdxZ8) -------------------------------------------------------------------------------- /DOCS/EN/docs/software/influx.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/software/lms.md: -------------------------------------------------------------------------------- 1 | # Logitech Media Server & Squeezelite 2 | With Logitech Media Server and Squeezelite, you can create a system-independent multi-room audio system. It integrates seamlessly into Home Assistant, allows for synchronized speakers, and plays your own music from the home server. It also supports Internet radio and services like Spotify! 3 | I really like it! 4 | 5 | I've created a video on this (german audio - english subtitles): 6 | [![YT](https://ei23.de/bilder/YTthumbs/DwotxrCvHTA.webp)](https://www.youtube.com/watch?v=DwotxrCvHTA) 7 | -------------------------------------------------------------------------------- /DOCS/EN/docs/software/mqttexplorer.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/software/nextcloud.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/software/nginxproxy.md: -------------------------------------------------------------------------------- 1 | [nginxproxymanager.com](https://nginxproxymanager.com/) -------------------------------------------------------------------------------- /DOCS/EN/docs/software/nodered.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | TODO... 3 | Videos will likely be inserted here. 4 | 5 | # Nodes 6 | Nodes are the central components of NodeRED. 7 | [Subflows](#subflows) can visually resemble nodes and behave like them, but technically, they are only a composition of nodes. 8 | 9 | ## Setting up the MQTT Node (Mosquitto) 10 | TODO 11 | 12 | ## Setting up the Home Assistant Node 13 | TODO 14 | 15 | ## Setting up the Telegram Node 16 | TODO 17 | 18 | ## Inject Node 19 | TODO 20 | 21 | ## Debug Node 22 | TODO 23 | 24 | ## Config Nodes 25 | TODO 26 | 27 | # Flows 28 | 29 | ## Pages 30 | TODO 31 | 32 | ## Subflows 33 | TODO 34 | 35 | ## Flow Library 36 | TODO 37 | 38 | # Variables and Context -------------------------------------------------------------------------------- /DOCS/EN/docs/software/overview.md: -------------------------------------------------------------------------------- 1 | # Overview -------------------------------------------------------------------------------- /DOCS/EN/docs/software/paperlessngx.md: -------------------------------------------------------------------------------- 1 | # Paperless-NGX 2 | 3 | Paperless-NGX is a free document management software with text recognition (OCR). 4 | [docs.paperless-ngx.com](https://docs.paperless-ngx.com/) 5 | It provides an elegant solution for digitizing paper documents and consolidating their digital counterparts in PDF or image formats. There are apps available, making it a truly helpful tool for managing paperwork. 6 | I now scan everything that comes in directly and simply place it in a box. In theory, I could even burn the paper (but I don't have a fireplace). I also directly import PDF files, keeping everything in one place. 7 | Therefore, Paperless-NGX is an integral part of my SmartHome script. 8 | 9 | Video link (german audio - english subtitles): 10 | [![YT](https://ei23.de/bilder/YTthumbs/qyXz5gJnu_8.webp)](https://www.youtube.com/watch?v=qyXz5gJnu_8) -------------------------------------------------------------------------------- /DOCS/EN/docs/software/uptimekuma.md: -------------------------------------------------------------------------------- 1 | # Uptime Kuma 2 | Uptime Kuma is a straightforward monitoring tool. It allows you to monitor which services and devices are running properly and, if necessary, send a notification about an issue. This can be quite practical, which is why I have created a dedicated video (german audio - english subtitles) for it. 3 | 4 | [![YT](https://ei23.de/bilder/YTthumbs/Nr-re1kszvk.webp)](https://www.youtube.com/watch?v=Nr-re1kszvk) -------------------------------------------------------------------------------- /DOCS/EN/docs/software/vaultwarden.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/software/vscode.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/software/wireguard.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/start/acceptance.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/start/backuprestore.md: -------------------------------------------------------------------------------- 1 | ## Here's a video (German) about backup and its restoration 2 | The script will soon be expanded with a simplified restore function. 3 | [![YT](https://ei23.de/bilder/YTthumbs/_yG0uWeRCDI.webp)](https://www.youtube.com/watch?v=_yG0uWeRCDI) 4 | 5 | ## Switching from Home Assistant OS to Home Assistant Docker using the ei23 script 6 | If you are switching from Home Assistant OS to the ei23 script, you will find a [description for restoration](/software/homeassistant/#switching-from-home-assistant-os-to-home-assistant-docker-using-the-ei23-script) here. -------------------------------------------------------------------------------- /DOCS/EN/docs/start/docker-compose.md: -------------------------------------------------------------------------------- 1 | # Installing Programs as Containers 2 | 3 | Get familiar with editing the [docker-compose.yml](https://docs.docker.com/compose/compose-file/compose-file-v3/). You can find it under `/home/[user]/ei23-docker/docker-compose.yml`. 4 | 5 | **I have created a detailed video on this (it's german audio but english subtitles):** 6 | [![YT](https://ei23.de/bilder/YTthumbs/teV-yfBoTuA.webp)](https://www.youtube.com/watch?v=teV-yfBoTuA) 7 | 8 | For editing, you need to be logged in as the "root" user, or use something like `sudo nano /home/[user]/ei23-docker/docker-compose.yml` to gain write permissions. Alternatively, you can also edit the file in a web browser using [VSCode](/software/vscode/). There are templates, or "installation templates," available for later installation in `/home/pi/ei23-docker/compose_templates`. You can use them and copy them accordingly into the docker-compose.yml. 9 | 10 | After adjusting the docker-compose.yml (Note: incorrect indentation can cause the installation to not execute correctly), you only need to run `ei23` and then "Docker Compose" or `ei23 dc`. 11 | 12 | Depending on the architecture (armv7/arm64/amd64), there might not be a current image of the container. You can check this for example on [hub.docker.com](https://hub.docker.com/). If necessary, you may need to revert to an older image - in the example below, `:1.24.0` was appended. 13 | 14 | It's also possible that a port is already in use. Docker's routing works similarly to port forwarding on a regular router. The notation is as follows (also for volumes and devices): 15 | 16 | ```yaml 17 | Host system:Container 18 | ``` 19 | 20 | You can easily forward any ports. In the example below, `8080` represents the external port, the one accessible on the computer. The back port is only accessible internally within Docker. This works similarly for folders, devices, etc., on the host system - very convenient and secure! 21 | 22 | Example: 23 | ```yaml 24 | image: nginx:1.24.0 25 | volumes: 26 | - ./volumes/nginx:/etc/nginx/templates 27 | ports: 28 | - 8080:80 #(1) 29 | devices: 30 | - /dev/video0:/dev/video0 31 | ``` 32 | 33 | 1. `8080` is the external port (host) here, and `80` is the internal port (container). Essentially, similar to a router/modem. -------------------------------------------------------------------------------- /DOCS/EN/docs/start/ei23-dashboard.md: -------------------------------------------------------------------------------- 1 | # The ei23 Dashboard / The Supervisor 2 | ![ei23 Dashboard](https://ei23.de/bilder/dashboard01.jpg) 3 | 4 | Since version 1.1 of the ei23 Smart Home Server, the Dashboard has changed fundamentally. 5 | It is now not only a display of available programs, but also a supervisor. At least the foundation is already in place. This means that you can soon install some programs via the Dashboard and manage system functions as well. 6 | 7 | ## Adapting Programs in the Dashboard 8 | 9 | To link programs and external links such as cameras or other devices or websites on the Dashboard, you can modify the `programs.json`. 10 | The file is located at `/home/[user]/ei23-docker/volumes/ei23/web/static/programs.json` 11 | !!!note 12 | [user] must be replaced with your username in this place. 13 | 14 | ### Explanation of `programs.json` 15 | ```json 16 | {"programs": [ 17 | {"active": true, "port": "", "custom_url": "http://10.1.1.11:1880", "name": "NodeRED", "title": "Garage", "img": "img/nodered.png"}, // (1) 18 | {"active": true, "port": "4004", "custom_url": "", "name": "MQTT-Explorer", "title": "MQTT-Explorer", "img": "img/mqtt-explorer.png"}, // (2) 19 | {"active": false, "port": "", "custom_url": "http://10.1.1.12", "name": "Garden Camera", "title": "Beautiful Garden", "img": "img/camera.png"}, // (3) 20 | {"active": true, "port": "3000", "custom_url": "", "name": "Grafana", "title": "Data Visualization", "img": "img/grafana.png"} // (4) 21 | ]} 22 | ``` 23 | 24 | 1. Here "http://10.1.1.11:1880" is a custom URL, which can also be an external address. 25 | 2. If no custom URL is set, the port is combined with the IP address of the device. For example http://10.1.1.2:4004 26 | 3. Since Active is set to False, this entry will not be displayed. A generic icon is also used here. Some are available in the img folder. 27 | 4. In the last entry, it is important that no comma is placed after the curly brace. 28 | 29 | !!!note 30 | 1. Here "http://10.1.1.11:1880" is a custom URL, which can also be an external address. 31 | 2. If no custom URL is set, the port is combined with the IP address of the device. For example http://10.1.1.2:4004 32 | 3. Since Active is set to False, this entry will not be displayed. A generic icon is also used here. Some are available in the img folder. 33 | 4. In the last entry, it is important that no comma is placed after the curly brace. 34 | 35 | 36 | 37 | ## Network: List and Control Network Devices 38 | 39 | ![ei23 Dashboard](https://ei23.de/bilder/dashboard02.jpg) 40 | The network page allows you to scan devices on the network, display their hostname, IP address, MAC address, and manufacturer information. If a web port 80 is detected, it means the device has a web interface available, which will be directly linked and the device marked blue. 41 | 42 | ## Server: Check installed Docker Compose Programs 43 | 44 | ![ei23 Dashboard](https://ei23.de/bilder/dashboard03.jpg) 45 | This view automatically searches the [docker-compose.yml](docker-compose.md) file for installed and running containers or programs, creating and displaying a list. 46 | If a web port is detected, the program is marked accordingly and can also be accessed directly. 47 | This can be practical to quickly get an overview of the configured programs and their ports, or to directly reach the web interface or check if the program is running. 48 | Even though it happens automatically, it can be helpful to use the update button. This will re-read and check the programs. 49 | 50 | Furthermore, under this view, you can quickly regenerate your own documentation for the home server. -------------------------------------------------------------------------------- /DOCS/EN/docs/start/install.md: -------------------------------------------------------------------------------- 1 | #Work in progress 2 | 3 | Please read the [Frequently Asked Questions - FAQ](/start/faq) 4 | -------------------------------------------------------------------------------- /DOCS/EN/docs/start/remote-access.md: -------------------------------------------------------------------------------- 1 | # Still under construction 2 | 3 | I refer you to the [Frequently Asked Questions - FAQ](/start/faq) first. 4 | 5 | ## VPN 6 | With a VPN like [Wireguard](/software/wireguard) you can lay a virtual cable to your home network and thus access your home network securely (tunneled) from anywhere. 7 | 8 | ## Reverse Proxy 9 | With a reverse proxy, you can redirect all your programs that are locally running, for example on http://192.168.178.20:3000, to a domain https://deinprogramm.deine-domain.de. 10 | 11 | ### NGinx Proxy Manager 12 | The [NGinx Proxy Manager](https://nginxproxymanager.com/) is an easy way to set up such a proxy. Installation takes place via Docker and a template is provided via the script. 13 | 14 | ### Traefik 15 | The [Traefik Reverse Proxy](/software/traefik) is a bit more complex to set up, but can be automated very well. I have written a guide for this purpose. 16 | 17 | 18 | ## SSH 19 | [Securing SSH connections with Public Key (Key file) - GERMAN BLOG](https://ei23.de/smarthome/ssh-verbindungen-mit-public-key-verfahren-absichern/) 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /DOCS/EN/docs/start/security-monitoring.md: -------------------------------------------------------------------------------- 1 | # Security 2 | 3 | Security is a big topic, so I'll only briefly touch on it for now: 4 | 5 | - If you don't know what you're doing or are unsure, just leave it. 6 | - As a general rule, you should only open ports outward if you know what you're doing. 7 | - Everything according to the motto: **Only as much as necessary and as little as possible** 8 | 9 | Regarding [Remote Access](/start/remote-access), I have already created a rough overview. 10 | 11 | Otherwise, I refer to the [Frequently Asked Questions - FAQ](/start/faq) 12 | 13 | # Monitoring 14 | 15 | With some programs, it becomes clear over time that you can't do without them anymore. Therefore, it is important to monitor whether the program is running properly. When problems occur, you can react quickly or automatically execute actions. There are various services for this, such as [Uptime Kuma](/software/uptimekuma). 16 | But even here, the solutions are very individual and the principle "Learning by Doing" applies. -------------------------------------------------------------------------------- /DOCS/EN/docs/start/shortcuts.md: -------------------------------------------------------------------------------- 1 | You can use this shortcuts 2 | -------------------------- 3 | - `ei23 backup` - creates a backup 4 | - `ei23 dc` - runs Docker compose 5 | - `ei23 docs` - builds your own docs 6 | - `ei23 dstats` - show Docker status 7 | - `ei23 du` - updates Docker images 8 | - `ei23 ei23update` - updates ei23-script only 9 | - `ei23 fullreset X` - reinstall container X and delete all its data 10 | - `ei23 ha-addons` - updates Home Assistant custom addons 11 | - `ei23 install-rtl-sdr` - install RTL-SDR software 12 | - `ei23 newfunctions` - add new functions from script-updates 13 | - `ei23 setip` - set new default IP 14 | - `ei23 update` - run full update -------------------------------------------------------------------------------- /DOCS/EN/docs/start/update.md: -------------------------------------------------------------------------------- 1 | ## Changelog 2 | 3 | ### v1.11 4 | #### What's New? [Here's a Video (German Audio)](https://youtu.be/_eBfsc9YRHE) 5 | - Improved dashboard with automatic display/hide of deactivated Docker programs 6 | - Enhanced server overview 7 | - Resource display (RAM / DISK) 8 | - Storage occupancy by folders 9 | - Port of the ei23-supervisors can be changed [see ei23-supervisor.py](https://github.com/ei23com/diy-smart-home/blob/main/ei23-docker/volumes/ei23/ei23-supervisor.py#L22) 10 | 11 | ### v1.1 - Version 1.1 of the script is available! Hooray! 12 | 13 | #### What's New? [Watch the Video Here (German Audio)](https://youtu.be/Ar_j29EbX98) 14 | 15 | - The [dashboard](/start/ei23-dashboard/) has been revamped and now includes: 16 | - An IP scanner for the local network (similar to routers, but more practical and faster) 17 | - An overview of configured programs in docker-compose and [programs.json](/start/ei23-dashboard/) 18 | - [Home Assistant](/software/homeassistant/) receives an [addon function](https://github.com/ei23com/diy-smart-home/blob/main/ei23-docker/custom_ha_addons-example.sh). This allows automatic updates of community integrations - similar to HACS, but simpler and without linking to a GitHub account. 19 | - The script is now available on GitHub - contributions are welcome. 20 | - You are currently reading the new documentation. 21 | 22 | #### Breaking Changes 23 | 24 | As explained in the [video](https://youtu.be/Ar_j29EbX98): 25 | The dashboard no longer runs as a Docker container but now as a Python server at the system level. 26 | 27 | 1. Remove and stop the ei23 Docker container from the [Docker-Compose](/start/docker-compose/). 28 | ```bash 29 | docker stop ei23 30 | ``` 31 | 32 | 2. Perform the update. 33 | ```bash 34 | ei23 ei23update 35 | ei23 ei23upgrade 36 | ``` 37 | 38 | 3. Restart the new [ei23 Supervisor](/start/ei23-dashboard/). 39 | ```bash 40 | sudo systemctl restart ei23.service 41 | ``` 42 | 43 | #### Troubleshooting 44 | If the dashboard is not accessible, stop the server with: 45 | ```bash 46 | sudo systemctl stop ei23.service 47 | ``` 48 | 49 | Manually start the server with this command: 50 | ```bash 51 | cd ei23-docker/volumes/ei23/; sudo .venv/bin/python3 ei23-supervisor.py 52 | ``` 53 | If there are error messages indicating that "Flask" is not working correctly or missing, the Python Virtual Environment was not installed correctly. 54 | Python has required a Virtual Environment (.venv) for extensions for some time now. 55 | [externally-managed-environments](https://packaging.python.org/en/latest/specifications/externally-managed-environments/) 56 | 57 | This is also the reason why the MKDocs installation has not been functioning correctly for some time. I have fixed this issue with the Virtual Environment. 58 | 59 | On older or 32-bit systems, installing python3-venv may cause problems and prevent the new dashboard from starting. 60 | It is necessary to ensure that the python3-venv package is correctly installed: 61 | ```bash 62 | sudo apt-get install python3-venv -y # (1) 63 | ei23 ei23update 64 | ei23 ei23upgrade 65 | sudo systemctl restart ei23.service # (2) 66 | ``` 67 | 68 | 1. Only proceed to the following commands if this command is executed without errors. 69 | 2. This command restarts the server. The server should now be accessible. 70 | 71 | 72 | If this does not work either, you can still try it manually: 73 | 74 | ```bash 75 | sudo apt-get update 76 | sudo python3 -m venv .venv 77 | sudo su 78 | cd ei23-docker/volumes/ei23/ 79 | python3 -m venv .venv 80 | source .venv/bin/activate 81 | pip3 install --upgrade pip 82 | pip3 install flask waitress mkdocs-material ruamel.yaml 83 | exit 84 | sudo systemctl enable ei23.service 85 | sudo systemctl start ei23.service 86 | ``` 87 | 88 | This will display all error messages that may occur during installation. If this still does not help, a new installation is probably the easier way. 89 | 90 | --- 91 | 92 | If the original programs are not visible: 93 | ```bash 94 | sudo cp ei23-docker/volumes/ei23/web/programs.json ei23-docker/volumes/ei23/web/static/programs.json 95 | ``` 96 | --- 97 | If the hostnames in the IP scan list are not visible, an update of arp-scan can be performed: 98 | ```bash 99 | sudo apt-get update 100 | sudo apt-get install -y build-essential autoconf automake libtool pkg-config libpcap-dev 101 | git clone https://github.com/royhills/arp-scan.git 102 | cd arp-scan 103 | autoreconf --install 104 | ./configure 105 | make 106 | sudo make install 107 | cd ~ 108 | rm -r arp-scan/ 109 | ``` -------------------------------------------------------------------------------- /DOCS/EN/docs/stylesheets/extra.css: -------------------------------------------------------------------------------- 1 | [data-md-color-scheme="slate"] { 2 | --md-hue: 200; 3 | --md-default-bg-color: hsla(var(--md-hue),0%,15%,1); 4 | --md-default-fg-color--light: hsla(var(--md-hue),90%,0.62); 5 | --md-code-bg-color: hsla(var(--md-hue),0%,30%,1); 6 | } -------------------------------------------------------------------------------- /DOCS/EN/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: Docs | Smart Home Server by ei23.com 2 | site_url: https://ei23.com 3 | site_author: Felix Grave 4 | site_description: >- 5 | DIY Smart Home 6 | 7 | nav: 8 | - ei23 Smart Home Server: 9 | - Getting Started: index.md 10 | - Installation & Initial Setup: start/install.md 11 | - Installing and Customizing Programs (Docker-Compose): start/docker-compose.md 12 | - Shortcuts: start/shortcuts.md 13 | - Customize ei23 Dashboard: start/ei23-dashboard.md 14 | - Update & Upgrade: start/update.md 15 | - Backup & Restore: start/backuprestore.md 16 | # - Changelog: https://github.com/ei23com/diy-smart-home/releases/ 17 | - Changelog: /start/update/#changelog 18 | - Frequently Asked Questions (FAQ): start/faq.md 19 | - More Questions?: 'https://ei23.com/donate' 20 | - Smart Home General: 21 | - Remote Access: start/remote-access.md 22 | - Security & Monitoring: start/security-monitoring.md 23 | - Family Acceptance: start/acceptance.md 24 | - Software: 25 | # - Overview: software/overview.md 26 | - ESPHome: software/esphome.md 27 | - Grafana: software/grafana.md 28 | - Home Assistant: software/homeassistant.md 29 | - InfluxDB: software/influx.md 30 | - Immich.app Local Photo Cloud: software/immich.md 31 | - Logitech Media Server & Squeezelite: software/lms.md 32 | - MQTT Explorer: software/mqttexplorer.md 33 | - Nextcloud: software/nextcloud.md 34 | - NodeRED: software/nodered.md 35 | - PaperlessNGX: software/paperlessngx.md 36 | - Nginx Proxy Manager: software/nginxproxy.md 37 | - Traefik: software/traefik.md 38 | - Uptime Kuma: software/uptimekuma.md 39 | - Vaultwarden/Bitwarden: software/vaultwarden.md 40 | - VSCode: software/vscode.md 41 | - Wireguard VPN: software/wireguard.md 42 | - Hardware: 43 | - Structure: hardware/structure.md 44 | - Server: hardware/server.md 45 | - Edge Devices: hardware/edge-devices.md 46 | 47 | repo_name: ei23com/diy-smart-home 48 | repo_url: https://github.com/ei23com/diy-smart-home 49 | copyright: by ei23.com 50 | 51 | markdown_extensions: 52 | - pymdownx.highlight: 53 | anchor_linenums: true 54 | line_spans: __span 55 | pygments_lang_class: true 56 | - pymdownx.inlinehilite 57 | - pymdownx.snippets 58 | - pymdownx.superfences 59 | - attr_list 60 | - md_in_html 61 | - admonition 62 | 63 | theme: 64 | name: material 65 | language: en 66 | logo: media/ei23.svg 67 | favicon: media/favicon.png 68 | palette: 69 | 70 | # Light mode 71 | - media: "(prefers-color-scheme: light)" 72 | scheme: default 73 | primary: grey 74 | accent: light blue 75 | toggle: 76 | icon: material/toggle-switch-off-outline 77 | name: Switch to dark mode 78 | 79 | # Dark mode 80 | - media: "(prefers-color-scheme: dark)" 81 | scheme: slate 82 | primary: grey 83 | accent: light blue 84 | toggle: 85 | icon: material/toggle-switch 86 | name: Switch to light mode 87 | 88 | features: 89 | - announce.dismiss 90 | - content.code.copy 91 | - content.code.annotate 92 | # - navigation.tabs 93 | # - navigation.instant 94 | # - navigation.tabs.sticky 95 | # - navigation.sections 96 | # - navigation.top 97 | # - navigation.tracking 98 | # - navigation.footer 99 | - search.highlight 100 | - search.share 101 | - search.suggest 102 | 103 | font: 104 | text: Karla 105 | code: Roboto Mono 106 | 107 | extra_css: 108 | - stylesheets/extra.css 109 | 110 | plugins: 111 | - privacy 112 | - search: 113 | separator: '[\s\u200b\-_,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])' 114 | - minify: 115 | minify_html: true 116 | # - offline 117 | 118 | extra_javascript: 119 | - js/matomo.js 120 | 121 | extra: 122 | social: 123 | - icon: fontawesome/solid/globe 124 | link: 'https://ei23.com' 125 | - icon: fontawesome/brands/youtube 126 | link: 'https://youtube.com/ei23-de' 127 | - icon: fontawesome/brands/github 128 | link: 'https://github.com/ei23com/diy-smart-home' 129 | - icon: fontawesome/brands/discord 130 | link: 'https://ei23.de/discord' 131 | - icon: fontawesome/brands/telegram 132 | link: 'https://t.me/ei23de' -------------------------------------------------------------------------------- /DOCS/guidelines.md: -------------------------------------------------------------------------------- 1 | # DE 2 | ## Allgemeines 3 | - Die Dokumentation wird kuratiert und moderiert, nicht alles kann und wird einfließen. 4 | - Pull Requests bitte nicht nur skizzieren, sondern vervollständigen. 5 | - keep it simple and short stupid, wait KIS ASS? ([KISS](https://en.wikipedia.org/wiki/KISS_principle)) 6 | - Bitte in [Markdown](https://en.wikipedia.org/wiki/Markdown) 7 | - Bitte keine Beschreibungen und Anleitungen von Programmen wenn diese bereits vom jeweiligen Projekt gut dokumentiert wurden. Dinge ändern sich schnell, bitte auch hin und wieder die Links prüfen. 8 | - Keine Links zu kommerziellen Webseiten wie beispielsweise Heise, CT o.ä. (Es scheint wird dieses Projekt als Konkurrenz gesehen. Verständlich, da ich üblicherweise kostenpflichtige Anleitung teilweise kostenlos anbiete) 9 | 10 | ## Erwünschtes 11 | - Nutzungsbeispiele für das Skript 12 | - Best Practises - Vorgehensweisen bei bestimmten Anforderungen und Problemen 13 | - Beispiele die in Programm Docs fehlen 14 | - Vorschläge übersichtliche Dokumentationstruktur 15 | 16 | ## Struktur der Dokumentation 17 | Die aktuelle Struktur findet sich in der [mkdocs.yml](DE/mkdocs.yml) der jeweiligen Dokumentation 18 | 19 | --- 20 | 21 | # ENG 22 | ## General 23 | - The documentation is curated and moderated; not everything can or will be included. 24 | - Please create pull requests not only as outlines but in complete form. 25 | - Keep it simple and short, stupid. Wait, KIS ASS? ([KISS](https://en.wikipedia.org/wiki/KISS_principle)) 26 | - Please use [Markdown](https://en.wikipedia.org/wiki/Markdown). 27 | - Avoid descriptions and instructions for programs that already have official documentation. If possible, provide appropriate links and keep them up to date. 28 | - No links to commercial websites such as Heise, CT, etc. (It seems this project is perceived as competitor. Understandable, as I usually offer partially paid instructions for free.) 29 | 30 | ## Desired 31 | - Usecases for the script. 32 | - Best practices - approaches to specific requirements and issues. 33 | - Examples missing in program docs. 34 | - Suggestions for an organized documentation structure. 35 | 36 | ## Documentation Structure 37 | The current structure can be found in the [mkdocs.yml](EN/mkdocs.yml) of the respective documentation. 38 | 39 | -------------------------------------------------------------------------------- /EN/docs/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: Docs | SmartHome-Server ei23.com 2 | nav: 3 | - Start: 4 | - Startseite: index.md 5 | - Beispiel Seite: sample.md 6 | - Weitere Anleitungen: 7 | - Beispiel Seite 1: sample.md 8 | - Beispiel Seite 2: sample.md 9 | - Beispiel Seite 3: sample.md 10 | 11 | theme: 12 | name: material 13 | language: de 14 | logo: media/ei23.svg 15 | favicon: media/favicon.png 16 | palette: 17 | 18 | # Light mode 19 | - media: "(prefers-color-scheme: light)" 20 | scheme: default 21 | primary: grey 22 | accent: light blue 23 | toggle: 24 | icon: material/toggle-switch-off-outline 25 | name: Switch to dark mode 26 | 27 | # Dark mode 28 | - media: "(prefers-color-scheme: dark)" 29 | scheme: slate 30 | primary: grey 31 | accent: light blue 32 | toggle: 33 | icon: material/toggle-switch 34 | name: Switch to light mode 35 | 36 | font: 37 | text: Karla 38 | code: Roboto Mono 39 | 40 | extra_css: 41 | - stylesheets/extra.css 42 | 43 | plugins: 44 | - privacy 45 | - search: 46 | separator: '[\s\u200b\-_,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])' 47 | # - offline 48 | 49 | extra: 50 | social: 51 | - icon: fontawesome/solid/globe 52 | link: 'https://ei23.com' 53 | - icon: fontawesome/brands/youtube 54 | link: 'https://youtube.com/ei23-de' 55 | - icon: fontawesome/brands/github 56 | link: 'https://github.com/ei23com/diy-smart-home' 57 | - icon: fontawesome/brands/discord 58 | link: 'https://ei23.de/discord' 59 | - icon: fontawesome/brands/telegram 60 | link: 'https://t.me/ei23de' -------------------------------------------------------------------------------- /EN/web/bottom-logo.html: -------------------------------------------------------------------------------- 1 | 8 | 9 | ei23.com
SmartHome-Server
10 |
11 | 12 |
{{ disk | safe}}
13 |
{{ ram | safe}}
14 |
15 | 16 |
17 |
18 | -------------------------------------------------------------------------------- /EN/web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SmartHome-Server 5 | {{ header | safe}} 6 | 7 | 8 |
9 | {{ navbar | safe}} 10 |
11 |
12 | {{ items | safe}} 13 |
14 | {{ bottom_logo | safe}} 15 |
16 |
17 | 18 | 43 | -------------------------------------------------------------------------------- /EN/web/localnet.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SmartHome-Server | LocalNet 6 | {{ header | safe}} 7 | 8 | 9 | 10 |
11 | {{ navbar | safe}} 12 |
13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | {{ scan_result | safe}} 22 |
HOSTIPMACMANUFACTURER
23 |
24 | NETSCAN 25 | {{ bottom_logo | safe}} 26 |
27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /EN/web/navbar.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /EN/web/server.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SmartHome-Server | Server 6 | {{ header | safe}} 7 | 8 | 9 | 10 |
11 | {{ navbar | safe}} 12 |
13 |
14 |
15 |
16 | Refresh Dashboard 17 | Rebuild Docs 18 | Show Structured Storage 19 | *SLOW! If you have many files 20 |
21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | {{ table | safe}} 33 |
ContainerPortHTTP*
34 |
*shows status of active HTTP ports
35 |
36 |
37 |
38 | 45 |
46 | {{ bottom_logo | safe}} 47 |
48 | 49 | 50 | -------------------------------------------------------------------------------- /ei23-docker/backup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # THIS FILE GETS OVERWRITTEN WITH EVERY ei23 UPDATE 4 | # YOUR OWN CHANGES CAN BE FOUND IN YOUR LAST BACKUP OR THEY ARE LOST 5 | # YOUR OWN BACKUP goes here: $HOME/ei23-docker/custom_backup.sh 6 | # 7 | backuppfad="$HOME/backup" 8 | volumes="$HOME/ei23-docker/volumes" 9 | backupfile=HomeServerBackup-$(date +"%Y-%m-%d_%H-%M").tar.gz 10 | # Backup InfluxDB 11 | sudo rm -r $HOME/ei23-docker/backups/ 12 | cd ~ 13 | mkdir -p $backuppfad/temp/node-red 14 | mkdir -p $backuppfad/temp/volumes/ei23/web/ 15 | mkdir -p $backuppfad/temp/backups/influxdb/db 16 | mkdir -p $backuppfad/temp/volumes/motioneye/ 17 | mkdir -p $backuppfad/temp/volumes/nextcloud/html/data 18 | # Backup NodeRED 19 | sudo rsync -a --exclude 'node_modules' $HOME/.node-red/ $backuppfad/temp/node-red/ 20 | # Backup Docker-Compose file 21 | sudo cp $HOME/ei23-docker/docker-compose.yml $backuppfad/temp/docker-compose.yml 22 | # Backup some essential Docker volumes 23 | sudo rsync -a $HOME/ei23-docker/backups/influxdb/db/ $backuppfad/temp/backups/influxdb/db 24 | sudo rsync -a --max-size=20k $volumes/motioneye/data/ $backuppfad/temp/volumes/motioneye/data 25 | nextcloud_data=$(sudo ls $volumes/nextcloud/html/data/ | grep "^appdata_" | head -n 1) 26 | sudo rsync -a --include={"config", "$volumes/nextcloud/html/data/"{"owncloud.db","$nextcloud_data/"{"appstore","theming","identityproof"}}} --exclude="*" $volumes/nextcloud/html/ $backuppfad/temp/volumes/nextcloud/html/ 27 | sudo rsync -a $volumes/grafana/ $backuppfad/temp/volumes/grafana 28 | sudo rsync -a $volumes/influxdb/ $backuppfad/temp/volumes/influxdb 29 | sudo rsync -a $volumes/wireguard/ $backuppfad/temp/volumes/wireguard 30 | sudo rsync -a $volumes/tasmoadmin/ $backuppfad/temp/volumes/tasmoadmin 31 | sudo rsync -a $volumes/bitwarden/ $backuppfad/temp/volumes/bitwarden 32 | sudo rsync -a $volumes/ei23/web/static/programs.json $backuppfad/temp/volumes/ei23/web/static/programs.json 33 | sudo rsync -a --exclude '*.log*' $volumes/mosquitto/ $backuppfad/temp/volumes/mosquitto 34 | sudo rsync -a --exclude '*.log*' $volumes/traefik/ $backuppfad/temp/volumes/traefik 35 | sudo rsync -a --exclude '*.db' $volumes/pihole/ $backuppfad/temp/volumes/pihole 36 | docker stop homeassistant 37 | sudo rsync -a --exclude 'core' --exclude 'backups' --exclude '*.log' $volumes/homeassistant/ $backuppfad/temp/volumes/homeassistant 38 | docker start homeassistant 39 | sudo rsync -a --exclude '.esphome' $volumes/esphome/ $backuppfad/temp/volumes/esphome 40 | sudo rsync -a --max-size=50k $volumes/rhasspy/ $backuppfad/temp/volumes/rhasspy 41 | sudo cp /etc/samba/smb.conf $backuppfad/temp/smb.conf 42 | sudo cp /boot/config.txt $backuppfad/temp/bootconfig.txt 43 | sudo cp /boot/cmdline.txt $backuppfad/temp/bootcmdline.txt 44 | # your custom backup 45 | source $HOME/ei23-docker/custom_backup.sh 46 | # Backup Backup File 47 | sudo cp $HOME/ei23-docker/backup.sh $backuppfad/temp/backup.sh 48 | # Backup Terminal History 49 | sudo cp .bash_history $backuppfad/temp/history.txt 50 | cd $backuppfad/temp 51 | sudo tar -cvzf ../$backupfile * 52 | cd ~ 53 | sudo rm -r $backuppfad/temp 54 | sudo chmod -R 777 $backuppfad/ -------------------------------------------------------------------------------- /ei23-docker/compose_templates/adguardhome.yml: -------------------------------------------------------------------------------- 1 | adguardhome: 2 | image: adguard/adguardhome 3 | container_name: adguardhome 4 | ports: 5 | - 53:53/tcp 6 | - 53:53/udp 7 | - 784:784/udp 8 | - 853:853/tcp 9 | - 3001:3000/tcp # Check for conflicting Ports! 10 | - 2229:80/tcp # Check for conflicting Ports! 11 | # - 443:443/tcp # Check for conflicting Ports! 12 | volumes: 13 | - ./volumes/adguardhome/workdir:/opt/adguardhome/work 14 | - ./volumes/adguardhome/confdir:/opt/adguardhome/conf 15 | restart: unless-stopped -------------------------------------------------------------------------------- /ei23-docker/compose_templates/archivebox.yml: -------------------------------------------------------------------------------- 1 | archivebox: 2 | #image: archivebox/archivebox:dev # dev branch 3 | image: archivebox/archivebox 4 | container_name: archivebox 5 | command: server --quick-init 0.0.0.0:8000 6 | ports: 7 | - 8085:8000 8 | volumes: 9 | - ./volumes/archivebox/data/:/data 10 | # - ./etc/crontabs:/var/spool/cron/crontabs # uncomment this and archivebox_scheduler below to set up automatic recurring archive jobs 11 | # - ./volumes/archivebox:/app/archivebox # uncomment this to mount the ArchiveBox source code at runtime (for developers working on archivebox) 12 | # build: . # uncomment this to build the image from source code at buildtime (for developers working on archivebox) 13 | environment: 14 | - ALLOWED_HOSTS=* # restrict this to only accept incoming traffic via specific domain name 15 | - PUBLIC_INDEX=True # set to False to prevent anonymous users from viewing snapshot list 16 | - PUBLIC_SNAPSHOTS=True # set to False to prevent anonymous users from viewing snapshot content 17 | # - PUBLIC_ADD_VIEW=False # set to True to allow anonymous users to submit new URLs to archive 18 | - ADMIN_USERNAME=admin # create an admin user on first run with the given user/pass combo 19 | - ADMIN_PASSWORD=SomeSecretPassword 20 | # - PUID=911 # set to your host user's UID & GID if you encounter permissions issues 21 | # - PGID=911 22 | # - SEARCH_BACKEND_ENGINE=sonic # uncomment these and sonic container below for better full-text search 23 | # - SEARCH_BACKEND_HOST_NAME=sonic 24 | # - SEARCH_BACKEND_PASSWORD=SomeSecretPassword 25 | # - MEDIA_MAX_SIZE=750m # increase this filesize limit to allow archiving larger audio/video files 26 | # - TIMEOUT=60 # increase this number to 120+ seconds if you see many slow downloads timing out 27 | # - CHECK_SSL_VALIDITY=True # set to False to disable strict SSL checking (allows saving URLs w/ broken certs) 28 | # - SAVE_ARCHIVE_DOT_ORG=True # set to False to disable submitting all URLs to Archive.org when archiving 29 | # ... 30 | # add further configuration options from archivebox/config.py as needed (to apply them only to this container) 31 | # or set using `docker compose run archivebox config --set SOME_KEY=someval` (to persist config across all containers) 32 | -------------------------------------------------------------------------------- /ei23-docker/compose_templates/awtrix.yml: -------------------------------------------------------------------------------- 1 | awtrix: 2 | image: whyet/awtrix2 3 | container_name: awtrix 4 | restart: unless-stopped 5 | ports: 6 | - "7000:7000" 7 | - "7001:7001" 8 | - "5568:5568" 9 | environment: 10 | - TZ=Europe/Berlin 11 | - JAVA_TOOL_OPTIONS="-Duser.language=de -Duser.country=DE" 12 | - AWTRIX_BETA=false 13 | - AUTOUPDATE=true 14 | volumes: 15 | - ./volumes/awtrix/data:/data 16 | # - /sys/class/net//address:/data/hostmac -------------------------------------------------------------------------------- /ei23-docker/compose_templates/bitwarden.yml: -------------------------------------------------------------------------------- 1 | bitwarden: 2 | image: vaultwarden/server:latest 3 | container_name: bitwarden 4 | restart: unless-stopped 5 | ports: 6 | - 2223:80 7 | # labels: 8 | # - traefik.enable=true 9 | # - traefik.http.routers.bitwarden.rule=Host(`example.com`) 10 | # - traefik.http.routers.bitwarden.entrypoints=web-secured 11 | # - traefik.http.routers.bitwarden.tls=true 12 | # - traefik.http.routers.bitwarden.tls.certresolver=letsEncrypt 13 | volumes: 14 | - ./volumes/bitwarden:/data 15 | logging: 16 | options: 17 | max-size: "5m" 18 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/blocky.yml: -------------------------------------------------------------------------------- 1 | blocky: 2 | image: spx01/blocky 3 | container_name: blocky 4 | restart: unless-stopped 5 | # Optional the instance hostname for logging purpose 6 | hostname: blocky.freitag 7 | ports: 8 | - "53:53/tcp" 9 | - "53:53/udp" 10 | - "2229:4000/tcp" 11 | environment: 12 | - TZ=Europe/Berlin # Optional to synchronize the log timestamp with host 13 | volumes: 14 | # Optional to synchronize the log timestamp with host 15 | - /etc/localtime:/etc/localtime:ro 16 | # config file 17 | - ./volumes/blocky/logs:/logs 18 | - ./volumes/blocky/config.yml:/app/config.yml # create this! read the docs @ https://github.com/0xERR0R/blocky -------------------------------------------------------------------------------- /ei23-docker/compose_templates/deconz.yml: -------------------------------------------------------------------------------- 1 | deconz: 2 | image: marthoc/deconz 3 | container_name: deconz 4 | restart: unless-stopped 5 | ports: # Ports sind möglicherweise bereits belegt / Ports are maybe in use 6 | - "8090:80" 7 | # - "443:443" 8 | - "5901:5900" 9 | volumes: 10 | - ./volumes/deconz/:/root/.local/share/dresden-elektronik/deCONZ 11 | devices: # Hier können Geräte hinzugefügt werden / You can add devices here 12 | - /dev/null 13 | environment: 14 | - DECONZ_VNC_MODE=1 15 | - DECONZ_VNC_PASSWORD=password_placeholder 16 | - DEBUG_INFO=1 17 | - DEBUG_APS=0 18 | - DEBUG_ZCL=0 19 | - DEBUG_ZDP=0 20 | - DEBUG_OTAU=0 -------------------------------------------------------------------------------- /ei23-docker/compose_templates/domoticz.yml: -------------------------------------------------------------------------------- 1 | domoticz: 2 | image: domoticz/domoticz 3 | container_name: domoticz 4 | restart: unless-stopped 5 | # Pass devices to container 6 | # devices: 7 | # - "/dev/serial/by-id/usb-0658_0200-if00:/dev/ttyACM0" 8 | ports: 9 | - "2221:8080" 10 | volumes: 11 | - ./volumes/domoticz:/opt/domoticz/userdata 12 | environment: 13 | - TZ=Europe/Berlin 14 | #- LOG_PATH=/opt/domoticz/userdata/domoticz.log -------------------------------------------------------------------------------- /ei23-docker/compose_templates/duplicati.yml: -------------------------------------------------------------------------------- 1 | duplicati: 2 | image: duplicati/duplicati:latest 3 | container_name: duplicati 4 | hostname: HomePi 5 | ports: 6 | - "8200:8200" 7 | restart: unless-stopped 8 | environment: 9 | - PUID=1000 10 | - PGID=1000 11 | - TZ=Europe/Berlin 12 | # - CLI_ARGS= #optional 13 | volumes: 14 | - ./volumes/duplicati/appdata/config:/config 15 | - ./volumes/duplicati/backups:/backups 16 | - ./volumes/duplicati/source:/source -------------------------------------------------------------------------------- /ei23-docker/compose_templates/ei23.yml: -------------------------------------------------------------------------------- 1 | # startpage for ei23-SmartHomeServer [deprecated - is now a python server] 2 | ei23: 3 | image: nginx:alpine 4 | container_name: ei23 5 | volumes: 6 | - ./volumes/ei23/conf:/etc/nginx/conf.d 7 | - ./volumes/ei23/web:/www 8 | - ./volumes/ei23/docs/site:/www/docs 9 | ports: 10 | - "80:80" 11 | # labels: 12 | # - traefik.enable=true 13 | # - traefik.http.routers.ei23-lan.rule=(Host(`192.168.178.2`) || Host(`raspberrypi`)) 14 | # - traefik.http.routers.ei23-lan.priority=1 15 | # - traefik.http.routers.ei23-lan.entrypoints=lan 16 | restart: unless-stopped -------------------------------------------------------------------------------- /ei23-docker/compose_templates/env/n8n.env: -------------------------------------------------------------------------------- 1 | POSTGRES_USER=changeUser 2 | POSTGRES_PASSWORD=changePassword 3 | POSTGRES_DB=n8n 4 | 5 | POSTGRES_NON_ROOT_USER=changeUser 6 | POSTGRES_NON_ROOT_PASSWORD=changePassword -------------------------------------------------------------------------------- /ei23-docker/compose_templates/esphome.yml: -------------------------------------------------------------------------------- 1 | esphome: 2 | container_name: esphome 3 | image: ghcr.io/esphome/esphome 4 | # ports: 5 | # - 6052:6052 6 | # - 6053:6053 7 | # - 6123:6123 8 | volumes: 9 | - ./volumes/esphome:/config:rw 10 | - /etc/localtime:/etc/localtime:ro 11 | - /var/run/dbus:/var/run/dbus 12 | - /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket 13 | restart: unless-stopped 14 | network_mode: host 15 | # environment: 16 | # - ESPHOME_DASHBOARD_USE_PING="true" 17 | privileged: true 18 | # command: config/ dashboard -------------------------------------------------------------------------------- /ei23-docker/compose_templates/fhem.yml: -------------------------------------------------------------------------------- 1 | fhem: 2 | container_name: fhem 3 | image: fhem/fhem:latest 4 | restart: always 5 | ports: 6 | - "8093:8083" 7 | volumes: 8 | - ./volumes//fhem/:/opt/fhem/ 9 | # devices: # uncomment if needed 10 | # - /dev/ttyUSB0:/dev/ttyUSB0 11 | environment: 12 | FHEM_UID: 6061 13 | FHEM_GID: 6061 14 | TIMEOUT: 10 15 | RESTART: 1 16 | TELNETPORT: 7072 17 | TZ: Europe/Berlin -------------------------------------------------------------------------------- /ei23-docker/compose_templates/fireflyiii.yml: -------------------------------------------------------------------------------- 1 | # Dieses Netzwerk wird benoetigt- Add this Network if not existing 2 | 3 | # networks: 4 | # fireflyiii: 5 | # driver: bridge 6 | # internal: true 7 | 8 | 9 | fireflyiii: 10 | image: fireflyiii/core:latest # untested 11 | container_name: fireflyiii 12 | volumes: 13 | - ./volumes/firefly_iii/upload:/var/www/html/storage/upload 14 | environment: 15 | # - APP_KEY=CHANGE_ME_32CHARS 16 | - APP_KEY=ei23password1_placeholderpassword_placeholderei23 17 | - DB_HOST=fireflyiiidb 18 | - DB_PORT=3306 19 | - DB_CONNECTION=mysql 20 | - DB_DATABASE=firefly 21 | - DB_USERNAME=firefly 22 | - DB_PASSWORD=password_placeholder 23 | ports: 24 | - 2225:8080 25 | # labels: 26 | # - traefik.enable=true 27 | # - traefik.http.routers.fireflyiii.middlewares=fireflyiii,fireflyiii_redirect 28 | # - traefik.http.routers.fireflyiii.tls.certresolver=letsEncrypt 29 | # - traefik.http.routers.fireflyiii.rule=Host(`example.com`) 30 | # - traefik.http.routers.fireflyiii.entrypoints=web, web-secured 31 | # - traefik.http.routers.fireflyiii.tls=true 32 | # - traefik.http.middlewares.fireflyiii_redirect.redirectregex.permanent=true 33 | depends_on: 34 | - fireflyiiidb 35 | networks: 36 | - default 37 | - fireflyiii 38 | logging: 39 | options: 40 | max-size: "5m" 41 | max-file: "3" 42 | 43 | fireflyiiidb: 44 | image: yobasystems/alpine-mariadb 45 | container_name: fireflyiiidb 46 | environment: 47 | - MYSQL_RANDOM_ROOT_PASSWORD=yes 48 | - MYSQL_USER=firefly 49 | - MYSQL_PASSWORD=password_placeholder 50 | - MYSQL_DATABASE=firefly 51 | volumes: 52 | - ./volumes/firefly_iii/db:/var/lib/mysql 53 | networks: 54 | - fireflyiii 55 | logging: 56 | options: 57 | max-size: "5m" 58 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/fooocus.yml: -------------------------------------------------------------------------------- 1 | fooocus: 2 | build: . 3 | container_name: fooocus 4 | image: ghcr.io/lllyasviel/fooocus 5 | restart: no 6 | ports: 7 | - "7865:7865" 8 | user: 0:0 # UserID:GroupID 9 | environment: 10 | - CMDARGS=--listen # Arguments for launch.py. 11 | - DATADIR=/content/data # Directory which stores models, outputs dir 12 | - config_path=/content/data/config.txt 13 | - config_example_path=/content/data/config_modification_tutorial.txt 14 | - path_checkpoints=/content/data/models/checkpoints/ 15 | - path_loras=/content/data/models/loras/ 16 | - path_embeddings=/content/data/models/embeddings/ 17 | - path_vae_approx=/content/data/models/vae_approx/ 18 | - path_upscale_models=/content/data/models/upscale_models/ 19 | - path_inpaint=/content/data/models/inpaint/ 20 | - path_controlnet=/content/data/models/controlnet/ 21 | - path_clip_vision=/content/data/models/clip_vision/ 22 | - path_fooocus_expansion=/content/data/models/prompt_expansion/fooocus_expansion/ 23 | - path_outputs=/content/app/outputs/ # Warning: If it is not located under '/content/app', you can't see history log! 24 | volumes: 25 | - ./volumes/fooocus:/content/data 26 | #- ./models:/import/models # Once you import files, you don't need to mount again. 27 | #- ./outputs:/import/outputs # Once you import files, you don't need to mount again. 28 | tty: true 29 | deploy: 30 | resources: 31 | reservations: 32 | devices: 33 | - driver: nvidia 34 | count: all 35 | capabilities: [gpu] -------------------------------------------------------------------------------- /ei23-docker/compose_templates/freepbx-asterisk.yml: -------------------------------------------------------------------------------- 1 | freepbx-app: 2 | image: epandi/asterisk-freepbx-arm:17.15-latest 3 | container_name: freepbx-app 4 | restart: unless-stopped 5 | ports: 6 | #### If you aren't using a reverse proxy 7 | - 2233:80 8 | - 5060:5060/udp 9 | - 5160:5160/udp 10 | - 18000-18100:18000-18100/udp 11 | #### Flash Operator Panel 12 | - 4445:4445 13 | volumes: 14 | - ./volumes/asterisk17/certs:/certs 15 | - ./volumes/asterisk17/data:/data 16 | - ./volumes/asterisk17/logs:/var/log 17 | - ./volumes/asterisk17/data/www:/var/www/html 18 | ### Only Enable this option below if you set DB_EMBEDDED=TRUE 19 | - ./volumes/asterisk17/db:/var/lib/mysql 20 | environment: 21 | - VIRTUAL_HOST=asterisk.local 22 | - VIRTUAL_NETWORK=nginx-proxy 23 | ### If you want to connect to the SSL Enabled Container 24 | #- VIRTUAL_PORT=443 25 | #- VIRTUAL_PROTO=https 26 | - VIRTUAL_PORT=80 27 | # - LETSENCRYPT_HOST=hostname.example.com 28 | # - LETSENCRYPT_EMAIL=email@example.com 29 | # - DEBUG_MODE=TRUE 30 | - ZABBIX_HOSTNAME=freepbx-app 31 | - RTP_START=18000 32 | - RTP_FINISH=18100 33 | ## Use for External MySQL Server 34 | - DB_EMBEDDED=TRUE 35 | ### These are only necessary if DB_EMBEDDED=FALSE 36 | # - DB_HOST=freepbx-db 37 | # - DB_PORT=3306 38 | # - DB_NAME=asterisk 39 | # - DB_USER=asterisk 40 | # - DB_PASS=asteriskpass 41 | ### If you are using TLS Support for Apache to listen on 443 in the container drop them in /certs and set these: 42 | #- TLS_CERT=cert.pem 43 | #- TLS_KEY=key.pem 44 | ### These final lines are for Fail2ban. If you don't want, comment and also add ENABLE_FAIL2BAN=FALSE to your environment 45 | cap_add: 46 | - NET_ADMIN 47 | # Get privilege from Host (not recommended) 48 | # privileged: true -------------------------------------------------------------------------------- /ei23-docker/compose_templates/gitlab.yml: -------------------------------------------------------------------------------- 1 | gitlab: # Set Password with -- gitlab-rake "gitlab:password:reset[root]" 2 | image: gitlab/gitlab-ee 3 | container_name: gitlab 4 | restart: unless-stopped 5 | hostname: 'gitlab.example.com' 6 | # environment: 7 | # GITLAB_OMNIBUS_CONFIG: 8 | # external_url 'https://gitlab.example.com' 9 | ports: 10 | - '8929:80' 11 | # - '443:443' # if no proxy is used 12 | - '2424:22' 13 | volumes: 14 | - './volumes/gitlab/config:/etc/gitlab' 15 | - './volumes/gitlab/logs:/var/log/gitlab' 16 | - './volumes/gitlab/data:/var/opt/gitlab' 17 | shm_size: '256m' -------------------------------------------------------------------------------- /ei23-docker/compose_templates/go2rtc.yml: -------------------------------------------------------------------------------- 1 | go2rtc: 2 | image: alexxit/go2rtc 3 | container_name: go2rtc 4 | network_mode: host # important for WebRTC, HomeKit, UDP cameras 5 | privileged: true # only for FFmpeg hardware transcoding 6 | restart: unless-stopped # autorestart on fail or config change from WebUI 7 | environment: 8 | - TZ=Europe/Berlin # timezone in logs 9 | volumes: 10 | - "./volumes/go2rtc:/config" # folder for go2rtc.yaml file (edit from WebUI) -------------------------------------------------------------------------------- /ei23-docker/compose_templates/gotify.yml: -------------------------------------------------------------------------------- 1 | gotify: 2 | image: gotify/server-arm7 3 | container_name: gotify 4 | ports: 5 | - "2224:80" 6 | volumes: 7 | - ./volumes/gotify:/app/data 8 | environment: 9 | - TZ="Europe/Berlin" 10 | restart: unless-stopped 11 | logging: 12 | options: 13 | max-size: "5m" 14 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/grafana.yml: -------------------------------------------------------------------------------- 1 | grafana: 2 | container_name: grafana 3 | image: grafana/grafana:latest 4 | restart: unless-stopped 5 | user: "0" 6 | ports: 7 | - "3000:3000" 8 | volumes: 9 | - ./volumes/grafana/data:/var/lib/grafana 10 | - ./volumes/grafana/log:/var/log/grafana 11 | - ./volumes/grafana/provisioning:/etc/grafana/provisioning 12 | labels: 13 | - traefik.enable=true 14 | - traefik.http.routers.grafana.rule=Host(`grafana.example.com`) 15 | - traefik.http.services.grafana.loadbalancer.server.port=3000 16 | - traefik.http.routers.grafana.entrypoints=web-secured 17 | - traefik.http.routers.grafana.tls=true 18 | - traefik.http.routers.grafana.tls.certresolver=letsEncrypt 19 | environment: 20 | - GF_PATHS_DATA=/var/lib/grafana 21 | - GF_PATHS_LOGS=/var/log/grafana 22 | # Uncomment this if open access is wanted 23 | # - GF_AUTH_ANONYMOUS_ENABLED=true 24 | # - GF_AUTH_ANONYMOUS_ORG_NAME=org 25 | # - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer 26 | # - GF_SECURITY_ALLOW_EMBEDDING=true 27 | logging: 28 | options: 29 | max-size: "5m" 30 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/grocy.yml: -------------------------------------------------------------------------------- 1 | grocy: 2 | image: ghcr.io/linuxserver/grocy:version-v2.7.1 3 | container_name: grocy 4 | restart: unless-stopped 5 | ports: 6 | - "9283:80" 7 | environment: 8 | - PUID=1000 9 | - PGID=1000 10 | - TZ=Europe/Berlin 11 | volumes: 12 | - ./volumes/grocy:/config -------------------------------------------------------------------------------- /ei23-docker/compose_templates/heimdall.yml: -------------------------------------------------------------------------------- 1 | heimdall: 2 | image: lscr.io/linuxserver/heimdall:latest 3 | container_name: heimdall 4 | environment: 5 | - PUID=1000 6 | - PGID=1000 7 | - TZ=Europe/Berlin 8 | volumes: 9 | - ./volumes/heimdall/appdata/config>:/config 10 | ports: 11 | - 80:80 12 | - 443:443 13 | restart: unless-stopped -------------------------------------------------------------------------------- /ei23-docker/compose_templates/homeassistant-matterserver.yml: -------------------------------------------------------------------------------- 1 | matter-server: 2 | image: ghcr.io/home-assistant-libs/python-matter-server:stable 3 | container_name: matter-server 4 | restart: unless-stopped 5 | # Required for mDNS to work correctly 6 | network_mode: host 7 | security_opt: 8 | # Needed for Bluetooth via dbus 9 | - apparmor:unconfined 10 | volumes: 11 | # Create an .env file that sets the USERDIR environment variable. 12 | - ./volumes/homeassistant/matter-server/data:/data/ 13 | - /run/dbus:/run/dbus:ro -------------------------------------------------------------------------------- /ei23-docker/compose_templates/homeassistant.yml: -------------------------------------------------------------------------------- 1 | homeassistant: 2 | container_name: homeassistant 3 | image: homeassistant/home-assistant:stable 4 | restart: unless-stopped 5 | network_mode: host 6 | # ports: 7 | # - "8123:8123" 8 | volumes: 9 | # - /run/dbus:/run/dbus:ro # Bluetooth 10 | - ./volumes/homeassistant/config:/config 11 | # - /home/pi/media:/media 12 | # devices: 13 | # - /dev/video0:/dev/video0 14 | # - /dev/ttyACM0 # ConBee 2 15 | environment: 16 | - "TZ=Europe/Berlin" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/homebridge.yml: -------------------------------------------------------------------------------- 1 | homebridge: 2 | container_name: homebridge 3 | image: oznu/homebridge:latest 4 | restart: always 5 | network_mode: host 6 | environment: 7 | - PGID=1000 8 | - PUID=1000 9 | - HOMEBRIDGE_CONFIG_UI=1 10 | - HOMEBRIDGE_CONFIG_UI_PORT=8087 11 | volumes: 12 | - ./volumes/homebridge:/homebridge -------------------------------------------------------------------------------- /ei23-docker/compose_templates/immich.yml: -------------------------------------------------------------------------------- 1 | immich-server: 2 | container_name: immich_server 3 | image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} 4 | command: [ "start.sh", "immich" ] 5 | volumes: 6 | - ${UPLOAD_LOCATION}:/usr/src/app/upload 7 | env_file: 8 | - ./env/immich.env 9 | ports: 10 | - 2283:3001 11 | depends_on: 12 | - redis 13 | - database 14 | restart: always 15 | 16 | immich-microservices: 17 | container_name: immich_microservices 18 | image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} 19 | command: [ "start.sh", "microservices" ] 20 | volumes: 21 | - ${UPLOAD_LOCATION}:/usr/src/app/upload 22 | env_file: 23 | - ./env/immich.env 24 | depends_on: 25 | - redis 26 | - database 27 | restart: always 28 | 29 | immich-machine-learning: 30 | container_name: immich_machine_learning 31 | image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} 32 | volumes: 33 | - ./volumes/immich/model-cache:/cache 34 | env_file: 35 | - ./env/immich.env 36 | restart: always 37 | 38 | redis: 39 | container_name: immich_redis 40 | image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 41 | restart: always 42 | 43 | database: 44 | container_name: immich_postgres 45 | image: tensorchord/pgvecto-rs:pg14-v0.2.0 46 | env_file: 47 | - ./env/immich.env 48 | environment: 49 | POSTGRES_PASSWORD: ${DB_PASSWORD} 50 | POSTGRES_USER: ${DB_USERNAME} 51 | POSTGRES_DB: ${DB_DATABASE_NAME} 52 | PG_DATA: /var/lib/postgresql/data 53 | volumes: 54 | - ./volumes/immich/pgdata:/var/lib/postgresql/data 55 | restart: always -------------------------------------------------------------------------------- /ei23-docker/compose_templates/influxdb.yml: -------------------------------------------------------------------------------- 1 | influxdb: 2 | container_name: influxdb 3 | image: influxdb:1.8 # caution, this is deprecated 4 | restart: unless-stopped 5 | ports: 6 | - "8086:8086" 7 | - "8083:8083" 8 | - "2003:2003" 9 | environment: 10 | - "INFLUXDB_DB=MAIN" 11 | # - "INFLUXDB_DATA_ENGINE=tsm1" 12 | - "INFLUXDB_REPORTING_DISABLED=false" 13 | - "INFLUXDB_STORE_ENABLED=false" 14 | - "INFLUXDB_QUERY_LOG_ENABLED=false" 15 | - "INFLUXDB_ADMIN_ENABLED=true" 16 | # - "INFLUXDB_HTTP_AUTH_ENABLED=true" 17 | # - "INFLUXDB_ADMIN_USER=admin" 18 | # - "INFLUXDB_ADMIN_PASSWORD=password_placeholder" 19 | - "INFLUXDB_USER=admin" 20 | - "INFLUXDB_USER_PASSWORD=raspberry" 21 | # - "INFLUXDB_READ_USER=readuser" 22 | # - "INFLUXDB_READ_USER_PASSWORD=password_placeholder" 23 | # - "INFLUXDB_WRITE_USER=writeuser" 24 | # - "INFLUXDB_WRITE_USER_PASSWORD=password_placeholder" 25 | # # Enable Traefik Log 26 | # - "INFLUXDB_UDP_ENABLED=true" 27 | # - "INFLUXDB_UDP_BIND_ADDRESS=0.0.0.0:8089" 28 | # - "INFLUXDB_UDP_DATABASE=traefik" 29 | volumes: 30 | - ./volumes/influxdb/data:/var/lib/influxdb 31 | - ./backups/influxdb/db:/var/lib/influxdb/backup 32 | logging: 33 | options: 34 | max-size: "5m" 35 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/influxdb18.yml: -------------------------------------------------------------------------------- 1 | influxdb: 2 | container_name: influxdb 3 | image: influxdb:1.8 # i know, this is way to old... 4 | restart: unless-stopped 5 | ports: 6 | - "8086:8086" 7 | - "8083:8083" 8 | - "2003:2003" 9 | environment: 10 | - "INFLUXDB_DB=MAIN" 11 | # - "INFLUXDB_DATA_ENGINE=tsm1" 12 | - "INFLUXDB_REPORTING_DISABLED=false" 13 | - "INFLUXDB_STORE_ENABLED=false" 14 | - "INFLUXDB_QUERY_LOG_ENABLED=false" 15 | - "INFLUXDB_ADMIN_ENABLED=true" 16 | # - "INFLUXDB_HTTP_AUTH_ENABLED=true" 17 | # - "INFLUXDB_ADMIN_USER=admin" 18 | # - "INFLUXDB_ADMIN_PASSWORD=password_placeholder" 19 | - "INFLUXDB_USER=admin" 20 | - "INFLUXDB_USER_PASSWORD=raspberry" 21 | # - "INFLUXDB_READ_USER=readuser" 22 | # - "INFLUXDB_READ_USER_PASSWORD=password_placeholder" 23 | # - "INFLUXDB_WRITE_USER=writeuser" 24 | # - "INFLUXDB_WRITE_USER_PASSWORD=password_placeholder" 25 | # # Enable Traefik Log 26 | # - "INFLUXDB_UDP_ENABLED=true" 27 | # - "INFLUXDB_UDP_BIND_ADDRESS=0.0.0.0:8089" 28 | # - "INFLUXDB_UDP_DATABASE=traefik" 29 | volumes: 30 | - ./volumes/influxdb/data:/var/lib/influxdb 31 | - ./backups/influxdb/db:/var/lib/influxdb/backup 32 | logging: 33 | options: 34 | max-size: "5m" 35 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/influxdb2.yml: -------------------------------------------------------------------------------- 1 | influxdb2: 2 | container_name: influxdb2 3 | image: influxdb:2.7 4 | restart: unless-stopped 5 | ports: 6 | - "8087:8086" 7 | environment: 8 | # - "DOCKER_INFLUXDB_INIT_MODE=upgrade" # use this for upgrade 9 | - "DOCKER_INFLUXDB_INIT_USERNAME=ei23" 10 | - "DOCKER_INFLUXDB_INIT_PASSWORD=ei23password" 11 | - "DOCKER_INFLUXDB_INIT_ORG=ei23" 12 | - "DOCKER_INFLUXDB_INIT_BUCKET=myBucket" 13 | volumes: 14 | - ./volumes/influxdb2/data:/var/lib/influxdb2 15 | - ./volumes/influxdb2/config:/etc/influxdb2 16 | - ./volumes/influxdb2/v1/data:/var/lib/influxdb 17 | - ./volumes/influxdb2/v1/config:/etc/influxdb -------------------------------------------------------------------------------- /ei23-docker/compose_templates/iobroker.yml: -------------------------------------------------------------------------------- 1 | iobroker: 2 | restart: unless-stopped 3 | image: buanet/iobroker:latest 4 | container_name: iobroker 5 | hostname: iobroker 6 | ports: 7 | - "8081:8081" 8 | volumes: 9 | - ./volumes/iobroker:/opt/iobroker -------------------------------------------------------------------------------- /ei23-docker/compose_templates/jellyfin.yml: -------------------------------------------------------------------------------- 1 | jellyfin: 2 | image: jellyfin/jellyfin 3 | container_name: jellyfin 4 | user: 0:0 # UserID:GroupID 5 | network_mode: 'host' 6 | volumes: 7 | - ./volumes/jellyfin/config:/config 8 | - ./volumes/jellyfin/cache:/cache 9 | - ./volumes/jellyfin/media:/media 10 | # - ./volumes/immich/fotos/library:/photos:ro 11 | restart: 'unless-stopped' 12 | # Optional - alternative address used for autodiscovery 13 | # environment: 14 | # - JELLYFIN_PublishedServerUrl=http://example.com -------------------------------------------------------------------------------- /ei23-docker/compose_templates/lyrionmusicserver.yml: -------------------------------------------------------------------------------- 1 | lyrionmusicserver: 2 | container_name: lyrionmusicserver 3 | hostname: ei23 4 | image: lmscommunity/lyrionmusicserver:stable 5 | volumes: 6 | - ./volumes/lyrionmusicserver/config:/config:rw 7 | - /home/pi/media/Playlist:/playlist:rw 8 | - /home/pi/media/Musik:/music:ro 9 | - /etc/localtime:/etc/localtime:ro 10 | - /etc/timezone:/etc/timezone:ro 11 | ports: 12 | - 9000:9000/tcp 13 | - 9090:9090/tcp 14 | - 3483:3483/tcp 15 | - 3483:3483/udp 16 | restart: always -------------------------------------------------------------------------------- /ei23-docker/compose_templates/mealie.yml: -------------------------------------------------------------------------------- 1 | mealie: 2 | image: ghcr.io/mealie-recipes/mealie:nightly 3 | container_name: mealie 4 | ports: 5 | - "9925:9000" 6 | deploy: 7 | resources: 8 | limits: 9 | memory: 1000M 10 | volumes: 11 | - ./volumes/mealie-data:/app/data/ 12 | environment: 13 | - ALLOW_SIGNUP=true 14 | - PUID=1000 15 | - PGID=1000 16 | - MAX_WORKERS=1 17 | - WEB_CONCURRENCY=1 18 | restart: always -------------------------------------------------------------------------------- /ei23-docker/compose_templates/mosquitto.yml: -------------------------------------------------------------------------------- 1 | mosquitto: 2 | container_name: mosquitto 3 | image: eclipse-mosquitto 4 | restart: unless-stopped 5 | user: "1883" 6 | ports: 7 | - "1883:1883" 8 | - "9001:9001" 9 | volumes: 10 | - ./volumes/mosquitto/data:/mosquitto/data 11 | - ./volumes/mosquitto/log:/mosquitto/log 12 | - ./volumes/mosquitto/config:/mosquitto/config 13 | logging: 14 | options: 15 | max-size: "5m" 16 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/motioneye.yml: -------------------------------------------------------------------------------- 1 | motioneye: 2 | container_name: motioneye 3 | hostname: HomePi 4 | image: ccrisan/motioneye:master-armhf 5 | restart: unless-stopped 6 | ports: 7 | - "8765:8765" 8 | # - "18081:8081" # additional camera ports 9 | # - "18082:8082" 10 | # devices: 11 | # - /dev/video0:/dev/video0 12 | volumes: 13 | - ./volumes/motioneye/data:/etc/motioneye 14 | - ./volumes/motioneye/lib:/var/lib/motioneye 15 | - /etc/localtime:/etc/localtime:ro 16 | -------------------------------------------------------------------------------- /ei23-docker/compose_templates/mqtt-explorer.yml: -------------------------------------------------------------------------------- 1 | mqtt-explorer: 2 | container_name: mqtt-explorer 3 | image: smeagolworms4/mqtt-explorer 4 | restart: unless-stopped 5 | ports: 6 | - 4000:4000 7 | volumes: 8 | - ./volumes/mqtt-explorer/data:/mosquitto/data 9 | - ./volumes/mqtt-explorer/log:/mqtt-explorer/log 10 | - ./volumes/mqtt-explorer/config:/mqtt-explorer/config -------------------------------------------------------------------------------- /ei23-docker/compose_templates/music-assistant-server.yml: -------------------------------------------------------------------------------- 1 | music-assistant-server: 2 | image: ghcr.io/music-assistant/server:latest 3 | container_name: music-assistant-server 4 | restart: unless-stopped 5 | network_mode: host 6 | volumes: 7 | - ./volumes/music-assistant-server/data:/data/ 8 | cap_add: 9 | - SYS_ADMIN 10 | - DAC_READ_SEARCH 11 | security_opt: 12 | - apparmor:unconfined 13 | environment: 14 | # default=info, possible=(critical, error, warning, info, debug) 15 | - LOG_LEVEL=info -------------------------------------------------------------------------------- /ei23-docker/compose_templates/n8n.yml: -------------------------------------------------------------------------------- 1 | n8n-postgres: 2 | image: postgres:16 3 | container_name: n8n-postgres 4 | restart: always 5 | env_file: 6 | - ./env/n8n.env 7 | environment: 8 | - POSTGRES_USER=${POSTGRES_USER} 9 | - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} 10 | - POSTGRES_DB=${POSTGRES_DB} 11 | - POSTGRES_NON_ROOT_USER=${POSTGRES_NON_ROOT_USER} 12 | - POSTGRES_NON_ROOT_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD} 13 | volumes: 14 | - ./volumes/n8n/db_storage:/var/lib/postgresql/data 15 | healthcheck: 16 | test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] 17 | interval: 5s 18 | timeout: 5s 19 | retries: 10 20 | 21 | n8n: 22 | image: docker.n8n.io/n8nio/n8n 23 | container_name: n8n 24 | restart: always 25 | env_file: 26 | - ./env/n8n.env 27 | environment: 28 | - DB_TYPE=postgresdb 29 | - DB_POSTGRESDB_HOST=n8n-postgres 30 | - DB_POSTGRESDB_PORT=5432 31 | - DB_POSTGRESDB_DATABASE=${POSTGRES_DB} 32 | - DB_POSTGRESDB_USER=${POSTGRES_USER} 33 | - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD} 34 | # - N8N_HOST=example.com 35 | # - NODE_ENV=production 36 | # - N8N_PATH 37 | # - WEBHOOK_URL=https://example.com 38 | ports: 39 | - 5678:5678 40 | links: 41 | - n8n-postgres 42 | user: 0:0 # If you have problems, set ./volumes/n8n/n8n readable for all 43 | volumes: 44 | - ./volumes/n8n/n8n:/home/node/.n8n 45 | depends_on: 46 | n8n-postgres: 47 | condition: service_healthy -------------------------------------------------------------------------------- /ei23-docker/compose_templates/nextcloud-network.yml: -------------------------------------------------------------------------------- 1 | nextcloud: 2 | driver: bridge 3 | internal: true 4 | -------------------------------------------------------------------------------- /ei23-docker/compose_templates/nextcloudofficial.yml: -------------------------------------------------------------------------------- 1 | # you may add nextcloud-network.yml content at the top 2 | # Aendere die Passwoerter - change the passwords (P4ssw0rt1 & P4ssw0rt2) 3 | nextcloud: 4 | image: nextcloud 5 | container_name: nextcloud 6 | ports: 7 | - "8080:80" 8 | # labels: 9 | # - traefik.enable=true 10 | # - traefik.http.routers.nextcloud.middlewares=nextcloud,nextcloud_redirect 11 | # - traefik.http.routers.nextcloud.tls.certresolver=letsEncrypt 12 | # - traefik.http.routers.nextcloud.rule=Host(`example.com`) 13 | # - traefik.http.routers.nextcloud.entrypoints=web, web-secured 14 | # - traefik.http.routers.nextcloud.tls=true 15 | # - traefik.http.middlewares.nextcloud.headers.stsSeconds=15552000 16 | # - traefik.http.middlewares.nextcloud.headers.stsPreload=true 17 | # - traefik.http.middlewares.nextcloud_redirect.redirectregex.permanent=true 18 | # - traefik.http.middlewares.nextcloud_redirect.redirectregex.regex=^https://(.*)/.well-known/(card|cal)dav 19 | # - traefik.http.middlewares.nextcloud_redirect.redirectregex.replacement=https://$${1}/remote.php/dav/ 20 | volumes: 21 | - ./volumes/nextcloud/html:/var/www/html 22 | restart: unless-stopped 23 | depends_on: 24 | - nextcloud_db 25 | links: 26 | - nextcloud_db 27 | networks: 28 | - default 29 | - nextcloud 30 | environment: 31 | - MYSQL_HOST=nextcloud_db 32 | - MYSQL_PASSWORD=password1_placeholder 33 | - MYSQL_DATABASE=nextcloud 34 | - MYSQL_USER=nextcloud 35 | - TRUSTED_PROXIES=172.18.0.0/16 36 | # - OVERWRITEPROTOCOL=https 37 | # - OVERWRITEHOST=example.com 38 | logging: 39 | options: 40 | max-size: "5m" 41 | max-file: "3" 42 | 43 | nextcloud_db: 44 | image: yobasystems/alpine-mariadb:10.4.17 45 | container_name: nextcloud_db 46 | volumes: 47 | - ./volumes/nextcloud/db:/var/lib/mysql 48 | environment: 49 | - MYSQL_ROOT_PASSWORD=password_placeholder 50 | - MYSQL_DATABASE=nextcloud 51 | - MYSQL_USER=nextcloud 52 | - MYSQL_PASSWORD=password1_placeholder 53 | restart: unless-stopped 54 | networks: 55 | - nextcloud 56 | logging: 57 | options: 58 | max-size: "5m" 59 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/nextcloudpi.yml: -------------------------------------------------------------------------------- 1 | nextcloudpi: 2 | container_name: nextcloudpi 3 | image: ownyourbits/nextcloudpi 4 | restart: unless-stopped 5 | ports: 6 | - "4443:4443" 7 | - "443:443" 8 | - "8080:80" 9 | volumes: 10 | - ./volumes/nextcloudpi/data:/data 11 | # environment: # Enter your Pi Ip here 12 | # - DOMAIN=10.1.1.10 13 | logging: 14 | options: 15 | max-size: "5m" 16 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/nginxproxymanger.yml: -------------------------------------------------------------------------------- 1 | nginx-proxy-manager: 2 | container_name: nginx-proxy-manager 3 | image: docker.io/jc21/nginx-proxy-manager:latest 4 | restart: unless-stopped 5 | ports: 6 | - '591:80' 7 | - '81:81' 8 | - '443:443' 9 | volumes: 10 | - ./volumes/nginx-proxy-manager/data:/data 11 | - ./volumes/nginx-proxy-manager/letsencrypt:/etc/letsencrypt -------------------------------------------------------------------------------- /ei23-docker/compose_templates/nginxssl.yml: -------------------------------------------------------------------------------- 1 | nginx-ssl: 2 | image: linuxserver/swag 3 | container_name: nginx-ssl 4 | cap_add: 5 | - NET_ADMIN 6 | environment: 7 | - PUID=1000 8 | - PGID=1000 9 | - TZ=Europe/Berlin 10 | - URL=example.com 11 | - SUBDOMAINS=www,xyz, 12 | - VALIDATION=http 13 | # - EMAIL=mail@example.com 14 | - STAGING=true 15 | volumes: 16 | - ./volumes/nginxssl:/config 17 | ports: 18 | - "8084:80" # external http port 19 | - "4433:443" # external ssl port 20 | restart: unless-stopped -------------------------------------------------------------------------------- /ei23-docker/compose_templates/nocodb.yml: -------------------------------------------------------------------------------- 1 | nocodb: 2 | container_name: nocodb 3 | depends_on: 4 | noco_rootdb: 5 | condition: service_healthy 6 | environment: 7 | NC_DB: pg://noco_rootdb:5432?u=postgres&p=${PW}&d=noco_rootdb 8 | image: "nocodb/nocodb:latest" 9 | ports: 10 | - "2289:8080" 11 | restart: always 12 | volumes: 13 | - "./volumes/nocodb/nc_data:/usr/app/data" 14 | 15 | noco_rootdb: 16 | container_name: noco_rootdb 17 | environment: 18 | POSTGRES_DB: noco_rootdb 19 | POSTGRES_PASSWORD: ${PW} 20 | POSTGRES_USER: postgres 21 | healthcheck: 22 | interval: 10s 23 | retries: 10 24 | test: "pg_isready -U \"$$POSTGRES_USER\" -d \"$$POSTGRES_DB\"" 25 | timeout: 2s 26 | image: postgres:latest 27 | restart: always 28 | volumes: 29 | - "./volumes/nocodb/db_data:/var/lib/postgresql/data" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/octoprint.yml: -------------------------------------------------------------------------------- 1 | octoprint: 2 | image: octoprint/octoprint 3 | container_name: octoprint 4 | restart: unless-stopped 5 | ports: 6 | - 2220:80 7 | # devices: 8 | # - /dev/ttyUSB0:/dev/ttyUSB0 9 | # - /dev/video0:/dev/video0 10 | volumes: 11 | - ./volumes/octoprint:/octoprint 12 | # uncomment the lines below to ensure camera streaming is enabled when 13 | # you add a video device 14 | #environment: 15 | # - ENABLE_MJPG_STREAMER=true -------------------------------------------------------------------------------- /ei23-docker/compose_templates/ollama.yml: -------------------------------------------------------------------------------- 1 | ollama: 2 | image: ollama/ollama 3 | container_name: ollama 4 | restart: unless-stopped 5 | environment: 6 | - OLLAMA_HOST=0.0.0.0 7 | - OLLAMA_ORIGINS=moz-extension://*' 8 | ports: 9 | - 11434:11434 10 | # deploy: 11 | # resources: 12 | # reservations: 13 | # devices: 14 | # - driver: nvidia 15 | # count: all 16 | # capabilities: [gpu] 17 | volumes: 18 | - ./volumes/ollama:/root/.ollama -------------------------------------------------------------------------------- /ei23-docker/compose_templates/open-webui.yml: -------------------------------------------------------------------------------- 1 | open-webui: 2 | image: ghcr.io/open-webui/open-webui:main 3 | container_name: open-webui 4 | restart: always 5 | ports: 6 | - 2280:8080 7 | # environment: 8 | # - OLLAMA_BASE_URL=http://172.18.0.1:11434 9 | volumes: 10 | - ./volumes/open-webui:/app/backend/data -------------------------------------------------------------------------------- /ei23-docker/compose_templates/openedai-speech.yml: -------------------------------------------------------------------------------- 1 | # run the following command first 2 | # cd ~/ei23-docker/volumes; sudo git clone https://github.com/matatonic/openedai-speech.git; cd openedai-speech/; cd config; sudo wget https://raw.githubusercontent.com/baefthde/OpenWebUI_De/refs/heads/main/voice_to_speaker.yaml; cd ..; cd voices; sudo wget https://huggingface.co/rhasspy/piper-voices/resolve/main/de/de_DE/thorsten/high/de_DE-thorsten-high.onnx; sudo wget https://huggingface.co/rhasspy/piper-voices/raw/main/de/de_DE/thorsten/high/de_DE-thorsten-high.onnx.json 3 | 4 | openedai-speech: 5 | image: ghcr.io/matatonic/openedai-speech:latest 6 | container_name: openedai-speech 7 | build: 8 | context: ./volumes/openedai-speech/. 9 | dockerfile: dockerfile 10 | ports: 11 | - "8001:8000" 12 | volumes: 13 | - ./volumes/openedai-speech/voices:/app/voices 14 | - ./volumes/openedai-speech/config:/app/config 15 | environment: 16 | - TTS_VOICES=thorsten 17 | restart: no 18 | deploy: 19 | resources: 20 | reservations: 21 | devices: 22 | - driver: nvidia 23 | #device_ids: ['0', '1'] # Select a gpu, or 24 | count: all 25 | capabilities: [gpu] -------------------------------------------------------------------------------- /ei23-docker/compose_templates/openhab.yml: -------------------------------------------------------------------------------- 1 | openhab: 2 | container_name: openhab 3 | image: "openhab/openhab:latest" 4 | restart: always 5 | network_mode: host 6 | volumes: 7 | - /etc/localtime:/etc/localtime:ro 8 | - /etc/timezone:/etc/timezone:ro 9 | - ./volumes/openhab/openhab_addons:/openhab/addons 10 | - ./volumes/openhab/openhab_conf:/openhab/conf 11 | - ./volumes/openhab/openhab_userdata:/openhab/userdata 12 | environment: 13 | - OPENHAB_HTTP_PORT=8082 14 | - OPENHAB_HTTPS_PORT=8443" 15 | - EXTRA_JAVA_OPTS=-Duser.timezone=Europe/Berlin" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/pairdrop.yml: -------------------------------------------------------------------------------- 1 | pairdrop: 2 | container_name: pairdrop 3 | image: lscr.io/linuxserver/pairdrop:latest 4 | hostname: pairdrop 5 | restart: unless-stopped 6 | ports: 7 | - 3010:3000 8 | environment: 9 | - PUID=1000 10 | - PGID=1000 11 | - TZ=Europe/Berlin 12 | - RATE_LIMIT=false #optional 13 | - WS_FALLBACK=false #optional 14 | - RTC_CONFIG= #optional 15 | - DEBUG_MODE=false #optional -------------------------------------------------------------------------------- /ei23-docker/compose_templates/paperlessngx.yml: -------------------------------------------------------------------------------- 1 | paperless_broker: 2 | image: docker.io/library/redis:7 3 | container_name: paperless_broker 4 | restart: unless-stopped 5 | 6 | paperless_db: 7 | image: docker.io/library/mariadb:10 8 | container_name: paperless_db 9 | restart: unless-stopped 10 | volumes: 11 | - ./volumes/paperlessngx/db:/var/lib/mysql 12 | environment: 13 | MARIADB_HOST: paperless 14 | MARIADB_DATABASE: paperless 15 | MARIADB_USER: paperless 16 | MARIADB_PASSWORD: paperless 17 | MARIADB_ROOT_PASSWORD: paperless 18 | 19 | 20 | paperless_web: 21 | image: ghcr.io/paperless-ngx/paperless-ngx:latest 22 | container_name: paperless_web 23 | restart: unless-stopped 24 | depends_on: 25 | - paperless_db 26 | - paperless_broker 27 | ports: 28 | - 2226:8000 29 | healthcheck: 30 | test: ["CMD", "curl", "-f", "http://localhost:8000"] 31 | interval: 30s 32 | timeout: 10s 33 | retries: 5 34 | volumes: 35 | - ./volumes/paperlessngx/data:/usr/src/paperless/data 36 | - ./volumes/paperlessngx/media:/usr/src/paperless/media 37 | - ./volumes/paperlessngx/export:/usr/src/paperless/export 38 | - ./volumes/paperlessngx/consume:/usr/src/paperless/consume 39 | environment: 40 | PAPERLESS_REDIS: redis://paperless_broker:6379 41 | PAPERLESS_DBENGINE: mariadb 42 | PAPERLESS_DBHOST: paperless_db 43 | PAPERLESS_DBUSER: paperless # only needed if non-default username 44 | PAPERLESS_DBPASS: paperless # only needed if non-default password 45 | PAPERLESS_DBPORT: 3306 46 | USERMAP_UID: 1000 47 | USERMAP_GID: 1000 48 | PAPERLESS_OCR_LANGUAGE: deu+eng 49 | PAPERLESS_TIME_ZONE: Europe/Berlin 50 | # PAPERLESS_SECRET_KEY: SuperS4FE!123456 51 | # PAPERLESS_ADMIN_USER: bitteaendern 52 | # PAPERLESS_ADMIN_PASSWORD: p4sswort 53 | -------------------------------------------------------------------------------- /ei23-docker/compose_templates/perplexica.yml: -------------------------------------------------------------------------------- 1 | # run the following command first 2 | # cd ~/ei23-docker/volumes; sudo git clone https://github.com/ItzCrazyKns/Perplexica.git; sudo mv Perplexica perplexica; cd perplexica; sudo cp sample.config.toml config.toml 3 | # edit config.toml 4 | # sudo nano ~/ei23-docker/volumes/perplexica/config.toml 5 | 6 | searxng: 7 | image: docker.io/searxng/searxng:latest 8 | container_name: searxng 9 | volumes: 10 | - ./volumes/perplexica/searxng:/etc/searxng:rw 11 | ports: 12 | - 4000:8080 # change 4000 to your needs 13 | restart: unless-stopped 14 | 15 | perplexica-backend: 16 | container_name: perplexica-backend 17 | build: 18 | context: ./volumes/perplexica/. 19 | dockerfile: backend.dockerfile 20 | args: 21 | - SEARXNG_API_URL=http://searxng:8080 22 | depends_on: 23 | - searxng 24 | ports: 25 | - 3002:3001 # change 3002 to your needs 26 | volumes: 27 | - ./volumes/perplexica/backend-dbstore:/home/perplexica/data 28 | - ./volumes/perplexica/config.toml:/home/perplexica/config.toml 29 | extra_hosts: 30 | - 'host.docker.internal:host-gateway' 31 | restart: unless-stopped 32 | 33 | perplexica-frontend: 34 | container_name: perplexica-frontend 35 | build: 36 | context: ./volumes/perplexica/. 37 | dockerfile: app.dockerfile 38 | args: 39 | - NEXT_PUBLIC_API_URL=http://10.1.1.10:3002/api # Change 10.1.1.10:3002 to your Servers LAN IP and the external perplexica-backend port 40 | - NEXT_PUBLIC_WS_URL=ws://10.1.1.10:3002 # Change 10.1.1.10:3002 to your Servers LAN IP and the external perplexica-backend port 41 | depends_on: 42 | - perplexica-backend 43 | ports: 44 | - 3003:3000 # change 3003 to your needs 45 | restart: unless-stopped -------------------------------------------------------------------------------- /ei23-docker/compose_templates/pihole.yml: -------------------------------------------------------------------------------- 1 | pihole: 2 | container_name: pihole 3 | image: pihole/pihole:latest 4 | hostname: HomePi 5 | restart: unless-stopped 6 | ports: 7 | - "53:53/tcp" 8 | - "53:53/udp" 9 | - "67:67/udp" 10 | - "8008:80/tcp" 11 | # - "443:443/tcp" 12 | environment: 13 | TZ: 'Europe/Berlin' 14 | WEBPASSWORD: 'password_placeholder' 15 | # ServerIP: REPLACEME 16 | # ServerIPv6: REPLACEME 17 | # IPv6: 'true' 18 | volumes: 19 | - ./volumes/pihole/etc-pihole/:/etc/pihole/ 20 | - ./volumes/pihole/etc-dnsmasq.d/:/etc/dnsmasq.d/ 21 | - ./volumes/pihole/hosts:/etc/hosts 22 | dns: 23 | - 127.0.0.1 24 | - 1.1.1.1 25 | # Recommended but not required (DHCP needs NET_ADMIN) 26 | # https://github.com/pi-hole/docker-pi-hole#note-on-capabilities 27 | cap_add: 28 | - NET_ADMIN 29 | logging: 30 | options: 31 | max-size: "5m" 32 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/plex.yml: -------------------------------------------------------------------------------- 1 | plex: 2 | image: linuxserver/plex:latest 3 | container_name: plex 4 | network_mode: host 5 | environment: 6 | - PUID=1000 7 | - PGID=1000 8 | - VERSION=docker 9 | - PLEX_CLAIM= #optional 10 | # - ADVERTISE_IP="https://plex.DOMAIN.de:443" # wichtig für das Https 11 | # labels: 12 | # - traefik.enable=true 13 | # - traefik.http.routers.plex.rule=Host(`plex.DOMAIN.de`) 14 | # - traefik.http.routers.plex.entrypoints=web-secured 15 | # - traefik.http.routers.plex.tls.certresolver=letsEncrypt 16 | # - traefik.http.services.plex.loadbalancer.server.port=32400 17 | volumes: 18 | - ./volumes/plex/config:/config 19 | - ./volumes/plex/tv:/tv # Ordner wo die Serien eingefügt werden 20 | - ./volumes/plex/filme:/Filme #Ordner wo die Filme eingefügt werden 21 | - ./volumes/plex/transcode:/trasncode 22 | - ./volumes/plex/musik:/musik 23 | - ./volumes/plex/fotos:/fotos 24 | restart: unless-stopped -------------------------------------------------------------------------------- /ei23-docker/compose_templates/portainer.yml: -------------------------------------------------------------------------------- 1 | portainer: 2 | container_name: portainer 3 | image: portainer/portainer-ce 4 | restart: unless-stopped 5 | ports: 6 | - "8000:8000" 7 | - "9000:9000" 8 | volumes: 9 | - /var/run/docker.sock:/var/run/docker.sock 10 | - ./volumes/portainer/data:/data -------------------------------------------------------------------------------- /ei23-docker/compose_templates/rhasspy.yml: -------------------------------------------------------------------------------- 1 | rhasspy: 2 | container_name: rhasspy 3 | image: rhasspy/rhasspy 4 | restart: unless-stopped 5 | volumes: 6 | - ./volumes/rhasspy/profiles:/profiles 7 | - /etc/localtime:/etc/localtime:ro 8 | ports: 9 | - "12101:12101" 10 | - "12333:12333/udp" 11 | devices: 12 | - /dev/snd:/dev/snd 13 | command: --user-profiles /profiles --profile de 14 | -------------------------------------------------------------------------------- /ei23-docker/compose_templates/stirling-pdf.yml: -------------------------------------------------------------------------------- 1 | stirling-pdf: 2 | container_name: stirling-pdf 3 | image: frooodle/s-pdf:latest 4 | ports: 5 | - 2223:8080 6 | volumes: 7 | - ./volumes/stirling-pdf/trainingData:/usr/share/tesseract-ocr/5/tessdata #Required for extra OCR languages 8 | - ./volumes/stirling-pdf/extraConfigs:/configs 9 | # - /location/of/customFiles:/customFiles/ 10 | # - /location/of/logs:/logs/ 11 | environment: 12 | - DOCKER_ENABLE_SECURITY=false -------------------------------------------------------------------------------- /ei23-docker/compose_templates/syncthing.yml: -------------------------------------------------------------------------------- 1 | syncthing: 2 | image: syncthing/syncthing 3 | container_name: syncthing 4 | hostname: syncthing-server 5 | environment: 6 | - PUID=33 7 | - PGID=33 8 | volumes: 9 | - ./volumes/syncthing:/var/syncthing 10 | ports: 11 | - 8384:8384 # Web UI 12 | - 22000:22000/tcp # TCP file transfers 13 | - 22000:22000/udp # QUIC file transfers 14 | - 21027:21027/udp # Receive local discovery broadcasts 15 | restart: unless-stopped -------------------------------------------------------------------------------- /ei23-docker/compose_templates/tasmoadmin.yml: -------------------------------------------------------------------------------- 1 | tasmoadmin: 2 | container_name: tasmoadmin 3 | image: raymondmm/tasmoadmin 4 | restart: unless-stopped 5 | ports: 6 | - "8089:80" 7 | volumes: 8 | - ./volumes/tasmoadmin/data:/data -------------------------------------------------------------------------------- /ei23-docker/compose_templates/teamspeak.yml: -------------------------------------------------------------------------------- 1 | teamspeak: 2 | image: ertagh/teamspeak3-server:arm32v7-latest-box86 3 | container_name: teamspeak 4 | restart: always 5 | environment: 6 | - "TS_UPDATE=1" 7 | - "TIME_ZONE=Europe/Berlin" 8 | ports: 9 | - "9987:9987/udp" 10 | - "10011:10011/tcp" 11 | - "30033:30033/tcp" 12 | volumes: 13 | - ./volumes/teamspeak/:/teamspeak/save/ 14 | logging: 15 | options: 16 | max-size: "5m" 17 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/teddycloud.yml: -------------------------------------------------------------------------------- 1 | teddycloud: 2 | container_name: teddycloud 3 | hostname: teddycloud 4 | image: ghcr.io/toniebox-reverse-engineering/teddycloud:latest 5 | # ports: 6 | # - 8089:80 #optional (for the webinterface) 7 | # - 8443:8443 #optional (for the webinterface) 8 | # - 443:443 #Port is needed for the connection for the box, must not be changed! 9 | volumes: 10 | - ./volumes/teddycloud/certs:/teddycloud/certs 11 | - ./volumes/teddycloud/config:/teddycloud/config 12 | - ./volumes/teddycloud/content:/teddycloud/data/content 13 | - ./volumes/teddycloud/library:/teddycloud/data/library 14 | - ./volumes/teddycloud/firmware:/teddycloud/data/firmware 15 | - ./volumes/teddycloud/cache:/teddycloud/data/cache 16 | restart: unless-stopped -------------------------------------------------------------------------------- /ei23-docker/compose_templates/teslamate.yml: -------------------------------------------------------------------------------- 1 | teslamate: 2 | image: teslamate/teslamate:latest 3 | container_name: teslamate 4 | restart: always 5 | environment: 6 | - ENCRYPTION_KEY=T3Sl454F34r34L 7 | - DATABASE_USER=teslamate 8 | - DATABASE_PASS=randompasswordhere 9 | - DATABASE_NAME=teslamate 10 | - DATABASE_HOST=teslamate-db 11 | - MQTT_HOST=mosquitto 12 | - MQTT_USERNAME=youruser 13 | - MQTT_PASSWORD=yourpassword 14 | - TZ=Europe/Berlin 15 | ports: 16 | - 400:4000 17 | volumes: 18 | - ./volumes/teslamate/import:/opt/app/import 19 | cap_drop: 20 | - all 21 | 22 | teslamate-db: 23 | container_name: teslamate-db 24 | image: postgres:15.4 25 | restart: always 26 | environment: 27 | - POSTGRES_USER=teslamate 28 | - POSTGRES_PASSWORD=randompasswordhere 29 | - POSTGRES_DB=teslamate 30 | ports: 31 | - 5432:5432 32 | volumes: 33 | - ./volumes/teslamate/db:/var/lib/postgresql/data -------------------------------------------------------------------------------- /ei23-docker/compose_templates/theengs-gateway.yml: -------------------------------------------------------------------------------- 1 | theengs-gateway: 2 | image: theengs/gateway:latest 3 | container_name: theengs-gateway 4 | environment: 5 | - MQTT_HOST=172.18.0.1 6 | - MQTT_USERNAME=admin 7 | - MQTT_PASSWORD=password 8 | - MQTT_PUB_TOPIC=home/TheengsGateway/BTtoMQTT 9 | - MQTT_SUB_TOPIC=home/+/BTtoMQTT/undecoded 10 | - PUBLISH_ALL=true 11 | - TIME_BETWEEN=60 12 | - SCAN_TIME=60 13 | - LOG_LEVEL=DEBUG 14 | - HAAS_DISCOVERY=true 15 | - DISCOVERY=true 16 | - DISCOVERY_TOPIC=homeassistant 17 | - DISCOVERY_DEVICE_NAME=TheengsGateway 18 | - DISCOVERY_FILTER="[IBEACON,GAEN,MS-CDP,APPLE_CONT,APPLE_CONTAT]" 19 | - SCANNING_MODE=active 20 | - ADAPTER=hci0 21 | volumes: 22 | - /var/run/dbus:/var/run/dbus:rw 23 | - ./volumes/ei23/theengs/theengsgw.conf:/root/theengsgw.conf:rw -------------------------------------------------------------------------------- /ei23-docker/compose_templates/timescaledb.yml: -------------------------------------------------------------------------------- 1 | timescaledb: 2 | container_name: timescaledb 3 | image: timescale/timescaledb:latest-pg12 4 | restart: unless-stopped 5 | environment: 6 | - POSTGRES_USER=timescaleuser 7 | - POSTGRES_PASSWORD=password_placeholder 8 | - POSTGRES_DB=postdb 9 | ports: 10 | - "5432:5432" 11 | volumes: 12 | - ./volumes/timescaledb/data:/var/lib/postgresql/data -------------------------------------------------------------------------------- /ei23-docker/compose_templates/traefik.yml: -------------------------------------------------------------------------------- 1 | traefik: 2 | image: traefik:v2.4 3 | container_name: traefik 4 | restart: unless-stopped 5 | ports: 6 | # - "80:80" # as internal http 7 | - "591:591" # as external http 8 | - "2280:8080" # config port 9 | # - "443:443" # external https 10 | volumes: 11 | - /var/run/docker.sock:/var/run/docker.sock:ro 12 | - ./volumes/traefik/traefik/:/etc/traefik/ 13 | - ./volumes/traefik/letsencrypt:/letsencrypt 14 | logging: 15 | options: 16 | max-size: "5m" 17 | max-file: "3" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/uptime-kuma.yml: -------------------------------------------------------------------------------- 1 | uptime-kuma: 2 | image: louislam/uptime-kuma 3 | container_name: uptime-kuma 4 | restart: unless-stopped 5 | volumes: 6 | - /etc/localtime:/etc/localtime:ro 7 | - /etc/timezone:/etc/timezone:ro 8 | - /var/run/docker.sock:/var/run/docker.sock:ro 9 | - ./volumes/uptime-kuma:/app/data 10 | ports: 11 | - "3001:3001" 12 | # labels: 13 | # - "traefik.enable=true" 14 | # - "traefik.http.routers.uptime.entrypoints=websecure" 15 | # - "traefik.http.routers.uptime.rule=Host(`uptime.euredomain.de`)" 16 | # - "traefik.http.routers.uptime.tls=true" 17 | # - "traefik.http.routers.uptime.tls.certresolver=http_resolver" 18 | # - "traefik.http.routers.uptime.service=uptime" 19 | # - "traefik.http.services.uptime.loadbalancer.server.port=3001" 20 | # - "traefik.docker.network=proxy" 21 | # - "traefik.http.routers.uptime.middlewares=default@file" -------------------------------------------------------------------------------- /ei23-docker/compose_templates/vscode.yml: -------------------------------------------------------------------------------- 1 | vscode: 2 | image: lscr.io/linuxserver/code-server 3 | container_name: vscode 4 | restart: unless-stopped 5 | ports: 6 | - 2222:8443 7 | environment: 8 | - PUID=0 9 | - GUID=0 10 | - TZ=Europe/Berlin 11 | # - PASSWORD=password_placeholder 12 | volumes: 13 | - ./volumes/vscode/config:/config 14 | - ./:/ei23-docker -------------------------------------------------------------------------------- /ei23-docker/compose_templates/watchyourlan.yml: -------------------------------------------------------------------------------- 1 | watchyourlan: 2 | image: aceberg/watchyourlan:v2 3 | network_mode: "host" 4 | container_name: watchyourlan 5 | restart: unless-stopped 6 | volumes: 7 | - ./volumes/WatchYourLAN:/data/WatchYourLAN 8 | environment: 9 | TZ: Europe/Berlin # required: needs your TZ for correct time 10 | IFACES: "eno1" # required: 1 or more interface 11 | HOST: "0.0.0.0" # optional, default: 0.0.0.0 12 | PORT: "8840" # optional, default: 8840 13 | TIMEOUT: "120" # optional, time in seconds, default: 120 14 | SHOUTRRR_URL: "" # optional, set url to notify 15 | THEME: "sand" # optional 16 | COLOR: "dark" # optional -------------------------------------------------------------------------------- /ei23-docker/compose_templates/whisper-webui.yml: -------------------------------------------------------------------------------- 1 | # run the following command first 2 | # cd ~/ei23-docker/volumes; sudo git clone https://github.com/jhj0517/Whisper-WebUI.git; 3 | 4 | whisper-webui: 5 | build: 6 | context: ./volumes/openedai-speech/. 7 | dockerfile: dockerfile 8 | image: jhj0517/whisper-webui:latest 9 | container_name: Whisper-WebUI 10 | restart: no 11 | volumes: 12 | # Update paths to mount models and output paths to your custom paths like this, e.g: 13 | # - C:/whisper-models/custom-path:/Whisper-WebUI/models 14 | # - C:/whisper-webui-outputs/custom-path:/Whisper-WebUI/outputs 15 | - ./volumes/Whisper-WebUI/models:/Whisper-WebUI/models 16 | - ./volumes/Whisper-WebUI/outputs:/Whisper-WebUI/outputs 17 | - ./volumes/Whisper-WebUI/configs:/Whisper-WebUI/configs 18 | ports: 19 | - "7860:7860" 20 | stdin_open: true 21 | tty: true 22 | entrypoint: ["python", "app.py", "--server_port", "7860", "--whisper_type", "insanely-fast-whisper", "--inbrowser", "True", "--api_open", "True", "--server_name", "0.0.0.0",] 23 | # If you're not using nvidia GPU, Update device to match yours. 24 | # See more info at : https://docs.docker.com/compose/compose-file/deploy/#driver 25 | deploy: 26 | resources: 27 | reservations: 28 | devices: 29 | - driver: nvidia 30 | count: all 31 | capabilities: [ gpu ] -------------------------------------------------------------------------------- /ei23-docker/compose_templates/wireguard.yml: -------------------------------------------------------------------------------- 1 | wireguard: 2 | image: ghcr.io/wg-easy/wg-easy 3 | container_name: wireguard 4 | restart: unless-stopped 5 | cap_add: 6 | - NET_ADMIN 7 | - SYS_MODULE 8 | environment: 9 | - LANG=de 10 | - WG_HOST=your-domain-or-ip.org 11 | - PASSWORD=yourpassword 12 | - PORT=51821 13 | - WG_PORT=51820 14 | - WG_DEFAULT_ADDRESS=10.8.8.x 15 | - WG_DEFAULT_DNS= # left empty on purpose 16 | - WG_ALLOWED_IPS=0.0.0.0/1, 128.0.0.0/1, ::/1 # Full VPN 17 | # - WG_ALLOWED_IPS=10.8.8.0/24, 172.18.0.0/24 # only local VPN 18 | # - WG_MTU=1420 19 | # - WG_PERSISTENT_KEEPALIVE=25 20 | # - WG_PRE_UP=echo "Pre Up" > /etc/wireguard/pre-up.txt 21 | # - WG_POST_UP=echo "Post Up" > /etc/wireguard/post-up.txt 22 | # - WG_PRE_DOWN=echo "Pre Down" > /etc/wireguard/pre-down.txt 23 | # - WG_POST_DOWN=echo "Post Down" > /etc/wireguard/post-down.txt 24 | volumes: 25 | - ./volumes/wireguard:/etc/wireguard 26 | ports: 27 | - "51820:51820/udp" 28 | - "51821:51821/tcp" 29 | sysctls: 30 | - net.ipv4.conf.all.src_valid_mark=1 31 | # - net.ipv4.ip_forward=1 -------------------------------------------------------------------------------- /ei23-docker/compose_templates/wyoming-openwakeword.yml: -------------------------------------------------------------------------------- 1 | wyoming-openwakeword: 2 | container_name: wyoming-openwakeword 3 | command: --preload-model 'ok_nabu' 4 | image: rhasspy/wyoming-openwakeword 5 | volumes: 6 | - ./volumes/wyoming/openwakeword/models:/custom 7 | restart: unless-stopped 8 | ports: 9 | - 10400:10400 -------------------------------------------------------------------------------- /ei23-docker/compose_templates/wyoming-piper.yml: -------------------------------------------------------------------------------- 1 | wyoming-piper: 2 | container_name: wyoming-piper 3 | image: rhasspy/wyoming-piper # https://github.com/home-assistant/addons/blob/master/piper/DOCS.md 4 | command: --voice de-thorsten-low --length-scale 1.0 5 | volumes: 6 | - ./volumes/wyoming/piper:/data 7 | environment: 8 | - TZ=Europe/Berlin 9 | restart: unless-stopped 10 | ports: 11 | - 10200:10200 -------------------------------------------------------------------------------- /ei23-docker/compose_templates/wyoming-whisper.yml: -------------------------------------------------------------------------------- 1 | wyoming-whisper: 2 | container_name: wyoming-whisper 3 | command: --model tiny --language de # https://github.com/openai/whisper 4 | # command: --model base --language de 5 | # command: --model small --language de 6 | # command: --model medium --language de 7 | # command: --model large --language de 8 | image: rhasspy/wyoming-whisper 9 | volumes: 10 | - ./volumes/wyoming/whisper:/data 11 | environment: 12 | - TZ=Europe/Berlin 13 | restart: unless-stopped 14 | ports: 15 | - 10300:10300 -------------------------------------------------------------------------------- /ei23-docker/compose_templates/zigbee2mqtt.yml: -------------------------------------------------------------------------------- 1 | zigbee2mqtt: 2 | container_name: zigbee2mqtt 3 | image: koenkk/zigbee2mqtt 4 | volumes: 5 | - ./volumes/zigbee2mqtt/data:/app/data 6 | - /run/udev:/run/udev:ro 7 | devices: 8 | - /dev/ttyACM0:/dev/ttyACM0 9 | restart: always 10 | privileged: true 11 | environment: 12 | - TZ=Europe/Berlin 13 | -------------------------------------------------------------------------------- /ei23-docker/custom_ha_addons-example.sh: -------------------------------------------------------------------------------- 1 | # $1 name / $2 url / $3 topfolder / $4 addonfolder 2 | # install-ha-addons "browser_mod" "https://github.com/thomasloven/hass-browser_mod/archive/refs/heads/master.zip" "hass-browser_mod-master" "browser_mod" 3 | # install-ha-addons "easee" "https://codeload.github.com/fondberg/easee_hass/zip/refs/heads/master" "easee_hass-master" "easee" 4 | # install-ha-addons "ecoflow_cloud" "https://codeload.github.com/tolwi/hassio-ecoflow-cloud/zip/refs/heads/main" "hassio-ecoflow-cloud-main" "ecoflow_cloud" 5 | # install-ha-addons "localtuya" "https://codeload.github.com/rospogrigio/localtuya/zip/refs/heads/master" "localtuya-master" "localtuya" 6 | # install-ha-addons "ollama_conversation" "https://github.com/ej52/hass-ollama-conversation/archive/refs/heads/main.zip" "hass-ollama-conversation-main" "ollama_conversation" 7 | # install-ha-addons "sonoff" "https://codeload.github.com/AlexxIT/SonoffLAN/zip/refs/heads/master" "SonoffLAN-master" "sonoff" 8 | # install-ha-addons "stream_assist" "https://github.com/AlexxIT/StreamAssist/archive/refs/heads/main.zip" "StreamAssist-main" "stream_assist" 9 | # install-ha-addons "tesla" "https://codeload.github.com/alandtse/tesla/zip/refs/heads/dev" "tesla-dev" "tesla_custom" -------------------------------------------------------------------------------- /ei23-docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | networks: 2 | default: 3 | driver: bridge 4 | ipam: 5 | driver: default 6 | config: 7 | - subnet: 172.18.0.0/24 8 | # custom_networks_here 9 | 10 | services: 11 | # DEFAULT CONTAINER 12 | portainer: 13 | container_name: portainer 14 | image: portainer/portainer-ce 15 | restart: unless-stopped 16 | ports: 17 | - "8000:8000" 18 | - "9000:9000" 19 | volumes: 20 | - /var/run/docker.sock:/var/run/docker.sock 21 | - ./volumes/portainer/data:/data 22 | 23 | vscode: 24 | image: lscr.io/linuxserver/code-server 25 | container_name: vscode 26 | restart: unless-stopped 27 | ports: 28 | - 2222:8443 29 | environment: 30 | - PUID=0 31 | - GUID=0 32 | - TZ=Europe/Berlin 33 | # - PASSWORD=password_placeholder 34 | volumes: 35 | - ./volumes/vscode/config:/config 36 | - ./:/ei23-docker -------------------------------------------------------------------------------- /ei23-docker/firstinstall.txt: -------------------------------------------------------------------------------- 1 | just a placeholder file for installation routine -------------------------------------------------------------------------------- /ei23-docker/flows/CreateMainDB.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "b3105df5.259aa", 4 | "type": "inject", 5 | "z": "6515547.81a452c", 6 | "name": "Create Main DB", 7 | "topic": "", 8 | "payload": "", 9 | "payloadType": "date", 10 | "repeat": "", 11 | "crontab": "", 12 | "once": false, 13 | "onceDelay": 0.1, 14 | "x": 260, 15 | "y": 120, 16 | "wires": [ 17 | [ 18 | "ed820093.9b0fa8" 19 | ] 20 | ] 21 | }, 22 | { 23 | "id": "ed820093.9b0fa8", 24 | "type": "influxdb in", 25 | "z": "6515547.81a452c", 26 | "influxdb": "87f98227.1edcd8", 27 | "name": "Create MAIN DB", 28 | "query": "CREATE DATABASE MAIN", 29 | "rawOutput": false, 30 | "precision": "", 31 | "retentionPolicy": "", 32 | "x": 450, 33 | "y": 120, 34 | "wires": [ 35 | [] 36 | ] 37 | }, 38 | { 39 | "id": "3ed4214e.047c76", 40 | "type": "comment", 41 | "z": "6515547.81a452c", 42 | "name": "CMD for InfluxDB", 43 | "info": "If you want manual control over InfluxDB type \n\ndocker exec -it influxdb influx\n\nin your console or SSH (Putty)", 44 | "x": 350, 45 | "y": 80, 46 | "wires": [] 47 | }, 48 | { 49 | "id": "87f98227.1edcd8", 50 | "type": "influxdb", 51 | "z": "", 52 | "hostname": "127.0.0.1", 53 | "port": "8086", 54 | "protocol": "http", 55 | "database": "MAIN", 56 | "name": "MainDB", 57 | "usetls": false, 58 | "tls": "" 59 | } 60 | ] -------------------------------------------------------------------------------- /ei23-docker/flows/Speedtest.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "9d4bb9b6.21d82", 4 | "type": "speedtest", 5 | "z": "c0e8886b.174808", 6 | "name": "", 7 | "maxTime": 5000, 8 | "x": 490, 9 | "y": 2540, 10 | "wires": [ 11 | [ 12 | "2c5e374f.b18e58" 13 | ] 14 | ] 15 | }, 16 | { 17 | "id": "b99cf5a0.c34b98", 18 | "type": "inject", 19 | "z": "c0e8886b.174808", 20 | "name": "", 21 | "props": [ 22 | { 23 | "p": "payload" 24 | }, 25 | { 26 | "p": "topic", 27 | "vt": "str" 28 | } 29 | ], 30 | "repeat": "1800", 31 | "crontab": "", 32 | "once": false, 33 | "onceDelay": 0.1, 34 | "topic": "", 35 | "payload": "", 36 | "payloadType": "date", 37 | "x": 330, 38 | "y": 2540, 39 | "wires": [ 40 | [ 41 | "9d4bb9b6.21d82" 42 | ] 43 | ] 44 | }, 45 | { 46 | "id": "2c5e374f.b18e58", 47 | "type": "function", 48 | "z": "c0e8886b.174808", 49 | "name": "Influx-Formatierung", 50 | "func": "return {\npayload: \n {\n ip: msg.payload.client.ip,\n download: msg.payload.speeds.download,\n upload: msg.payload.speeds.upload,\n ping: msg.payload.server.ping\n }\n}", 51 | "outputs": 1, 52 | "noerr": 0, 53 | "initialize": "", 54 | "finalize": "", 55 | "x": 670, 56 | "y": 2540, 57 | "wires": [ 58 | [ 59 | "cb50232c.a5e948", 60 | "4b6305b1.ff58dc" 61 | ] 62 | ] 63 | }, 64 | { 65 | "id": "cb50232c.a5e948", 66 | "type": "debug", 67 | "z": "c0e8886b.174808", 68 | "name": "", 69 | "active": true, 70 | "tosidebar": true, 71 | "console": false, 72 | "tostatus": false, 73 | "complete": "false", 74 | "statusVal": "", 75 | "statusType": "auto", 76 | "x": 870, 77 | "y": 2520, 78 | "wires": [] 79 | }, 80 | { 81 | "id": "4b6305b1.ff58dc", 82 | "type": "influxdb out", 83 | "z": "c0e8886b.174808", 84 | "influxdb": "", 85 | "name": "", 86 | "measurement": "speedtest", 87 | "precision": "", 88 | "retentionPolicy": "", 89 | "x": 860, 90 | "y": 2560, 91 | "wires": [] 92 | } 93 | ] -------------------------------------------------------------------------------- /ei23-docker/flows/TutorialUpdate.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "8fbb6ed.aad6f1", 4 | "type": "exec", 5 | "z": "9270d882.c669a", 6 | "command": "bash ~/ei23-docker/update.sh", 7 | "addpay": false, 8 | "append": "", 9 | "useSpawn": "false", 10 | "timer": "", 11 | "oldrc": false, 12 | "name": "TutorialUpdate", 13 | "x": 360, 14 | "y": 340, 15 | "wires": [ 16 | [], 17 | [], 18 | [] 19 | ] 20 | }, 21 | { 22 | "id": "aa04f08f.51211", 23 | "type": "inject", 24 | "z": "9270d882.c669a", 25 | "name": "Update", 26 | "topic": "", 27 | "payload": "", 28 | "payloadType": "date", 29 | "repeat": "", 30 | "crontab": "", 31 | "once": false, 32 | "onceDelay": 0.1, 33 | "x": 190, 34 | "y": 340, 35 | "wires": [ 36 | [ 37 | "8fbb6ed.aad6f1" 38 | ] 39 | ] 40 | } 41 | ] -------------------------------------------------------------------------------- /ei23-docker/led_service.sh: -------------------------------------------------------------------------------- 1 | # Raspberry Pi LED Controller by ei23 2 | # this service can be edited with sudo crontab -e 3 | # the line is "@reboot bash /home/pi/ei23-docker/led_service.sh &" 4 | 5 | # --- blink styles --- (echo "timer" | sudo tee /sys/class/leds/led[1,0]/trigger) 6 | # - gpio - controlled through GPIO (off by default) 7 | # - heartbeat - heartbeat-like pulse 8 | # - timer - pulse every second 9 | # - input - under-voltage detection 10 | # - mmc0 - memory I/O 11 | # - cpu0 - CPU activity 12 | 13 | # --- on/of --- (echo 0 | sudo tee /sys/class/leds/led[1,0]/brightness) 14 | # - 0 - turn off 15 | # - 1 - turn on 16 | 17 | # --- example --- 18 | # blink GREEN LED 19 | # echo "timer" | sudo tee /sys/class/leds/led0/trigger 20 | # blink RED LED 21 | # echo "timer" | sudo tee /sys/class/leds/led1/trigger 22 | 23 | # - Programmstart: blinkt rot + dauer grün 24 | # - rot aus wenn docker start 25 | # - blinkt grün wenn netzwerk (bei kunden über nodered / feste ip) 26 | # - while schleifen 27 | # - (bei kunden) heartbeat pro minute (cronjob +1 minütlich, log und reset stündlich) 28 | 29 | # 1: fully turn on green led and blink red led at boot 30 | echo "none" | sudo tee /sys/class/leds/led0/trigger 31 | echo 1 | sudo tee /sys/class/leds/led0/brightness 32 | echo "timer" | sudo tee /sys/class/leds/led1/trigger 33 | 34 | docker_state=false 35 | network_state=false 36 | 37 | while true 38 | do 39 | if [[ $EI23_PING_IP ]] ; then 40 | # Set your custom ping ip with (cat /etc/environment | grep -v "EI23_PING_IP"); echo "EI23_PING_IP=10.8.0.1" | sudo tee -a /etc/environment 41 | ipadress=$EI23_PING_IP 42 | else 43 | # Default Gateway 44 | ipadress=$(ip route | grep default | awk '{print $3}') 45 | fi 46 | 47 | # 2: stop red led blinking if default gateway is pingable 48 | if ping -c 1 $ipadress > /dev/null; then network=true; else network=false; fi 49 | if [ "$network" != "$network_state" ] ; then 50 | if $network; then 51 | echo "none" | sudo tee /sys/class/leds/led1/trigger 52 | echo 0 | sudo tee /sys/class/leds/led1/brightness 53 | else 54 | echo "timer" | sudo tee /sys/class/leds/led1/trigger 55 | fi 56 | network_state=$network 57 | fi 58 | 59 | # 3: heartbeat green led if ei23 docker is working 60 | if docker ps --filter "name=ei23" | grep "ei23" > /dev/null; then docker=true; else docker=false; fi 61 | if [ "$docker" != "$docker_state" ] ; then 62 | if $docker; then 63 | echo "heartbeat" | sudo tee /sys/class/leds/led0/trigger; 64 | else 65 | echo "none" | sudo tee /sys/class/leds/led0/trigger 66 | echo 1 | sudo tee /sys/class/leds/led0/brightness 67 | fi 68 | docker_state=$docker 69 | fi 70 | sleep 30 71 | done -------------------------------------------------------------------------------- /ei23-docker/settings.txt: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | flowFile: "flows.json", 3 | flowFilePretty: true, 4 | httpStatic: '/home/pi/.node-red/public', 5 | //adminAuth: { type: "credentials", users: [{ username: "NRUSERNAMEA", password: "NRPASSWORDA", permissions: "*" }] }, 6 | //httpNodeAuth: {user:"NRUSERNAMEU", pass:"NRPASSWORDU"}, 7 | uiPort: process.env.PORT || 1880, 8 | logging: { 9 | console: { 10 | level: "info", 11 | metrics: false, 12 | audit: false 13 | } 14 | }, 15 | exportGlobalContextKeys: false, 16 | externalModules: { 17 | 18 | }, 19 | editorTheme: { projects: { enabled: false }}, 20 | contextStorage: { 21 | default: "RAM", 22 | RAM: { module: 'memory' }, 23 | HDD: { module: 'localfilesystem', 24 | config: { 25 | flushInterval: 60 26 | } 27 | } 28 | }, 29 | functionExternalModules: true, 30 | functionGlobalContext: { 31 | 32 | }, 33 | debugMaxLength: 1000, 34 | mqttReconnectTime: 15000, 35 | serialReconnectTime: 15000, 36 | } 37 | -------------------------------------------------------------------------------- /ei23-docker/update.sh: -------------------------------------------------------------------------------- 1 | cd ~ 2 | getData(){ 3 | wget "https://ei23.de/softwarehub/smarthome/USERID/DEVICEID/VERSIONNR/ei23.sh" -O ei23.sh 4 | wget "https://ei23.de/softwarehub/smarthome/USERID/DEVICEID/VERSIONNR/ei23-update.zip" -O ei23-update.zip 5 | sudo rm -r $HOME/ei23-docker/compose_templates/ 6 | sudo unzip -o ei23-update.zip -d $HOME/ei23-docker/ 7 | sudo systemctl stop ei23.service; sudo systemctl start ei23.service 8 | } 9 | if [[ $1 == "nodockerupdate" ]]; then 10 | getData 11 | bash ei23.sh "no-docker-update" 12 | exit 1 13 | fi 14 | if [[ $1 == "fullupdate" ]] || [[ $1 == "" ]]; then 15 | [[ $1 == "fullupdate" ]] && command="fullup2" || command="part2" 16 | getData 17 | bash $HOME/ei23-docker/update.sh $command 18 | exit 1 19 | fi 20 | if [[ $1 == "part2" ]] || [[ $1 == "fullup2" ]]; then 21 | # DONTCHANGE 22 | sudo mkdir --parents $HOME/.node-red/lib/flows/ei23/ 23 | sudo mv $HOME/ei23-docker/flows/* $HOME/.node-red/lib/flows/ei23/ 24 | sudo rm -r $HOME/ei23-docker/flows/ 25 | sudo chown -R $(whoami) $HOME/.node-red/lib/ 26 | if [[ $1 == "fullup2" ]]; then 27 | cd ~ 28 | bash ei23.sh "fullupdate" 29 | fi 30 | sudo rm ei23-update.zip 31 | exit 1 32 | fi 33 | -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | Port = 80 3 | PeriodicScan = True -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/docs/docs/index.md: -------------------------------------------------------------------------------- 1 | # Lege dir selbst eine Dokumentation an! 2 | 3 | Hier kannst du **deinen** ei23 SmartHome Server dokumentieren. 4 | ## Bearbeiten deiner Dokumentation 5 | Du kannst die Dateien unter `/home/pi/ei23-docker/volumes/ei23/docs/docs` bearbeiten. 6 | Beispielsweise mit direkt [VSCode im Browser](http://raspberrypi:2222) (sofern es installiert ist) 7 | 8 | ## Dokumentation Kompilieren 9 | Da die Dokumentation nach dem bearbeiten der *.md Datei noch nicht sichtbar ist musst du sie mit folgedem Befehl kompilieren 10 | ``` 11 | bash ei23.sh docs 12 | ``` 13 | oder du öffnest das Menü mit 14 | ``` 15 | bash ei23.sh 16 | ``` 17 | 18 | ## Dokumentation für ei23 schreiben?! 19 | Wenn du das ei23 Projekt unterstützen willst, kannst du auch nützliche Anleitungen für alle anderen schreiben und sie teilen.
20 | Die Dokumentation von ei23 nutzt auch das Markdown Format
21 | [Näheres dazu findest du auf der Projektseite ](https://ei23.de/diy-smarthome) 22 | 23 | ## Backups 24 | So kannst du Listen erstellen: 25 | 26 | - Übrigens, die Dokumentation wird mit `bash ei23.sh backup` auch gesichert. 27 | - Viele andere Dinge natürlich auch 28 | - Auch Todolisten theoretisch 29 | - Unendliche Möglichkeiten 30 | 31 | --- 32 | 33 | ## Abschließend zu sagen 34 | Viel Spaß beim Tüfteln und unabhängig bleiben! 35 | ``` 36 | Viele Grüße 37 | Felix von ei23 38 | ``` 39 | 40 | --- -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/docs/docs/media/ei23.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/docs/docs/media/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/docs/docs/media/favicon.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/docs/docs/sample.md: -------------------------------------------------------------------------------- 1 | # Create your own documentation! 2 | 3 | Here you can document **your** ei23 SmartHome Server. 4 | ## Editing your documentation 5 | You can edit the files under `/home/pi/ei23-docker/volumes/ei23/docs/docs`. 6 | For example with directly [VSCode in the browser](http://raspberrypi:2222) (if it is installed) 7 | 8 | ## Compile documentation 9 | Since the documentation is not yet visible after editing the *.md file, you have to compile it with the following command: 10 | ``` 11 | bash ei23.sh docs 12 | ``` 13 | or you open the menu with 14 | ``` 15 | bash ei23.sh 16 | ``` 17 | 18 | ## Write documentation for ei23 ?! 19 | If you want to support the ei23 project, you can also write useful guides for everyone else and share them.
20 | The documentation from ei23 also uses the Markdown format
21 | [You can find more information on this on the project page](https://ei23.de/diy-smarthome) 22 | 23 | ## backups 24 | This is how you can create lists: 25 | 26 | - By the way, the documentation is also backed up with `bash ei23.sh backup`. 27 | - Lots of other things too, of course 28 | - Also todolists theoretically 29 | - Infinite possibilities 30 | 31 | --- 32 | 33 | ## To say in conclusion 34 | Have fun tinkering and stay independent! 35 | ``` 36 | This is Felix from ei23 37 | Have a good one! 38 | Cheers! 39 | ``` 40 | 41 | --- -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/docs/docs/stylesheets/dark_theme.css: -------------------------------------------------------------------------------- 1 | /* 2 | ////////////////// 3 | // Main content // 4 | ////////////////// 5 | */ 6 | 7 | /* 8 | Default text color 9 | and background color 10 | */ 11 | .md-main { 12 | color: #F5F5F5 !important; 13 | background-color: #212121 !important; 14 | } 15 | 16 | /* 17 | Main headlines 18 | */ 19 | .md-main h1 { 20 | color: white !important; 21 | } 22 | 23 | /* 24 | Tables 25 | */ 26 | tbody { 27 | background-color: rgba(255, 255, 255, 0.05) !important; 28 | } 29 | 30 | .md-typeset table:not([class]) th { 31 | background-color: rgba(255,255,255,0.11) !important; 32 | } 33 | 34 | .md-typeset table:not([class]) tr:hover { 35 | box-shadow: none !important; 36 | background-color: rgba(255, 255, 255, 0.04) !important; 37 | } 38 | 39 | /* 40 | Blockquotes 41 | */ 42 | .md-typeset blockquote { 43 | color: rgba(255,255,255,0.8) !important; 44 | border-color: rgba(255,255,255,0.54) !important; 45 | } 46 | 47 | /* 48 | //////////////////// 49 | // Navigation bar // 50 | //////////////////// 51 | */ 52 | 53 | /* 54 | Left and right toc scrollbar 55 | */ 56 | .md-sidebar__scrollwrap::-webkit-scrollbar-thumb { 57 | background-color: #E0E0E0 !important; 58 | } 59 | 60 | 61 | 62 | .md-nav { 63 | color: #F5F5F5 !important; 64 | background-color: #212121 !important; 65 | } 66 | 67 | /* 68 | Arrow Left Icon 69 | */ 70 | html .md-nav--primary .md-nav__title:before { 71 | color: #FAFAFA !important; 72 | } 73 | 74 | .md-nav__title { 75 | color: rgba(255,255,255,1) !important; 76 | background-color: #212121 !important; 77 | } 78 | 79 | /* 80 | Arrow Right Icon 81 | */ 82 | .md-nav--primary .md-nav__link:after { 83 | color: #FAFAFA !important; 84 | } 85 | 86 | .md-nav__list { 87 | color: rgba(255,255,255,1) !important; 88 | background-color: #212121 !important; 89 | } 90 | 91 | .md-nav__item { 92 | color: rgba(255,255,255,1) !important; 93 | background-color: #212121 !important; 94 | } 95 | 96 | .md-nav__link[data-md-state=blur] { 97 | color: rgba(255,255,255,0.54) !important; 98 | } 99 | 100 | /* 101 | //////////// 102 | // Search // 103 | //////////// 104 | */ 105 | 106 | /* 107 | scroll bar 108 | 109 | attention: 110 | background is scroll handle color! 111 | */ 112 | .md-search__scrollwrap::-webkit-scrollbar-thumb { 113 | background-color: #E0E0E0 !important; 114 | } 115 | /* 116 | scroll bar background color 117 | */ 118 | .md-search__scrollwrap { 119 | background-color: #424242 !important; 120 | } 121 | 122 | /* 123 | Icon color 124 | */ 125 | .md-search-result__article--document:before { 126 | color: #EEEEEE !important; 127 | } 128 | 129 | /* 130 | headline color and 131 | result list background 132 | */ 133 | .md-search-result__list { 134 | color: #EEEEEE !important; 135 | background-color: #212121 !important; 136 | } 137 | 138 | /* 139 | result info/count 140 | */ 141 | .md-search-result__meta { 142 | background-color: #EEEEEE !important; 143 | } 144 | 145 | /* 146 | article preview text color 147 | */ 148 | .md-search-result__teaser { 149 | color: #BDBDBD !important; 150 | } 151 | -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/docs/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: Docs | SmartHome-Server ei23.de 2 | nav: 3 | - Start: 4 | - Startseite: index.md 5 | - Beispiel Seite: sample.md 6 | - Weitere Anleitungen: 7 | - Beispiel Seite 1: sample.md 8 | - Beispiel Seite 2: sample.md 9 | - Beispiel Seite 3: sample.md 10 | 11 | theme: 12 | name: material 13 | language: de 14 | logo: media/ei23.svg 15 | favicon: media/favicon.png 16 | palette: 17 | 18 | # Light mode 19 | - media: "(prefers-color-scheme: light)" 20 | scheme: default 21 | primary: grey 22 | accent: light blue 23 | toggle: 24 | icon: material/toggle-switch-off-outline 25 | name: Switch to dark mode 26 | 27 | # Dark mode 28 | - media: "(prefers-color-scheme: dark)" 29 | scheme: slate 30 | primary: grey 31 | accent: light blue 32 | toggle: 33 | icon: material/toggle-switch 34 | name: Switch to light mode 35 | 36 | font: 37 | text: Karla 38 | code: Roboto Mono 39 | 40 | extra_css: 41 | - stylesheets/extra.css 42 | 43 | plugins: 44 | - privacy 45 | - search: 46 | separator: '[\s\u200b\-_,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])' 47 | # - offline 48 | 49 | extra: 50 | social: 51 | - icon: fontawesome/solid/globe 52 | link: 'https://ei23.de' 53 | - icon: fontawesome/brands/youtube 54 | link: 'https://youtube.com/ei23-de' 55 | - icon: fontawesome/brands/github 56 | link: 'https://github.com/ei23com/diy-smart-home' 57 | - icon: fontawesome/brands/discord 58 | link: 'https://ei23.de/discord' 59 | - icon: fontawesome/brands/telegram 60 | link: 'https://t.me/ei23de' -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/ei23.service: -------------------------------------------------------------------------------- 1 | # systemd service file to start ei23-Supervisor 2 | 3 | [Unit] 4 | Description=ei23 Supervisor Service 5 | After=network.target 6 | 7 | [Service] 8 | ExecStart=/home/username/ei23-docker/volumes/ei23/.venv/bin/python3 /home/username/ei23-docker/volumes/ei23/ei23-supervisor.py 9 | User=root 10 | Group=root 11 | WorkingDirectory=/home/username/ei23-docker/volumes/ei23/ 12 | Restart=always 13 | 14 | [Install] 15 | WantedBy=multi-user.target -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/scripts/yaml_editor.py: -------------------------------------------------------------------------------- 1 | from ruamel import yaml 2 | 3 | dockerpath = "/home/pi/ei23-docker/" 4 | 5 | ei23 = yaml.load(open(dockerpath+"compose_templates/ei23.yml", 'r'), Loader=yaml.RoundTripLoader)['ei23'] 6 | influxdb = yaml.load(open(dockerpath+"compose_templates/influxdb.yml", 'r'), Loader=yaml.RoundTripLoader)['influxdb'] 7 | tasmoadmin = yaml.load(open(dockerpath+"compose_templates/tasmoadmin.yml", 'r'), Loader=yaml.RoundTripLoader)['tasmoadmin'] 8 | grafana = yaml.load(open(dockerpath+"compose_templates/grafana.yml", 'r'), Loader=yaml.RoundTripLoader)['grafana'] 9 | 10 | with open(dockerpath+"docker-compose.yml", 'r') as ymlfile: 11 | docker_config = yaml.load(ymlfile, Loader=yaml.RoundTripLoader) 12 | # del docker_config['services']['ei23'] 13 | docker_config['services']['ei23'] = ei23 14 | docker_config['services']['influxdb'] = influxdb 15 | docker_config['services']['tasmoadmin'] = tasmoadmin 16 | docker_config['services']['grafana'] = grafana 17 | # docker_config['services'].insert(len(docker_config['services']), "test", "hi") 18 | 19 | # print(docker_config['services']) 20 | # for item in docker_config['services']: 21 | # print(item) 22 | 23 | 24 | 25 | with open(dockerpath+"docker-compose.yml", 'w') as newconf: 26 | yaml.dump(docker_config, newconf, Dumper=yaml.RoundTripDumper) -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/bottom-logo.html: -------------------------------------------------------------------------------- 1 | 8 | 9 | ei23.de
SmartHome-Server
10 |
11 | 12 |
{{ disk | safe}}
13 |
{{ ram | safe}}
14 |
15 | 16 |
17 |
18 | -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SmartHome-Server 6 | {{ header | safe}} 7 | 8 | 9 | 10 |
11 | {{ navbar | safe}} 12 |
13 |
14 | {{ items | safe}} 15 |
16 | {{ bottom_logo | safe}} 17 |
18 |
19 | 20 | 45 | 46 | -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/localnet.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SmartHome-Server | LocalNet 6 | {{ header | safe}} 7 | 8 | 9 | 10 |
11 | {{ navbar | safe}} 12 |
13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | {{ scan_result | safe}} 22 |
HOSTIPMACHERSTELLER
23 |
24 | NETSCAN 25 | {{ bottom_logo | safe}} 26 |
27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/navbar.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/server.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SmartHome-Server | Server 6 | {{ header | safe}} 7 | 8 | 9 | 10 |
11 | {{ navbar | safe}} 12 |
13 |
14 |
15 |
16 | Dashboard aktualisieren 17 | Docs neu erzeugen 18 | Strukturierte Speicherbelegung zeigen* 19 | *Langsam - Wenn du viele Dateien hast 20 |
21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | {{ table | safe}} 33 |
ContainerPortHTTP*
34 |
*zeigt Status über aktiven HTTP Port
35 |
36 |
37 |
38 | 45 |
46 | {{ bottom_logo | safe}} 47 |
48 | 49 | 50 | -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/Karla-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/Karla-700.eot -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/Karla-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/Karla-700.ttf -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/Karla-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/Karla-700.woff -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/Karla-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/Karla-700.woff2 -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/Karla-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/Karla-regular.eot -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/Karla-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/Karla-regular.ttf -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/Karla-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/Karla-regular.woff -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/Karla-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/Karla-regular.woff2 -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/cropped-favicon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/cropped-favicon-180x180.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/cropped-favicon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/cropped-favicon-192x192.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/cropped-favicon-270x270.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/cropped-favicon-270x270.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/cropped-favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/cropped-favicon-32x32.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/favicon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/favicon-150x150.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/favicon-300x300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/favicon-300x300.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/favicon-768x768.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/dist/favicon-768x768.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/dist/karla.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Karla'; 3 | font-weight: 400; 4 | font-style: normal; 5 | src: url('Karla-regular.eot'); 6 | src: url('Karla-regular.eot?#iefix') format('embedded-opentype'), 7 | local('Karla-regular'), 8 | url('Karla-regular.woff2') format('woff2'), 9 | url('Karla-regular.woff') format('woff'), 10 | url('Karla-regular.ttf') format('truetype'), 11 | url('Karla-regular.svg#Roboto') format('svg'); 12 | } 13 | 14 | @font-face { 15 | font-family: 'Karla'; 16 | font-weight: 700; 17 | font-style: normal; 18 | src: url('Karla-700.eot'); 19 | src: url('Karla-700.eot?#iefix') format('embedded-opentype'), 20 | local('Karla-700'), 21 | url('Karla-700.woff2') format('woff2'), 22 | url('Karla-700.woff') format('woff'), 23 | url('Karla-700.ttf') format('truetype'), 24 | url('Karla-700.svg#Roboto') format('svg'); 25 | } -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/adguardhome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/adguardhome.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/asterisk-freepbx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/asterisk-freepbx.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/avmfritzbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/avmfritzbox.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/awtrix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/awtrix.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/bitwarden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/bitwarden.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/camera.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/deconz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/deconz.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/docs.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/domoticz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/domoticz.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/duplicati.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/duplicati.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/ei23.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/esphome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/esphome.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/fhem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/fhem.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/fireflyiii.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/fireflyiii.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/gotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/gotify.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/grafana.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/grafana.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/grocy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/grocy.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/homeassistant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/homeassistant.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/homebridge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/homebridge.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/immich.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/immich.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/iobroker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/iobroker.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/jellyfin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/jellyfin.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/kodi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/kodi.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/lyrionmusicserver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/lyrionmusicserver.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/motioneye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/motioneye.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/mqtt-explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/mqtt-explorer.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/music-assistant-server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/music-assistant-server.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/nextcloudofficial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/nextcloudofficial.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/nextcloudpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/nextcloudpi.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/nginxproxymanger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/nginxproxymanger.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/nodered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/nodered.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/octoprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/octoprint.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/omv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/omv.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/openhab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/openhab.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/paperlessngx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/paperlessngx.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/pihole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/pihole.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/plex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/plex.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/portainer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/portainer.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/proxmox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/proxmox.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/rhasspy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/rhasspy.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/router.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/router.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/stirlingpdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/stirlingpdf.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/syncthing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/syncthing.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/synology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/synology.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/tasmoadmin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/tasmoadmin.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/teddycloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/teddycloud.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/teslamate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/teslamate.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/traefik.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/traefik.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/uptime-kuma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/uptime-kuma.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/volumio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/volumio.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/vscode.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/static/img/wordpress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/ei23/web/static/img/wordpress.png -------------------------------------------------------------------------------- /ei23-docker/volumes/ei23/web/tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SmartHome-Server 6 | {{ header | safe}} 7 | 8 | 9 | 10 |
11 | {{ navbar | safe}} 12 |
13 |
14 |
15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | {% macro render_tree(tree, parent_path) %} 25 | {% if parent_path %} 26 | 27 | 28 | 29 | 30 | {% endif %} 31 | {% for item in tree %} 32 | 33 | 34 | 46 | 47 | {% endfor %} 48 | {% endmacro %} 49 | {{ render_tree(tree, parent_path) }} 50 | 51 |
SizeName
../
{{ item.size_hr }} 35 | {% if item.type == 'directory' %} 36 | {{ item.name }} 37 | 38 | 39 | {{ render_tree(item.children, item.path) }} 40 | 41 |
42 | {% else %} 43 | {{ item.name }} 44 | {% endif %} 45 |
52 |
53 |
54 |
55 | {{ bottom_logo | safe}} 56 |
57 |
58 | -------------------------------------------------------------------------------- /ei23-docker/volumes/homeassistant/config/automations.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/homeassistant/config/automations.yaml -------------------------------------------------------------------------------- /ei23-docker/volumes/homeassistant/config/configuration.yaml: -------------------------------------------------------------------------------- 1 | 2 | # Configure a default setup of Home Assistant (frontend, api, etc) 3 | default_config: 4 | 5 | # Uncomment this if you are using SSL/TLS, running in Docker container, etc. 6 | # http: 7 | # base_url: example.duckdns.org:8123 8 | 9 | group: !include groups.yaml 10 | automation: !include automations.yaml 11 | script: !include scripts.yaml 12 | scene: !include scenes.yaml 13 | 14 | http: 15 | use_x_forwarded_for: true 16 | trusted_proxies: 17 | - 172.18.0.0/16 18 | ip_ban_enabled: true 19 | login_attempts_threshold: 5 -------------------------------------------------------------------------------- /ei23-docker/volumes/homeassistant/config/groups.yaml: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /ei23-docker/volumes/homeassistant/config/scenes.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/homeassistant/config/scenes.yaml -------------------------------------------------------------------------------- /ei23-docker/volumes/homeassistant/config/scripts.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/homeassistant/config/scripts.yaml -------------------------------------------------------------------------------- /ei23-docker/volumes/mosquitto/config/mosquitto.conf: -------------------------------------------------------------------------------- 1 | persistence true 2 | persistence_location /mosquitto/data/ 3 | log_dest file /mosquitto/log/mosquitto.log 4 | # password_file /mosquitto/config/pwfile 5 | 6 | listener 1883 7 | listener 9001 8 | protocol websockets -------------------------------------------------------------------------------- /ei23-docker/volumes/mosquitto/config/pwfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ei23com/diy-smart-home/cf9e5824fe7fa0d99e091dfe68c7de75691687f7/ei23-docker/volumes/mosquitto/config/pwfile -------------------------------------------------------------------------------- /ei23-docker/volumes/pihole/hosts: -------------------------------------------------------------------------------- 1 | 127.0.0.1 localhost 2 | ::1 localhost ip6-localhost ip6-loopback 3 | fe00::0 ip6-localnet 4 | ff00::0 ip6-mcastprefix 5 | ff02::1 ip6-allnodes 6 | ff02::2 ip6-allrouters -------------------------------------------------------------------------------- /ei23-docker/volumes/traefik/traefik/dynamic/config.yml: -------------------------------------------------------------------------------- 1 | http: 2 | routers: 3 | home-assistant: 4 | rule: Host(`ha.example.com`) 5 | service: home-assistant 6 | tls: 7 | certresolver: letsEncrypt 8 | 9 | services: 10 | home-assistant: 11 | loadBalancer: 12 | servers: 13 | - url: http://172.17.0.1:8123 # 172.17.0.1 is default docker gateway -------------------------------------------------------------------------------- /ei23-docker/volumes/traefik/traefik/traefik.yml: -------------------------------------------------------------------------------- 1 | # /etc/traefik/traefik.yml 2 | 3 | entryPoints: 4 | lan: 5 | address: :80 6 | web: 7 | address: :591 8 | http: 9 | redirections: 10 | entrypoint: 11 | to: web-secured 12 | scheme: https 13 | web-secured: 14 | address: :443 15 | 16 | # certificatesResolvers: 17 | # letsEncrypt: 18 | # acme: 19 | # email: certbot@example.com 20 | # storage: /letsencrypt/acme.json 21 | # caserver: https://acme-staging-v02.api.letsencrypt.org/directory # this is for testing 22 | # # caserver: https://acme-v02.api.letsencrypt.org/directory 23 | # httpChallenge: 24 | # entryPoint: web 25 | 26 | providers: 27 | docker: 28 | endpoint: unix:///var/run/docker.sock 29 | exposedByDefault: false 30 | file: 31 | directory: /etc/traefik/dynamic/ 32 | 33 | api: 34 | insecure: true 35 | 36 | # metrics: 37 | # influxDB: 38 | # address: influxdb:8089 39 | # protocol: udp 40 | # database: traefik 41 | # pushInterval: 30s 42 | # addServicesLabels: false 43 | 44 | # accessLog: 45 | # filePath: /etc/traefik/access.log 46 | # bufferingSize: 100 47 | 48 | # log: 49 | # level: DEBUG # this is for testing 50 | -------------------------------------------------------------------------------- /en-file.txt: -------------------------------------------------------------------------------- 1 | # -------------------- 2 | # 3 | # Smart Home Installer Script by ei23.com 4 | # 5 | # Terms of Use: 6 | # You are not alowed to share or copy this script nor your link to this script from the newsletter without a permission by ei23.com. Sharing ei23.com is encouraged! 7 | # Commercial use, for example sale to customers, is not permitted. 8 | # There is no guarantee of functionality and availability. 9 | # Liability for damage or loss of data is excluded. 10 | # The script can be adapted by the user for his individual needs. 11 | # 12 | # !!! Please support Open Source projects - https://ei23.com/opensource !!! 13 | # 14 | # -------------------- 15 | 16 | # LANGUAGE EN 17 | L_ALREADYINSTALLED="already installed" 18 | L_AND="and" 19 | L_BACKUPDATA="Backup Data " 20 | L_BACKUPDATATEXT="Among others, a backup of:\nInfluxDB, NodeRED, Grafana, Motioneye, HomeAssistant, Nextcloud, Traefik, Bitwarden and ei23-data will be created.\n\nCAUTION!\nTo keep the backup file small, not all programs and all files are included, best check it yourself.\n\nThe backup file will be stored in /home/$IAM/Backup, make sure to also save it externally!" 21 | L_CHOOSESERVERNAME="Choose a name for your SmartHome-Server\n(no whitespaces or special chars)" 22 | L_COMPOSE_ERROR="WARNING - Docker-Compose is causing errors... \n\n^^^^ RELEVANT ERROR MESSAGE - SEE ABOVE! ^^^^\n\nCheck the \"ei23-docker/docker-compose.yml\" for syntax errors or outdated images.\nRemove the lines that are causing the error if necessary.\n\nAfter adjusting the docker-compose.yml, run \"ei23 dc\".\nIf this is a fresh installation, passwords need to be set again with the ei23 script.\n\nA complete reinstallation using the script is NOT necessary!" 23 | L_CONFIGURE="Configuring" 24 | L_CONFIRMPASSWORD="Confirm the password" 25 | L_DEPRECATED="not supported anymore" 26 | L_DOCKERDELETE="deleted unused Docker images" 27 | L_DOCKERSUCCESS="Docker-Compose run successfully!!!" 28 | L_HELP="List Shortcuts " 29 | L_INSTALL="Install" 30 | L_INSTALLAPPS="Install new programs" 31 | L_INSTALLAPPSTEXT="You can add, edit or remove new programs by editing the file /home/$IAM/ei23-docker/docker-compose.yml and add templates from /home/$IAM/ei23-docker/compose_templates.\nTo apply the changes run docker compose\n(\"ei23 dc\" in the terminal).\n\nYou can edit the ei23 dashboard in /home/$IAM/ei23-docker/volumes/ei23/web/static/programs.json.\nI showed how to do it in the script version 1 video.\n\nSome parts of this, will be automated in future versions..." 32 | L_INSTALLCOMPLETE="INSTALLATION COMPLETE!\n\"ei23\" serves now for updates and backups etc..." 33 | L_INSTALLING="installing" 34 | L_MENUMANUAL="[SPACEBAR] to select / deselect, [ENTER] to start" 35 | L_MQTTADMIN="Set admin name for MQTT" 36 | L_NEWROOTANDPI="Set new Root & User password" 37 | L_NODEREDSETTINGS="Copy the following into the password section \n//// in /home/$IAM/.node-red/settings.js" 38 | L_NOINTERNET="No internet connection available, please check!" 39 | L_NONAMEABORT="No name given - aborting" 40 | L_NOPASSWD="No password given - aborting" 41 | L_OTHERAPPSINFO="The following is a basic selection of programs.\nMore programs like:\n\n- IOBroker\n- FHEM\n- OpenHAB \n- Octoprint\n- Zigbee2MQTT\n- etc...\ncan be installed after the main installation\n with the terminal command \"ei23\"!" 42 | L_PASSWDMATCH="Passwords don't match - aborting" 43 | L_PASSWORDFOR="Set a password for" 44 | L_PASSWORDFORALL="Set new passwords" 45 | L_PLEASEWAIT="(this will take some time)" 46 | L_REBOOT="Please Reboot" 47 | L_REBOOTTEXT="Now a reboot is needed.\nAfter reboot, run this script with \"ei23\" again.\n\nfirst and second reboot can take longer!" 48 | L_REMOVEAPPS="Remove programs" 49 | L_RESTOREDATA="Restore backup" 50 | L_RESTOREDATATEXT="Backup files are stored in /home/$IAM/Backup, you should regularly save them externally.\n\nTo restore simply copy the data back to the original folder, most programs will work this way. Nextcloud and InfluxDB for example are more complicated, check the documentation of the respective programs if necessary." 51 | L_TERMSOFUSE1="Terms Of Use Part 1" 52 | L_TERMSOFUSE1OK="OK" 53 | L_TERMSOFUSE1TEXT="Terms of Use:\n\nYou are not alowed to share or copy this script nor your link to this script from the newsletter without a permission by ei23.com.\nSharing ei23.com is encouraged!\n\nCommercial use, for example sale to customers, is not permitted." 54 | L_TERMSOFUSE2="Terms Of Use Part 2" 55 | L_TERMSOFUSE2ACCEPT="I accept" 56 | L_TERMSOFUSE2DECLINE="I decline" 57 | L_TERMSOFUSE2TEXT="There is no guarantee of functionality and availability.\n\nLiability for damage or loss of data is excluded.\n\nThe script can be adapted by the user for his individual needs.\n\n\nPlease support Open Source projects\nYou will find a list on ei23.com/opensource" 58 | L_UPDATE="Full Update " 59 | L_UPDATEEI="Update ei23 data only " 60 | L_UPDATING="updating" 61 | L_USERNAMEFOR="Username for" 62 | -------------------------------------------------------------------------------- /updates/1.00.sh: -------------------------------------------------------------------------------- 1 | # 1.00 2 | sudo sed -i -e "s#image: influxdb:latest#image: influxdb:1.8.4#" $HOME/ei23-docker/docker-compose.yml 3 | sudo sed -i -e "s#image: influxdb:1.8.2#image: influxdb:1.8.4#" $HOME/ei23-docker/docker-compose.yml 4 | sudo sed -i -e "s# - ./volumes/ei23/web:/www# - ./volumes/ei23/web:/www\n - ./volumes/ei23/docs/site:/www/docs#" $HOME/ei23-docker/docker-compose.yml 5 | sudo apt-get install -y nmap netdiscover sysfsutils tcpdump wget ssh unzip build-essential git python-serial libcurl4-openssl-dev libusb-dev python-dev cmake curl telnet usbutils jq pv parted gcc python3-pip htop python-smbus mpg123 screen imagemagick arp-scan imagemagick-doc raspberrypi-kernel-headers libimage-exiftool-perl ffmpeg libusb-1.0-0-dev zsh virtualenv libtool autoconf pkg-config libxml2-dev ncdu libfftw3-dev ncftp mosquitto-clients expect mkdocs 6 | sudo pip3 install mkdocs-material -------------------------------------------------------------------------------- /updates/1.01.sh: -------------------------------------------------------------------------------- 1 | # 1.01 -------------------------------------------------------------------------------- /updates/1.02.sh: -------------------------------------------------------------------------------- 1 | # 1.02 -------------------------------------------------------------------------------- /updates/1.03.sh: -------------------------------------------------------------------------------- 1 | # 1.03 -------------------------------------------------------------------------------- /updates/1.04.sh: -------------------------------------------------------------------------------- 1 | # 1.04 -------------------------------------------------------------------------------- /updates/1.10.sh: -------------------------------------------------------------------------------- 1 | # 1.10 -------------------------------------------------------------------------------- /updates/1.11.sh: -------------------------------------------------------------------------------- 1 | # 1.11 2 | bash ei23.sh ei23upgrade -------------------------------------------------------------------------------- /updates/1.12.sh: -------------------------------------------------------------------------------- 1 | # 1.12 --------------------------------------------------------------------------------