স্বয়ংক্রিয় পদ্ধতি: অ্যাকাউন্ট থেকে একটি স্ক্রিপ্ট গোটা সার্ভার প্রস্তুত করে (Apache + PHP ওয়েব-স্ট্যাক, ডেটাবেস, নিরাপত্তা সরঞ্জাম, cron)। এরপর — প্যানেল চালু করুন, SSL ইস্যু করুন এবং লাইসেন্স দিন। এটি Ubuntu/Debian-এ কাজ করে: নতুন VPS-এ সবকিছু শূন্য থেকে সেট করে, আর ইতিমধ্যে কনফিগার করা সার্ভারে — শুধু অতিরিক্তভাবে (প্রোফাইল “কনফিগার করা সার্ভার”, ধাপ ০১)। নিচের সব কমান্ড ক্রমানুসারে — শুধু উপর থেকে নিচে স্ক্রল করুন।
monitor.example.com — আপনার ডোমেন; 203.0.113.10 — সার্ভারের আসল IP; /var/www/monitor — প্যানেলের রুট (যেখানে public/, assets/, config.php থাকে); ডেটাবেসের পাসওয়ার্ড নিজে ঠিক করুন।
jail.local), root-crontab, UFW নিয়ম, Apache কনফিগ। যদি সার্ভার ইতিমধ্যে কনফিগার করা থাকে (চালু প্যানেল, সাইট, মেইল, নিজস্ব jail) — তবে “কনফিগার করা সার্ভার” প্রোফাইল বেছে নিন: এটি শুধু অতিরিক্ত পরিবর্তন আনে এবং আপনার ফায়ারওয়াল, Fail2ban, মেইল, SSH ও sysctl-এ হাত দেয় না। হোস্টিং-প্যানেল শনাক্ত করলে স্ক্রিপ্ট নিজেই এই মোডে চলে যায়। প্রথমবার চালানোর আগে ড্রাই-রান চালু করতে পারেন (অ্যাকাউন্টে চেকবক্স) — এটি কিছু না বদলেই দেখাবে কী করা হবে। চালু সার্ভারে সাবধানতার জন্য একটি স্ন্যাপশট (snapshot) নিয়ে রাখুন।
my.arciveo.com → “সার্ভার সেটআপ” বিভাগে (Arcivéo Monitor নেওয়ার পরে উপলব্ধ)। এটি আপনার অ্যাকাউন্টের সাথে যুক্ত এবং ব্যক্তিগত টোকেন ধারণ করে।
স্ক্রিপ্টটি সম্পূর্ণ সার্ভার প্রস্তুত করে: ওয়েব-স্ট্যাক (Apache + PHP), ডেটাবেস, SSL-এর টুল, সুরক্ষার সম্পূর্ণ সেট এবং cron-টাস্ক (Lynis, SMART, debsums, Logwatch, দৈনিক রিপোর্ট, ipsum আপডেট)।
1) সুরক্ষার স্তর বেছে নিন (অ্যাকাউন্টে, কমান্ড কপি করার আগে):
2) সার্ভারে root হিসেবে চালান অ্যাকাউন্টের কমান্ডটি — এটি দেখতে এমন:
প্যানেলটি monitor.example.com-এর মতো ঠিকানায় খুলতে এবং বিনামূল্যে SSL পেতে হলে ডোমেনটি সার্ভারের দিকে নির্দেশ করতে হবে। DNS নিয়ন্ত্রণ প্যানেলে (রেজিস্ট্রার বা হোস্টারের কাছে) একটি A-রেকর্ড তৈরি করুন:
কয়েক মিনিট পরে (কখনও কখনও এক ঘণ্টা পর্যন্ত) যাচাই করুন যে ডোমেনটি সার্ভারের দিকে নির্দেশ করছে:
/var/www/monitor তৈরি করেছে এবং Apache সাইট সেটআপ করেছে (DocumentRoot প্যানেলের রুটে, PHP-FPM, .htaccess-এর জন্য AllowOverride)। আলাদা করে ডিরেক্টরি ও vhost তৈরি করার দরকার নেই — শুধু ফাইলগুলো আপলোড করুন এবং অনুমতি সেট করুন।
my.arciveo.com → “ডাউনলোড” থেকে ডাউনলোড করা যায়। সার্ভারে আপলোডের আগে আর্কাইভটি আনপ্যাক করুন।
ডিস্ট্রিবিউশনের বিষয়বস্তু আপলোড করুন /var/www/monitor-এ (যাতে ভেতরে public/, assets/, config.php ইত্যাদি থাকে) — SFTP/SCP (FileZilla / WinSCP) দিয়ে অথবা লোকাল কম্পিউটার থেকে scp কমান্ডে:
ServerName) বসে যায়, তা 01 ধাপেই অটো-কনফিগারেশন কমান্ডে পাঠানো হয়: … | sudo bash -s -- monitor.example.com (অথবা অ্যাকাউন্টের “প্যানেল ডোমেন” ফিল্ডে ডোমেন উল্লেখ করুন)। ডোমেন না পাঠালে — প্যানেল যেকোনো হোস্টে ও IP-তে সাড়া দেয়, আর SSL ইস্যুর সময় (ধাপ 06) certbot নিজেই ServerName বসিয়ে দেবে; কিছু পুনরায় ইনস্টল করার দরকার নেই।
root-এর অধীনে বা SFTP-তে আপলোড করে থাকেন, ফাইলগুলো root-এর মালিকানাধীন হয়, এবং ওয়েব-সার্ভার (www-data) সেগুলো পড়তে পারবে না — প্যানেল খালি বা 403 ত্রুটি নিয়ে খুলবে (লগে: .htaccess unreadable / directory not executable)। নিচের কমান্ডটি এটি ঠিক করে:
নিজের জন্য SFTP-তে ফাইল আপলোড খুলে দিন। উপরের কমান্ডের পর সব ফাইল www-data-এর মালিকানাধীন হয়, অথচ FileZilla / WinSCP আপনার নিজের ব্যবহারকারী দিয়ে সংযোগ করে — তখন আপলোড SSH_FX_PERMISSION_DENIED (Permission denied) দিয়ে ব্যর্থ হবে। দুটি বিকল্পের একটি বেছে নিন।
বিকল্প A — শুধু আপনার ব্যবহারকারীর জন্য ACL (প্রস্তাবিত)। লেখার অনুমতি কেবল আপনিই পান; ওয়েব সার্ভার তখনও প্যানেলের কোড বদলাতে পারে না:
বিকল্প B — www-data গ্রুপের মাধ্যমে। সহজ, তবে প্যানেলের ফাইলে লেখার অনুমতি ওয়েব সার্ভারও পেয়ে যায়: PHP-তে দুর্বলতা থাকলে কোড বদলে দেওয়া সম্ভব হবে। কমান্ডের ক্রম গুরুত্বপূর্ণ — config.php ও কাজের ফোল্ডারগুলো সবশেষে বন্ধ করা হয়:
id deploy — গ্রুপের তালিকায় www-data দেখা যেতে হবে; ls -ld /var/www/monitor — অনুমতি drwxrwsr-x, x-এর জায়গায় s অক্ষরের মানে setgid সেট করা আছে।
একটি ডেটাবেস ও ব্যবহারকারী তৈরি করুন, তারপর স্কিমা ইম্পোর্ট করুন। ডেটাবেস ব্লকটি টার্মিনালে সম্পূর্ণভাবে পেস্ট করা হয় (sudo mysql ইউনিক্স-সকেটের মাধ্যমে root হিসেবে প্রবেশ করে — root পাসওয়ার্ড লাগে না)। monitor_db ও monitor_user উদাহরণের নাম, আপনি নিজের যেকোনো নাম দিতে পারেন; ডেটাবেসের নাম, ব্যবহারকারী ও পাসওয়ার্ড মনে রাখুন — পরের ধাপে সেগুলো config.php-তে লিখবেন:
admin অ্যাকাউন্ট তৈরি করে (database/db.sql থেকে)।
www-data নয়) হিসেবে চলে।
প্যানেলের রুটে থাকা config.php (/var/www/monitor/config.php) — একমাত্র ফাইল যা হাতে সম্পাদনা করতে হয়। প্যানেলের সব সেটিংস এতে define() ধ্রুবক হিসেবে দেওয়া আছে। এটি এডিটরে খুলুন:
হাইলাইট করা জায়গাগুলোতে আপনার মান বসান; বাকিটা যেমন আছে তেমনই রাখুন:
যা পরিবর্তন করবেন:
DB_NAME, DB_USER, DB_PASS — ধাপ ০৪-এ ডেটাবেস তৈরি করার সময় যে নাম, ব্যবহারকারী ও পাসওয়ার্ড দিয়েছিলেন ঠিক সেগুলোই (উদাহরণ রেখে দিলে — monitor_db / monitor_user)। DB_HOST ও DB_CHARSET স্পর্শ করবেন না।APP_URL — https:// সহ প্যানেলের পূর্ণ ঠিকানা, শেষে স্ল্যাশ ছাড়া এবং www ছাড়া। যে ডোমেনে লাইসেন্স অ্যাক্টিভেট করবেন (ধাপ ০৭) তার সাথে মিলতে হবে, নাহলে কী প্রত্যাখ্যাত হবে।TIMEZONE — আপনার টাইমজোন (তালিকা — timedatectl list-timezones)। এটি শুধু প্যানেল কীভাবে তারিখ দেখায় তা নির্ধারণ করে; cron কাজ চালুর সময়ে এর কোনো প্রভাব নেই (সেখানে সিস্টেমের টাইমজোন কার্যকর)।SESSION_LIFETIME — কত সেকেন্ড নিষ্ক্রিয়তার পর প্যানেল পুনরায় লগইন চাইবে (ডিফল্ট ৮ ঘণ্টা)। যেমন 3600 = ১ ঘণ্টা, 86400 = এক দিন।display_errors, log_errors, error_log) — ডিফল্ট রেখে দিন।ফাইলটি সংরক্ষণ করুন (Ctrl+O, Enter, তারপর Ctrl+X) এবং PHP-FPM পুনরায় চালু করুন — নাহলে OPcache-এর কারণে পরিবর্তন কার্যকর হবে না:
640 অনুমতি (ধাপ ০৩-এ সেট করা) এবং রুট .htaccess-এ স্পষ্ট নিষেধাজ্ঞা। এটি পাবলিক রিপোজিটরিতে আপলোড করবেন না এবং প্রকৃত পাসওয়ার্ডসহ সাপোর্টে পাঠাবেন না।
http:// দিয়ে আপনি লগইন করতে পারবেন না।
certbot এবং Apache-র প্লাগইন স্বয়ংক্রিয় কনফিগারেশনে ইতিমধ্যেই ইনস্টল হয়ে গেছে। ডোমেনের DNS ইতিমধ্যেই সার্ভারের দিকে নির্দেশ করা উচিত (ধাপ 02)। এক কমান্ডে ইস্যু:
Y।<VirtualHost *:443> লিখবে, http→https রিডাইরেক্ট ও স্বয়ংক্রিয় নবায়ন সেট করবে। শেষে — Successfully enabled HTTPS।
dig +short monitor.example.com সার্ভারের IP ফেরত দিচ্ছে এবং 80/443 পোর্ট খোলা আছে (sudo ufw allow 80,443/tcp)।
ইস্যুর পরে: https://monitor.example.com তালার চিহ্ন সহ খোলে, http:// https://-এ রিডাইরেক্ট করে।
https://monitor.example.com খুলুন, admin / useradmin দিয়ে লগইন করুন এবং চেকলিস্টটি সম্পন্ন করুন:
ARCIVEO-… অ্যাক্টিভেশন কোডটি আপনার ডোমেনে সক্রিয় করুন এবং কী-টি “সেটিংস” → “লাইসেন্স”-এ বসান। বিস্তারিত।public/start_db.php, যদি থেকে থাকে: এটি অনুমোদন ছাড়াই ডেটাবেস পুনর্গঠন করতে দেয়। ফাইলটি প্যানেলের মূলে বা public/-এ থাকা পর্যন্ত প্যানেল লাল ব্যানার দিয়ে এ সম্পর্কে সতর্ক করবে।