Come creare un sito statico con Cloudflare Workers Sites

Ciao! Mi chiamo Dima, sono il team leader del team SysOps in Wrike. In questo articolo ti spiegherò come in 10 minuti e 5 dollari al mese creare un sito il più vicino possibile all'utente e automatizzarne il deployment. L'articolo ha poco a che fare con i problemi che affrontiamo all'interno del nostro team. È piuttosto la mia esperienza personale e impressioni dall'incontro con una tecnologia nuova per me. Ho cercato di descrivere i passaggi nel modo più dettagliato possibile, affinché le istruzioni siano utili per persone con vari livelli di esperienza. Spero che ti piaccia. Iniziamo!

Come creare un sito statico con Cloudflare Workers Sites

Quindi, forse hai già trovato un modo semplice ed economico per ospitare un sito. Forse anche gratuito, come descritto in questa splendida articolo.

Ma forse ti senti comunque annoiato e vuoi avvicinarti al meraviglioso nuovo mondo della tecnologia? Diciamo, stai pensando all'automazione del deployment e vorresti velocizzare al massimo il sito? In questo articolo utilizzeremo Hugo, ma non è obbligatorio.

Per l'automazione utilizziamo Gitlab CI/CD, ma cosa fare per velocizzare? Procediamo con il deployment del sito direttamente su Cloudflare utilizzando Worker Sites.

Cosa serve per iniziare:

Se hai già installato Hugo o se preferisci un altro generatore di siti statici (o se non ne usi affatto), puoi saltare questa parte.

Scarica Hugo da

  1. Posiziona il file eseguibile Hugo in uno dei percorsi definiti in https://github.com/gohugoio/hugo/releases

  2. percorso PATH Crea un nuovo sito:

  3. hugo new site blog.example.com Cambia la directory corrente in quella appena creata:

  4. cd blog.example.com Scegli un tema (

  5. o qualsiasi cosa)https://github.com/budparr/gohugo-theme-ananke/releases Crea il primo post:

  6. hugo new posts/my-amazing-post.md Aggiungi contenuto al file creato:

  7. content/posts/my-amazing-post.md Quando hai finito, imposta il valore di draft su.
    Genera i file statici: false

  8. hugo -D Ora il nostro sito statico si trova nella directory

./public ed è pronto per il primo deployment manuale. Parte 2: Configuriamo Cloudflare

Ora ci occupiamo della configurazione iniziale di Cloudflare. Diciamo che abbiamo già un dominio per il sito. Prendiamo come esempio

blog.example.com. Passaggio 1: Creiamo un record DNS

Per prima cosa selezioniamo il nostro dominio e poi la voce di menu

. Creiamo un record A per blog e indichiamo un IP fittizio (questo è il DNSconsiglio ufficiale raccomandazione, ma avrebbero potuto farlo in modo più carino).

Come creare un sito statico con Cloudflare Workers Sites

Passo 2: Token Cloudflare

  1. Il mio profilo -> Token API tab-> Crea token -> Crea token personalizzato

Come creare un sito statico con Cloudflare Workers Sites

Qui dovrai limitare il token agli account e ai domini, ma lasciare la possibilità di modifica per le autorizzazioni mostrate nell'immagine.

Conserva il token per il futuro, ci servirà nella terza parte.

Passo 3: Ottieni accountid e zoneid

Dominio Overview → [pannello laterale destro]

Come creare un sito statico con Cloudflare Workers SitesQuesti sono i miei, per favore non utilizzarli 🙂

Conservali insieme al token, ci serviranno anche nella terza parte.

Passo 4: Attivazione dei Workers

Dominio Workers Gestisci Workers

Scegli un nome unico e il piano Workers → Illimitato (5$ al mese attualmente). Se vuoi, potrai passare alla versione gratuita in seguito.

Parte 3: Primo deployment (implementazione manuale)

Ho eseguito la prima implementazione manualmente per capire cosa stesse realmente accadendo. Anche se tutto questo si può fare in modo più semplice:

  1. Installa wrangler: npm i @cloudflare/wrangler -g

  2. Accedi alla directory del nostro blog: Scegli un tema (

  3. Avvia wrangler: wrangler init — site hugo-worker

  4. Crea il file di configurazione per wrangler (inserisci il token quando richiestoci): wrangler config

Ora proviamo a modificare il file appena creato wrangler.toml (qui elenco completo delle possibili impostazioni):

  1. Specifichiamo accountid e zoneid

  2. Modifica route in qualcosa come *blog.example.com/*

  3. Specifichiamo false per workersdev

  4. Cambia il bucket in ./public (o dove si trova il tuo sito statico)

  5. Se hai più di un dominio nel percorso, dovresti correggere il percorso nello script del worker: workers-site/index.js (vedi la funzione handleEvent)

Ottimo, è ora di pubblicare il sito con il comando wrangler publish.

Parte 4: Automazione del deployment

Questa istruzione è stata redatta per Gitlab, ma trasmette l'essenza e la semplicità del deployment automatizzato in generale.

Passo 1: Creiamo e configuriamo il nostro progetto

  1. Crea un nuovo progetto GitLab e carica il sito: la directory blog.example.com con tutto il contenuto deve trovarsi nella cartella principale del progetto

  2. Imposta variabile CFAPITOKEN qui: Impostazioni CI/CDVariabili

Passo 2: Crea il file .gitlab-ci.yml e avvia il primo deployment

Creiamo il file .gitlab-ci.yml nella radice con il seguente contenuto:

fasi:
  - costruzione
  - distribuzione

costruzione:
  immagine: monachus/hugo
  fase: costruzione
  variabili:
    GIT_SUBMODULE_STRATEGY: ricorsivo
  script:
    - cd blog.example.com/
    - hugo
  artefatti:
    percorsi:
      - blog.example.com/public
  solo:
    - master # questo lavoro influenzerà solo il ramo 'master'
  tag:
    - gitlab-org-docker #


distribuzione:
  immagine: timbru31/ruby-node:2.3
  fase: distribuzione
  script:
    - wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
    - tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
    - cd blog.example.com/
    - ../dist/wrangler publish
  artefatti:
    percorsi:
      - blog.example.com/public
  solo:
    - master # questo lavoro influenzerà solo il ramo 'master'
  tag:
    - gitlab-org-docker #

Avviamo la prima distribuzione manualmente (CI / CD Pipelines Esegui Pipeline) o inviando un commit al ramo master. Voilà!

Conclusione

Bene, forse ho leggermente sminuito, e l'intero processo ha richiesto un po' più di dieci minuti. Tuttavia, ora avete un sito veloce con distribuzione automatica e alcune idee fresche su cosa altro fare con i Workers.

 Cloudflare Workers    Hugo    GitLab Ci

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster