Hoe een statische website te maken met Cloudflare Workers Sites

Hallo! Mijn naam is Dima, ik ben teamleider van het SysOps-team bij Wrike. In dit artikel zal ik uitleggen hoe je in 10 minuten en voor 5 dollar per maand een gebruikersvriendelijke website kunt maken en de implementatie ervan kunt automatiseren. Het artikel heeft bijna niets te maken met de problemen die we binnen ons team oplossen. Het is eerder mijn persoonlijke ervaring en indrukken van het kennismaken met een nieuwe technologie. Ik heb geprobeerd de stappen zo gedetailleerd mogelijk te beschrijven, zodat de instructie nuttig is voor mensen met verschillende ervaringsniveaus. Ik hoop dat je het leuk vindt. Laten we beginnen!

Hoe een statische website te maken met Cloudflare Workers Sites

Dus, misschien heb je al een eenvoudige en goedkope manier gevonden om je website te hosten. Misschien zelfs gratis, zoals beschreven in deze geweldige artikel.

Maar misschien verveel je je toch en wil je in aanraking komen met de wonderlijke nieuwe wereld van technologieën? Stel dat je denkt aan het automatiseren van implementatie en je wilt je website zo snel mogelijk maken? In dit artikel zullen we gebruikmaken van Hugo, maar dat is niet verplicht.

Voor de automatisering gebruiken we Gitlab CI/CD, maar wat doen we met de snelheidsverbetering? Laten we de website rechtstreeks in Cloudflare implementeren met behulp van Worker Sites.

Wat is er nodig om te starten:

Deel 1: Hugo installeren

Als je Hugo al hebt geïnstalleerd of als je een andere generator voor statische websites verkiest (of helemaal geen gebruikt), kun je deze stap overslaan.

  1. Download Hugo van https://github.com/gohugoio/hugo/releases

  2. Plaats het uitvoerbare bestand Hugo in een van de paden die zijn gedefinieerd in PAD deze paden

  3. Maak een nieuwe website aan: hugo new site blog.example.com

  4. Verander de huidige directory naar de zojuist aangemaakte: cd blog.example.com

  5. Kies een thema (https://github.com/budparr/gohugo-theme-ananke/releases of wat dan ook)

  6. Maak de eerste post aan: hugo new posts/my-amazing-post.md

  7. Voeg inhoud toe aan het gemaakte bestand: content/posts/my-amazing-post.md.
    Wanneer alles is gedaan, verander de waarde van draft naar false

  8. Genereer de statische bestanden: hugo -D

Nu bevindt onze statische website zich in de directory ./public en is klaar voor de eerste handmatige implementatie.

Deel 2: Cloudflare configureren

Laten we nu de initiële configuratie van Cloudflare bekijken. Stel dat we al een domein voor de website hebben. Laten we als voorbeeld nemen blog.example.com.

Stap 1: Maak een DNS-record aan

Kies eerst ons domein en vervolgens het menu-item DNS. Maak een A-record aan voor blog en geef een fictief IP op (dit is officieel een aanbeveling, maar ze hadden het ook op een mooiere manier kunnen doen)., maar ze zouden het op een mooiere manier kunnen doen).

Hoe een statische website te maken met Cloudflare Workers Sites

Stap 2: Cloudflare Token

  1. Mijn Profiel -> API-tokens tab-> Token Aanmaken -> Aangepast Token Aanmaken

Hoe een statische website te maken met Cloudflare Workers Sites

Hier moet je het token beperken tot accounts en zones, maar de mogelijkheid om te Bewerken voor de vermelde machtigingen in de afbeelding te behouden.

Bewaar het token voor later, het zal nodig zijn in het derde deel.

Stap 3: Verkrijg accountid en zoneid

Domein → Overzicht → [rechter zijpaneel]

Hoe een statische website te maken met Cloudflare Workers SitesDit zijn de mijne, gebruik ze alsjeblieft niet 🙂

Bewaar ze naast het token, ze zullen ook nodig zijn in het derde deel.

Stap 4: Activeer Workers

Domein → Workers → Beheer Workers

Kies een unieke naam en tarief voor Workers → Onbeperkt ($5 per maand op dit moment). Later kun je overstappen op de gratis versie als je dat wilt.

Deel 3: Eerste Deployment (handmatige implementatie)

Ik heb de eerste implementatie handmatig gedaan om te begrijpen wat er echt aan de hand is. Hoewel alles ook eenvoudiger kan:

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

  2. Ga naar de directory van onze blog: cd blog.example.com

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

  4. Maak een config voor wrangler (voer het token in wanneer erom wordt gevraagd): wrangler config

Laten we nu proberen wijzigingen aan te brengen in het net aangemaakte bestand wrangler.toml (hier volledige lijst van mogelijke instellingen):

  1. Geef op accountid en zoneid

  2. Verander route in iets als *blog.example.com/*

  3. Geef op false voor workersdev

  4. Verander bucket naar . /public (of waar je statische site zich bevindt)

  5. Als je meer dan één domein in de route hebt, moet je het pad in het werkscript corrigeren: workers-site/index.js (zie functie handleEvent)

Geweldig, het is tijd om de site te implementeren met het commando wrangler publish.

Deel 4: Automatisering van deployment

Deze instructie is opgesteld voor Gitlab, maar het geeft de essentie en eenvoud van geautomatiseerde implementatie in het algemeen weer.

Stap 1: Creëer en configureer ons project

  1. Maak een nieuw GitLab-project en upload de site: de directory blog.example.com met alle inhoud moet zich in de hoofdmap van het project bevinden

  2. Stel variabele CFAPITOKEN hier in: Instellingen → CI/CD → Variabelen

Stap 2: Maak een bestand .gitlab-ci.yml en start de eerste implementatie

Maak een bestand aan .gitlab-ci.yml in de wortel met de volgende inhoud:

stages:
  - build
  - deploy

build:
  image: monachus/hugo
  stage: build
  variables:
    GIT_SUBMODULE_STRATEGY: recursive
  script:
    - cd blog.example.com/
    - hugo
  artifacts:
    paths:
      - blog.example.com/public
  only:
    - master # deze taak heeft alleen invloed op de 'master' tak
  tags:
    - gitlab-org-docker #


deploy:
  image: timbru31/ruby-node:2.3
  stage: deploy
  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
  artifacts:
    paths:
      - blog.example.com/public
  only:
    - master # deze taak heeft alleen invloed op de 'master' tak
  tags:
    - gitlab-org-docker #

Start de eerste uitrol handmatig (CI / CD → Pipelines → Run Pipeline) of door een commit naar de master tak te sturen. Voilà!

Conclusie

Nou, misschien heb ik het een beetje geminimaliseerd en heeft het hele proces iets meer dan tien minuten geduurd. Maar nu heb je een snelle website met automatische uitrol en een paar frisse ideeën over wat je nog meer kunt doen met Workers.

 Cloudflare Workers    Hugo    GitLab CI

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster