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

- ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে পরীক্ষা করতে পারবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণপ্রাপ্ত এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে কিনা:
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
৩. একটি ক্লাউড SQL ইনস্ট্যান্স তৈরি করুন
আমরা PostgreSQL ইনস্ট্যান্সের জন্য একটি Google Cloud SQL ব্যবহার করব, যা আমাদের n8n ইনস্ট্যান্স এবং এক্সিকিউশন ডেটা সংরক্ষণের জন্য আমাদের পারসিস্টেন্স লেয়ার হবে। আমাদের সেটআপ টেকসই করার জন্য এটি প্রয়োজন।
PostgreSQL-এর জন্য ক্লাউড SQL হল একটি সম্পূর্ণরূপে পরিচালিত ডাটাবেস পরিষেবা যা আপনাকে Google ক্লাউড প্ল্যাটফর্মে আপনার PostgreSQL রিলেশনাল ডাটাবেস সেট আপ, রক্ষণাবেক্ষণ, পরিচালনা এবং পরিচালনা করতে সহায়তা করে।
ইনস্ট্যান্স তৈরি করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud sql instances create n8n-db \
--database-version=POSTGRES_15 \
--tier db-g1-small \
--region=us-central1 \
--edition=ENTERPRISE \
--root-password=postgres
এই কমান্ডটি কার্যকর করতে প্রায় ৫ মিনিট সময় লাগে। কমান্ডটি সফলভাবে কার্যকর হয়ে গেলে, আপনার ক্লাউড SQL ইনস্ট্যান্স তথ্য যেমন NAME, DATABASE_VERSION, LOCATION ইত্যাদি সহ একটি আউটপুট দেখতে পাবেন যা নির্দেশ করে যে কমান্ডটি সম্পন্ন হয়েছে।
মনে রাখবেন যে আমরা root-password মানটি postgres হিসাবে ব্যবহার করেছি। যদি আপনি এটি অন্য কিছুতে পরিবর্তন করেন, তাহলে দয়া করে এটি হাতের কাছে রাখুন।
৪. n8n ডাটাবেস এবং ডাটাবেস ব্যবহারকারীর শংসাপত্র সেটআপ করুন
এখন যেহেতু আমাদের ক্লাউড SQL for PostgreSQL ইনস্ট্যান্স প্রস্তুত, আমরা সেখানে আমাদের n8n ডাটাবেস তৈরি করতে পারি, পাশাপাশি Google Cloud Secrets Manager-এ আমাদের ডাটাবেস পাসওয়ার্ড এবং এনক্রিপশন কী সংরক্ষণ করতে পারি।
প্রথমে, আমাদের তৈরি ক্লাউড SQL ইনস্ট্যান্স ( 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"
এই মুহুর্তে, ব্যবহারকারীর ডাটাবেস পাসওয়ার্ড এবং এনক্রিপশন কী-এর শংসাপত্রগুলি Google Cloud Secret Manager- এ সংরক্ষণ করা একটি ভাল ধারণা, যা API কী, পাসওয়ার্ড, সার্টিফিকেট এবং অন্যান্য সংবেদনশীল ডেটার জন্য একটি নিরাপদ এবং সুবিধাজনক স্টোরেজ সিস্টেম।
আমরা নিম্নলিখিত কমান্ড দিয়ে শুরু করব যা আমাদের ব্যবহৃত পাসওয়ার্ড ( 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"
৫. গুগল ক্লাউড রানের জন্য একটি সার্ভিস অ্যাকাউন্ট তৈরি করুন
পরবর্তী ধাপে আমরা Google Cloud Run-এ n8n স্থাপন করব। এর জন্য প্রস্তুতি নিতে, আমরা একটি পরিষেবা অ্যাকাউন্ট তৈরি করব যা Cloud Run n8n কর্মপ্রবাহ চালানোর জন্য ব্যবহার করবে। এর জন্য, আমরা নিশ্চিত করতে চাই যে আমরা যে পরিষেবা অ্যাকাউন্ট তৈরি করব তাতে Google Cloud-এ কেবলমাত্র ন্যূনতম প্রয়োজনীয় ভূমিকা/অনুমতি থাকবে।
আমাদের বর্তমান প্রয়োজনীয়তা বিবেচনা করে, আমরা যে পরিষেবা অ্যাকাউন্ট তৈরি করব তার জন্য আমাদের নিম্নলিখিত ভূমিকাগুলির প্রয়োজন হবে:
-
roles/cloudsql.client: আমাদের ক্লাউড SQL ডাটাবেস অ্যাক্সেস করার জন্য পরিষেবা অ্যাকাউন্টের জন্য এটি প্রয়োজন। -
roles/secretAccessor:n8n-db-passwordএবংn8n-encryption-keyউভয়ের জন্য Secret manager কী অ্যাক্সেস করার জন্য আমাদের এই ভূমিকা প্রদান করতে হবে।
শুরু করা যাক। নিচের সকল কমান্ড গুগল ক্লাউড শেলে এক্সিকিউট করতে হবে। প্রথমটি সার্ভিস অ্যাকাউন্ট তৈরি করে এবং তারপর আমরা আলোচনা অনুসারে প্রয়োজনীয় ভূমিকা প্রদান করি। একের পর এক কমান্ড চালান। যদি আপনাকে নিচের যেকোনো কমান্ডের জন্য একটি শর্ত নির্দিষ্ট করতে বলা হয়, "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,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
উপরের আউটপুটে Service URL টি নোট করুন, কারণ পরবর্তী ধাপে আপনি n8n কনসোল চালু করার জন্য এটি ব্যবহার করবেন।
৭. একটি n8n ওয়ার্কফ্লো চালান
একটি ব্রাউজার চালু করুন এবং পূর্ববর্তী ধাপে প্রাপ্ত পরিষেবা URL টি দেখুন। আপনি ক্লাউড রান হোম পেজ থেকে পরিষেবা URL টিও পেতে পারেন, যেখানে আপনি n8n পরিষেবাগুলির মধ্যে একটি হিসাবে তালিকাভুক্ত দেখতে পাবেন।
দ্রষ্টব্য : যদি আপনি Cannot GET / screen" লেখা একটি ত্রুটি পান অথবা n8n is starting up বলে মনে করেন, তাহলে সাধারণত এটি নির্দেশ করে যে n8n এখনও শুরু হচ্ছে। আপনি পৃষ্ঠাটি রিফ্রেশ করতে পারেন এবং এটি অবশেষে লোড হবে।
অবশেষে আপনি নীচের দেখানো স্ক্রিনের মতো একটি স্ক্রিন দেখতে পাবেন, যেখানে আপনি মালিক অ্যাকাউন্ট সেটআপ করতে পারবেন:

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

আপনি যদি n8n এর সাথে পরিচিত হন, তাহলে আপনি এটির মাধ্যমে আপনার পথ তৈরি করতে সক্ষম হবেন এবং ল্যাবটি সম্পূর্ণ করতে পারবেন।
যদি আপনি একটি ছোট টেস্ট ড্রাইভের জন্য n8n নিতে চান, তাহলে আপনি নিম্নলিখিত ওয়ার্কফ্লোটি চেষ্টা করে দেখতে পারেন:
- Credentials-এ ক্লিক করুন এবং তারপর Add first credential-এ ক্লিক করুন ।

- আমরা একটি Gemini API Key ক্রেডেনশিয়াল সেট আপ করব। Google Gemini (PaLM) Api অপশনটি আনতে gemini টাইপ করুন এবং তারপর Continue এ ক্লিক করুন।

- আপনি https://aistudio.google.com/app/api-keys থেকে জেমিনি API কী পেতে পারেন।
- একবার আপনার কাছে কীটি হয়ে গেলে, সেটি পেস্ট করুন। n8n কীটি যাচাই করবে এবং শংসাপত্র এখন সেট আপ হয়ে গেছে।
৫. এখন Workflows অপশনে যান এবং Start from scratch অথবা create a new workflow এ ক্লিক করুন। এটি একটি ফাঁকা ক্যানভাস নিয়ে আসবে, যেখানে আপনি নিম্নলিখিত দুটি নোড তৈরি করতে পারবেন, একটি হল একটি ট্রিগার (সিম্পল চ্যাট) এবং অন্যটি হল একটি এজেন্ট, যেখানে আমরা আমাদের তৈরি করা ক্রেডেনশিয়াল সেট আপ করব, যাতে এজেন্ট মডেলটি হবে 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
৯. অভিনন্দন
অভিনন্দন, আপনি Google Cloud Run-এ n8n সফলভাবে স্থাপন করেছেন এবং একটি নমুনা ওয়ার্কফ্লো ব্যবহার করে সেটআপটি যাচাই করেছেন।