چگونه گره ریشه خود را میزبانی کنیم. کمک به کنترل منبع غیرمتمرکز. 🌌

Summarize this content to 400 words in Persian Lang
در ابتدا در وبلاگ من ارسال شده است.
روز گذشته یک قطعی عظیم GitHub رخ داد.این باعث شد متوجه شوم که ما تا چه اندازه به یک شرکت وابسته هستیم تا نه تنها کد ما، بلکه ما را میزبانی کند همکاری خود
من قبلاً در مورد رادیکول شنیده بودم، بنابراین از این فرصت استفاده کردم و بیشتر در مورد چیستی و نحوه عملکرد آن استفاده کردم.
Radicle یک پشته کدهای همتا به همتا و منبع باز است که بر روی Git ساخته شده است. برخلاف پلتفرم های میزبانی کد متمرکز، هیچ نهاد واحدی وجود ندارد که شبکه را کنترل کند. مخازن به صورت غیرمتمرکز در سراسر همتایان تکرار می شوند و کاربران کنترل کامل داده ها و گردش کار خود را دارند.
همین الان شما را تشویق می کنم که مقدمه آنها را بخوانید و سپس برای ادامه برگردید، واقعا پروژه جالبی است.
Radicle به کاربران خود وابسته است تا مخازن را بذر کنند، دقیقاً مانند تورنت.جامعه هنوز جوان است، بنابراین تصمیم گرفتم که از آن در روزهای اولیه حمایت کنم تا به رشد سریعتر آن کمک کنم.
بذر دادن، پس دادن است. با کاشت مخازن در شبکه Radicle، پهنای باند، ذخیره سازی و در دسترس بودن داده ها را به کاربران Radicle ارائه می دهید.
اگر مانند من علاقه مند به حمایت از رادیکول هستید، می توانید از راهنمای زیر پیروی کنید.
راه اندازی یک گره دانه ریشه
تصمیم گرفتم از یک دستگاه ارزان قیمت Hetzner استفاده کنم. اما می توانید از هر سرور موجودی که دارید یا هر ارائه دهنده ای که ترجیح می دهید استفاده کنید. هنگامی که سرور خود را آماده کردید، کافی است آن را ssh کنید. به دسترسی روت نیاز خواهید داشت.
توجه: شما به یک نام دامنه نیاز دارید تا بتوانیم یک رکورد DNS را برای اشاره به گره خود پیکربندی کنیم.
راه اندازی
ابتدا باید کاربری ایجاد کنیم که گره را اجرا کند. تمام داده ها در فهرست اصلی آنها نگهداری می شود.
# as root
groupadd –system seed
useradd –system –gid seed –create-home seed
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
شما باید CLI و رابط کاربری وب را از صفحه دانلودهای آنها نصب کنید. آنهایی را برای خود تهیه کنیدمعماری:
curl -O -L https://files.radicle.xyz/releases/latest/radicle-1.0.0-rc.14-x86_64-unknown-linux-musl.tar.xz
curl -O -L https://files.radicle.xyz/releases/latest/radicle-1.0.0-rc.14-x86_64-unknown-linux-musl.tar.xz.sig
curl -O -L https://files.radicle.xyz/releases/radicle-httpd/latest/radicle-httpd-0.15.0-x86_64-unknown-linux-musl.tar.xz
curl -O -L https://files.radicle.xyz/releases/radicle-httpd/latest/radicle-httpd-0.15.0-x86_64-unknown-linux-musl.tar.xz.sig
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
سپس امضای دانلودها را تأیید کنید:
ssh-keygen -Y check-novalidate -n file -s radicle-1.0.0-rc.14-x86_64-unknown-linux-musl.tar.xz.sig
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در نهایت فقط کامپوننت ها را نصب کنید و مطمئن شوید که باینری های جدید را در PATH خود قرار دهید:
# as root
tar -xvJf radicle-1.0.0-rc.14-x86_64-unknown-linux-musl.tar.xz –strip-components=1 -C /usr/local
tar -xvJf radicle-httpd-0.15.0-x86_64-unknown-linux-musl.tar.xz –strip-components=1 -C /usr/local
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اکنون برای ادامه به کاربر جدید بروید، یک نمایه ریشه ایجاد می کنیم:
# as root
su – seed
# as seed user
rad auth –alias
# just press enter on the passphrase prompt, it’s not necesary for our server deployment
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
پیکربندی
سپس node config.json خود را در فهرست اصلی seed خود ویرایش کنید. ما گره خود را طوری پیکربندی می کنیم که یک خط مشی عمومی داشته باشد و به آن می گوییم که کدام آدرس گره را به عنوان تبلیغ کند.
// /home/seed/.radicle/config.json
{
// …
“node”: {
“alias”: “”,
// …
“externalAddresses”: [“:8776”], // update this
// …
“seedingPolicy”: {
“default”: “allow”, // update this
“scope”: “all”
}
}
// …
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
برای کسب اطلاعات بیشتر در مورد خط مشی گره خود، بخش راهنمای بذر را در مورد خط مشی ها بررسی کنید.
اجازه می دهیم گره را اجرا کنیم تا مطمئن شویم کار می کند:
# as seed user
rad node start –foreground
# you should see lots of output telling us about connected peers, fetched resources, etc…
# press C-c to exit
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اجازه دهید یک واحد خدمات سیستم ایجاد کنیم تا بتوانیم گره خود را برای شروع با سرور پیکربندی کنیم. Radicle یک فایل واحد سرویس حداقل سیستم را در اینجا ارائه می دهد.ما می توانیم آن را دانلود و بر روی سیستم خود نصب کنیم:
# as root
curl -sS https://seed.radicle.xyz/raw/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/570a7eb141b6ba001713c46345d79b6fead1ca15/systemd/radicle-node.service -o /etc/systemd/system/radicle-node.service
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اگر راهنما را همانطور که هست دنبال کردید، مجبور نیستید پیکربندی واحد خدمات را تغییر دهید.در غیر این صورت در صورت نیاز تنظیم کنید. در نهایت فقط سرویس را فعال کنید:
# as root
systemctl enable –now radicle-node
# make sure service is working correctly
systemctl status radicle-node
# as seed user
rad node status
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در صورت تمایل می توانید ورود به سیستم را به عنوان کاربر اولیه غیرفعال کنید که توصیه می شود:
# as root
chsh -s /usr/sbin/nologin seed
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
تبریک میگم در این مرحله گره شما مخازن عمومی را بذر می کند! اگر تا به حال با من همراه بودید، از مشارکت شما متشکرم!
رابط کاربری وب
اگر می خواهید بتوانید گره خود را در صفحات وب مانند این ببینید، می توانید موارد زیر را انجام دهید:
# as root
# enable the http api
curl -sS https://seed.radicle.xyz/raw/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/570a7eb141b6ba001713c46345d79b6fead1ca15/systemd/radicle-httpd.service -o /etc/systemd/system/radicle-httpd.service
systemctl enable –now radicle-httpd
# you will need https support to appear in the web frontend, caddy is easy to configure
apt-get install caddy
curl https://raw.githubusercontent.com/caddyserver/dist/master/init/caddy.service -o /etc/systemd/system/caddy.service
# edit /etc/caddy/Caddyfile
{
reverse_proxy 127.0.0.1:8080
}
systemctl enable –now caddy
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در این مرحله باید بتوانید به https://app.radicle.xyz/nodes/ مراجعه کنیدو گره خود را بررسی کنید!
یادداشت ها:
به یاد داشته باشید که رکوردهای DNS خود را طوری پیکربندی کنید که دامنه خود را به آدرس IP گره خود هدایت کنید.
به یاد داشته باشید که هر فایروال را طوری پیکربندی کنید که به UDP:8776 و TCP:443 اجازه دهد
در ابتدا در وبلاگ من ارسال شده است.
روز گذشته یک قطعی عظیم GitHub رخ داد.
این باعث شد متوجه شوم که ما تا چه اندازه به یک شرکت وابسته هستیم تا نه تنها کد ما، بلکه ما را میزبانی کند همکاری خود
من قبلاً در مورد رادیکول شنیده بودم، بنابراین از این فرصت استفاده کردم و بیشتر در مورد چیستی و نحوه عملکرد آن استفاده کردم.
Radicle یک پشته کدهای همتا به همتا و منبع باز است که بر روی Git ساخته شده است. برخلاف پلتفرم های میزبانی کد متمرکز، هیچ نهاد واحدی وجود ندارد که شبکه را کنترل کند. مخازن به صورت غیرمتمرکز در سراسر همتایان تکرار می شوند و کاربران کنترل کامل داده ها و گردش کار خود را دارند.
همین الان شما را تشویق می کنم که مقدمه آنها را بخوانید و سپس برای ادامه برگردید، واقعا پروژه جالبی است.
Radicle به کاربران خود وابسته است تا مخازن را بذر کنند، دقیقاً مانند تورنت.
جامعه هنوز جوان است، بنابراین تصمیم گرفتم که از آن در روزهای اولیه حمایت کنم تا به رشد سریعتر آن کمک کنم.
بذر دادن، پس دادن است. با کاشت مخازن در شبکه Radicle، پهنای باند، ذخیره سازی و در دسترس بودن داده ها را به کاربران Radicle ارائه می دهید.
اگر مانند من علاقه مند به حمایت از رادیکول هستید، می توانید از راهنمای زیر پیروی کنید.
راه اندازی یک گره دانه ریشه
تصمیم گرفتم از یک دستگاه ارزان قیمت Hetzner استفاده کنم. اما می توانید از هر سرور موجودی که دارید یا هر ارائه دهنده ای که ترجیح می دهید استفاده کنید. هنگامی که سرور خود را آماده کردید، کافی است آن را ssh کنید. به دسترسی روت نیاز خواهید داشت.
توجه: شما به یک نام دامنه نیاز دارید تا بتوانیم یک رکورد DNS را برای اشاره به گره خود پیکربندی کنیم.
راه اندازی
ابتدا باید کاربری ایجاد کنیم که گره را اجرا کند. تمام داده ها در فهرست اصلی آنها نگهداری می شود.
# as root
groupadd --system seed
useradd --system --gid seed --create-home seed
شما باید CLI و رابط کاربری وب را از صفحه دانلودهای آنها نصب کنید. آنهایی را برای خود تهیه کنید
معماری:
curl -O -L https://files.radicle.xyz/releases/latest/radicle-1.0.0-rc.14-x86_64-unknown-linux-musl.tar.xz
curl -O -L https://files.radicle.xyz/releases/latest/radicle-1.0.0-rc.14-x86_64-unknown-linux-musl.tar.xz.sig
curl -O -L https://files.radicle.xyz/releases/radicle-httpd/latest/radicle-httpd-0.15.0-x86_64-unknown-linux-musl.tar.xz
curl -O -L https://files.radicle.xyz/releases/radicle-httpd/latest/radicle-httpd-0.15.0-x86_64-unknown-linux-musl.tar.xz.sig
سپس امضای دانلودها را تأیید کنید:
ssh-keygen -Y check-novalidate -n file -s radicle-1.0.0-rc.14-x86_64-unknown-linux-musl.tar.xz.sig
در نهایت فقط کامپوننت ها را نصب کنید و مطمئن شوید که باینری های جدید را در PATH خود قرار دهید:
# as root
tar -xvJf radicle-1.0.0-rc.14-x86_64-unknown-linux-musl.tar.xz --strip-components=1 -C /usr/local
tar -xvJf radicle-httpd-0.15.0-x86_64-unknown-linux-musl.tar.xz --strip-components=1 -C /usr/local
اکنون برای ادامه به کاربر جدید بروید، یک نمایه ریشه ایجاد می کنیم:
# as root
su - seed
# as seed user
rad auth --alias
# just press enter on the passphrase prompt, it's not necesary for our server deployment
پیکربندی
سپس node config.json خود را در فهرست اصلی seed خود ویرایش کنید. ما گره خود را طوری پیکربندی می کنیم که یک خط مشی عمومی داشته باشد و به آن می گوییم که کدام آدرس گره را به عنوان تبلیغ کند.
// /home/seed/.radicle/config.json
{
// ...
"node": {
"alias": "" ,
// ...
"externalAddresses": [":8776" ], // update this
// ...
"seedingPolicy": {
"default": "allow", // update this
"scope": "all"
}
}
// ...
}
برای کسب اطلاعات بیشتر در مورد خط مشی گره خود، بخش راهنمای بذر را در مورد خط مشی ها بررسی کنید.
اجازه می دهیم گره را اجرا کنیم تا مطمئن شویم کار می کند:
# as seed user
rad node start --foreground
# you should see lots of output telling us about connected peers, fetched resources, etc...
# press C-c to exit
اجازه دهید یک واحد خدمات سیستم ایجاد کنیم تا بتوانیم گره خود را برای شروع با سرور پیکربندی کنیم. Radicle یک فایل واحد سرویس حداقل سیستم را در اینجا ارائه می دهد.
ما می توانیم آن را دانلود و بر روی سیستم خود نصب کنیم:
# as root
curl -sS https://seed.radicle.xyz/raw/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/570a7eb141b6ba001713c46345d79b6fead1ca15/systemd/radicle-node.service -o /etc/systemd/system/radicle-node.service
اگر راهنما را همانطور که هست دنبال کردید، مجبور نیستید پیکربندی واحد خدمات را تغییر دهید.
در غیر این صورت در صورت نیاز تنظیم کنید. در نهایت فقط سرویس را فعال کنید:
# as root
systemctl enable --now radicle-node
# make sure service is working correctly
systemctl status radicle-node
# as seed user
rad node status
در صورت تمایل می توانید ورود به سیستم را به عنوان کاربر اولیه غیرفعال کنید که توصیه می شود:
# as root
chsh -s /usr/sbin/nologin seed
تبریک میگم در این مرحله گره شما مخازن عمومی را بذر می کند! اگر تا به حال با من همراه بودید، از مشارکت شما متشکرم!
رابط کاربری وب
اگر می خواهید بتوانید گره خود را در صفحات وب مانند این ببینید، می توانید موارد زیر را انجام دهید:
# as root
# enable the http api
curl -sS https://seed.radicle.xyz/raw/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/570a7eb141b6ba001713c46345d79b6fead1ca15/systemd/radicle-httpd.service -o /etc/systemd/system/radicle-httpd.service
systemctl enable --now radicle-httpd
# you will need https support to appear in the web frontend, caddy is easy to configure
apt-get install caddy
curl https://raw.githubusercontent.com/caddyserver/dist/master/init/caddy.service -o /etc/systemd/system/caddy.service
# edit /etc/caddy/Caddyfile
{
reverse_proxy 127.0.0.1:8080
}
systemctl enable --now caddy
در این مرحله باید بتوانید به https://app.radicle.xyz/nodes/ مراجعه کنید
و گره خود را بررسی کنید!
یادداشت ها:
- به یاد داشته باشید که رکوردهای DNS خود را طوری پیکربندی کنید که دامنه خود را به آدرس IP گره خود هدایت کنید.
- به یاد داشته باشید که هر فایروال را طوری پیکربندی کنید که به UDP:8776 و TCP:443 اجازه دهد