Cómo crear un sitio web estático en Cloudflare Workers Sites

¡Hola! Me llamo Dima, soy el líder técnico del equipo de SysOps en Wrike. En este artículo, te contaré cómo en 10 minutos y con 5 dólares al mes puedes crear un sitio web que esté muy cerca del usuario y automatizar su despliegue. El artículo casi no tiene relación con los problemas que abordamos dentro de nuestro equipo. Más bien, es mi experiencia personal y mis impresiones al conocer una tecnología nueva para mí. He intentado describir los pasos de manera lo más detallada posible para que la guía sea útil para personas con diferentes niveles de experiencia. Espero que te guste. ¡Vamos allá!

Cómo crear un sitio web estático en Cloudflare Workers Sites

Entonces, es posible que ya hayas encontrado una forma simple y económica de alojar un sitio web. Quizás incluso de forma gratuita, como se describe en este maravilloso artículo.

Pero, ¿qué pasa si todavía te aburres y quieres explorar el fascinante nuevo mundo de la tecnología? Digamos, que estás pensando en la automatización del despliegue y te gustaría acelerar el sitio al máximo. En este artículo, utilizaremos Hugo, pero no es obligatorio.

Para la automatización, utilizamos Gitlab CI/CD, pero ¿qué hacer con la aceleración? Vamos a desplegar el sitio directamente en Cloudflare usando Worker Sites.

¿Qué se necesita para comenzar?:

Si ya tienes Hugo instalado o si prefieres otro generador de sitios estáticos (o no usas ninguno), puedes saltarte esta parte.

Descargamos Hugo desde

  1. Colocamos el archivo ejecutable Hugo en uno de los caminos definidos en https://github.com/gohugoio/hugo/releases

  2. creamos un nuevo sitio: PATH hugo new site blog.example.com

  3. Cambiamos el directorio actual al que acabamos de crear: cd blog.example.com

  4. Elegimos un tema ( o lo que sea)

  5. Creamos la primera publicación:https://github.com/budparr/gohugo-theme-ananke/releases hugo new posts/my-amazing-post.md

  6. Añadimos contenido al archivo creado: content/posts/my-amazing-post.md

  7. Cuando todo está hecho, cambiamos el valor de draft a Generamos archivos estáticos:.
    hugo -D false

  8. Ahora nuestro sitio estático está dentro del directorio ./public

y preparado para el primer despliegue manual. Parte 2: Configuramos Cloudflare Ahora vamos a ver la configuración inicial de Cloudflare. Supongamos que ya tenemos un dominio para el sitio. Tomaremos como ejemplo

blog.example.com.

Paso 1: Creamos un registro DNS Primero seleccionamos nuestro dominio y luego el menú

. Creamos un registro A para blog y le asignamos una dirección IP ficticia (esta es la

recomendación oficial DNS, pero podrían hacerlo de una manera más amigable). Paso 2: Token de Cloudflare, но они могли бы сделать как-то посимпатичней).

Cómo crear un sitio web estático en Cloudflare Workers Sites

Шаг 2: Токен Cloudflare

  1. Mi perfil -> Tokens de API pestaña-> Crear Token -> Crear token personalizado

Cómo crear un sitio web estático en Cloudflare Workers Sites

Aquí necesitarás restringir el token a cuentas y zonas, pero dejar la opción Editar para los permisos mostrados en la imagen.

Guarda el token para el futuro, lo necesitaremos en la tercera parte.

Paso 3: Obtener accountid y zoneid

Dominio → Resumen → [panel lateral derecho]

Cómo crear un sitio web estático en Cloudflare Workers SitesEstos son míos, por favor, no los uses 🙂

Guárdalos junto al token, también los necesitaremos en la tercera parte.

Paso 4: Activación de Workers

Dominio → Los Workers son instancias EC2 auxiliares que operan bajo un sistema Linux. Se inician únicamente durante el tiempo de respaldo (o recuperación) y actúan como proxy de respaldo. En la configuración del worker, deberá especificar Amazon VPC, la subred y el grupo de seguridad al que se conectarán estas instancias auxiliares. Puede leer más sobre esto en → Administrar Workers

Elegimos un nombre único y tarifa para Workers → Ilimitado ($5 al mes por hoy). Si lo deseas, más adelante podrás cambiar a la versión gratuita.

Parte 3: Primer despliegue (despliegue manual)

Hice el primer despliegue manualmente para averiguar qué está sucediendo realmente. Aunque todo esto se puede hacer de forma más sencilla:

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

  2. Vamos al directorio de nuestro blog: o lo que sea)

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

  4. Creamos la configuración para wrangler (introduce el token cuando se te pida): wrangler config

Ahora intentaremos realizar cambios en el archivo recién creado wrangler.toml (aquí lista completa de configuraciones posibles):

  1. Especificamos accountid y zoneid

  2. Cambiamos route algo como *blog.example.com/*

  3. Especificamos false para workersdev

  4. Cambiamos el bucket a ./public (o donde se encuentre tu sitio web estático)

  5. Si tienes más de un dominio en la ruta, deberías corregir la ruta en el script de trabajo: workers-site/index.js (ver función handleEvent)

Genial, es hora de desplegar el sitio con el comando wrangler publish.

Parte 4: Automatización del despliegue

Esta instrucción está hecha para Gitlab, pero transmite la esencia y simplicidad de la implementación automatizada en general.

Paso 1: Creamos y configuramos nuestro proyecto

  1. Creamos un nuevo proyecto en GitLab y subimos el sitio: la carpeta blog.example.com con todo su contenido debe estar en la raíz del proyecto

  2. Establecer variable CFAPITOKEN aquí: Configura → CI/CD → Variables

Paso 2: Creamos el archivo .gitlab-ci.yml y ejecutamos el primer despliegue

Creamos el archivo .gitlab-ci.yml en la raíz con el siguiente contenido:

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 # este trabajo solo afectará la rama 'master'
  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 # este trabajo solo afectará la rama 'master'
  tags:
    - gitlab-org-docker #

Iniciamos el primer despliegue manual (Plataformas en la nube → Pipelines. → Ejecutar Pipeline) o enviando un commit a la rama master. ¡Voilà!

Conclusión

Bueno, tal vez he minimizado un poco, y todo el proceso tomó un poco más de diez minutos. Pero ahora tienes un sitio rápido con despliegue automático y algunas ideas nuevas sobre qué más se puede hacer con Workers.

 Cloudflare Workers    Hugo    GitLab Ci

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster