Personfolio — নতুন upload package

এই পুরো outer ZIP domain folder-এ extract করবেন না। প্রথমে নিজের কম্পিউটারে extract করুন। এর মধ্যে দুটি upload ZIP আছে।

১. আগে backup

cPanel File Manager থেকে বর্তমান project-এর backup এবং phpMyAdmin থেকে database SQL Export রাখুন। পুরোনো storage/config.json ও storage/uploads বিশেষভাবে রাখুন। Database delete করবেন না।

২. PRIVATE_APP.zip: Home-এ

File Manager → Home-এ PRIVATE_APP.zip upload এবং Extract করুন। এতে personfolio-app folder তৈরি হবে। এটি public_html এবং domain-এর Document Root-এর বাইরে থাকবে।

সঠিক অবস্থান: Home → personfolio-app → app.js। এর পাশাপাশি package.json, .env, dist ও storage থাকবে। personfolio-app/personfolio-app করে double folder করবেন না।

Settings → Show Hidden Files চালু করলে .env দেখা যাবে। প্রস্তুত .env-এ আপনার domain ও নতুন random setup key দেওয়া আছে। এটি কারও সঙ্গে share করবেন না।

৩. বর্তমান Node database রাখবেন, নাকি নতুন install?

বর্তমান database রাখলে

পুরোনো app-এর storage/config.json নতুন personfolio-app/storage/config.json-এ COPY করুন। পুরোনো storage/uploads-এর সব file নতুন storage/uploads-এ COPY করুন। পুরোনো login ও database অপরিবর্তিত থাকবে। config.json edit, installer চালানো বা database.sql import লাগবে না।

সম্পূর্ণ নতুন database চাইলে

নতুন খালি MySQL database তৈরি করুন। Database user-কে সেই database-এর ALL PRIVILEGES দিন। পুরোনো database বা পুরোনো Node/PHP table-এর ওপর installer চালাবেন না। আপনার আগে দেওয়া dailyonl_personal-data নামটি শুধু তখনই ব্যবহার করুন যখন সেটি খালি, অথবা উপরের existing-config পদ্ধতিতে আগের Node database চালাচ্ছেন।

৪. Node.js settings

Setup Node.js App-এ একই domain-এর বর্তমান app-এর configuration update করুন। যদি panel root পরিবর্তন করতে না দেয়, backup রাখার পরে hosting support দিয়ে registration সংশোধন করান; একই URL-এ দুটি app তৈরি করবেন না।

SettingValue
Node.js22.12 বা পরের 22.x / 24.x
ModeProduction
Application rootpersonfolio-app
Application URLpersonaldata.dailyonlinezone.com
URL path/
Startup fileapp.js
APP_URLhttps://personaldata.dailyonlinezone.com

Save → Run NPM Install → Restart করুন। npm build বা terminal প্রয়োজন নেই। cPanel-এ আগে থেকে SETUP_KEY থাকলে সেটি .env-এর চেয়ে অগ্রাধিকার পাবে। নতুন installer-এ effective key ব্যবহার করুন।

৫. PUBLIC_WEBSITE.zip: Domain Document Root-এ

cPanel → Domains থেকে exact Document Root দেখুন। এটি Home/personfolio-app নয়।

পুরোনো project source, ZIP, frontend, dist, storage, package files ও অন্য project files backup করে private Home folder-এ সরিয়ে রাখুন। domain folder-এ থাকা cPanel-generated .htaccess অক্ষত রাখুন। অন্য domain-এর folder পরিবর্তন করবেন না।

PUBLIC_WEBSITE.zip ওই Document Root-এ upload ও extract করুন। index.html যেন সরাসরি Document Root-এ থাকে, extra public-website subfolder-এর মধ্যে নয়। ZIP extract শেষে ZIP-টি private Home folder-এ সরিয়ে দিন।

ADD_TO_EXISTING_HTACCESS.txt-এর lines বর্তমান .htaccess-এ যোগ করুন। আগের Passenger/CloudLinux block মুছবেন না। যদি .htaccess একেবারেই না থাকে, আগে Node.js App Save করে routing তৈরি করুন। Show Hidden Files চালু রাখুন। .htaccess edit-এর পরে নতুন 500 error এলে আগের backup ফিরিয়ে hosting support-কে unsupported directive পরীক্ষা করতে বলুন।

নতুন public index.html শুধু /app খুলবে। এটি React development main.tsx লোড করে না। আসল app HTML Node.js login protection-এর পরে পরিবেশন করে। Public folder-এ database password বা app source রাখার প্রয়োজন নেই।

৬. খুলুন ও পরীক্ষা করুন

Browser-এর DevTools Offline থাকলে No throttling করুন। Ctrl+Shift+R চাপুন।

- মূল ঠিকানা: https://personaldata.dailyonlinezone.com/

- Workspace: https://personaldata.dailyonlinezone.com/app

- নতুন installation: https://personaldata.dailyonlinezone.com/install

- Login: https://personaldata.dailyonlinezone.com/login

- Database ও log checks: https://personaldata.dailyonlinezone.com/log-checker

Existing config থাকলে login খুলবে। Fresh install হলে installer খুলবে। Installer-এ .env-এর SETUP_KEY, MySQL host/port/name/user/password এবং admin account দিন। Key/password chat-এ পাঠাবেন না।

Log checker থেকে Download database report নিয়ে PASS/CHECK REQUIRED দেখুন। একটি test person create → reload → edit, photo upload, relationship, resume এবং share hide পরীক্ষা করুন। আসল personal data public করে test করবেন না।

Hosting routing এখনও না চললে

/app বা /login-এ 404/503 হলে Node registration/Passenger configuration-এর সমস্যা হতে পারে। কোনো index.html Node service চালু করতে পারে না। Setup Node.js App-এর Application root, URL, startup file, status এবং Passenger log পরীক্ষা প্রয়োজন। Password ও environment secrets বাদ দিয়ে screenshot দিন।

Hosting support-কে বলুন: “Please map personaldata.dailyonlinezone.com at / to my Node app in the private personfolio-app directory, startup app.js. Keep the domain document root separate, preserve the existing database/config, and ensure /app and /login reach Passenger rather than Apache static directory handling.”

কী আছে, কী নেই

ইংরেজি/বাংলা/আরবি নাম, birth details/age, dynamic identities, dropdown management, related people, maps, travel, photos, social links, public sharing controls, themes, A4 Print/Save PDF, Resume এবং database/log checks আছে। ID প্রথমে 1।

এটি online PWA: Android/iPhone-এ browser থেকে home screen-এ install করা যায়। APK/IPA নয়। Automatic email/WhatsApp scheduled sending নেই; তাই সে পরিষেবার subscription দরকার নেই। Software-এর license/subscription fee নেই; আপনার existing hosting/domain-এর খরচ প্রযোজ্য।

পরীক্ষা ও সীমা

এই package-এর 19টি validation/HTTP/CSRF/diagnostic automated test সফল হয়েছে; syntax ও archive checks করা হয়েছে। Live MySQL/Passenger installation end-to-end এখান থেকে যাচাই হয়নি। আপনার database এই ZIP দিয়ে মুছে ফেলা বা migrate করা হয় না। Existing malformed data থাকলে checker review দেখাবে; automatic destructive repair নেই।

Passenger deployment reference: https://www.phusionpassenger.com/docs/advanced_guides/deployment_and_scaling/apache/deploy/node/