# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.netacea.com/pl/informacje-o-wtyczce-netacea/cloudflare/installation-and-configuration/installation-via-wrangler-cli.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
