Installation und Ausführung
Ohne Docker
- Stellen Sie sicher, dass .NET 5.0 SDK auf Ihrem System installiert ist
- Klonen Sie das Repository
- Bauen Sie die Anwendung mit
dotnet publish ./Crawler -c Release
- Wechseln Sie zum Ausgabeverzeichnis des Builds
./Crawler/bin/Release/net5.0/publish
- Folgen Sie dem Anleitungsschritt "Konfiguration"
- Führen Sie die Anwendung aus
./Crawler.exe
Mit Docker Compose
Bauen
- Klonen Sie das Repository
- Führen Sie folgenden Befehl im Root-Verzeichnis des Repositories aus, um das Docker-Image zu bauen:
docker build . --tag crawler
Ausführen
- Erstellen Sie eine appsettings.json mit Ihren gewünschten Einstellungswerten.
- Führen Sie den Docker-Container aus mit
docker-run -v ./appsettings.json:/app/appsettings.json crawler
Mounting Points
- Der Pfad
/app/data/
muss zum Hostsystem persistiert werden, damit der Crawler tracken kann, welche Protokolle bereits indexiert wurden. - Die
appsettings.json
Datei muss nach/app/appsettings.json
gemounted werden, falls die Konfiguration via .json-Datei geschehen soll. Alternativ kann dieser Schritt weggelassen werden, wenn die Konfiguration via Umgebungsvariablen geschieht
Konfiguration
Die Konfiguration geschieht über die in der Standard-Konfigurationsdatei bereitgestellen Parameter. Über den Einsellungen sind Kommentare zur Erläuterung vorhanden. Es muss entweder die appsettings.json existieren oder es müssen alle vom Standard abweichenden Einstellungen über gleichnamige Umgebungsvariablen übergeben werden. Umgebungsvariablen überschreiben die Werte der appsettings.json.
Wenn z.B. die Einstellung Interval
überschrieben werden soll mit einer Umgebungsvariable, dann muss die Umgungsvariable auch Interval
heißen.
Name | Standardwert | Beschreibung |
---|---|---|
Interval | * * * * * |
Intervall als CRON-Expression, die bestimmt in welchem Intervall der Crawler die Seite des Bundestages überprüft. |
InitialDelay | 0 |
Einmalige Verzögerung des Anwendungsstarts in Sekunden. |
ChunkDelay | 0 |
Verzögerung zwischen den POST Anfragen an die Indexing-API in Sekunden. |
MaximumBatchSize | 5 |
Maximale Anzahl der Reden die in einer POST Anfrage an die Indexing-API übergeben werden. |
MongoConnectionString | mongodb://0.0.0.0:8430 |
Verbindungsstring zur Mongo-DB Datenbank, in der der Crawler extrahierte Reden ablegen wird. |
MongoDatabase | crawler |
Name der Datenbank. |
MongoCollection | protocols |
Name der Collection. |
LocalDbConnectionString | Data Source=data/local.db |
Verbindungsstring zur SQLite Datenbank, die der Crawler nutzt um abzuspeichern welche Dokumente bereits indexiert wurden. |
IndexingApiEndpoint | http://0.0.0.0:8421/api |
Endpunkt des P2P Netzwerkes, an den der Crawler Reden zur Indexierung schickt. |
IndexingApiTimeout | 300 |
Timeout der HTTP Anfrage der vorangehenden Einstellung. |