নতুন ইতিহাস

কিভাবে GitHub পৃষ্ঠাগুলিতে অ্যাকশন সহ একটি Hugo ব্লগ ডিপ্লোমাইজ করবেন

দ্বারা Oleg Pustovit5m2025/04/30
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

আমি স্ট্যাটিক সাইট জেনারেশন জন্য হুগো ব্যবহার করে একটি হালকা প্রযুক্তিগত ব্লগ তৈরি করেছি, স্থানীয় এসএসএল জন্য ক্যাডিডি এবং বিনামূল্যে হোস্টিং জন্য গিটহাব পেজ।
featured image - কিভাবে GitHub পৃষ্ঠাগুলিতে অ্যাকশন সহ একটি Hugo ব্লগ ডিপ্লোমাইজ করবেন
Oleg Pustovit HackerNoon profile picture

সফটওয়্যার নির্মাণ এবং প্রযুক্তিগত ডকুমেন্টেশন লিখার বছর পরে, আমি আমার অভিজ্ঞতা ভাগ করার জন্য একটি ব্লগ তৈরি করার সিদ্ধান্ত নিয়েছি এবং অনুরূপ যাত্রায় অন্যদের সাহায্য করার জন্য।

প্ল্যাটফর্ম বেছে নিন

যদিও আমার নিজস্ব Markdown-to-HTML প্রকাশনা স্ক্রিপ্ট তৈরি করা ভবিষ্যতের জন্য একটি ধারণা, আমার অবিলম্বে অগ্রাধিকার ছিল ব্লগটি দ্রুত অনলাইন করা।


বর্তমানে, আমি মনে করি না একটি ব্যক্তিগত ওয়েবসাইট তৈরি করা কঠিন। এই প্রচেষ্টায় সাহায্য করার জন্য বিভিন্ন বিকল্প রয়েছে. আমি বিকল্পগুলি তালিকাভুক্ত করে শুরু করব যা আমার মনে আসে:


  • সিএমএস (উদাহরণস্বরূপ, ওয়ার্ডপ্রেস, সামগ্রী হাব, জুমলা, ইত্যাদি): ওয়ার্ডপ্রেস মত প্ল্যাটফর্মগুলি শক্তিশালী হলেও, তারা একটি স্ট্যাটিক সামগ্রী ব্লগের জন্য অতিরিক্ত মনে করে।


  • জেকিল: এই সফ্টওয়্যারটি নিখুঁত মনে হয় এবং অন্যান্য ডেভেলপাররা ব্লগ হোস্ট করার জন্য ব্যাপকভাবে ব্যবহার করে, কিন্তু রুবি সঙ্গে আমার অভিজ্ঞতার অভাবের কারণে, আমি এটি ব্যবহার না করার সিদ্ধান্ত নিয়েছি।


  • হুগো গুগলে লেখা হয় এবং গুগো টেমপ্লেটগুলির পরিচিত সিন্ট্যাক্স ব্যবহার করে (যদি আপনি গুগোতে অনেক কোড করেন), যখন মার্কডাউন (জেকিলের মতো) পৃষ্ঠাগুলি রেন্ডার করেন।


  • 11ty, Astro, Hexo, এবং অন্যান্য Node.js ভিত্তিক বিকল্প. এটি একটি পছন্দ বিষয়, কিন্তু ব্যক্তিগতভাবে, আমি Node.js টুলিং এর ব্যবহারকে সর্বনিম্ন করতে সিদ্ধান্ত নিয়েছি. যদিও অনেক শক্তিশালী সরঞ্জাম রয়েছে, Node.js ইকোসিস্টেম দ্রুত পরিবর্তনের জন্য বিখ্যাত, যা প্রায়শই আমাকে প্রাচীন প্রকল্পগুলি চালানোর জন্য অক্ষম করে।

হুয়াওয়ে নিয়ে যাওয়া

আমি আমার ব্লগিং প্ল্যাটফর্ম হিসাবে হুগো নির্বাচন করেছি. আমার অতীত সফটওয়্যার সম্পর্কিত প্রকল্পগুলির উপর একটি উল্লেখযোগ্য পরিমাণ ডকুমেন্টেশন উত্পাদন করেছি, আমি আমার লেখার জন্য মার্কডাউন এবং একটি টার্মিনাল ভিত্তিক টেক্সট এডিটর ব্যবহার করে খুব আত্মবিশ্বাসী মনে করি।

GitHub রিপোজিটর ব্যবহার করুন

পূর্বে, আমি ইতিমধ্যে জিথহাব পেজের একটি ওয়েবসাইট তৈরি করেছিলাম যাতে স্থানীয় ফাইল থাকে এবং তার সাথে একটি ডোমেইন সংযুক্ত করা হয়, তাই একটি বিদ্যমান রিপোতে ফাইলগুলি পরিপূর্ণ করতে আপনাকে নিম্নলিখিত কমান্ডটি প্রবেশ করতে হবে:

hugo new site . --force


এই Hugo ওয়েবসাইট চালানোর জন্য প্রয়োজনীয় ফাইলগুলির সাথে বর্তমান রিপোর্টার ডিরেক্টরি পরিপূর্ণ করা হবে. এরপর, এটি থিম এবং অন্যান্য পরামিতি সেট আপ করা প্রয়োজন ছিলhugo.tomlফাইল, এবং সাইটটি চালানো যেতে পারে. সবকিছু সেট করার পরে, কমান্ডটি টাইপ করে সার্ভারটি চালানো সম্ভব:hugo server

উন্নয়ন মোডে সার্ভার চালান

বর্তমানে এই ওয়েবসাইটটি উপলব্ধlocalhost. যেহেতু আমি একটি দূরবর্তী ক্লাউড ভিএম এ বিকাশ করি, স্থানীয় হুগো সার্ভার অ্যাক্সেসlocalhostএটি নিরাপদে বাইরের বিশ্বের জন্য localhost ইন্সটিপ প্রদর্শন করা প্রয়োজন ছিল - এই ধরনের প্রয়োজনগুলির জন্য, একটি বিপরীত প্রক্সি ব্যবহার করা হয়।


যদিও লোড ভারসামক এবং Nginx মত বিপরীত প্রক্সিজ বেশ সাধারণ এবং জনপ্রিয়, আমি বেছে নিয়েছিCaddyআমার ডেভেলপমেন্ট ওয়েবসাইটটি সেবা করার জন্য কারণ এটি SSL সার্টিফিকেশন সেট আপ করে (Let’s Encrypt মাধ্যমে) কোনও প্রচেষ্টা ছাড়াই।Caddyকরা হয়েছে সঙ্গেCaddyfile, যেখানে আপনি আগ্রহের ডোমেইন জন্য একটি লিখুনreverse_proxyপ্রয়োজনীয় পোর্টের সাথে একটি ঘোষণা:

test-blog-domain.com {
	reverse_proxy localhost:1313
}

উপরের কনফিগারেশন দিয়ে Caddy চালু করার পরে, ডেভেলপমেন্ট ওয়েবসাইটটি থেকে উপলব্ধ হবেhttps://test-blog-domain.com(এই ধরনের একটিADNS রেকর্ডtest-blog-domain.comএটি VM এর একটি পাবলিক IP ঠিকানা দিয়ে পূরণ করা হয়।

একটি থিম যোগ করুন

হুগো একটি সংখ্যক বিনামূল্যে থিম আছে যা GitHub এ পাবলিকভাবে পাওয়া যায়. একটি ইনস্টল করার জন্য যা করতে হবে তা হল একটি থিমের সাথে একটি রিপোজিটর ক্লোন করা এবং তারপর আপডেট করাthemeপ্যারামিটারhugo.tomlআমি একটি থিম বেছে নিয়েছি যা নামেcactusইনস্টলেশন পরে, আমি একটি নির্মাণ ত্রুটি পেয়েছি যা অভিযোগ করে যে Google Analytics async টেমপ্লেট পাওয়া যায় না:

Error: error building site: render: failed to render pages: render of "/" failed: "/home/user/projects/nexo-tech.github.io/themes/cactus/layouts/_default/baseof.html:3:3": execute of template failed: template: index.html:3:3: executing "index.html" at <partial "head.html" .>: error calling partial: execute of template failed: html/template:partials/head.html:47:16: no such template "_internal/google_analytics_async.html"
make: *** [Makefile:2: up] Error

এ ধরনের একটি সমস্যার সমাধান পাওয়া যাবেgithubহুগো সম্প্রদায় সক্রিয়, এবং অনেক সমস্যা - এই Google Analytics ত্রুটি সহ - GitHub এ বিদ্যমান প্যাচ বা আলোচনা আছে।


অন্যান্য অপচয় সতর্কতা সংশোধন করার পরে, সাইটটি কাজ শুরু করে:

CDN এ একটি ওয়েবসাইট স্থাপন করুন: GitHub পেজ

একটি স্ট্যাটিক ওয়েবসাইট চালু করার অনেক উপায় রয়েছে, এবং বেশিরভাগ ক্ষেত্রে, এটি একটি হোস্টিং বা সার্ভার প্রয়োজন হয়। সাধারণত, এইগুলি বিনামূল্যে নয় বা একটি সীমিত পরিকল্পনা আছে; যাইহোক, এটির ব্যতিক্রম রয়েছে, যেমন GitHub পেজ।


যেহেতু ব্যক্তিগত GitHub অ্যাকাউন্টগুলি স্টোরেজ আর্টিফ্যাক্ট স্পেসে খুব সীমাবদ্ধ, এবং সেই স্টোরেজ স্পেস পরিচালনা করা ক্লান্তিকর, আমি সহজ সমাধানটি বেছে নিয়েছি যেখানে স্ট্যাটিক ওয়েবসাইট সম্পদগুলি একটি পূর্বে সংজ্ঞায়িত git ফ্রেন্ডে আপডেট করা হবে (gh-pagesসৌভাগ্যবশত, আছেactionsবিশেষ করে হুগো, এই উদ্দেশ্যে:


  • Shohei Ueda. একটি GitHub অ্যাকশন পরিবেশে Hugo সেট আপ করার একটি সহজ উপায়
  • এছাড়াও, Shohei Ueda দ্বারা, এই পদক্ষেপটি নির্দিষ্ট শাখায় স্ট্যাটিক সম্পদগুলি প্রবাহিত করে।


এখানে একটি GitHub অ্যাকশন ওয়ার্কফ্লোকের কোড রয়েছে যা হুগোকে gh-পৃষ্ঠাগুলিতে বিতরণ করবে. মনে রাখবেন যে যদি একটি কাস্টম ডোমেইন প্রয়োজন হয় তবে একটি CNAME ফাইলটি কপি করা উচিতpublicডিরেক্টরি চালানোর আগেgh-pagesএছাড়াও, আপনার রিপোর্টার কাজের ফ্লোর অনুমোদনগুলি "Read and Write" (এখানে পাওয়া যেতে পারে) সেটিং করতে হবে।Settings > Actions > General)

name: Build and Deploy Hugo
on:
  push:
    branches:
      - main  
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repo
        uses: actions/checkout@v3
      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: 'latest'
          extended: true
      - name: Build site
        run: hugo --minify
      - name: Add CNAME file
        run: cp CNAME public/CNAME
      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public
          publish_branch: gh-pages

বিতরণের পরে, সাইটটি GitHub CDN এ আপলোড করা উচিত. ওয়েবসাইটটি কাজ না করার ক্ষেত্রে GitHub পৃষ্ঠাগুলি সেট আপ করুন যা গঠিত বস্তুগুলি অন্তর্ভুক্ত করে।


হুগো সেটআপ এবং বিতরণের সাথে, আমি এখন গুরুত্বপূর্ণ বিষয়গুলির উপর মনোযোগ দিতে পারি - আমার অভিজ্ঞতা থেকে প্রযুক্তিগত ধারণাগুলি ভাগ করার আশা করি এই গাইডটি তাদের কাজের জন্য একটি সহজ এবং নির্ভরযোগ্য ব্লগ তৈরির জন্য অন্যদের সাহায্য করবে।

সম্পর্কিত সম্পদ

  • এই ওয়েবসাইটের জন্য রিপোজিটর
  • দ্রুত শুরু হোয়াটসঅ্যাপ
  • GitHub পেজের জন্য DNS সেটিংস কনফিগার করুন
  • হুগো এর জন্য ক্যাক্টাস থিম
  • গুগল অ্যানালিটিক্স ইনস্টলেশন হুগো
  • Caddy Reverse Proxy দ্রুত চালু


Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks