เจ•เจฒเจพเจ‰เจกเจซเจฒเฉ‡เจ…เจฐ เจตเจฐเจ•เจฐ เจธเจพเจˆเจŸเจพเจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจธเจพเจˆเจŸ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจˆเจ

เจธเจค เจธเฉเจฐเฉ€ เจ…เจ•เจพเจฒ! เจฎเฉ‡เจฐเจพ เจจเจพเจฎ เจฆเฉ€เจฎเจพ เจนเฉˆ, เจฎเฉˆเจ‚ Wrike เจตเจฟเจ–เฉ‡ SysOps เจŸเฉ€เจฎ เจฒเจˆ เจคเจ•เจจเฉ€เจ•เฉ€ เจฒเฉ€เจก เจนเจพเจ‚เฅค เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเจพเจ‚เจ—เจพ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจ‡เฉฑเจ• เจตเฉˆเจฌเจธเจพเจˆเจŸ เจจเฉ‚เฉฐ 10 เจฎเจฟเฉฐเจŸ เจ…เจคเฉ‡ 5 เจกเจพเจฒเจฐ เจ‡เฉฑเจ• เจฎเจนเฉ€เจจเฉ‡ เจตเจฟเฉฑเจš เจธเฉฐเจญเจต เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเจตเฉˆเจšเจพเจฒเจค เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจฒเฉ‡เจ– เจฆเจพ เจ‰เจนเจจเจพเจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเจพเจฒ เจ•เฉ‹เจˆ เจฒเฉˆเจฃเจพ-เจฆเฉ‡เจฃเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจŸเฉ€เจฎ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจนเฉฑเจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจฆเฉ€ เจฌเจœเจพเจ เจ‡เจน เจฎเฉ‡เจฐเจพ เจจเจฟเฉฑเจœเฉ€ เจคเจœเจฐเจฌเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ…เจœเจฟเจนเฉ€ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจจเฉ‚เฉฐ เจœเจพเจฃเจจ เจฆเฉ‡ เจชเฉเจฐเจญเจพเจต เจนเจจ เจœเฉ‹ เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจจเจตเฉ€เจ‚ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจ•เจฆเจฎเจพเจ‚ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจคเจพเจ‚ เจœเฉ‹ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจตเฉฑเจ–เฉ‹-เจตเฉฑเจ–เจฐเฉ‡ เจ…เจจเฉเจญเจต เจตเจพเจฒเฉ‡ เจฒเฉ‹เจ•เจพเจ‚ เจฒเจˆ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเฉ‹เจฃเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ†เจจเฉฐเจฆ เจฎเจพเจฃเฉ‹เจ—เฉ‡เฅค เจœเจพเจฃเจพ!

เจ•เจฒเจพเจ‰เจกเจซเจฒเฉ‡เจ…เจฐ เจตเจฐเจ•เจฐ เจธเจพเจˆเจŸเจพเจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจธเจพเจˆเจŸ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจˆเจ

เจ‡เจธ เจฒเจˆ, เจธเจผเจพเจ‡เจฆ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เฉฑเจ• เจตเฉˆเจฌเจธเจพเจˆเจŸ เจฆเฉ€ เจฎเฉ‡เจœเจผเจฌเจพเจจเฉ€ เจ•เจฐเจจ เจฆเจพ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ…เจคเฉ‡ เจธเจธเจคเจพ เจคเจฐเฉ€เจ•เจพ เจฒเฉฑเจญ เจฒเจฟเจ† เจนเฉˆ. เจธเจผเจพเจ‡เจฆ เจฎเฉเจซเจค เจตเฉ€, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจธ เจตเจฟเฉฑเจš เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจฎเจนเจพเจจ เจฒเฉ‡เจ–.

เจชเจฐ เจ…เจšเจพเจจเจ• เจคเฉเจธเฉ€เจ‚ เจ…เจœเฉ‡ เจตเฉ€ เจฌเฉ‹เจฐ เจนเฉ‹ เจ…เจคเฉ‡ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจฆเฉ€ เจฌเจนเจพเจฆเจฐ เจจเจตเฉ€เจ‚ เจฆเฉเจจเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ›เฉ‚เจนเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹? เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจธเจตเฉˆเจšเจพเจฒเจค เจคเฉˆเจจเจพเจคเฉ€ เจฌเจพเจฐเฉ‡ เจธเฉ‹เจš เจฐเจนเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ†เจชเจฃเฉ€ เจธเจพเจˆเจŸ เจจเฉ‚เฉฐ เจœเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ‹ เจธเจ•เฉ‡ เจคเฉ‡เจœเจผ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹? เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเจš เจ…เจธเฉ€เจ‚ เจตเจฐเจคเจพเจ‚เจ—เฉ‡ Hugo, เจชเจฐ เจ‡เจน เจตเจฟเจ•เจฒเจชเจฟเจ• เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ เจฒเจˆ Gitlab CI/CD เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจชเจฐ เจชเฉเจฐเจตเฉ‡เจ— เจฌเจพเจฐเฉ‡ เจ•เฉ€? เจ†เจ‰ เจธเจพเจˆเจŸ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเจพ เจ•เจฒเจพเจ‰เจกเจซเจฒเฉ‡เจ…เจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจคเฉˆเจจเจพเจค เจ•เจฐเฉ€เจ เจตเจฐเจ•เจฐ เจธเจพเจˆเจŸเจพเจ‚.

เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

เจญเจพเจ— 1: เจนเจฟเจŠเจ—เฉ‹ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ

เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจนเจฟเจŠเจ—เฉ‹ เจธเจฅเจพเจชเจฟเจค เจนเฉˆ, เจœเจพเจ‚ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจธเจฅเจฟเจฐ เจธเจพเจˆเจŸ เจœเจจเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจคเจฐเจœเฉ€เจน เจฆเจฟเฉฐเจฆเฉ‡ เจนเฉ‹ (เจœเจพเจ‚ เจ‡เฉฑเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡), เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

  1. เจคเฉ‹เจ‚ เจนเจฟเจŠเจ—เฉ‹ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹ https://github.com/gohugoio/hugo/releases

  2. เจ…เจธเฉ€เจ‚ เจนเจฟเจŠเจ—เฉ‹ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เฉ€เจคเฉ‡ เจ—เจ เจ‡เฉฑเจ• เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚ เจชเฉˆเจฅ เจคเจฐเฉ€เจ•เฉ‡

  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 เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจเจพ

เจ†เจ‰ เจนเฉเจฃ เจ•เจฒเจพเจ‰เจกเจซเจฒเฉ‡เจ…เจฐ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจเฅค เจšเจฒเฉ‹ เจ‡เจน เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจพเจˆเจŸ เจฒเจˆ เจ‡เฉฑเจ• เจกเฉ‹เจฎเฉ‡เจจ เจนเฉˆ. เจ†เจ“ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚ blog.example.com.

เจ•เจฆเจฎ 1: เจ‡เฉฑเจ• DNS เจเจ‚เจŸเจฐเฉ€ เจฌเจฃเจพเจ“

เจชเจนเจฟเจฒเจพเจ‚, เจธเจพเจกเจพ เจกเฉ‹เจฎเฉ‡เจจ เจšเฉเจฃเฉ‹, เจ…เจคเฉ‡ เจซเจฟเจฐ เจฎเฉ€เจจเฉ‚ เจ†เจˆเจŸเจฎ DNS เจจเฉ‚เฉฐ. เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเจฒเฉŒเจ— เจ-เจฐเจฟเจ•เจพเจฐเจก เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ•เฉเจ เจซเจฐเจœเจผเฉ€ IP เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ (เจ‡เจน เจ…เจงเจฟเจ•เจพเจฐเจค เจนเฉˆ เจธเจฟเจซเจพเจฐเจธเจผ, เจชเจฐ เจ‰เจน เจ‡เจธเจจเฉ‚เฉฐ เจฅเฉ‹เฉœเจพ เจธเฉเฉฐเจฆเจฐ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจธเจจ)เฅค

เจ•เจฒเจพเจ‰เจกเจซเจฒเฉ‡เจ…เจฐ เจตเจฐเจ•เจฐ เจธเจพเจˆเจŸเจพเจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจธเจพเจˆเจŸ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจˆเจ

เจ•เจฆเจฎ 2: Cloudflare เจŸเฉ‹เจ•เจจ

  1. เจตเจพเจชเจธ เจฎเฉ‡เจฐเฉ‡ เจชเฉเจฐเฉ‹เจซเจผเจพเจˆเจฒ ' -> API เจŸเฉ‹เจ•เจจ เจŸเฉˆเจฌ-> เจŸเฉ‹เจ•เจจ เจฌเจฃเจพเจ“ -> เจ•เจธเจŸเจฎ เจŸเฉ‹เจ•เจจ เจฌเจฃเจพเจ“

เจ•เจฒเจพเจ‰เจกเจซเจฒเฉ‡เจ…เจฐ เจตเจฐเจ•เจฐ เจธเจพเจˆเจŸเจพเจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจธเจพเจˆเจŸ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจˆเจ

เจ‡เฉฑเจฅเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจŸเฉ‹เจ•เจจ เจจเฉ‚เฉฐ เจ–เจพเจคเจฟเจ†เจ‚ เจ…เจคเฉ‡ เจœเจผเฉ‹เจจเจพเจ‚ เจคเฉฑเจ• เจธเฉ€เจฎเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€, เจชเจฐ เจคเจธเจตเฉ€เจฐ เจตเจฟเฉฑเจš เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ เจฒเจˆ เจธเฉฐเจชเจพเจฆเจจ เจตเจฟเจ•เจฒเจช เจจเฉ‚เฉฐ เจ›เฉฑเจก เจฆเจฟเจ“เฅค

เจญเจตเจฟเฉฑเจ– เจฒเจˆ เจŸเฉ‹เจ•เจจ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเฉ‹, เจธเจพเจจเฉ‚เฉฐ เจคเฉ€เจœเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€เฅค

เจ•เจฆเจฎ 3: เจ…เจ•เจพเจŠเจ‚เจŸเจฟเจก เจ…เจคเฉ‡ เจœเจผเฉ‹เจจเจพเจˆเจก เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹

เจจเฉ‚เฉฐ เจกเฉ‹เจฎเฉ‡เจจ โ†’ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ โ†’ [เจธเฉฑเจœเฉ€ เจธเจพเจˆเจกเจฌเจพเจฐ]

เจ•เจฒเจพเจ‰เจกเจซเจฒเฉ‡เจ…เจฐ เจตเจฐเจ•เจฐ เจธเจพเจˆเจŸเจพเจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจธเจพเจˆเจŸ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจˆเจเจ‡เจน เจฎเฉ‡เจฐเฉ‡ เจนเจจ, เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจ‡เจนเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจพ เจ•เจฐเฉ‹ :)

เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจŸเฉ‹เจ•เจจ เจฆเฉ‡ เจ…เฉฑเจ—เฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเฉ‹, เจธเจพเจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจคเฉ€เจœเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš เจตเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€เฅค

เจ•เจฆเจฎ 4: เจตเจฐเจ•เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฐเจ—เจฐเจฎ เจ•เจฐเฉ‹

เจจเฉ‚เฉฐ เจกเฉ‹เจฎเฉ‡เจจ โ†’ เจตเจฐเจ•เจฐเจœเจผ โ†’ เจตเจฐเจ•เจฐเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเฉ‹

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจฟเจฒเฉฑเจ–เจฃ เจจเจพเจฎ เจ…เจคเฉ‡ เจŸเฉˆเจฐเจฟเจซ เจตเจฐเจ•เจฐเจœเจผ โ†’ เจ…เจธเฉ€เจฎเจค ($5 เจชเฉเจฐเจคเฉ€ เจฎเจนเฉ€เจจเจพ เจ…เฉฑเจœ) เจšเฉเจฃเจฆเฉ‡ เจนเจพเจ‚เฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจฎเฉเจซเจค เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš เจ…เจชเจ—เฉเจฐเฉ‡เจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจญเจพเจ— 3: เจชเจนเจฟเจฒเฉ€ เจคเฉˆเจจเจพเจคเฉ€ (เจฎเฉˆเจจเฉ‚เจ…เจฒ เจคเฉˆเจจเจพเจคเฉ€)

เจฎเฉˆเจ‚ เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฒเจˆ เจชเจนเจฟเจฒเฉ€ เจฆเจธเจคเฉ€ เจคเฉˆเจจเจพเจคเฉ€ เจ•เฉ€เจคเฉ€ เจ•เจฟ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‰เฉฑเจฅเฉ‡ เจ•เฉ€ เจนเฉ‹ เจฐเจฟเจนเจพ เจธเฉ€เฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจน เจธเจญ เจธเฉŒเจ–เจพ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ:

  1. เจฐเฉˆเจ‚เจ—เจฒเจฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹: npm i @cloudflare/wrangler -g

  2. เจ†เจ“ เจ†เจชเจฃเฉ‡ เจฌเจฒเฉŒเจ— เจฆเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ 'เจคเฉ‡ เจšเฉฑเจฒเฉ€เจ: cd blog.example.com

  3. เจฐเฉˆเจ‚เจ—เจฒเจฐ เจฒเจพเจ‚เจš เจ•เจฐเฉ‹: wrangler init โ€” site hugo-worker

  4. เจฐเฉˆเจ‚เจ—เจฒเจฐ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉฐเจฐเจšเจจเจพ เจฌเจฃเจพเจ“ (เจชเฉเฉฑเจ›เฉ‡ เจœเจพเจฃ 'เจคเฉ‡ เจŸเฉ‹เจ•เจจ เจฆเจพเจ–เจฒ เจ•เจฐเฉ‹): wrangler config

เจนเฉเจฃ เจจเจตเฉ€เจ‚ เจฌเจฃเฉ€ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจพเจ… เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ€เจ wrangler.toml (เจ‡เฉฑเจฅเฉ‡ เจธเฉฐเจญเจพเจตเจฟเจค เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจธเฉ‚เจšเฉ€):

  1. เจธเฉฐเจ•เฉ‡เจค เจ…เจ•เจพเจ‰เจ‚เจŸเจฟเจก เจ…เจคเฉ‡ เจœเจผเฉ‹เจจเจพเจˆเจก

  2. เจฌเจฆเจฒเฉ‹ เจฐเฉ‚เจŸ เจ•เจฟเจธเฉ‡ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจœเจฟเจตเฉ‡เจ‚ *blog.example.com/*

  3. เจธเฉฐเจ•เฉ‡เจค เจเฉ‚เจ เฉ‡ เจจเฉ‚เฉฐ เจตเจฐเจ•เจฐเจฆเฉ‡เจต

  4. เจฌเจพเจฒเจŸเฉ€ เจจเฉ‚เฉฐ ./public เจตเจฟเฉฑเจš เจฌเจฆเจฒเฉ‹ (เจœเจพเจ‚ เจคเฉเจนเจพเจกเฉ€ เจธเจฅเจฟเจฐ เจธเจพเจˆเจŸ เจ•เจฟเฉฑเจฅเฉ‡ เจธเจฅเจฟเจค เจนเฉˆ)

  5. เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจฎเจพเจฐเจ— เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจคเฉ‹เจ‚ เจตเฉฑเจง เจกเฉ‹เจฎเฉ‡เจจ เจนเจจ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจฎเจพเจฐเจ— เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ: worker-site/index.js (เจซเฉฐเจ•เจธเจผเจจ เจตเฉ‡เจ–เฉ‹ เจนเฉˆเจ‚เจกเจฒ เจˆเจตเฉˆเจ‚เจŸ)

เจฌเจนเฉเจค เจตเจงเฉ€เจ†, เจŸเฉ€เจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเจพเจˆเจŸ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจฆเจพ เจธเจฎเจพเจ‚ เจ† เจ—เจฟเจ† เจนเฉˆ wrangler publish.

เจญเจพเจ— 4: เจคเฉˆเจจเจพเจคเฉ€ เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ

เจ‡เจน เจ—เจพเจˆเจก Gitlab เจฒเจˆ เจฒเจฟเจ–เฉ€ เจ—เจˆ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจตเฉˆเจšเจฒเจฟเจค เจคเฉˆเจจเจพเจคเฉ€ เจฆเฉ‡ เจคเฉฑเจค เจ…เจคเฉ‡ เจธเฉŒเจ– เจจเฉ‚เฉฐ เจนเจพเจธเจฒ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจ•เจฆเจฎ 1: เจธเจพเจกเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ“ เจ…เจคเฉ‡ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเฉ‹

  1. เจ‡เฉฑเจ• เจจเจตเจพเจ‚ GitLab เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ“ เจ…เจคเฉ‡ เจธเจพเจˆเจŸ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจฒเฉ‹เจก เจ•เจฐเฉ‹: เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ blog.example.com เจธเจพเจฐเฉ€เจ†เจ‚ เจธเจฎเฉฑเจ—เจฐเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฐเฉ‚เจŸ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ

  2. เจ…เจธเฉ€เจ‚ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ CFAPITOKEN เจ‡เฉฑเจฅเฉ‡: เจธเฉˆเจŸเจฟเฉฐเจ— โ†’ เจธเฉ€เจ†เจˆ / เจธเฉ€เจกเฉ€ โ†’ เจตเฉ‡เจฐเฉ€เจฌเจฒ

เจ•เจฆเจฎ 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 โ†’ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจœเจผ โ†’ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจšเจฒเจพเจ“) เจœเจพเจ‚ เจฎเจพเจธเจŸเจฐ เจฌเฉเจฐเจพเจ‚เจš เจจเฉ‚เฉฐ เจตเจšเจจเจฌเฉฑเจง เจ•เจฐเจ•เฉ‡เฅค เจตเฉ‹เจ‡เจฒเจพ!

เจธเจฟเฉฑเจŸเจพ

เจ–เฉˆเจฐ, เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฅเฉ‹เฉœเฉเจนเจพ เจœเจฟเจนเจพ เจธเจฎเจเจฟเจ† เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจธเจพเจฐเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš เจธเจฟเจฐเจซ เจฆเจธ เจฎเจฟเฉฐเจŸ เจฒเฉฑเจ— เจ—เจเฅค เจชเจฐ เจนเฉเจฃ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจคเฉˆเจจเจพเจคเฉ€ เจตเจพเจฒเฉ€ เจ‡เฉฑเจ• เจคเฉ‡เจœเจผ เจธเจพเจˆเจŸ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจจเจตเฉ‡เจ‚ เจตเจฟเจšเจพเจฐ เจนเจจ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจตเจฐเจ•เจฐเจพเจ‚ เจจเจพเจฒ เจนเฉ‹เจฐ เจ•เฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

 เจ•เจฒเจพเจ‰เจกเจซเจฒเฉ‡เจ…เจฐ เจตเจฐเจ•เจฐ    Hugo    เจ—เจฟเฉฑเจŸเจฒเฉˆเจฌ เจธเฉ€.เจ†เจˆ

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹