একটি সাইটের মালিক আপনাকে তাদের সাইটগুলির মধ্যে একটিতে — তাদের অ্যাকাউন্টে নয়, তাদের বিলিংয়ে নয়, তাদের অন্য সাইটগুলোতে নয় — অ্যাক্সেস দিতে পারেন এবং আপনি আপনার নিজস্ব Zinn Digital® লগইন এবং বিনামূল্যে পাওয়া Zinnector® CLI দিয়ে সেটিতে কাজ করেন। এই নির্দেশিকাটি তার উভয় দিক নিয়েই তৈরি: মালিক কী করেন এবং আপনি কী করেন।
আপনি যদি আগে কখনো Zinnector® ব্যবহার না করে থাকেন, তবে Getting started with Zinnector® মাত্র দুই মিনিটের মধ্যে এটি ইনস্টল করে দেয়। এখানে এমন কিছু নেই যার জন্য আপনাকে হোস্টিং কিনতে হবে।
সাইটের মালিকের জন্য — একটি সাইট শেয়ার করা
- আপনার ড্যাশবোর্ডে সাইটটি খুলুন এবং Security-এ যান।
- Who else can reach this site-এ, Share this site বেছে নিন।
- ডেভেলপারের ইমেইল ঠিকানা টাইপ করুন। তাদের আগে থেকে কোনো অ্যাকাউন্ট থাকার প্রয়োজন নেই — যদি তারা কখনো সাইন ইন না করে থাকেন, তবে তারা একটি আমন্ত্রণ পাবেন এবং তারা তা গ্রহণ করার মুহূর্ত থেকেই অ্যাক্সেস শুরু হয়ে যাবে।
- একটি role বেছে নিন:
- Viewer — দেখতে পারেন, কিন্তু কোনো কিছু পরিবর্তন করতে পারেন না।
- Editor — একজন ডেভেলপারের সাধারণত যে ভূমিকা প্রয়োজন হয়। তারা সাইটের ফাইল পরিবর্তন করতে পারেন, wp-admin ব্যবহার করতে পারেন এবং স্থানীয়ভাবে কাজ করার জন্য সাইটের একটি আর্কাইভ ডাউনলোড করতে পারেন। সেই আর্কাইভে ডেটাবেস অন্তর্ভুক্ত থাকে।
- Manager — একজন এডিটর যা করতে পারেন তার সবকিছুর পাশাপাশি ব্যাকআপ পুনরুদ্ধার করা।
- একটি reason প্রদান করুন এবং কাজের কোনো সমাপ্তির তারিখ থাকলে একটি expiry দিন। সেই তারিখে অনুদান বা গ্র্যান্টের মেয়াদ স্বয়ংক্রিয়ভাবে শেষ হয়ে যায়; এটি সরিয়ে ফেলার কথা আপনাকে আলাদা করে মনে রাখতে হবে না।
- সংরক্ষণ (Save) করুন।
আপনি যাই বেছে নিন না কেন, একজন সহযোগিতাকারী (collaborator) কখনোই সাইটটি মুছে ফেলতে, আপনার বিলিং দেখতে বা আপনার অন্য কোনো সাইটে পৌঁছাতে পারবেন না।
"আর্কাইভটিতে ডেটাবেস অন্তর্ভুক্ত থাকে" কথাটির অর্থ কী
কাজ করার জন্য একজন এডিটর বা ম্যানেজার সাইটের একটি অনুলিপি বা কপি নিতে পারেন এবং সাইটের একটি অনুলিপি মানে হলো এর ফাইলসমূহ এবং এর ডেটাবেস। একটি WordPress ডেটাবেসে আপনার ভিজিটররা সাইটটিকে যা কিছু দিয়েছেন তা সংরক্ষিত থাকে — মন্তব্যকারী বা কমেন্টারদের নাম এবং ইমেইল ঠিকানা, গ্রাহক অ্যাকাউন্ট, WooCommerce অর্ডার এবং ডেলিভারির ঠিকানা, ফর্ম জমা দেওয়া ইত্যাদি।
এটি সাধারণত একজন ডেভেলপারের ঠিক যা প্রয়োজন: এটি ছাড়া তারা একটি খালি সাইটের বিরুদ্ধে তাদের থিম দেখছেন। এটি জেনে রাখা ভালো, কারণ এটি প্রকৃত ব্যক্তিগত ডেটা এবং ডেটা যার সাথে সম্পর্কিত তারা আপনার গ্রাহক, আমাদের নন।
এর ফলে দুটি বিষয় সামনে আসে এবং প্ল্যাটফর্মটি আপনার জন্য দুটি কাজই করে থাকে:
- প্রতিটি এক্সপোর্ট আপনার অডিট লগ-এ থাকে। Audit log খুলুন এবং
site.backup.exported খুঁজুন। প্রতিটি সারিতে কে এটি নিয়েছেন, কখন নিয়েছেন এবং সেই আর্কাইভে ডেটাবেস ছিল কি না তা উল্লেখ থাকে। আপনাকে জিজ্ঞাসা করতে হবে না।
- আপনি যেকোনো মুহূর্তে এটি শেষ করতে পারেন। প্রত্যাহার বা রেভোক করা তাৎক্ষণিক — নিচে দেখুন।
আপনি যদি ডেটাবেস ছাড়াই তারা কাজ করুক তা চান, তবে তাদের পুল করার সময় --no-database যোগ করতে বলতে পারেন; এটি একটি ফ্ল্যাগ এবং বাকি সবকিছু একইভাবে কাজ করবে।
ডেভেলপারের জন্য — আপনার মেশিনে সাইটটি নিয়ে আসা
1. Zinnector® ইনস্টল করুন
npm install -g zinnector
zinnector --version
আপনার Node 24 বা নতুন সংস্করণ প্রয়োজন। node --version-এ অবশ্যই v24 বা তার উচ্চতর সংস্করণ প্রিন্ট করতে হবে।
2. নিজের নামে সাইন ইন করুন
zinnector login
এটি আপনার ব্রাউজার খোলে এবং আপনার নিজের Zinn Digital® অ্যাকাউন্ট দিয়ে আপনাকে সাইন ইন করায় — যেটিতে আমন্ত্রণ পাঠানো হয়েছিল। আপনার কখনোই মালিকের পাসওয়ার্ডের প্রয়োজন হয় না এবং তাদেরও আপনাকে কোনো পাসওয়ার্ড দেওয়ার প্রয়োজন হয় না।
আপনাকে কী দেওয়া হয়েছে তা পরীক্ষা করুন:
zinnector sites
আপনি ঠিক যে সাইটগুলো শেয়ার করা হয়েছে সেগুলোই দেখতে পাবেন, অন্য কিছু নয়। তালিকাটি খালি থাকলে, আমন্ত্রণটি এখনো গ্রহণ করা হয়নি, অথবা অনুদান প্রত্যাহার করা হয়েছে বা এর মেয়াদ শেষ হয়ে গেছে।
3. সাইটটি নিচে নামান (পুল করুন)
zinnector clone client-domain.com
cd client-domain.com
clone হোস্ট করা সাইট থেকে একটি স্থানীয় প্রজেক্ট তৈরি করে। এটি যা নেয়:
wp-content — থিম, প্লাগইন, mu-প্লাগইন, ভাষা এবং মিডিয়া যা সাইটের নিজস্ব কাজ;
- ডেটাবেস, প্রজেক্টে
database.sql-এ লেখা হয়।
এটি ইচ্ছাকৃতভাবেই WordPress কোর (আপনার স্থানীয় রানটাইম সঠিক সংস্করণ সরবরাহ করে), wp-config.php (এটিতে লাইভ সাইটের ডেটাবেসের পাসওয়ার্ড থাকে) এবং অবজেক্ট স্টোরেজে অফলোড করা যেকোনো মিডিয়া বাদ দেয়।
প্রতিটি রান এটি কী নিয়েছে এবং কী বাদ দিয়েছে, তা সংখ্যাসহ ঠিকভাবে প্রিন্ট করে। আপনি যদি শুধুমাত্র ফাইলগুলো চান, তবে --no-database যোগ করুন।
ইতিমধ্যেই প্রজেক্ট আছে এবং শুধুমাত্র সর্বশেষ সংস্করণটি চান? এর ভেতরে zinnector pull রান করুন।
4. আসল কন্টেন্টসহ এটি স্থানীয়ভাবে রান করুন
zinnector dev --runtime docker
Docker রানটাইমে এটি database.sql আমদানি করে, সাইটের ইউআরএলকে আপনার স্থানীয় ঠিকানায় রিরাইট বা পুনর্লিখন করে এবং গ্রাহকের আসল কন্টেন্টসহ সাইটটি খোলে। সাইটের নিজস্ব WordPress অ্যাকাউন্ট দিয়ে লগ ইন করুন।
ডিফল্ট রানটাইম — WordPress Playground, যার কোনো Docker-এর প্রয়োজন হয় না — শুরু করতে দ্রুততর এবং ডেটাবেস আমদানি করে না; এটি চুপচাপ খালি অবস্থায় শুরু না করে আপনাকে বিষয়টি জানিয়ে দেবে। আপনি যখন কোডে কাজ করছেন এবং কন্টেন্টের প্রয়োজন নেই, তখন এটি ব্যবহার করুন।
5. আপনাকে যে কপিটি দেওয়া হয়েছে তার যত্ন নিন
database.sql হলো একটি লাইভ সাইটের ডেটাবেস। Zinnector® এটি লেখার সাথে সাথেই আপনার প্রজেক্টের .gitignore-এ এটি যোগ করে দেয়, যাতে কোনো অমনোযোগী git add -A কমান্ড কারও গ্রাহকদের তথ্য কোনো রিপোজিটরিতে প্রকাশ করে না দিতে পারে। সেই লাইনটি অপরিবর্তিত রাখুন এবং কাজ শেষ হলে ফাইলটি মুছে ফেলুন।
একজন সহযোগিতাকারী যা করতে পারেন এবং যা করতে পারেন না
| | Viewer | Editor | Manager | |---|---|---|---| | সাইট এবং এর সেটিংস দেখা | ✔ | ✔ | ✔ | | ফাইল পরিবর্তন করা, wp-admin ব্যবহার করা, ডিপ্লয় করা | | ✔ | ✔ | | সাইট পুল করা, ডেটাবেসসহ | | ✔ | ✔ | | লাইভ সাইটের ওপর ব্যাকআপ পুনরুদ্ধার করা | | | ✔ | | সাইট মুছে ফেলা | | | | | বিলিং বা ইনভয়েস দেখা | | | | | মালিকের অন্যান্য সাইটে পৌঁছানো | | | |
শেষ তিনটি সারি প্রতিটি ভূমিকার জন্য ফাঁকা। এগুলো কোনো সেটিংস নয়।
অ্যাক্সেস সমাপ্ত করা
মালিক সাইটের Security বিভাগ খুলবেন এবং ব্যক্তির নামের পাশের Revoke বেছে নেবেন। এটি অবিলম্বে কার্যকর হয়: পরবর্তী যে Zinnector® কমান্ড সেই ডেভেলপার রান করবেন তা সাইটটি দেখতে পাবে না এবং তাদের কাছে থাকা অন্য কোনো কিছুও দেখতে পাবে না।
মেয়াদ শেষ হওয়া (expiry) কোনো তারিখ নির্দিষ্ট থাকলে কাউকে মনে রাখার ঝামেলা ছাড়াই একইভাবে কাজটি করে দেয়। আপনি যখন সাইটটি শেয়ার করেছিলেন তখন যদি একটি মেয়াদ সেট করে থাকেন, তবে আপনার কাজটি ইতিমধ্যেই সম্পন্ন হয়েছে।
যখন কোনো কিছু কাজ করে না
zinnector sites-এ কিছু দেখায় না। আমন্ত্রণটি গ্রহণ করা হয়নি, অথবা অনুদান প্রত্যাহার করা হয়েছে কিংবা মেয়াদ শেষ হয়ে গেছে। মালিককে সাইটের সিকিউরিটি বা নিরাপত্তা বিভাগটি দেখতে বলুন — সেখানে একটি মুলতুবি আমন্ত্রণ তালিকাভুক্ত থাকে।
zinnector pull বলে যে সাইটের কোনো সাম্প্রতিক ব্যাকআপ নেই। প্ল্যান অনুমতি দিলে পুল করার সময় একটি নতুন ব্যাকআপ নেওয়া হয় এবং প্রথমে জিজ্ঞাসা করা হয়। প্ল্যানে অন-ডিমান্ড ব্যাকআপ অন্তর্ভুক্ত না থাকলে, পুরোনো ব্যাকআপ গ্রহণ করতে --max-age বাড়িয়ে দিন।
zinnector dev একটি খালি WordPress শুরু করে। আপনি Playground রানটাইমে আছেন, যা ডেটাবেস আমদানি করে না। zinnector dev --runtime docker রান করুন।
- স্থানীয় সাইটটি লাইভ ডোমেইনে রিডাইরেক্ট করতেই থাকে। আমদানি করার সময় সাইটের ইউআরএল পুনর্লিখন বা রিরাইট করা হয়; সেই ধাপটি ব্যর্থ হলে, কমান্ডটি তা জানিয়ে দেয় এবং রান করার জন্য
wp search-replace লাইনটি প্রিন্ট করে।
আরও ত্রুটি এবং সেগুলোর সমাধান: Zinnector® troubleshooting।