ভূমিকা - আমি GCP-এর ফ্রি টায়ার ব্যবহার করে একটি গিট সার্ভার তৈরি করতে চাই
নমস্কার, আমি অযোগ্য।
অনেকদিন পর GCP-তে লগইন করলাম, মনে হচ্ছে?
মনে হচ্ছে আমার শেষ তৈরি করা প্রজেক্টটি ছিল 2016 সালের...

মনে হচ্ছে অ্যাক্সেস করলে এটি আপডেট হয়, তাই আমার মনে হয় My First Project আরও পুরনো...
মানে, এখন 2024 সাল, তাই 8 বছর আগে... আমি তখন 15 বছর বয়সী ছিলাম!!!!
সময়ের প্রবাহ নিষ্ঠুর।
মনে হচ্ছে আমি বড় হয়েছি, আবার কিছু ক্ষেত্রে পিছিয়েও গেছি... না, পিছিয়ে যাওয়া মানে বিবর্তনের অর্থও বোঝায়। ইতিবাচক থাকি।
প্রসঙ্গক্রমে, শুক্রবার সুস্বাদু খাবার খাওয়ার পর আমার অলসভাবে সময় কাটাতে ইচ্ছে করছে।



ভূমিকা
আমার একটি OCI অ্যাকাউন্টও আছে, কিন্তু প্রথমবার রেজিস্ট্রেশনের সময় অঞ্চল নির্বাচনে ভুল করার কারণে আমি এটিকে ছয় মাসেরও বেশি সময় ধরে ফেলে রেখেছি? মাঝে মাঝে চেক করলেও ফ্রি টায়ারের রিসোর্স কখনোই অবশিষ্ট থাকে না।
মানে, কেন জানি না, আমার আশেপাশে শুধু আমিই এটি ব্যবহার করতে পারি না... আমি সম্ভবত ভেবেছিলাম একটি ছোট অঞ্চলে আরও রিসোর্স থাকবে! এবং রেজিস্ট্রেশন করার পর সফলভাবে ব্যর্থ হয়েছি।
কাজের জন্য গুগল ইকোসিস্টেম ব্যবহার করতে হবে, তাই এই সুযোগে আমি GCE-তে একটি Git সার্ভার তৈরি করতে চাই।
এছাড়াও, আরেকটি কারণ আছে: আমি শুধু মনে করি যে বাড়ির বাইরে একটি Git সার্ভার থাকলে ডেটা ব্যাকআপ করা সহজ হতে পারে। নেটওয়ার্কের ক্ষেত্রেও, যদি শুধু আমিই এটি ব্যবহার করি, তাহলে সম্ভবত চার্জ করা হবে না, এবং আমি এতদিন GCP ব্যবহার না করার কারণ হল এটি ↓
Google Cloud Platform (GCP)-এর ফ্রি টায়ারে আউটপুট নেটওয়ার্ক হিসেবে 1GB ডেটা ট্র্যাফিক অন্তর্ভুক্ত থাকে।
এটি বেশ ঝামেলাপূর্ণ। বরং, এটি বেশ ঝামেলাপূর্ণ। তবে, যদি শুধু ব্যক্তিগত Git সার্ভার হিসেবে ব্যবহার করা হয়, তাহলে এটি নিয়ে এত চিন্তা করার কিছু নেই বলে মনে হয়, তাই আমি মনে মনে হালকাভাবে ভেবেছিলাম এবং যখন অবসর পাব তখন এটি করার পরিকল্পনা করেছিলাম।
আমি সম্পূর্ণ বিনামূল্যে ব্যবহার করতে চাই
এই ধরনের বিলিং সিস্টেম প্রতি বছর আরও জটিল হয়ে ওঠে, তাই সম্পূর্ণ বিনামূল্যে ব্যবহারের জ্ঞান আপডেট করা লোকেদের অনুসরণ করা উচিত। তাদের বিস্তারিত ব্যাখ্যা সত্যিই সহায়ক।
যদিও আমার মনে হয় UI আগের মতো খুব বেশি পরিবর্তিত হয়নি, তবে সম্ভবত আমার স্মৃতিশক্তিই দুর্বল হয়ে গেছে।
GCP-এর ফ্রি টায়ার ব্যবহার করে একটি VM ইনস্ট্যান্স তৈরি করুন
Google Cloud Platform (GCP) ফ্রি টায়ার ব্যবহার করে সার্ভার তৈরি
দ্রুত ব্যবহারকারী তৈরি
স্বাভাবিকভাবেই, ডিফল্ট গুগল অ্যাকাউন্টের ইউজারনেম অস্বস্তিকর, তাই আমি root-এ সুইচ করে একটি ইউজার তৈরি করব এবং SSH অ্যাক্সেসের জন্য সেট আপ করব।
root@git-srv1:~# adduser haturatu
Adding user `haturatu' ...
Adding new group `haturatu' (1002) ...
Adding new user `haturatu' (1002) with group `haturatu (1002)' ...
Creating home directory `/home/haturatu' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for haturatu
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
Adding new user `haturatu' to supplemental / extra groups `users' ...
Adding user `haturatu' to group `users' ...
root@git-srv1:~# usermod -aG sudo haturatu
root@git-srv1:~# su - haturatu
haturatu@git-srv1:~$
SSH সেটিংস
haturatu@git-srv1:~$ vim .ssh/authorized_keys
haturatu@git-srv1:~$ chmod 600 .s
.ssh/ .sudo_as_admin_successful
haturatu@git-srv1:~$ chmod 600 .ssh/authorized_keys
haturatu@git-srv1:~$ chmod 700 .ssh
haturatu@git-srv1:~$
haturatu@git-srv1:~$ sudo service sshd restart
ফায়ারওয়াল সেটিংস
haturatu@git-srv1:~$ sudo apt install ufw
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
ufw
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 168 kB of archives.
After this operation, 878 kB of additional disk space will be used.
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
Get:2 https://deb.debian.org/debian bookworm/main amd64 ufw all 0.36.2-1 [168 kB]
Fetched 168 kB in 0s (1133 kB/s)
Preconfiguring packages ...
Selecting previously unselected package ufw.
(Reading database ... 68496 files and directories currently installed.)
Preparing to unpack .../archives/ufw_0.36.2-1_all.deb ...
Unpacking ufw (0.36.2-1) ...
Setting up ufw (0.36.2-1) ...
Creating config file /etc/ufw/before.rules with new version
Creating config file /etc/ufw/before6.rules with new version
Creating config file /etc/ufw/after.rules with new version
Creating config file /etc/ufw/after6.rules with new version
Created symlink /etc/systemd/system/multi-user.target.wants/ufw.service → /lib/systemd/system/ufw.service.
Processing triggers for rsyslog (8.2302.0-1) ...
Processing triggers for man-db (2.11.2-2) ...
haturatu@git-srv1:~$ sudo ufw allow 22/tcp
Rules updated
Rules updated (v6)
haturatu@git-srv1:~$ sudo ufw reload
Firewall not enabled (skipping reload)
haturatu@git-srv1:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
haturatu@git-srv1:~$ sudo ufw reload
Firewall reloaded
এবার SSH
যেহেতু আমি ইতিমধ্যেই vim .ssh/authorized_keys ব্যবহার করে কী যোগ করেছি, তাই এখন ক্লায়েন্ট পিসি (যে ল্যাপটপটি আমি ব্যবহার করছি) থেকে SSH করা বাকি আছে।
alleycat:[haturatu]:~$ ssh -l haturatu gce-global-ip
The authenticity of host 'nyao-n' can't be established.
ED25519 key fingerprint is SHA256:nyannyan
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'nyannyan' (ED25519) to the list of known hosts.
Linux git-srv1 6.1.0-27-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
haturatu@git-srv1:~$ uname -a
Linux git-srv1 6.1.0-27-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64 GNU/Linux
দ্রুত শেষ হয়ে গেল!
এবং, যেহেতু আমি অনেক কিছু পেস্ট করছিলাম, তাই এটি দীর্ঘ হয়ে গেছে, তাই এটি দ্বিতীয় অংশে চলবে।