একটি প্রজেক্ট লোকালি চালু হয়ে গেলে, চারটি কমান্ড এটিকে Zinn Digital® হোস্টিং-এর একটি লাইভ সাইটে নিয়ে যায়: সাইন ইন করুন, প্রজেক্টটিকে একটি হোস্টিং স্লটের সাথে লিঙ্ক করুন, প্রি-ফ্লাইট পড়ুন এবং পুশ করুন। এই নিবন্ধে প্রতিটি বিষয়, এটি কী প্রিন্ট করে এবং এর পরে আপনার প্রয়োজনীয় কমান্ডগুলো বিশদভাবে আলোচনা করা হয়েছে — রিডিপ্লয়, ডিপ্লয় হিস্ট্রি এবং বিল্ড লগ।
একটি API key দিয়ে সাইন ইন করুন
ড্যাশবোর্ডের Settings → API keys-এর অধীনে একটি কী তৈরি করুন, তারপর:
zinnector login
কী-টি একটি প্রম্পটে টাইপ করা হয় — এটি কমান্ড লাইনে কখনই গ্রহণ করা হয় না, তাই এটি আপনার শেল হিস্ট্রি বা প্রসেস তালিকায় চলে যেতে পারে না। CI-তে, এটি পাইপ করুন: echo "$ZINN_API_KEY" | zinnector login --profile ci, অথবা ZINNECTOR_TOKEN সেট করুন এবং login সম্পূর্ণরূপে এড়িয়ে যান। কী-টি সংরক্ষণ করার আগে যাচাই করা হয়, এবং ফাইল মোড 600 সহ সংরক্ষণ করা হয়। zinnector whoami --scopes দেখায় আপনি কোন প্রতিষ্ঠানে সাইন ইন করেছেন এবং কী-টিতে কোন অনুমতিগুলো রয়েছে; একটি স্যান্ডবক্স কী-কে সেইভাবেই চিহ্নিত করা হয়।
প্রজেক্টটিকে একটি স্লটের সাথে লিঙ্ক করুন
zinnector link # pick a site from a list
zinnector link example.com --repo acme/site --branch main
link সাইটটির id zinnector.json-এ লেখে এবং, আপনি --no-repo পাস না করলে, প্ল্যাটফর্মে প্রজেক্টের git রিমোটটিকে সাইটের সাথে সংযুক্ত করে যাতে একটি পুশ এটি ডিপ্লয় করে। zinnector.json কমিট করুন: একজন সহকর্মী যিনি রিপোজিটরি ক্লোন করেন তিনি কাউকে না জানিয়েই একই জায়গায় ডিপ্লয় করতে পারেন। এটিতে কোনো গোপনীয় তথ্য থাকে না।
প্রি-ফ্লাইট পড়ুন
zinnector check
এই কমান্ডটির জন্যই CLI-এর অস্তিত্ব। এটি আপনার প্রজেক্টটিকে যে স্লটে ডিপ্লয় করা হতে চলেছে তার সাথে তুলনা করে এবং প্রতিটি অমিল — এবং যে প্রতিটি তুলনা এটি করতে পারেনি তা প্রিন্ট করে:
- PHP version, যার মেজর-ভার্সনের ব্যবধানকে high হিসেবে গ্রেড করা হয় কারণ এটি নিশ্চিতভাবেই একটি সাইট অকেজো করে দেয় এবং একটি মাইনর ব্যবধানকে কম গ্রেড দেওয়া হয়, কারণ সবকিছুকে ক্রিটিক্যাল হিসেবে গ্রেড করলে তা মানুষকে সতর্কতা উপেক্ষা করতে শেখায়।
- স্লটটি আপনি যে সংস্করণে বিল্ড করেছেন তাতে স্যুইচ করতে পারে কিনা, স্লটের PHP-এর মেয়াদ শেষ হয়েছে কিনা, এবং মেশিনটি সংস্করণটি প্রয়োগ করেছে নাকি কেবল জানানো হয়েছে।
- স্লটে প্রকৃতপক্ষে অবশিষ্ট ডিস্ক এবং আই-নোড হেডরুমের বিপরীতে আপনার প্রজেক্টের আকার এবং ফাইলের সংখ্যা — একটি WordPress ট্রি তার ডিস্ক ক্যাপের অনেক নিচে থাকা অবস্থাতেই ফাইলের সংখ্যা শেষ হয়ে যেতে পারে।
- প্রতিটি পাশের WordPress versions, স্লটটির প্রভিশনিং সম্পন্ন হয়েছে কিনা, এবং পুশ করার জন্য একটি রিপোজিটরি সংযুক্ত আছে কিনা।
এটি সতর্ক করে; এটি কখনই বাধা দেয় না। প্রতিটি অনুসন্ধান zinnector push --force দিয়ে ওভাররাইড করা যায়, কারণ আপনি আপনার নিজের সাইট সম্পর্কে এমন কিছু জানেন যা একটি চেকার জানে না। যে তুলনাটি করা সম্ভব হয়নি তা কখনই পাস হিসেবে নয়, বরং unknown হিসেবে রিপোর্ট করা হয় এবং সারসংক্ষেপে সর্বদা বলা থাকে যে সেখানে কতগুলো ছিল। ডিফল্টভাবে লোকাল PHP সংস্করণটি হলো zinnector.json-এ ঘোষিত সংস্করণ; --probe লোকাল রানটাইম বুট করে এবং পরিবর্তে এটি পরিমাপ করে। --strict অজানা বিষয়গুলোর ক্ষেত্রেও নন-জিরো দিয়ে প্রস্থান করে, যা একটি CI গেট চায়।
পুশ করুন
zinnector push
push প্রি-ফ্লাইট চালায়, আপনার কমিটগুলো পুশ করে, ডিপ্লয় ট্রিগার করে এবং এটি সম্পন্ন হওয়া পর্যন্ত পর্যবেক্ষণ করে, চূড়ান্ত স্ট্যাটাস এবং ডিপ্লয় করা কমিট প্রিন্ট করে। --dry-run ডিপ্লয় ছাড়া সবকিছু করে; --no-wait এটি ট্রিগার করে এবং প্রস্থান করে; --no-git পুশ না করেই প্ল্যাটফর্মে ইতোমধ্যে যা আছে তা ডিপ্লয় করে। ডিপ্লয় করা কমিটটি যদি এইমাত্র পুশ করা কমিট না হয়, তবে এটি তা বলে দেয়।
যখন কোনো সমস্যা হয়
zinnector deploys example.com # deploy history — status, commit, trigger, message
zinnector logs example.com --build # the build log of the most recent deploy
zinnector logs example.com --error # the site's error log
zinnector deploy example.com # redeploy what the platform already has
zinnector ai "why is my deploy failing?"
zinnector ai আপনার নিজস্ব অ্যাকাউন্টের বিপরীতে প্ল্যাটফর্মে চলে, তাই এটি একই ডিপ্লয় হিস্ট্রি এবং লগ দেখতে পারে। একটি প্রজেক্টের ভেতর থেকে এটি প্রজেক্টের গঠন পাঠায় — ডিরেক্টরির নাম, সংস্করণ এবং সাইট id — এবং ফাইলের বিষয়বস্তু কখনই পাঠায় না।
সম্পর্কিত