IT Guys👾 – Telegram
425 subscribers
121 photos
183 videos
27 files
286 links
نکاتی که تو مسیر یادگیری بدست آوردیم رو باهاتون به اشتراک میزاریم. اين كانال رو به عنوان سرگرمی نگاه كنيد.
شما هم اگر نکته ای داشتید ، چه بصورت متن ، عکس و یا صدا به نشانی ربات زیر با ما به اشتراک بگذارید ، با تشکر.

Bot ID : https://news.1rj.ru/str/bootrampbot🤖
Download Telegram
Forwarded from codepedia
🚫 خطرات فایل‌های .env در پروژه‌های حرفه‌ای
📂 همه‌مون یه بار این کارو کردیم: نوشتن رمزها داخل فایل .env و بعد یه اشتباه کوچیک مثل DB_PASSWROD کل سیستم رو بهم ریخته!

👀 ولی واقعیت اینه که .env فایل‌ها دیگه مناسب کار تیمی و پروژه‌های جدی نیستن...

مشکلات اصلی فایل‌های .env
لو رفتن اطلاعات: با یه commit اشتباهی، رمزها ممکنه داخل GitHub منتشر بشن!

بی‌نظمی تیمی: همگام‌سازی بین اعضا دشوار و وقت‌گیره.

نبود گزارش تغییرات: نمی‌فهمیم کی چی رو تغییر داده.

اشتباهات تایپی: مثل STRIPE_SECRT که باعث خطاهای مبهم می‌شن.

آپدیت‌های دستی: اتلاف وقت در محیط‌های مختلف (لوکال، استیجینگ، پروداکشن).

🚀 راه‌حل مدرن: استفاده از Infisical
🔐 Infisical یه ابزار مدیریت رمزهاست که:

رمزها رو به صورت متمرکز ذخیره می‌کنه 🧭 بین محیط‌ها تفکیک دقیق ایجاد می‌کنه (dev / staging / production) 🔑 رمزها رو با توکن قابل لغو مدیریت می‌کنه 👥 امکانات همکاری تیمی داره 📊 لاگ‌گیری و نسخه‌سازی برای ردیابی دقیق

استفاده از ابزارهای جدید مثل Infisical باعث امنیت، همکاری بهتر و مدیریت حرفه‌ای‌تر می‌شه.

🆔 @code_pedia
👍2
Milad Mahmoodian
تاحالا چیزی به عنوان GitOps شنیدید؟ بیاید خیلی خلاصه و ساده یکمی در موردش بهتون بگم. درواقع GitOps یک رویکرد جدید برای مدیریت و استقرار (Deploy) زیرساخت‌ها و اپلیکیشن‌هاست که همه چیزو با استفاده از Git کنترل می‌کنه. در GitOps مخزن Git تبدیل به Single Source…
نظر یکی از همکاران در فروم های فنی

فک نکنم زیاد هم جدید باشه، البته شاید تازه براش اصطلاح وضع کردن🤷
نیکس و گیکس هر دوشون خیلی وقته که برای دپلوی سیستم عامل از گیت استفاده میکنن
و خب بسته‌بندی نرم‌افزارشون هم بر همین منواله که میشه روی بقیه‌ی دیستروها هم راه‌اندازیشون کرد(نیکس رو مک هم اومده)
به خاطر همین گیکس(که میشناسم) برای devops یا همین gitops با سیستم عامل یکپارچه میشه بر خلاف Kubernetes یا محیط‌های داکر و … که برای مدیریت کانتینرها استفاده میشن، اینجا هم توسعه نرم‌افزار و هم محیط‌های ایزوله از یک الگو پیروی میکنن
برای ساخت یک نرم‌افزار نیاز نیست یک کانتینر راه‌اندازی کنید که یک سیستم‌عامل رو راه‌اندازی کنه و … بلکه فقط پیش‌نیازها رو اعلام میکنید و بر اساس اون برنامتون رو توسعه میدید، برای اینکه محیط نرم‌افزار رو از محیط کاربریتون جدا کنید میتونید از دستور container استفاده کنید تا محیط ایزوله‌ی خالی از هر ابزاری بهتون بده مگر آنهایی که مشخص کرده باشید(نه یک سیستم‌عامل غیر ضروری)

سوای نرم‌افزار منطقا هر نوع سیستم‌عاملی رو هم میشه باهاش دپلوی کرد‌ چه رو سخت‌افزار و چه در محیط مجازی با قابلیت کامپایل از سورس یا دانلود باینری و بازگشت به عقب و …

👾کانال تلگرام IT Guys
👍2
Forwarded from KALI
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from KALI
Please open Telegram to view this post
VIEW IN TELEGRAM
آموزش پیاده سازی Rocket Chat!

یسری نکات داره که توی پیاده سازی این سرویس خیلی مهمه ،
اولا که نسخه های جدید لایسنس های متعدد داره ، که مهمترین اون ، جهت ایجاد یوزر بیشتر از 50 تا ، شما نیاز به لایسنس دارید
نسخه ی دیتابیس و NodeJS که نصب میکنید هم بسیار مهمه که با نسخه ی RocketChat سازگاری داشته باشه.
از همه مهمتر ، الان به صورت کانتینری با کمک Docker Compose هم میتونید خیلی راحت نصب کنید و دردسر نخورید ، اما من ترجیح دادم به صورت معمول و سنتی نصب کنم .

آموزش نصب رو به سه قسمت تقسیم میکنم و تو سه روز متوالی میزارم ، توی هر قسمت یکی از المان های موردنیاز رو کانفیگ میکنیم .
این کد ها جواب داده ، با خیال راحت کپی پیست کنید😅

پیشنیاز ها :
OS Version : Debian 11
MongoDB Version : 6
NodeJS Version : 14
Rocket Chat Version : 6.6.0


بریم برای شروع ، فقط کد و توضیح خیلی ساده .
👾کانال تلگرام IT Guys
👍3
قسمت اول 1️⃣
MongoDB Version 6 on Debian 11:

[Step 1 - Prerequisites]
1.1. Update system
sudo apt update


1.2. Install gnupg and curl if they are not already available
sudo apt install curl gnupg -y


[Step 2 - Install MongoDB server]
2.1. Import the MongoDB public GPG key
**For MongoDB 7
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

**For MongoDB 6
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor


2.2. Add MongoDB repository to the system's APT source list
**For MongoDB 7
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

**For MongoDB 6
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list


2.3. Re-update system
sudo apt update


2.4. Install MongoDB database server on your system
sudo apt install mongodb-org -y


2.5. Verify the installed version of MongoDB
mongod --version


[Step 3 - Configure MongoDB server]
3.1. Pin the current version
echo "mongodb-org hold" | sudo dpkg --set-selections ; echo "mongodb-org-database hold" | sudo dpkg --set-selections ; echo "mongodb-org-server hold" | sudo dpkg --set-selections ; echo "mongodb-mongosh hold" | sudo dpkg --set-selections ; echo "mongodb-org-mongos hold" | sudo dpkg --set-selections ; echo "mongodb-org-tools hold" | sudo dpkg --set-selections


3.2. Start and enable MongoDB service
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod


[Step 4 - Verify]
4.1. Login MongoDB server
mongosh


4.2. Show the default database
show databases;

admin 40.00 KiB
config 12.00 KiB
local 40.00 KiB

exit


Done!
👾کانال تلگرام IT Guys
👍3
قسمت دوم 2️⃣
NodeJS Version 14 on Debian 11:

[Step 1 - Prerequisites]
1.1. Update system
sudo apt update


1.2. Install curl if it not already installed on your system.
sudo apt install curl -y


[Step 2 - Install NVM (Node Version Manager)]
2.1. Install NVM using the bash noscript
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash

or
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash


2.2. Active NVM and add the necessary environment variables to the Bash configuration file
source ~/.bashrc


2.3. Verify that NVM has been installed by checking its version
nvm -v


[Step 3 - Install any version of Node.js with NVM]
3.1. Check if any version of NVM has been installed
nvm ls


3.2. Find the available Node.js version for installation
nvm ls-remote


3.3. Install the version of Node.js that you desire
(In this example, We will install version 20.11.0 LTS)
nvm install 14.21.3
nvm use 14.21.3


3.4. Check if any version of Node.js has been installed
nvm ls


Done!
👾کانال تلگرام IT Guys
👍21
روز سوم 3️⃣
RocketChat Version 6.6.0 on Debian 11:
Part2

3.3. Create Rocket.Chat service unit file called rocketchat.service
sudo vim /lib/systemd/system/rocketchat.service


[Unit]
Denoscription=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
[Service]
ExecStart=<NODE_PATH> /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=ROOT_URL=http://<IP_OF_SERVER>:3000
Environment=PORT=3000
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
[Install]
WantedBy=multi-user.target


[Step 4 - Configure MongoDB server]
4.1. Open and edit /etc/mongod.conf file
sudo vim /etc/mongod.conf

1-Uncomment and add wiredTiger
'engine: wiredTiger'
2-Uncomment and add rs01
'replication:
replSetName: rs01'


4.2. Initialize Replica Set in MongoDB
sudo systemctl daemon-reload 
sudo systemctl restart mongod
sudo systemctl restart rocketchat

mongosh --eval "printjson(rs.initiate())"

me: '127.0.0.1:27017',
ok: 1


[Step 5 - Set up Rocket.Chat server]
5.1. Check the status of mongoDB and Rocket.Chat service to ensure it is running on the system
sudo systemctl status mongod
sudo systemctl status rocketchat


5.2. Adjust the UFW firewall to allow traffic on port 300
sudo ufw enable
sudo ufw allow 3000
sudo ufw reload
sudo ufw status


Done!
👾کانال تلگرام IT Guys
👍4
قسمت سوم 3️⃣
RocketChat Version 6.6.0 on Debian 11:
Part1

[Step 1 - Prerequisites]
1.1. Update system
sudo vim /etc/apt/sources.list

deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free


sudo apt update


1.2. Install required packages dependencies
sudo apt install -y curl wget tar ufw build-essential graphicsmagick -y


1.3. Ensure that MongoDB has been installed
Engine versions :
Node: 14.21.3
MongoDB: 4.4, 5.0, 6.0
Apps-Engine: 1.41.0

mongod --version


1.4. Ensure that Node.js has been installed
node --version


[Step 2 - Download and install latest Rocket.Chat version]
2.1. Download the latest Rocket.Chat version
wget -O /tmp/rocket.chat.tgz https://releases.rocket.chat/6.5.4/download

or
curl -L https://releases.rocket.chat/6.5.4/download -o /tmp/rocket.chat.tgz


2.2. Extract the downloaded file to the /tmp directory
tar -xvzf /tmp/rocket.chat.tgz -C /tmp


2.3. Navigate to the /tmp/bundle/programs/server directory
cd /tmp/bundle/programs/server/
ls


2.4. Install Rocket.Chat server
npm install


2.5. Change to the root directory
cd /


2.6. Move the directory /tmp/bundle to opt/Rocket.Chat
sudo mv /tmp/bundle/ /opt/Rocket.Chat

ls /opt/Rocket.Chat/


[Step 3 - Configure Rocket.Chat server]
3.1. Create a rocketchat user called "rocketchat" and assign ownership to the Rocket.Chat folder
sudo useradd -M rocketchat && sudo usermod -L rocketchat

sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat/

ls -l /opt/Rocket.Chat/


3.2. Find the binary path of NodeJS
which node

copy path!

👾کانال تلگرام IT Guys
👍41
This media is not supported in your browser
VIEW IN TELEGRAM
میگم داداش ، الان وقت انجام دادنه.....
👾کانال تلگرام IT Guys
👍5
Clair
یه سرویس برای آنالیز آسیب‌پذیری ایمیج‌های کانتینری هست

کارش اینه که لایه‌های Docker image یا OCI image رو بررسی می‌کنه، CVEهای شناخته‌شده رو پیدا می‌کنه و بهت میگه کدوم پکیج‌ها آسیب‌پذیر هستن. اینجوری می‌تونی قبل از deploy کردن، امنیت کانتینرها رو ارزیابی کنی و مشکلات رو رفع کنی.
برای نصب ، ای دستورات رو بزن ، منتهی قبلش داکر باید رو سیستمت نصب باشه!
docker run -d --name clair-db arminc/clair-db:latest
docker run -p 6060:6060 --link clair-db:postgres -d --name clair arminc/clair-local-scan:latest
curl -L https://github.com/arminc/clair-scanner_linux_amd64 -o /usr/bin/clair-scanner

و جهت اسکن هر image از دستور زیر استفاده میکنیم:
clair-scanner -c http://127.0.0.1:6060 --ip YOURIPADDRESS --report='NAME.json' IMAGENAME:TAG

👾کانال تلگرام IT Guys
👍7
nmtui
یک پکیح گرافیکی برای تنظیمات اینترفیس های لینوکس !

من به شخصه آدمی هستم که برای تغییرات آدرس IP یا تنظیمات اینترفیس ها تا جایی که بشه از این پکیج استفاده میکنم ، راحت تره برام ، قشنگ ابزار دستمه ، این عادت بد یا خوب هم از زمان نصب ایزابل روی من مونده
باهاش اینترفیس رو UP و DOWN میکنید ، روت میزنید و خلاصه همه کار میشه با این ابزار انجام داد.
برای استفاده ازش کافیه پکیج زیر رو روی لینوکس خودتون نصب کنید :
sudo apt install net-tools

بعد از اون هم کافیه دستور
nmtui

رو بزنیم تا پنجره ی تنظمیات کارت شبکه ظاهر بشه .
حالا دیگه راحت تنظیمات لازم رو انجام بدید

نکته ، گاهی ممکنه وقتی nmtui رو میزنید ، هیچ اینترفیسی رو بهتون نمایش نده ، برای رفع این موضوع
ابتدا دستور :
nmcli device status

رو بزنید ، اینجا میگه که وضعیت اینترفیس ها به چه شکله :
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected ens33
lo loopback connected (externally) lo
ens192 ethernet unmanaged --

اگر جلوی اینترفیسی نوشته بود unmanaged ، گیر داستان اینجاست !!!
وارد فایل زیر شده :
vim /etc/NetworkManager/NetworkManager.conf

و اگه چیزی مشابه :
[ifupdown]
managed=false

دیدید ، باید مقدار false رو به true تغییر بدید
بعد سرویس رو ری استارت کنید :
systemctl restart NetworkManager
و تمام ، حالا تمام اینترفیس ها تو nmtui قابل رویت و مدیریت هستن.
👾کانال تلگرام IT Guys
👍7
وبینار آموزشی ابزار Falco
یک ابزار عالی جهت مانیتورینگ کانتینر ها که اصطلاحا به این دست ابزار ها Runtime Security میگن ، ینی ابزار هایی که در حین اجرا عملیات بررسی رو انجام میده.

What is Falco?
Falco is a cloud native security tool that provides runtime security across hosts, containers, Kubernetes, and cloud environments. It is designed to detect and alert on abnormal behavior and potential security threats in real-time.
Based on falco.org
👾کانال تلگرام IT Guys
👍6
اگر خواستی ببینی چه ترافیکی روی اینترفیست درحال عبوره ، یا اصلا ترافیکی به اینترفیست میرسه......

بیا پکیج tcpdump رو نصب کن ، کاربردش اینه که ببینی اصلاً پکت ها وارد اینترفیس تو میشن یا نه.
اول پکیج رو نصب کن
apt install tcpdump

بعد بیا ازش برای اون اینترفیسی که مدنظرت هست استفاده کن
tcpdump -i ens32 

حالا میشه جلوش آپشن های مختلف گذاشت و محدود کرد به اون پروتکل مثلا :
tcpdump -i ens32 icmp

فقط TCP
tcpdump -i wg0 tcp

فقط UDP
tcpdump -i wg0 udp

فقط ترافیک به یا از یک آی‌پی خاص
tcpdump -i wg0 host 10.0.0.1

فقط مقصد خاص
tcpdump -i wg0 dst 10.0.0.1

فقط مبدا خاص
tcpdump -i wg0 src 10.0.0.2

فقط یک پورت خاص
tcpdump -i wg0 port 22

پینگ به یک آی‌پی خاص
tcpdump -i wg0 icmp and host 10.0.0.1

ترافیک TCP روی پورت 443 به مقصد خاص
tcpdump -i wg0 tcp and dst port 443 and host 8.8.8.8


👾کانال تلگرام IT Guys
👍4
نکته : اینترفیس wg0 برای وایرگارد هست .
چون روی این مورد چالش داشتم ، دیگه همون دستورات روی سرور رو کپی کردم😅
Media is too big
VIEW IN TELEGRAM
شبکه سازی ، ارتباط موثر ، تبادل اطلاعات ، شرکت در فروم های مرتبط با شاخه ی کاری ، حضور درمحافل فنی و....
همه ی این موارد ، راه هایی هستند که اگر شما بخواید واقعا پیشرفت داشته باشید ، بخواید نواقص یا عیب های خودتون رو بهبود بدید ، میتونید استفاده کنید . محدود بودن به یک مکان یا گروه خاص ، مارو خیلی عقب نگه میداره .
پیشرفت در شبکه سازی اطلاعاتی و ارتباطی هست!
👾کانال تلگرام IT Guys
👍3
سوال‌هایمان چقدر بزرگ است؟

توی دورهٔ سیستمهای پیچیدهٔ متمم به جفری وست رسیدیم و فردا معرفی جفری وست و کتاب دوست‌داشتنیِ "مقیاس / Scale" منتشر می‌شه.

گفتم بخشی از مقدمه‌ای که برای معرفی جفری وست نوشتم رو اینجا نقل کنم:


در زندگی همهٔ ما سوال‌ها، نیازها و دغدغه‌هایی هست که توجه‌مان را به خود جلب می‌کنند و می‌کوشیم برایشان پاسخی جستجو کنیم. تا این‌جای کار، همه با هم شبیه هستیم. اما آن‌چه دانشمندان، مخترعان و انسان‌های بزرگ را از دیگران متمایز می‌کند این است که آن‌ها می‌کوشند سوال را در مقیاسی گسترده‌تر و برای جمعی بزرگ‌تر حل کنند.

اگر از خود بپرسید: «با این ترافیک زیاد که از خانه تا مرکز شهر وجود دارد، امروز خودم را چگونه زودتر به آن‌جا برسانم؟» مسئله‌ی شخصی خودتان را بررسی کرده‌اید. اما اگر به این فکر کنید که «چه می‌توان کرد که همهٔ کسانی که این ساعت می‌خواهند از این حوالی به مرکز شهر بروند، زودتر به مقصد برسند؟» سوال را بزرگ‌تر کرده‌اید.

حتی ممکن است سوال را از این هم بزرگ‌تر کنید: «چه می‌شود کرد که سفرهای درون‌شهری برای همه سریع‌تر شود؟» و یا این‌که «آیا نمی‌شود از دردسر بسیاری از سفرهای درون‌شهری خلاص شد و کاری کرد که اساساً به چنین سفرهایی نیاز نباشد؟»

به اندازه‌ای که سوال خود را بزرگ‌تر می‌کنید، به انسانی بزرگ‌تر و موثرتر تبدیل می‌شوید. البته به شرطی که سوال را آن‌قدر بزرگ کنید که از عهدهٔ حل آن برآیید. بسیاری از کسانی که بشر را گرفتار بدبختی و بیچارگی کرده‌ و ملت‌ها را به زوال و نابودی کشانده‌اند افرادی بوده‌اند که در پی سوال‌ها و دغدغه‌هایی بزرگ‌تر از ظرفیت و توان خود رفته‌اند.

دانشمندان بزرگ و تأثیرگذار، این هنر را دارند که سوال‌ها را پیدا کرده و اندازهٔ هر مسئله را تا حدی که از عهدهٔ حلش برمی‌آیند بزرگ کنند.

#معرفی_کتاب
👍4