# Webscreenshot Docker ## Ziel des Projekts: Automatisches Erstellen von Screenshots von ganzen Webseiten oder einzelnen Elementen (Auswahl via CSS-Selektor) und Speicherung in einem Apache-Webroot. Die Screenshots werden in einem konfigurierbaren Intervall erstellt und nur gespeichert, wenn der aktuelle Screenshot von der vorheringen Version abweicht. **Features:** - Multi-URL-Support - Flexible Dateinamen der Screenshots - Skalierung der Screenshots in Relation zur Ursprungsgröße - Anpassbare Größe bei Auswahl einzelner CSS-Elemente (Höhe und Breite) - Individuelles Check-Intervall pro URL - Speicherung nur bei Änderung --- ## Projektstruktur webscreen/ |-- docker-compose.yml |-- Dockerfile |-- requirements.txt |-- app/ |-- webscreenshot.py |-- urls.csv --- ## Konfiguration Die Hauptkonfiguration erfolgt über die Datei `urls.csv`: | Spalte | Beschreibung | |-----------------|-------------| | `url` | URL der Webseite | | `filename` | Name der Ausgabedatei (z.B. `example.png`) | | `scale` | Skalierungsfaktor (z.B. 0.5 für 50%) | | `selector` | CSS-Selector des Elements, das gescreenshotet werden soll; leer = ganze Seite | | `element_width` | Breite des Elements vor Screenshot (px); leer = keine Änderung | | `element_height` | Höhe des Elements vor Screenshot (px); leer = keine Änderung | | `interval_minutes` | Intervall für wiederholten Screenshot in Minuten; leer = Docker-Variable | Für den Fall dass bei der Skalierung oder beim Intervall keine Eintragung vorgenommen wird werden die "Standartwerte" aus den docker-compose environment-Variabeln genommen. Diese können in der `docker-compose.yml` angepasst werden. --- ## Installation und Nutzung 1. Output-Verzeichnis erstellen: mkdir output 2. `docker-compose.yml` ggf. anpassen 3. `urls.csv` anpassen 4. Stack starten docker compose up -d --build 5. Screenshots sind abrufbar unter `http://localhost:8080/example.png --- ## Hinweise - Im Docker-Stack werden 2 Container erstellt: ein apache-Container um die Screenshots zugänglich zu machen und ein webscreenshot-Container, welcher das eigentliche python-Skript ausführt. - Es wird empfohlen, den apache-Container hinter einem reverse proxy zu betreiben, so lassen sich die Screenshots per https abrufen. - Der Port des apache-Servers kann regulär frei in der `docker-compose.yml` geändert werden