แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜ Cloudflare Workers Sites-แƒ–แƒ”

แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ! แƒ›แƒ” แƒ›แƒฅแƒ•แƒ˜แƒ แƒ“แƒ˜แƒ›แƒ, แƒ›แƒ” แƒ•แƒแƒ  แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒšแƒ˜แƒ“แƒ”แƒ แƒ˜ SysOps แƒ’แƒฃแƒœแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก Wrike-แƒจแƒ˜. แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒ” แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ˜ แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒฎแƒšแƒแƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ—แƒแƒœ แƒ—แƒ•แƒ”แƒจแƒ˜ 10 แƒฌแƒฃแƒ—แƒจแƒ˜ แƒ“แƒ 5 แƒ“แƒแƒšแƒแƒ แƒจแƒ˜ แƒ“แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒแƒฎแƒ“แƒ˜แƒœแƒแƒก แƒ›แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ–แƒ”. แƒกแƒขแƒแƒขแƒ˜แƒแƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒแƒฅแƒ•แƒก แƒกแƒแƒ”แƒ แƒ—แƒ แƒ˜แƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ—แƒแƒœ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒฃแƒœแƒ“แƒจแƒ˜ แƒ•แƒฌแƒงแƒ•แƒ”แƒขแƒ—. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฉแƒ”แƒ›แƒ˜ แƒžแƒ˜แƒ แƒแƒ“แƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ—แƒแƒ‘แƒ”แƒญแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ› แƒ’แƒแƒ•แƒ˜แƒชแƒœแƒ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒ”แƒ›แƒ—แƒ•แƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜แƒ. แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒ”, แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒฆแƒ›แƒ”แƒฌแƒ”แƒ แƒ แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒ˜, แƒ แƒแƒ—แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒงแƒแƒคแƒ˜แƒšแƒ˜แƒงแƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒฅแƒแƒœแƒ” แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ˜แƒ›แƒ”แƒ“แƒ˜แƒ แƒ˜แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒ—. แƒฌแƒแƒ“แƒ˜!

แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜ Cloudflare Workers Sites-แƒ–แƒ”

แƒแƒกแƒ” แƒ แƒแƒ›, แƒแƒšแƒ‘แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ˜แƒžแƒแƒ•แƒ”แƒ— แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ˜แƒแƒคแƒ˜ แƒ’แƒ–แƒ. แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ, แƒฃแƒคแƒแƒกแƒแƒช แƒ™แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒชแƒ”แƒ‘ แƒ›แƒแƒ˜แƒœแƒช แƒ›แƒแƒ’แƒฌแƒงแƒ˜แƒœแƒ“แƒแƒ— แƒ“แƒ แƒ’แƒกแƒฃแƒ แƒ— แƒจแƒ”แƒ”แƒฎแƒแƒ— แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒ›แƒแƒ›แƒแƒช แƒแƒฎแƒแƒš แƒกแƒแƒ›แƒงแƒแƒ แƒแƒก? แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒ–แƒ” แƒ“แƒ แƒ’แƒกแƒฃแƒ แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ“แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒ? แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒฃแƒ’แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒ—แƒ˜แƒ.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Gitlab CI/CD แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒแƒก? แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒกแƒแƒ˜แƒขแƒ˜ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  Cloudflare-แƒ–แƒ” แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒฃแƒจแƒแƒ™แƒ—แƒ แƒกแƒแƒ˜แƒขแƒ”แƒ‘แƒ˜.

แƒ แƒ แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“:

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1: Hugo-แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ

แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒฅแƒ•แƒ— แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ Hugo, แƒแƒœ แƒ—แƒฃ แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒœแƒ˜แƒแƒ— แƒกแƒฎแƒ•แƒ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ (แƒแƒœ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—), แƒ›แƒแƒจแƒ˜แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒแƒ— แƒ”แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜.

  1. แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— Hugo-แƒ“แƒแƒœ https://github.com/gohugoio/hugo/releases

  2. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ— Hugo แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“ แƒคแƒแƒ˜แƒšแƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— PATH แƒ’แƒ–แƒ”แƒ‘แƒ˜

  3. แƒแƒฎแƒแƒšแƒ˜ แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ: hugo new site blog.example.com

  4. แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒแƒฎแƒšแƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒจแƒ˜: cd blog.example.com

  5. แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒก แƒ—แƒ”แƒ›แƒ (https://github.com/budparr/gohugo-theme-ananke/releases แƒแƒœ แƒ แƒแƒช แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก)

  6. แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒžแƒแƒกแƒขแƒ˜: hugo new posts/my-amazing-post.md

  7. แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒš แƒคแƒแƒ˜แƒšแƒจแƒ˜: content/posts/my-amazing-post.md.
    แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒ›แƒแƒœแƒแƒฎแƒแƒ–แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒงแƒแƒšแƒ‘แƒ˜

  8. แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ: hugo -D

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ ./แƒกแƒแƒฏแƒแƒ แƒ แƒ“แƒ แƒ›แƒ–แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2: Cloudflare-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— Cloudflare-แƒ˜แƒก แƒกแƒแƒฌแƒงแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก. แƒ“แƒแƒ•แƒฃแƒจแƒ•แƒแƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ“แƒแƒ›แƒ”แƒœแƒ˜. แƒแƒ•แƒ˜แƒฆแƒแƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ blog.example.com.

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 1: แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— DNS แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜

แƒฏแƒ”แƒ  แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ“แƒแƒ›แƒ”แƒœแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ”แƒœแƒ˜แƒฃแƒก แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜ DNS. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ‘แƒšแƒแƒ’แƒก A-แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒก แƒ“แƒ แƒ›แƒ˜แƒ•แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ— แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒคแƒ˜แƒฅแƒขแƒ˜แƒฃแƒ  IP-แƒก (แƒ”แƒก แƒแƒ แƒ˜แƒก แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒแƒชแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ— แƒจแƒ”แƒ”แƒซแƒšแƒแƒ— แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒ’แƒแƒšแƒแƒ›แƒแƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜แƒงแƒ).

แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜ Cloudflare Workers Sites-แƒ–แƒ”

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 2: Cloudflare Token

  1. แƒฉแƒ”แƒ›แƒ˜ แƒžแƒ แƒแƒคแƒ˜แƒšแƒ˜ -> API แƒขแƒแƒ™แƒ”แƒœแƒ”แƒ‘แƒ˜ tab-> แƒจแƒ”แƒฅแƒ›แƒœแƒ Token -> แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒกแƒแƒ‘แƒแƒŸแƒ แƒœแƒ˜แƒจแƒแƒœแƒ˜

แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜ Cloudflare Workers Sites-แƒ–แƒ”

แƒแƒฅ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒขแƒแƒ™แƒ”แƒœแƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒ—แƒ แƒ“แƒ แƒ–แƒแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒแƒขแƒแƒ•แƒ”แƒ— แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ” แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜ แƒœแƒ”แƒ‘แƒแƒ แƒ—แƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒŸแƒ”แƒขแƒแƒœแƒ˜ แƒ›แƒแƒ›แƒแƒ•แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ˜แƒก แƒ“แƒแƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒจแƒ˜.

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 3: แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ แƒ“แƒ แƒ–แƒแƒœแƒ˜แƒ“แƒ˜

แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก โ†’ แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ โ†’ [แƒ›แƒแƒ แƒฏแƒ•แƒ”แƒœแƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ—แƒ˜ แƒ–แƒแƒšแƒ˜]

แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜ Cloudflare Workers Sites-แƒ–แƒ”แƒ”แƒกแƒ”แƒœแƒ˜ แƒฉแƒ”แƒ›แƒ˜แƒ, แƒœแƒฃ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ แƒ’แƒ—แƒฎแƒแƒ• :)

แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒŸแƒ”แƒขแƒแƒœแƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ—, แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒจแƒ˜แƒช แƒ“แƒแƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ.

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 4: แƒ›แƒฃแƒจแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ”แƒ‘แƒ

แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก โ†’ แƒ›แƒฃแƒจแƒแƒ™แƒ—แƒ โ†’ แƒ›แƒฃแƒจแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ  แƒกแƒแƒฎแƒ”แƒšแƒก แƒ“แƒ แƒขแƒแƒ แƒ˜แƒคแƒก Workers โ†’ Unlimited (แƒ“แƒฆแƒ”แƒก 5$ แƒ—แƒ•แƒ”แƒจแƒ˜). แƒ—แƒฃ แƒ’แƒกแƒฃแƒ แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒ— แƒฃแƒคแƒแƒกแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ–แƒ”.

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ (แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ)

แƒ›แƒ” แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ” แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒ“, แƒ—แƒฃ แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ˜แƒฅ. แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก แƒฃแƒคแƒ แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“:

  1. แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— wrangler: npm i @cloudflare/wrangler -g

  2. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ‘แƒšแƒแƒ’แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜: cd blog.example.com

  3. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ wrangler: wrangler init โ€” site hugo-worker

  4. แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ wrangler-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒŸแƒ”แƒขแƒแƒœแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒกแƒแƒก): wrangler config

แƒแƒฎแƒšแƒ แƒ•แƒชแƒแƒ“แƒแƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒขแƒแƒœแƒ แƒแƒฎแƒšแƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒš แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒ›แƒ”แƒฉแƒฎแƒฃแƒ‘แƒแƒ แƒ˜.แƒขแƒแƒ›แƒš (แƒแƒฅ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ):

  1. แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ— แƒแƒฆแƒ แƒ˜แƒชแƒฎแƒฃแƒšแƒ˜ แƒ“แƒ แƒ–แƒแƒœแƒ˜แƒ“แƒฃแƒ แƒ˜

  2. แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜ แƒ แƒแƒฆแƒแƒช แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ *blog.example.com/*

  3. แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ— แƒงแƒแƒšแƒ‘แƒ˜ แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒ“แƒ”แƒ•

  4. แƒ—แƒแƒ˜แƒ’แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ ./public (แƒแƒœ แƒกแƒแƒ“ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜)

  5. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒ”แƒ แƒ—แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒ“แƒแƒ›แƒ”แƒœแƒ˜ แƒ’แƒ–แƒแƒ–แƒ”, แƒ›แƒแƒจแƒ˜แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒกแƒฌแƒแƒ แƒแƒ— แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒจแƒ˜: แƒ›แƒฃแƒจแƒ-แƒกแƒแƒ˜แƒขแƒ˜/index.js (แƒ˜แƒฎ. แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ handleEvent)

แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ, แƒ“แƒ แƒแƒ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒกแƒแƒ˜แƒขแƒ˜ แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— wrangler publish.

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 4: แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒ”แƒก แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ Gitlab-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒแƒกแƒแƒฎแƒแƒ•แƒก แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒกแƒก แƒ“แƒ แƒกแƒ˜แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒก.

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 1: แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ“แƒ แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜

  1. แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒแƒฎแƒแƒšแƒ˜ GitLab แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒ“แƒ แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒกแƒแƒ˜แƒขแƒ˜: แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ blog.example.com แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒ— แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ“แƒ”แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก root แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜

  2. แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ”แƒ— แƒชแƒ•แƒšแƒแƒ“แƒ˜ CFAPITOKEN แƒแƒฅ: แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ โ†’ CI / CD โ†’ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 2: แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— .gitlab-ci.yml แƒคแƒแƒ˜แƒšแƒ˜ แƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ

แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒคแƒแƒ˜แƒšแƒ˜ .gitlab-ci.yml แƒซแƒ˜แƒ แƒจแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒ—:

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 # this job will affect only the 'master' branch
  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 # this job will affect only the 'master' branch
  tags:
    - gitlab-org-docker #

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒแƒก แƒฎแƒ”แƒšแƒ˜แƒ— (CI/CD โ†’ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒ˜ โ†’ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜) แƒแƒœ แƒกแƒแƒ›แƒแƒ’แƒ˜แƒกแƒขแƒ แƒ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜ แƒฉแƒแƒ‘แƒแƒ แƒ”แƒ‘แƒ˜แƒ—. แƒ•แƒแƒ˜แƒšแƒ!

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒ™แƒแƒ แƒ’แƒแƒ“, แƒ›แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ“แƒœแƒแƒ• แƒจแƒ”แƒ•แƒแƒคแƒแƒกแƒ” แƒ“แƒ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒแƒ— แƒฌแƒฃแƒ—แƒ–แƒ” แƒ›แƒ”แƒขแƒฎแƒแƒœแƒก แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒกแƒแƒ˜แƒขแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ˜แƒ“แƒ”แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒ›แƒฃแƒจแƒ”แƒ‘แƒ—แƒแƒœ.

 Cloudflare แƒ›แƒฃแƒจแƒแƒ™แƒ”แƒ‘แƒ˜    แƒฃแƒ’แƒ    GitLab Ci

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ