১. ভূমিকা
এই কোডল্যাবে, আপনি গুগল ক্লাউড রান-এ n8n সেট আপ করবেন। n8n হলো একটি ওপেন-সোর্স ওয়ার্কফ্লো অটোমেশন টুল যা ব্যবহারকারীদের পুনরাবৃত্তিমূলক কাজগুলোকে স্বয়ংক্রিয় করতে বিভিন্ন অ্যাপ্লিকেশন এবং পরিষেবা সংযুক্ত করার সুযোগ দেয়।
এই কোডল্যাবটি n8n ডকুমেন্টেশন গাইডের উপর ভিত্তি করে তৈরি, যেখানে গুগল ক্লাউড রান-এ কীভাবে n8n হোস্ট করতে হয় তা ব্যাখ্যা করা হয়েছে। আমরা ক্লাউড রান-এ n8n-এর এমন একটি সংস্করণ ইনস্টল ও কনফিগার করব যা আরও টেকসই এবং প্রোডাকশন-গ্রেড ডেপ্লয়মেন্ট। এতে ডেটা সংরক্ষণের জন্য একটি ডেটাবেস এবং সংবেদনশীল ডেটার জন্য সিক্রেট ম্যানেজারের মতো রিসোর্স অন্তর্ভুক্ত রয়েছে।
আপনি যা করবেন
- Google Cloud Run- এ n8n স্থাপন করুন, যা একটি সম্পূর্ণভাবে পরিচালিত, সার্ভারবিহীন কম্পিউট প্ল্যাটফর্ম এবং এটি গুগলের পরিকাঠামোতে স্টেটলেস কন্টেইনার চালায়।
আপনি যা শিখবেন
- আমাদের n8n ইনস্টলেশনের জন্য একটি স্থায়ী ও টেকসই সংস্করণ হিসেবে কাজ করবে এমন একটি Cloud SQL for PostgreSQL ডেটাবেস প্রস্তুত ও তাতে ডেটা যুক্ত করা হচ্ছে।
- Google Cloud Run-এ n8n কন্টেইনার ইমেজটি প্রোভিশন করুন।
- Google Cloud Run-এ n8n-এর ইনস্টলেশনটি পরীক্ষা করে দেখুন।
আপনার যা যা লাগবে
- ক্রোম ওয়েব ব্রাউজার
- একটি জিমেইল অ্যাকাউন্ট
- বিলিং সক্ষম একটি ক্লাউড প্রজেক্ট
২. শুরু করার আগে
একটি প্রকল্প তৈরি করুন
- গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
- আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
- আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ এবং এটি bq-এর সাথে আগে থেকেই লোড করা থাকে। গুগল ক্লাউড কনসোলের শীর্ষে থাকা ‘Activate Cloud Shell’-এ ক্লিক করুন।

- ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে যাচাই করে নিন যে আপনি ইতিমধ্যেই প্রমাণীকৃত এবং প্রজেক্টটি আপনার প্রজেক্ট আইডিতে সেট করা আছে:
gcloud auth list
- gcloud কমান্ডটি আপনার প্রজেক্ট সম্পর্কে অবগত আছে কিনা, তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
- আপনার প্রজেক্টটি সেট করা না থাকলে, এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
- নিচে দেখানো কমান্ডের মাধ্যমে প্রয়োজনীয় API-গুলো সক্রিয় করুন। এতে কয়েক মিনিট সময় লাগতে পারে, তাই অনুগ্রহ করে ধৈর্য ধরুন।
gcloud services enable run.googleapis.com \
sqladmin.googleapis.com \
secretmanager.googleapis.com
কমান্ডটি সফলভাবে কার্যকর হলে, আপনি নিচে দেখানো বার্তার মতো একটি বার্তা দেখতে পাবেন:
Operation "operations/..." finished successfully.
যদি কোনো API বাদ পড়ে যায়, তবে আপনি ইমপ্লিমেন্টেশন চলাকালীন সময়েই তা সক্রিয় করে নিতে পারেন। gcloud কমান্ড এবং এর ব্যবহার সম্পর্কে জানতে ডকুমেন্টেশন দেখুন।
অবশেষে, আমরা কয়েকটি এনভায়রনমেন্ট ভেরিয়েবল সেট করতে যাচ্ছি যা আমরা পরবর্তী কয়েকটি ধাপে চালানো স্ক্রিপ্টগুলিতে ব্যবহার করব। আপনার ক্লাউড শেল টার্মিনালে, নিম্নলিখিত দুটি কমান্ড চালান (মনে রাখবেন, GCP_PROJECT_ID এবং GCP_REGION যথাক্রমে আপনার প্রজেক্ট আইডি এবং যে অঞ্চলে (যেমন us-central1 ) আপনি এই ডেপ্লয়মেন্টটি করতে চান, তার মান দিয়ে প্রতিস্থাপন করতে হবে। আমরা ডেপ্লয়মেন্টের জন্য us-central1 ব্যবহার করছি)।
export PROJECT_ID=GCP_PROJECT_ID
export REGION=us-central1
৩. একটি ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করুন
আমরা একটি Google Cloud SQL for PostgreSQL ইনস্ট্যান্স ব্যবহার করব, যা আমাদের n8n ইনস্ট্যান্স এবং এক্সিকিউশন ডেটা সংরক্ষণের জন্য পার্সিস্টেন্স লেয়ার হিসেবে কাজ করবে। আমাদের সেটআপটি যাতে টেকসই হয়, সেজন্য এটি প্রয়োজন।
Cloud SQL for PostgreSQL হলো একটি সম্পূর্ণভাবে পরিচালিত ডাটাবেস পরিষেবা যা আপনাকে গুগল ক্লাউড প্ল্যাটফর্মে আপনার PostgreSQL রিলেশনাল ডাটাবেসগুলো সেট আপ, রক্ষণাবেক্ষণ, পরিচালনা এবং প্রশাসন করতে সাহায্য করে।
ইনস্ট্যান্সটি তৈরি করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud sql instances create n8n-db \
--database-version=POSTGRES_15 \
--tier db-g1-small \
--region=us-central1 \
--edition=ENTERPRISE \
--root-password=postgres
এই কমান্ডটি কার্যকর হতে প্রায় ৫ মিনিট সময় লাগে। কমান্ডটি সফলভাবে কার্যকর হলে, আপনি একটি আউটপুট দেখতে পাবেন যা নির্দেশ করবে যে কমান্ডটি সম্পন্ন হয়েছে, এবং এর সাথে আপনার ক্লাউড এসকিউএল ইনস্ট্যান্সের তথ্য যেমন নাম, ডেটাবেস সংস্করণ, অবস্থান, ইত্যাদিও থাকবে।
অনুগ্রহ করে মনে রাখবেন যে আমরা root-password হিসেবে postgres ব্যবহার করেছি। আপনি যদি এটি অন্য কিছুতে পরিবর্তন করেন, তবে সেই তথ্যটি হাতের কাছে রাখবেন।
৪. n8n ডেটাবেস এবং ডেটাবেস ব্যবহারকারীর পরিচয়পত্র সেটআপ করুন।
এখন যেহেতু আমাদের Cloud SQL for PostgreSQL ইনস্ট্যান্সটি প্রস্তুত, আমরা সেখানে আমাদের n8n ডেটাবেসটি তৈরি করতে পারি এবং একই সাথে আমাদের ডেটাবেস পাসওয়ার্ড ও এনক্রিপশন কী Google Cloud Secrets Manager-এ সংরক্ষণ করতে পারি।
প্রথমেই, আমাদের তৈরি করা ক্লাউড এসকিউএল ইনস্ট্যান্সে ( n8n-db ) n8n নামের একটি ডাটাবেস তৈরি করতে হবে। নিচের সমস্ত কমান্ড গুগল ক্লাউড শেল টার্মিনালে চালাতে হবে।
gcloud sql databases create n8n --instance=n8n-db
সফলভাবে তৈরি হলে আপনি নিম্নলিখিত বার্তাটি দেখতে পাবেন:
Creating Cloud SQL database...done.
Created database [n8n].
instance: n8n-db
name: n8n
project: YOUR_GCP_PROJECT_ID
এখন যেহেতু ডাটাবেসটি তৈরি হয়ে গেছে, চলুন এর জন্য একটি ইউজার অ্যাকাউন্ট তৈরি করি। আমরা নিম্নলিখিত ক্রেডেনশিয়ালগুলো ব্যবহার করব:
- ব্যবহারকারী আইডি :
n8n-user - পাসওয়ার্ড :
n8n
দ্রষ্টব্য : যদি আপনি আরও শক্তিশালী কোনো পাসওয়ার্ড ব্যবহার করতে চান (প্রোডাকশনের জন্য প্রস্তাবিত), তাহলে আমাদের এখানে বেছে নেওয়া পাসওয়ার্ড অর্থাৎ n8n-এর পরিবর্তে সেটি ব্যবহার করুন, তবে নিশ্চিত করবেন যে আপনি পরবর্তী কয়েকটি কমান্ডেও এটি ধারাবাহিকভাবে ব্যবহার করছেন।
ডাটাবেস ব্যবহারকারী তৈরি করার কমান্ডটি নিচে দেওয়া হলো:
gcloud sql users create n8n-user \
--instance=n8n-db \
--password="n8n"
এই পর্যায়ে, ইউজার ডাটাবেস পাসওয়ার্ড এবং এনক্রিপশন কী-এর ক্রেডেনশিয়ালগুলো গুগল ক্লাউড সিক্রেট ম্যানেজার- এ সংরক্ষণ করা একটি ভালো কাজ, যা এপিআই কী, পাসওয়ার্ড, সার্টিফিকেট এবং অন্যান্য সংবেদনশীল ডেটার জন্য একটি নিরাপদ ও সুবিধাজনক স্টোরেজ সিস্টেম।
আমরা নিম্নলিখিত কমান্ডটি দিয়ে শুরু করব, যা আমাদের ব্যবহৃত পাসওয়ার্ডটি ( n8n) নিয়ে সেটিকে gcloud secrets create কমান্ডে পাইপ করে দেবে। আমাদের সিক্রেট কী হবে n8n-db-password ।
printf "n8n" | gcloud secrets create n8n-db-password --replication-policy="automatic" --data-file=-
একইভাবে, আমরা পরবর্তী কমান্ডগুলো ব্যবহার করে একটি এনক্রিপশন কী তৈরি করব এবং তারপর n8n-encryption-key নামে একটি সিক্রেট ভ্যারিয়েবল তৈরি করব, যা এর মান ধারণ করবে।
openssl rand -base64 -out my-encryption-key 42
gcloud secrets create n8n-encryption-key \
--data-file=my-encryption-key \
--replication-policy="automatic"
৫. গুগল ক্লাউড রানের জন্য একটি সার্ভিস অ্যাকাউন্ট তৈরি করুন
পরবর্তী ধাপে আমরা গুগল ক্লাউড রান-এ n8n ডেপ্লয় করব। এর প্রস্তুতি হিসেবে, আমরা একটি সার্ভিস অ্যাকাউন্ট তৈরি করব যা ক্লাউড রান n8n ওয়ার্কফ্লো চালানোর জন্য ব্যবহার করবে। এজন্য, আমাদের নিশ্চিত করতে হবে যে আমরা যে সার্ভিস অ্যাকাউন্টটি তৈরি করছি, সেটিতে গুগল ক্লাউডে শুধুমাত্র ন্যূনতম প্রয়োজনীয় রোল/পারমিশন রয়েছে।
আমাদের বর্তমান প্রয়োজনীয়তা অনুসারে, আমাদের তৈরি করা সার্ভিস অ্যাকাউন্টের জন্য নিম্নলিখিত ভূমিকাগুলির প্রয়োজন হবে:
-
roles/cloudsql.client: আমাদের ক্লাউড এসকিউএল ডাটাবেস অ্যাক্সেস করার জন্য সার্ভিস অ্যাকাউন্টের এটি প্রয়োজন। -
roles/secretAccessor:n8n-db-passwordএবংn8n-encryption-keyউভয়ের সিক্রেট ম্যানেজার কী অ্যাক্সেস করার জন্য আমাদের এই রোলটি প্রদান করতে হবে।
চলুন শুরু করা যাক। নিচের সমস্ত কমান্ড গুগল ক্লাউড শেলে চালাতে হবে। প্রথমটি সার্ভিস অ্যাকাউন্ট তৈরি করে এবং তারপর আলোচনা অনুযায়ী প্রয়োজনীয় রোলগুলো প্রদান করতে হবে। প্রতিটি কমান্ড একে একে চালান। নিচের কোনো কমান্ডের জন্য শর্ত নির্দিষ্ট করতে বলা হলে, "None" নির্বাচন করুন।
gcloud iam service-accounts create n8n-service-account \
--display-name="n8n Service Account"
export SA_NAME=n8n-service-account@$PROJECT_ID.iam.gserviceaccount.com
gcloud secrets add-iam-policy-binding n8n-db-password \
--member="serviceAccount:$SA_NAME" \
--role="roles/secretmanager.secretAccessor"
gcloud secrets add-iam-policy-binding n8n-encryption-key \
--member="serviceAccount:$SA_NAME" \
--role="roles/secretmanager.secretAccessor"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SA_NAME" \
--role="roles/cloudsql.client"
আমরা এখন n8n কন্টেইনার ইমেজটি গুগল ক্লাউড রান-এ ডেপ্লয় করার জন্য প্রস্তুত।
৬. গুগল ক্লাউড রান-এ n8n স্থাপন করুন
গুগল ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud run deploy n8n \
--image=n8nio/n8n:latest \
--command="/bin/sh" \
--args="-c,sleep 5;n8n start" \
--region=$REGION \
--allow-unauthenticated \
--port=5678 \
--memory=2Gi \
--no-cpu-throttling \--set-env-vars="N8N_PORT=5678,N8N_PROTOCOL=https,N8N_ENDPOINT_HEALTH=health,DB_TYPE=postgresdb,DB_POSTGRESDB_DATABASE=n8n,DB_POSTGRESDB_USER=n8n-user,DB_POSTGRESDB_HOST=/cloudsql/$PROJECT_ID:$REGION:n8n-db,DB_POSTGRESDB_PORT=5432,DB_POSTGRESDB_SCHEMA=public,GENERIC_TIMEZONE=UTC,QUEUE_HEALTH_CHECK_ACTIVE=true" \
--set-secrets="DB_POSTGRESDB_PASSWORD=n8n-db-password:latest,N8N_ENCRYPTION_KEY=n8n-encryption-key:latest" \
--add-cloudsql-instances=$PROJECT_ID:$REGION:n8n-db \
--service-account=$SA_NAME
স্থাপন প্রক্রিয়াটি সম্পন্ন হতে প্রায় এক মিনিট সময় লাগতে পারে। সফলভাবে স্থাপন হলে, আপনি নীচের ছবির মতো একটি বার্তা দেখতে পাবেন:
Deploying container to Cloud Run service [n8n] in project [YOUR_PROJECT_ID] region [us-central1]
Deploying new service...
Setting IAM Policy...done
Creating Revision...done
Routing traffic...done
Done.
Service [n8n] revision [n8n-00001-8nh] has been deployed and is serving 100 percent of traffic.
Service URL: https://n8n-<SOME_ID>.us-central1.run.app
উপরের আউটপুট থেকে সার্ভিস ইউআরএলটি লিখে রাখুন, কারণ পরবর্তী ধাপে n8n কনসোল চালু করার জন্য আপনি এটি ব্যবহার করবেন।
৭. একটি n8n ওয়ার্কফ্লো চালান
একটি ব্রাউজার চালু করুন এবং পূর্ববর্তী ধাপে প্রাপ্ত সার্ভিস ইউআরএল-টিতে যান। আপনি ক্লাউড রান হোম পেজ থেকেও সার্ভিস ইউআরএল-টি পেতে পারেন, যেখানে আপনি সার্ভিসগুলোর মধ্যে একটি হিসেবে n8n-কে তালিকাভুক্ত দেখতে পাবেন।
দ্রষ্টব্য : যদি আপনি Cannot GET / screen' বা ' n8n is starting up লেখা কোনো এরর মেসেজ পান, তাহলে সাধারণত এর মানে হলো n8n এখনো চালু হচ্ছে। আপনি পেজটি রিফ্রেশ করলে এটি অবশেষে লোড হয়ে যাবে।
অবশেষে আপনি নীচে দেখানো স্ক্রিনের মতো একটি স্ক্রিন দেখতে পাবেন, যেখানে আপনি মালিকের অ্যাকাউন্টটি সেটআপ করতে পারবেন:

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

যদি আপনার n8n সম্পর্কে ধারণা থাকে, তাহলে আপনি এটি সমাধান করতে পারবেন এবং ল্যাবটি সম্পন্ন করতে পারবেন।
আপনি যদি n8n অল্প সময়ের জন্য পরীক্ষা করে দেখতে চান, তাহলে নিম্নলিখিত কার্যপ্রবাহটি চেষ্টা করতে পারেন:
- Credentials-এ ক্লিক করুন এবং তারপরে Add first credential-এ ক্লিক করুন ।

- আমরা একটি জেমিনি এপিআই কী ক্রেডেনশিয়াল সেট আপ করব। গুগল জেমিনি (PaLM) এপিআই অপশনটি আনতে gemini টাইপ করুন এবং তারপর Continue- তে ক্লিক করুন।

- আপনি https://aistudio.google.com/app/api-keys থেকে জেমিনি এপিআই কী (Gemini API Key) পেতে পারেন।
- একবার কী-টি পেয়ে গেলে, সেটি পেস্ট করুন। n8n কী-টি যাচাই করবে এবং ক্রেডেনশিয়ালটি এখন সেট আপ হয়ে গেছে।
৫. এবার Workflows অপশনে যান এবং Start from scratch বা একটি নতুন ওয়ার্কফ্লো তৈরি করুন-এ ক্লিক করুন। এটি একটি ফাঁকা ক্যানভাস নিয়ে আসবে, যেখানে আপনি নিম্নলিখিত দুটি নোড তৈরি করতে পারবেন, একটি হলো ট্রিগার (Simple Chat) এবং অন্যটি এজেন্ট, যেখানে আমরা আমাদের তৈরি করা ক্রেডেনশিয়ালটি সেট আপ করব, যাতে এজেন্ট মডেলটি Google Gemini হয়। সবশেষে আপনার ওয়ার্কফ্লোটি দেখতে এইরকম হবে:

- আপনি চ্যাট প্যানেলের মাধ্যমে এই ওয়ার্কফ্লোটি চালাতে পারেন এবং সবকিছু ঠিকঠাক থাকলে, আপনার দেওয়া নির্দেশনার উত্তর পাবেন। নিচে নমুনা এক্সিকিউশন স্ক্রিনগুলো দেখানো হলো:

এর মাধ্যমে গুগল ক্লাউড রান-এ আমাদের n8n ডেপ্লয়মেন্টের যাচাইকরণ সম্পন্ন হলো।
৮. পরিচ্ছন্নতা
আপনি যদি প্রোডাকশন বা স্থায়ী প্রয়োজনের জন্য নয়, বরং গুগল ক্লাউড রান-এ n8n কীভাবে ইনস্টল ও রান করতে হয় তা শেখার জন্য এই কোডল্যাবটি ব্যবহার করার সিদ্ধান্ত নিয়ে থাকেন, তাহলে আপনার গুগল ক্লাউড অ্যাকাউন্টের চলমান চার্জ এড়াতে এই ওয়ার্কশপ চলাকালীন আমাদের তৈরি করা রিসোর্সগুলো মুছে ফেলা জরুরি।
আমরা ক্লাউড এসকিউএল ইনস্ট্যান্সটি এবং আমাদের ডেপ্লয় করা ক্লাউড রান সার্ভিসটি ডিলিট করে দেব।
আপনার প্রজেক্ট এবং অঞ্চল অনুযায়ী নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবলগুলো সঠিকভাবে সেট করা আছে কিনা, তা নিশ্চিত করুন:
export PROJECT_ID="YOUR_PROJECT_ID"
export REGION="YOUR_REGION"
নিম্নলিখিত দুটি কমান্ড আমাদের ডেপ্লয় করা ক্লাউড রান সার্ভিসগুলো ডিলিট করে দেয়:
gcloud run services delete n8n --platform=managed --region=${REGION} --project=${PROJECT_ID} --quiet
নিম্নলিখিত কমান্ডটি ক্লাউড SQL ইনস্ট্যান্সটি মুছে ফেলে:
gcloud sql instances delete n8n-db
নিম্নলিখিত দুটি কমান্ড আমাদের তৈরি করা সিক্রেট ম্যানেজার কীগুলো মুছে দেয়:
gcloud secrets delete n8n-db-password
gcloud secrets delete n8n-encryption-key
৯. অভিনন্দন
অভিনন্দন, আপনি সফলভাবে গুগল ক্লাউড রান-এ n8n স্থাপন করেছেন এবং একটি নমুনা ওয়ার্কফ্লো দিয়ে সেটআপটি যাচাই করেছেন।