# Instalacja przez Wrangler (CLI)

### Wymagania wstępne

Aby pomyślnie przeprowadzić integrację z wykorzystaniem Netacea, upewnij się, że posiadasz:

1. Zainstalowaną najnowszą wersję [Wrangler V2](https://developers.cloudflare.com/workers/wrangler/migration/v1-to-v2/update-v1-to-v2/), [Node.js](https://nodejs.org/en) (wersja 16.13.0 lub wyższa) oraz [Git ](https://git-scm.com/)na swoim komputerze.
2. Aktywne konto Cloudflare z dostępem do panelu Cloudflare Dashboard.
3. Płatną subskrypcję Cloudflare, aby uniknąć problemów z limitami żądań workera itp.
4. Dostęp do produktu Cloudflare Workers.

### **Kroki implementacji**

Szczegółowe instrukcje GitHub dotyczące pobrania kodu, konfiguracji i wdrożenia wtyczki Netacea Cloudflare można znaleźć [tutaj](https://github.com/Netacea/cloudflare-worker-template-typescript).

### Tworzenie lokalnego workera <a href="#edit-worker" id="edit-worker"></a>

Otwórz Wiersz poleceń Windows/PowerShell i przejdź do katalogu, w którym chcesz zapisać kod Netacea.

W tym katalogu wykonaj następujące polecenie

{% code overflow="wrap" %}

```
wrangler generate netacea-cloudflare-worker https://github.com/netacea/cloudflare-worker-template-typescript
```

{% endcode %}

Spowoduje to użycie wrangler do utworzenia (wygenerowania) nowego lokalnego pakietu workera poprzez pobranie najnowszego kodu z GitHub Netacea.

<figure><img src="https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%2Fuploads%2Fgit-blob-eb5d13d51998c5b3a6052838c34b1e07d9b3143c%2Fimage%20(71).png?alt=media" alt=""><figcaption></figcaption></figure>

Możesz to zweryfikować, przechodząc do powyższego katalogu i sprawdzając workera o następującym formacie:

<div align="left"><figure><img src="https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%2Fuploads%2Fgit-blob-4943f944ca9f4a61987a04f3c3f5aedc6609b48b%2Fimage%20(1)%20(1)%20(1)%20(1)%20(1)%20(1)%20(1)%20(1)%20(1)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### Konfiguracja workera

Otwórz katalog src i edytuj plik `NetaceaConfig.json`, aby odpowiadał poniższemu:

```json
{
    "apiKey": "API-KEY-PROVIDED-BY-NETACEA",
    "secretKey": "SECRET-KEY-PROVIDED-BY-NETACEA",
    "mitigationType": "PREFERRED-MITIGATION-TYPE",
    "ingestType": "KINESIS",
    "kinesis": {
      "kinesisStreamName": "NAME-PROVIDED-BY-NETACEA",
      "kinesisAccessKey": "KEY-PROVIDED-BY-NETACEA",
      "kinesisSecretKey": "KEY-PROVIDED-BY-NETACEA"
    },
    "cookieEncryptionKey": "ENCRYPTION-KEY-PROVIDED-BY-NETACEA",
    "netaceaCookieName": "_cookieName",
    "netaceaCaptchaCookieName": "_captchaCookieName",
    "enableDynamicCaptchaContentType": false,
    "timeout": 3000
  }
```

Zastąp wartości danymi dostarczonymi przez Netacea i **zapisz** plik.

{% hint style="info" %}
Atrybut `mitigationType` służy do określenia trybu integracji. Może przyjmować jedną z trzech wartości:

* „**INGEST**" - Ten tryb integracji służy tylko do monitorowania, co oznacza, że żadne działania mitygacyjne nie będą wykonywane. Jest zalecany podczas POC.
* „**MITIGATE**" - Jest to „normalny" tryb integracji, co oznacza, że rozwiązanie Netacea będzie monitorować i aktywnie mitygować żądania.
* „**INJECT**" - Ten tryb jest używany w rozwiązaniach niestandardowych, w których działanie mitygacyjne Netacea będzie jedynie rekomendacją przy użyciu nagłówków HTTP dodanych do żądania.
  {% endhint %}

{% hint style="info" %}
Nazwa pliku cookie i captcha powinna być unikalna.

**Dla zwiększenia bezpieczeństwa nie umieszczaj w tej nazwie słów Netacea ani Mitigation.**
{% endhint %}

{% hint style="danger" %}
Zmienne cookieEncryptionKey, netaceaCookieName i netaceaCaptchaCookieName są używane do zwiększenia bezpieczeństwa poprzez ukrycie domyślnych nazw i wartości plików cookie Netacea przed widokiem publicznym.
{% endhint %}

### Konfiguracja Wrangler

Przejdź do katalogu głównego workera i edytuj plik `wrangler.toml`:

```json
name = "netacea-worker"
main = "./dist/worker.js"

account_id = "EXAMPLE_ACCOUNT_ID"
route = "EXAMPLE_ROUTE"

compatibility_date = "2023-05-04"

[observability]
enabled = true

```

Zastąp wartości odpowiednimi danymi, a gdy wszystko będzie gotowe, **zapisz** plik.

{% hint style="info" %}
[Account ID](https://developers.cloudflare.com/fundamentals/get-started/basic-tasks/find-account-and-zone-ids/#find-zone-and-account-ids) można znaleźć w panelu Cloudflare Dashboard.

[Route ](https://developers.cloudflare.com/workers/platform/triggers/routes/)odnosi się do ścieżki, do której worker powinien być zastosowany, np. „[www.example.com/\*](http://www.example.com/*)" i można ją edytować po wdrożeniu.
{% endhint %}

{% hint style="info" %}
Włączenie opcji **Auto Save** podczas zmiany konfiguracji będzie pomocne.
{% endhint %}

### Instalacja/Aktualizacja npm

W katalogu głównym workera wykonaj następujące dwa polecenia, aby upewnić się, że wszystkie niezbędne moduły node są zainstalowane/zaktualizowane

```powershell
npm i @netacea/cloudflare@latest
```

```
npm install
```

### Wdrożenie workera do Cloudflare

Wykonaj następujące polecenie:

```
npm run deploy
```

Może to spowodować wyświetlenie monitu o zalogowanie się do Cloudflare przez przeglądarkę i zezwolenie na dostęp dla wrangler. Jeśli tak, zaloguj się i zezwól na dostęp.

<div align="left"><figure><img src="https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%2Fuploads%2Fgit-blob-0386aac934dd8f1a966969128cd868201699fd19%2Fimage%20(7)%20(7).png?alt=media" alt=""><figcaption></figcaption></figure></div>

<figure><img src="https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%2Fuploads%2Fgit-blob-f6c9f60eb7705f1773cd6c09056c6d3de2e62e68%2Fimage%20(2)%20(9).png?alt=media" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Możesz użyć powyższego polecenia do ponownego wdrożenia tego samego workera w celu jego aktualizacji (np. zmiany właściwości konfiguracji). Ostatnie wdrożenie stanie się domyślnie aktywne.
{% endhint %}

### Potwierdzenie wdrożenia

Zaloguj się do Cloudflare, otwórz panel, wybierz domenę, na której chcesz, aby worker działał, a następnie wybierz „Workers Routes" z menu. Powinieneś zobaczyć nowo wdrożonego workera powiązanego z trasą z pliku `wrangler.toml`.

<figure><img src="https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%2Fuploads%2Fgit-blob-12cb6d8d73e49f99772f9729b3666f42c80f9b6c%2FScreenshot%202024-12-13%20125030.png?alt=media" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Możesz wprowadzać zmiany w workerze, trasie, środowisku i innych elementach, klikając **Edit**, bez konieczności ponownego wdrażania workera przez wrangler.
{% endhint %}

Wdrożenia każdego workera można zobaczyć, klikając na Workera (np. test-netacea-worker) i wybierając zakładkę Deployment's:

<figure><img src="https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%2Fuploads%2Fgit-blob-33ad1be8eccc8e959a613deea8c4cfba5f42a6fa%2FScreenshot%202024-12-13%20124156%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

Dla każdego workera możesz zobaczyć różne metryki, powiązane trasy oraz masz możliwość przywrócenia poprzedniego wdrożenia.
