سفارش تبلیغ
صبا ویژن

نصب و ایمن سازی Grafana در اوبونتو 20.04

Grafana یک ابزار منبع باز تجسم و نظارت بر داده ها است که با داده های پیچیده از منابعی مانند Prometheus ، InfluxDB ، Graphite و ElasticSearch ادغام می شود. Grafana به شما امکان می دهد تا هشدارها ، اعلان ها و فیلترهای موقت را برای داده های خود ایجاد کنید و در عین حال با هم تیمی های خود از طریق مشخصه های به اشتراک گذاری داخلی آسانتر همکاری کنید.
در این آموزش Grafana را نصب کرده و با یک گواهی SSL و یک پروکسی معکوس Nginx آن را ایمن خواهید کرد. پس از راه اندازی Grafana ، می توانید گزینه احراز هویت کاربر را از طریق GitHub پیکربندی کنید ، که به شما امکان می دهد مجوزهای تیم خود را بهتر سازماندهی کنید.
پیش نیازها
برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید:
? یک سرور مجازی  Ubuntu 20.04 که با دنبال کردن راهنمای ستاپ اولیه سرور مجازی برای Ubuntu 20.04 نصب شده باشد، و شامل یک کاربر غیر ریشه با امتیازات sudo و فایروال تنظیم شده با ufw باشد.
? نام دامنه کاملاً ثبت شده. در کل این آموزش از your_domain استفاده می شود. می توانید نام دامنه را در Namecheap خریداری کنید ، به صورت رایگان در Freenom دریافت کنید ، یا از ثبت دامنه مورد نظر خود استفاده کنید.
? سوابق DNS زیر برای سرور مجازی شما تنظیم شده باشد. برای جزئیات بیشتر در مورد چگونگی افزودن آنها می توانید نحوه تنظیم نام میزبان با vpsgol را دنبال کنید.
? یک رکورد A با your_domain که آدرس IP عمومی سرور مجازی شما نشان می دهد.
? یک رکورد A با www.your_domain که به آدرس IP عمومی سرور مجازی شما اشاره کند.
? Nginx که با پیروی از آموزش نحوه نصب Nginx در اوبونتو 20.04 نصب شده باشد، شامل بلوک سرور مجازی برای دامنه تان باشد.
? بلوک سرور مجازی Nginx که با Let’S Encrypt پیکربندی شده باشد ، که می توانید با دنبال کردن چگونگی ایمن سازی Nginx با Let’s Encrypt در Ubuntu 20.04 تنظیم کنید.
? به صورت اختیاری ، برای تنظیم تأیید هویت GitHub ، به یک حساب GitHub مرتبط با یک سازمان نیاز دارید.
مرحله 1 – نصب Grafana
در این مرحله اول ، Grafana را روی سرور مجازی Ubuntu 20.04 خود نصب خواهید کرد. شما می توانید Grafana را با دانلود مستقیم آن از وب سایت رسمی آن یا از طریق مخزن APT ، نصب کنید. از آنجا که یک مخزن APT نصب و مدیریت به روزرسانی های Grafana را آسان تر می کند ، از این روش در این آموزش استفاده خواهید کرد.
کلید Grafana GPG را با wget دانلود کنید ، سپس خروجی را به apt-key متصل کنید. با این کار کلید به لیست نصب کلیدهای قابل اعتماد APT شما اضافه خواهد شد که به شما امکان می دهد بسته Grafana امضا شده توسط GPG را دانلود و تأیید کنید.
? $ wget -q -O – https://packages.grafana.com/gpg.key | sudo apt-key add –
?
در این دستور ، گزینه -q پیام به روزرسانی وضعیت را برای wget خاموش می کند ، و -O فایلی را که دانلود کرده اید به ترمینال خروجی می فرستد. این دو گزینه اطمینان حاصل می کنند که فقط محتویات فایل دانلود شده به کلید apt-key اتصال یافته است.
سپس ، مخزن Grafana را به منابع APT خود اضافه کنید:
? $ sudo add-apt-repository “deb https://packages.grafana.com/oss/deb stable main”
?
حافظه نهان APT خود را برای به روزرسانی لیست های بسته بندی ریفرش کنید:
? $ sudo apt update
?
اکنون میتوانید نصب را ادامه دهید
? $ sudo apt install grafana
?
پس از نصب Grafana ، از systemctl برای راه اندازی سرور مجازی Grafana استفاده کنید:
? $ sudo systemctl start grafana-server
?

سپس ، با بررسی وضعیت سرویس ، تأیید کنید که Grafana در حال اجرا است:
? $ sudo systemctl status grafana-server
?
خروجی مشابه این دریافت خواهید کرد:
Output
? grafana-server.service – Grafana instance
Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2020-05-21 08:08:10 UTC; 4s ago
Docs: http://docs.grafana.org
Main PID: 15982 (grafana-server)
Tasks: 7 (limit: 1137)

این خروجی شامل اطلاعاتی در مورد فرآیند Grafana ، از جمله وضعیت آن ، شناساگر اصلی فرآیند (PID) و موارد دیگر می باشد. active (running) نشان می دهد که روند صحیح در حال اجرا است.
در آخر ، سرویس را فعال کنید تا به طور خودکار Grafana را از بوت شروع کند:
? $ sudo systemctl enable grafana-server
?
خروجی زیر را دریافت خواهید کرد:
Output
Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable grafana-server
Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.

این خروجی تأیید می کند که systemd  ، پیوندهای سمبولیک لازم را به autostart Grafana ایجاد کرده است.
Grafana هم اکنون نصب و آماده استفاده است. در مرحله بعد ، اتصال خود را با Grafana با یک پروکسی معکوس و گواهی SSL ایمن خواهید کرد.
مرحله 2 – تنظیم پروکسی معکوس
استفاده از گواهینامه SSL اطمینان حاصل می کند که داده های شما با رمزگذاری اتصال به و از Grafana ایمن هستند. اما برای استفاده از این ارتباط ، ابتدا لازم است Nginx را به عنوان یک پروکسی معکوس برای Grafana پیکربندی کنید.
پیکربندی Nginx که هنگام ستاپ بلوک سرور مجازی Nginx با Let’s Encrypt در پیش نیازها ایجاد کردید را باز کنید. می توانید از هر ویرایشگر متنی استفاده کنید ، اما برای این آموزش از nano استفاده خواهیم کرد:
? $ sudo nano /etc/nginx/sites-available/your_domain
?
بلوک زیر را جای دهید:
/etc/nginx/sites-available/your_domain

location / {
try_files $uri $uri/ =404;
}

از آنجا که قبلاً Nginx را تنظیم کرده اید تا از طریق SSL ارتباط برقرار کند و از آنجا که تمام ترافیک وب به سرور مجازی شما از طریق Nginx عبور می کند ، فقط باید به Nginx بگویید که کلیه درخواست ها را به Grafana ارسال کند ، که بصورت پیش فرض در پورت 3000 اجرا می شود.
خط try_files موجود را در این location block را حذف کرده و آن را با گزینه proxy_pass زیر جایگزین کنید.
/etc/nginx/sites-available/your_domain

location / {
proxy_pass http://localhost:3000;
}

با این کار پروکسی به پورت مناسب نگاشت می شود. پس از اتمام کار ، فایل را با فشار دادن CTRL + X ذخیره کرده و آن را ببندید ، اگر از nano استفاده می کنید ، Y و سپس enter را بزنید.
اکنون ، تنظیمات جدید را آزمایش کنید تا مطمئن شوید همه چیز به درستی پیکربندی شده است:
? $ sudo nginx -t
?
خروجی زیر را دریافت خواهید کرد:
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

در آخر ، تغییرات را با لود مجدد Nginx فعال کنید:
? $ sudo systemctl reload nginx
?
اکنون با نشان دادن مرورگر وب خود به https: // your_domain می توانید به صفحه پیش فرض ورود به سیستم Grafana دسترسی پیدا کنید. اگر نمی توانید به Grafana دسترسی پیدا کنید ، بررسی کنید که فایروال به گونه ای تنظیم شده باشد که در پورت 443 امکان عبور و مرور را فراهم کند و دستورالعمل های قبلی را دوباره ردیابی کنید.
با اتصال به Grafana رمزگذاری شده ، اکنون می توانید اقدامات امنیتی دیگری را با شروع تغییر اعتبارنامه ادمین پیش فرض Grafana ، انجام دهید.
مرحله 3 – به روزرسانی اعتبارات
از آنجا که هر نصب Grafana بصورت پیش فرض از یک مدل اعتبارات اجرایی استفاده می کند ، بهتر است هرچه سریعتر اطلاعات ورود به سیستم را تغییر دهید. در این مرحله ، اعتبارات را برای بهبود امنیت به روز می کنید.
با رفتن به https: // your_domain از مرورگر وب خود شروع کنید. این صفحه پیش فرض ورود به سیستم را ایجاد می کند که در آن لوگوی Grafana را مشاهده می کنید ، فرمی که از شما خواسته می شود یک ایمیل یا نام کاربری و رمز عبور وارد کنید، دکمه ورود به سیستم و لینک آیا رمز ورود خود را فراموش کنید؟ را نشان میدهد.

ادمین را در هر دو قسمت User و Password وارد کرده و بر روی دکمه Log in (ورود به سیستم) کلیک کنید.
در صفحه بعدی از شما خواسته می شود با تغییر رمز پیش فرض ، حساب خود را ایمن تر کنید:

گذرواژه‌ای را که مایل به استفاده از آن هستید ، در گذرواژه جدید وارد کرده و قسمتهای رمز عبور جدید را تأیید کنید.
از اینجا ، می توانید برای ذخیره اطلاعات جدید روی save کلیک کرده یا skip را فشار دهید تا از این مرحله رد شوید. در صورت skip (پرش)، دفعه بعدی که وارد میشوید از شما خواسته می شود گذرواژه را تغییر دهید.
برای افزایش امنیت راه اندازی Grafana ، روی save کلیک کنید. به صفحه  Home Dashboard باز خواهید گشت:

اکنون با تغییر اعتبارات پیش فرض ، حساب خود را ایمن کرده اید. در مرحله بعد ، تغییراتی در پیکربندی Grafana ایجاد خواهید کرد تا هیچ کس نتواند بدون اجازه شما یک حساب Grafana جدید ایجاد کند.
مرحله 4 – غیرفعال کردن ثبت نام های Grafana و دسترسی ناشناس
Grafana گزینه هایی را فراهم می کند که به بازدید کنندگان امکان می دهد برای خود حساب کاربری ایجاد کنند و داشبورد پیش نمایش را بدون ثبت نام مشاهده کنند. وقتی Grafana از طریق اینترنت قابل دسترسی نیست یا وقتی با داده های عمومی مانند وضعیت سرویس کار می کند ، ممکن است بخواهید این ویژگی ها را مجاز کنید. با این حال ، هنگام استفاده از Grafana آنلاین برای کار با داده های حساس ، دسترسی ناشناس می تواند یک مشکل امنیتی باشد. برای برطرف کردن این مشکل ، در پیکربندی Grafana خود تغییراتی ایجاد کنید.
با باز کردن فایل اصلی پیکربندی Grafana برای ویرایش شروع کنید:
? $ sudo nano /etc/grafana/grafana.ini
?
دستورالعمل allow_sign_up را تحت عنوان [users] قرار دهید:
/etc/grafana/grafana.ini

[users]
# disable user signup / registration
;allow_sign_up = true

با فعال کردن این دستورالعمل ، یک دکمه sign up به صفحه ورود اضافه می شود و به کاربران امکان می دهد ثبت نام کنند و به Grafana دسترسی پیدا کنند.
غیرفعال کردن این ویژگی با false ، دکمه ثبت نام را حذف کرده و امنیت و حریم خصوصی Grafana را بیشتر می کند.
با حذف ; در ابتدای خط و سپس تنظیم گزینه روی false، این امکان را لغو کنید.
/etc/grafana/grafana.ini

[users]
# disable user signup / registration
allow_sign_up = false

در مرحله بعد ، دستورالعمل enabled  زیر را تحت عنوان [auth.annam] قرار دهید:
/etc/grafana/grafana.ini

[auth.anonymous]
# enable anonymous access
;enabled = false

تبدیل enabled به true به کاربران غیر ثبت شده دسترسی به داشبورد شما را می دهد. تنظیم این گزینه روی false دسترسی به داشبورد را فقط محدود به کاربران ثبت نام شده میکند.
با حذف ; در ابتدای خط و سپس تنظیم گزینه روی false، این امکان را لغو کنید.
/etc/grafana/grafana.ini

[auth.anonymous]
# enable anonymous access
enabled = false

فایل را ذخیره کنید و از ویرایشگر متن خود خارج شوید.
برای فعال سازی تغییرات ، Grafana را ریستارت کنید:
? $ sudo systemctl restart grafana-server
?
با بررسی وضعیت سرویس Grafana تأیید کنید که همه چیز کار می کند:
? $ sudo systemctl status grafana-server
?

مانند قبل ، خروجی گزارش خواهد داد که Grafana فعال (در حال اجرا( است.
اکنون ، در مرورگر وب خود https: // your_domain را وارد کنید. برای بازگشت به صفحه ورود به سیستم ، نشانگر خود را روی قسمت پایین سمت چپ صفحه نمایشگر در آواتار خود آورده و بر روی گزینه Sign out که ظاهر می شود کلیک کنید.
پس از ورود به سیستم ، مطمئن شوید که هیچ دکمه sign up وجود ندارد و بدون وارد کردن اعتبارات ورود نمی توانید وارد سیستم شوید.
در این مرحله ، Grafana کاملاً پیکربندی شده و آماده استفاده است. در مرحله بعد ، می توانید فرآیند ورود به سیستم خود را با تأیید اعتبار از طریق GitHub ساده کنید.
(اختیاری) مرحله 5 – تنظیم یک برنامه GitHub OAuth
به عنوان یک روش جایگزین برای ورود به سیستم ، می توانید Grafana را برای تأیید اعتبار از طریق GitHub پیکربندی کنید ، که دسترسی به تمام اعضای سازمان های مجاز GitHub را فراهم می کند. این مسئله می تواند به ویژه هنگامی مفید باشد که بخواهید به چندین توسعه دهنده اجازه دهید با متریک ها کار کنند و دسترسی داشته باشند بدون آنکه احتیاج به اعتبار ویژه Grafana داشته باشید.
با ورود به یک حساب GitHub مرتبط با سازمان خود شروع کنید و سپس به صفحه نمایه GitHub خود در https://github.com/settings/profile بروید.
محتوای تنظیمات را با کلیک بر روی نام در سمت چپ صفحه نمایش تغییر دهید، سپس سازمان خود را از منوی کشویی انتخاب کنید. این کار محتوا را از Personal settings به Organization settings تغییر میدهد.
در صفحه بعدی ، پروفایل سازمان خود را مشاهده خواهید کرد که می توانید تنظیماتی مانند نام صفحه نمایش سازمان ، ایمیل سازمان و URL سازمان خود را تغییر دهید.
از آنجا که Grafana از OAuth – برای تأیید اعتبار کاربران از طریق GitHub استفاده می کند (که یک استاندارد باز برای دسترسی به اشخاص ثالث از راه دور به منابع محلی است)، باید یک برنامه OAuth جدید در GitHub ایجاد کنید.
روی لینک OAuth Apps در زیر تنظیمات توسعه (Developer settings) در پایین سمت چپ صفحه نمایش کلیک کنید.
اگر از قبل هیچ برنامه OAuth مربوط به سازمان خود در GitHub ندارید ، با No Organization Owned Applications مواجه میشوید. در غیر این صورت لیستی از برنامه های OAuth را که قبلاً به حساب شما متصل شده اند ، خواهید دید.
برای ادامه بر روی دکمه New OAuth App
کلیک کنید.
در صفحه بعدی ، جزئیات زیر در مورد نصب Grafana خود را پر کنید:
? Application name – به شما کمک می کند تا برنامه های مختلف OAuth خود را از یکدیگر متمایز کنید.
? Homepage URL – به GitHub می گوید کجا می توانید Grafana را پیدا کنید.https: // your_domain را در این قسمت تایپ کنید و your_domain را جایگزین دامنه خود کنید.
? Application Description – توضیحی را برای هدف برنامه OAuth شما ارائه می دهد.
? Application callback URL – آدرسی است که پس از تأیید اعتبار با موفقیت برای کاربران ارسال می شود. برای Grafana ، این قسمت باید روی https://your_domain/login/github تنظیم شود.
به خاطر داشته باشید که کاربران Grafana که از طریق GitHub وارد سیستم می شوند مقادیری را که در سه قسمت قبلی وارد کرده اید ، مشاهده می کنند ، بنابراین حتماً چیزی معنی دار و مناسب را وارد کنید.
پس از اتمام کار ، فرم چیزی شبیه به این خواهد شد:

روی دکمه سبز ، ثبت نام برنامه کلیک کنید.
اکنون به صفحه ای حاوی Client ID و Client Secret مرتبط با برنامه جدید OAuth خود هدایت می شوید. هر دو مقدار را یادداشت کنید ، زیرا برای تکمیل تنظیمات باید آنها را به فایل اصلی پیکربندی Grafana اضافه کنید.
هشدار: مطمئن شوید که Client ID و Client Secret خود را در یک مکان امن و غیر عمومی نگه داری میکنید ، زیرا می توانند مورد حمله قرار گیرند.

با ایجاد برنامه GitHub OAuth خود ، اکنون آماده پیکربندی مجدد Grafana برای استفاده از GitHub جهت تأیید اعتبار هستید.
(اختیاری) مرحله 6 – پیکربندی Grafana به عنوان یک برنامه GitHub OAuth
برای تکمیل تأیید اعتبار GitHub برای تنظیم Grafana ، اکنون تغییراتی در فایل های پیکربندی Grafana خود اعمال خواهید کرد.
برای شروع ، فایل اصلی پیکربندی Grafana را باز کنید.
? $ sudo nano /etc/grafana/grafana.ini
?
عنوان [auth.github] را بیابید و با حذف ; در ابتدای هر خط به جز ;allowed_domains = و ;team_ids= که در این آموزش تغییر نخواهد کرد ، این بخش را لغو کنید.
در مرحله بعدی ، این تغییرات را ایجاد کنید:
? گزینه enabled و allow_sign_up را روی true تنظیم کنید. این امر تأیید هویت GitHub را انجام می دهد و به اعضای مجاز سازمان اجازه می دهد تا خودشان حساب ایجاد کنند. توجه داشته باشید که این تنظیمات با ویژگی allow_sign_up تحت [users] که در مرحله 4 تغییر کرده اید متفاوت است.
? client_id و client_secret را روی مقادیری که هنگام ایجاد برنامه GitHub OAuth خود قرار داده اید تنظیم کنید.
? allow _organizations را روی نام سازمان خود تنظیم کنید تا اطمینان حاصل شود که فقط اعضای سازمان شما می توانند عضو و وارد Grafana شوند.
پیکربندی کامل اینگونه خواهد بود:
/etc/grafana/grafana.ini

[auth.github]
enabled = true
allow_sign_up = true
client_id = your_client_id_from_github
client_secret = your_client_secret_from_github
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
;allowed_domains =
;team_ids =
allowed_organizations = your_organization_name

اکنون به Grafana که همه موارد لازم در مورد GitHub را گفته اید. برای تکمیل ستاپ ، باید تغییر مسیرها را در پشت پروکسی معکوس فعال کنید. این کار با تنظیم یک مقدار root_url تحت عنوان [server] انجام می شود.
/etc/grafana/grafana.ini

[server]
root_url = https://your_domain

پیکربندی خود را ذخیره کرده و فایل را ببندید.
سپس Grafana را مجدداً راه اندازی کنید تا تغییرات فعال شود:
? $ sudo systemctl restart grafana-server
?
در آخر ، تأیید کنید که سرویس در حال اجرا است.
? $ sudo systemctl status grafana-server
?
خروجی نشان می دهد که سرویس فعال (در حال اجرا) است.
اکنون با رفتن به https: // your_domain ، سیستم تأیید اعتبار جدید خود را آزمایش کنید. اگر قبلاً وارد Grafana شده اید ، موس خود را روی نماد آواتار در گوشه سمت چپ پایین صفحه حرکت دهید و روی منوی ثانویه که در کنار نام شما ظاهر می شود ، روی Sign Out کلیک کنید.
در صفحه ورود ، زیر دکمه اصلی ورود به سیستم یک بخش جدید مشاهده خواهید کرد که شامل دکمه ورود به سیستم با GitHub با آرم GitHub است.

بر روی دکمه ورود به سیستم با GitHub کلیک کنید تا به GitHub هدایت شوید ، در آنجا وارد حساب GitHub خود شوید و هدف خود را برای تأیید مجوز Grafana را تأیید کنید.
بر روی دکمه سبز ، Authorize your_github_organization کلیک کنید.
توجه: اطمینان حاصل کنید که حساب GitHub شما عضو سازمان تأیید شده شماست و آدرس ایمیل Grafana با آدرس ایمیل GitHub شما مطابقت دارد. اگر سعی کنید با یک حساب GitHub که عضو سازمان تأیید شده شما نیست ، تأیید اعتبار کنید ، یک پیام Login Failed دریافت خواهید کرد و به شما می گوید ، کاربر عضو یکی از سازمان های مورد نیاز نیست.
اکنون با حساب Grafana موجود خود وارد سیستم خواهید شد. اگر برای کاربری که با آن وارد سیستم شده اید قبلا حساب Grafana ایجاد نشده باشد ، Grafana یک حساب کاربری جدید با مجوز Viewer ایجاد می کند ، و اطمینان می دهد که کاربران جدید فقط می توانند از داشبوردهای موجود استفاده کنند.
برای تغییر مجوزهای پیش فرض برای کاربران جدید ، فایل اصلی پیکربندی Grafana را برای ویرایش باز کنید.
? $ sudo nano /etc/grafana/grafana.ini
?
دستورالعمل auto_assign_org_role را تحت عنوان [users] بیابید و با حذف کردن ; در ابتدای خط آن را لغو کنید.
دستورالعمل را روی یکی از مقادیر زیر تنظیم کنید:
? Viewer  – فقط می تواند از داشبوردهای موجود استفاده کند
? Editor  – می تواند داشبوردها را استفاده کند، تغییر دهد و اضافه کند
? Admin  – اجازه انجام همه کارها را دارد
این آموزش اختصاص خودکار به Viewer را انجام میدهد:
/etc/grafana/grafana.ini

[users]

auto_assign_org_role = Viewer

پس از ذخیره تغییرات ، فایل را ببندید و مجدداً Grafana را ریستارت کنید:
? $ sudo systemctl restart grafana-server
?
وضعیت سرویس را بررسی کنید:
? $ sudo systemctl status grafana-server
?
مانند قبل ، وضعیت فعال (در حال اجرا) خواهد بود.
در این مرحله ، شما Grafana را کاملاً پیکربندی کرده اید تا به اعضای سازمان GitHub خود اجازه دهید ثبت نام و استفاده از نصب Grafana را انجام دهند.
نتیجه
در این آموزش Grafana را نصب ، پیکربندی و ایمن کرده اید و همچنین آموخته اید که چگونه به اعضای سازمان خود اجازه دهید تا از طریق GitHub احراز هویت کنند.
برای بسط نصب فعلی Grafana ، به لیست داشبوردها و افزونه های رسمی و ساخته شده توسط انجمن مراجعه کنید. برای کسب اطلاعات بیشتر در مورد استفاده از Grafana به طور کلی ، به مطالب رسمی Grafana مراجعه کنید ، یا سایر آموزش های مانیتورینگ ما را مطالعه نمایید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهید

نحوه ایجاد نماها (Views) برای توسعه وب Django

نصب Mount NFS در اوبونتو 20.04

نحوه توسعه برنامه ها در Kubernetes با Okteto

نصب و پیکربندی Laravel با Nginx در اوبونتو 20.04

نحوه تنظیم Jupyter Notebook با پایتون در Ubuntu 20.04

نصب Jitsi Meet در Debian 10

نصب و پیکربندی Nextcloud در اوبونتو 20.04

نصب و پیکربندی Ansible در اوبونتو 20.04

مقدمه ای بر مدیریت پیکربندی با Ansible

نحوه نصب R روی اوبونتو 20.04

ارائه برنامه های Flask با uWSGI و Nginx در اوبونتو 18.04

نصب و پیکربندی Postfix در اوبونتو 20.04

ارائه برنامه های Flask با Gunicorn و Nginx اوبونتو 20

ایمن کردن Nginx با Let’s Encrypt در Ubuntu 20.04

تنظیم پلتفرم Cloud IDE کد سرور در اوبونتو 20

کسب یک گواهی اعتبار سنجی DNS با Acme-dns-certbot در اوبونتو 18.04

نصب و ایمن سازی Grafana در اوبونتو 20.04

نحوه نصب Git در Ubuntu 20.04

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 

 

برچسب‌ها:


نحوه نصب Git در Ubuntu 20.04

سیستم های کنترل نسخه بخشی ضروری از توسعه نرم افزاری مدرن هستند. نسخه سازی به شما امکان می دهد تا نرم افزار خود را در سطح منبع دنبال کنید. می توانید تغییرات را ردیابی کنید ، به مراحل قبلی برگردید و انشعاب ایجاد کنید تا نسخه های متفاوتی از فایل ها و دیرکتوری ها ایجاد کنید.

بسیاری از فایل های پروژه ها در یک مخزن Git نگهداری می شوند و پلتفرم هایی مانند GitHub ، GitLab و Bitbucket به تسهیل اشتراک و همکاری پروژه توسعه نرم افزار کمک می کنند.

در این راهنما نحوه نصب و پیکربندی Git روی سرور مجازی Ubuntu 20.04 را بررسی خواهیم کرد. نحوه نصب نرم افزار را به دو روش مختلف پوشش خواهیم داد: از طریق مدیر بسته داخلی و از طریق منبع. هر یک از این رویکردها بسته به نیازهای خاص شما مزایای خاص خود را دارد.

 

پیش نیازها

به یک سرور مجازی Ubuntu 20.04 با یک حساب فوق کاربری غیر ریشه نیاز خواهید داشت.

برای انجام این کار، می توانید راهنمای ستاپ اولیه سرور مجازی برای Ubuntu 20.04 را دنبال کنید.

با راه اندازی سرور مجازی و کاربر ، آماده شروع کار هستید.

 

نصب Git با بسته های پیش فرض

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

Git احتمالا روی سرور مجازی اوبونتو شما نصب است. میتوانید این موضوع را با دستور زیر تایید کنید:

 

$ git –version

 

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

Output

git version 2.25.1

 

اگر این گونه است ، می توانید به سراغ تنظیم Git بروید ، یا در صورت نیاز به نسخه به روزتر ، می توانید بخش بعدی نحوه نصب از منبع را بخوانید.

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

ابتدا ، از ابزارهای مدیریت بسته apt برای به روزرسانی ایندکس بسته محلی خود استفاده کنید.

$ sudo apt update

 

با اتمام به روزرسانی ، می توانید Git را نصب کنید:

$ sudo apt install git

 

می توانید با اجرای دستور زیر و بررسی اینکه خروجی مربوطه را دریافت کرده اید ، تایید کنید که Git را به درستی نصب کرده اید:

$ git –version

 

Output

git version 2.25.1

 

با نصب موفقیت آمیز Git ، اکنون می توانید برای تکمیل تنظیم خود به بخش Setting Up Git بروید.

 

نصب Git از Source

یک روش انعطاف پذیرتر برای نصب Git ، کامپایل نرم افزار از منبع است. این کار زمان بیشتری طول می کشد و از طریق مدیر بسته شما نگه داری نمی شود ، اما به شما امکان می دهد آخرین نسخه را دانلود کنید و در صورت تمایل به شخصی سازی ، کنترل برخی گزینه ها را در اختیار شما قرار می دهد.

نسخه Git که در حال حاضر روی سرور مجازی شما نصب شده است را تایید کنید:

$ git –version

 

اگر Git نصب شده است، خروجی شبیه به این دریافت خواهید کرد:

Output

git version 2.25.1

 

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

$ sudo apt update

 

$ sudo apt install libz-dev libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext cmake gcc

 

بعد از اینکه متعلقات لازم را نصب کردید ، یک دیرکتوری موقت ایجاد کنید و به داخل آن بروید. اینجاست که تاربال Git خود را دانلود خواهیم کرد.

$ mkdir tmp

 

$ cd /tmp

 

از وب سایت پروژه Git ، می توانیم به لیست تاربل در https://mirrors.edge.kernel.org/pub/software/scm/git/ برویم و نسخه مورد نظر خود را دانلود کنیم. در زمان نوشتن این مقاله ، جدیدترین نسخه 2.26.2 است ، بنابراین ما آن را برای اهداف نمایشی دانلود خواهیم کرد. از curl استفاده می کنیم و فایلی را که دانلود می کنیم به git.tar.gz. میفرستیم:

 

$ curl -o git.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.2.tar.gz

 

فایل تاربال فشرده را باز کنید:

 

$ tar -zxf git.tar.gz

سپس، وارد دیرکتوری جدید Git شوید:

 

$ cd git-*

 

اکنون می توانید بسته را ایجاد کرده و با تایپ این دو دستور آن را نصب کنید:

$ make prefix=/usr/local all

 

$ sudo make prefix=/usr/local install

 

اکنون فرآیند پوسته را به گونه ای جایگزین کنید که نسخه Git که اکنون نصب کرده ایم استفاده شود:

$ exec bash

 

پس از تکمیل این کار ، می توانید با بررسی نسخه مطمئن شوید که نصب شما موفقیت آمیز بوده است.

$ git –version

 

Output

git version 2.26.0

با نصب موفقیت آمیز Git ، اکنون می توانید ستاپ خود را تکمیل کنید.

 

راه اندازی Git

 

بعد از اینکه از نسخه Git خود راضی شدید ، باید Git را پیکربندی کنید تا پیام های تعهد تولید شده حاوی اطلاعات صحیح شما باشند و در هنگام ساخت پروژه نرم افزاری از شما پشتیبانی کنند.

پیکربندی را می توان با استفاده از دستور پیکربندی git انجام داد. به طور خاص ، باید نام و آدرس ایمیل خود را ارائه کنیم زیرا Git این اطلاعات را در هر تعهدی که انجام می دهیم وارد می کند. می توانیم با تایپ دستور زیر، پیش برویم و این اطلاعات را اضافه کنیم:

$ git config –global user.name “Your Name”

 

$ git config –global user.email “youremail@domain.com”

 

ما می توانیم تمام موارد پیکربندی تنظیم شده را با تایپ دستور زیر نمایش دهیم:

$ git config –list

 

Output

user.name=Your Name

user.email=youremail@domain.com

 

اطلاعاتی که وارد می کنید در پرونده پیکربندی Git شما ذخیره می شود ، که می توانید به صورت اختیاری با ویرایشگر متن مورد نظر خود مانند این ویرایش کنید (ما از nano استفاده خواهیم کرد):

$ nano ~/.gitconfig

 

~/.gitconfig contents

[user]

name = Your Name

email = youremail@domain.com

 

CTRL و X ، سپس Y و ENTER را فشار دهید تا از ویرایشگر متن خارج شوید.

گزینه های دیگر بسیاری وجود دارد که می توانید تنظیم کنید ، اما این دو مورد ضروری هستند. اگر این مرحله را رد کنید ، احتمالاً هنگام تعهد به Git هشدارهایی مشاهده خواهید کرد. این باعث می شود کار بیشتری برای شما ایجاد شود زیرا مجبور خواهید بود تعهداتی را که انجام داده اید با اطلاعات اصلاح شده جایگزین کنید.

 

نتیجه

اکنون باید Git را نصب کرده و آماده استفاده در سیستم خود باشید.

برای کسب اطلاعات بیشتر در مورد نحوه استفاده از Git ، این مقاله ها و مجموعه ها را بررسی کنید:

• چگونه می توان از Git به طور موثر استفاده کرد

• نحوه استفاده از انشعابات Git

• مقدمه ای بر منبع باز

 

 

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

 

چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهید

 

نحوه ایجاد نماها (Views) برای توسعه وب Django

 

نصب Mount NFS در اوبونتو 20.04

 

نحوه توسعه برنامه ها در Kubernetes با Okteto

 

نصب و پیکربندی Laravel با Nginx در اوبونتو 20.04

 

نحوه تنظیم Jupyter Notebook با پایتون در Ubuntu 20.04

 

نصب Jitsi Meet در Debian 10

 

نصب و پیکربندی Nextcloud در اوبونتو 20.04

 

نصب و پیکربندی Ansible در اوبونتو 20.04

 

مقدمه ای بر مدیریت پیکربندی با Ansible

 

نحوه نصب R روی اوبونتو 20.04

 

ارائه برنامه های Flask با uWSGI و Nginx در اوبونتو 18.04

 

نصب و پیکربندی Postfix در اوبونتو 20.04

 

ارائه برنامه های Flask با Gunicorn و Nginx اوبونتو 20

 

ایمن کردن Nginx با Let’s Encrypt در Ubuntu 20.04

 

تنظیم پلتفرم Cloud IDE کد سرور در اوبونتو 20

 

کسب یک گواهی اعتبار سنجی DNS با Acme-dns-certbot در اوبونتو 18.04

 

نصب و ایمن سازی Grafana در اوبونتو 20.04

 

نحوه نصب Git در Ubuntu 20.04

 

 

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 

 

برچسب‌ها:Git, GitLab


دسترسی از راه دور به برنامه GUI با Docker در اوبونتو 18.04

حتی با محبوبیت روزافزون خدمات ابری ، نیاز به اجرای برنامه های بومی هنوز وجود دارد.
با استفاده از noVNC و TigerVNC ، می توانید برنامه های بومی را درون یک کانتینر Docker اجرا کنید و از راه دور با استفاده از یک مرورگر وب به آنها دسترسی پیدا کنید. علاوه بر این ، می توانید برنامه خود را بر روی سرور مجازی با منابع سیستم بیشتر از آنچه به صورت محلی موجود دارید اجرا کنید ، که می تواند در هنگام اجرای برنامه های بزرگ ، انعطاف پذیری بیشتری را ارائه دهد.
در این آموزش ، Mozilla Thunderbird ، کلاینت ایمیل را با استفاده از Docker کانتینرایز می کنید. پس از آن ، آن را ایمن کرده و با استفاده از سرور مجازی وب Caddy امکان دسترسی از راه دور را فراهم خواهید کرد.
پس از اتمام کار ، فقط با یک مرورگر وب می توانید از هر وسیله ای به Thunderbird دسترسی پیدا کنید. همچنین به صورت اختیاری می توانید با استفاده از WebDAV به طور محلی به فایل های موجود در آن دسترسی پیدا کنید. همچنین یک تصویر کاملاً خود شمول از Docker خواهید داشت که می توانید در هر مکانی اجرا کنید.
پیش نیازها
قبل از شروع این راهنما ، به موارد زیر نیاز خواهید داشت:
? یک سرور مجازی اوبونتو 18.04 با حداقل 2 گیگابایت رم و فضای دیسک 4 گیگابایتی.
? یک کاربر غیر ریشه با امتیازات sudo.
? Docker که روی سرور مجازی شما تنظیم شده باشد. می توانید نحوه نصب و استفاده از Docker در Ubuntu 18.04 را در این لینک دنبال کنید.
مرحله 1 – ایجاد پیکربندی supervisord
اکنون که سرور مجازی شما در حال اجرا است و Docker نصب شده است ، آماده هستید تا پیکربندی کانتینر برنامه خود را شروع کنید. از آنجا که کانتینر شما از چندین مؤلفه تشکیل شده است ، برای راه اندازی و نظارت بر آنها باید از یک مدیر فرآیند استفاده کنید. در اینجا ، از supervisord استفاده خواهید کرد. supervisord یک مدیر فرآیند است که در پایتون نوشته شده و اغلب برای موزون کردن کانتینرهای پیچیده استفاده می شود.
ابتدا دایرکتوری به نام thunderbird برای کانتینر خود ایجاد کنید و وارد شوید:
? $ mkdir ~/thunderbird
?
? $ cd ~/thunderbird

اکنون با استفاده از nano یا ویرایشگر مورد نظر خود ، فایلی به نام supervisord.conf ایجاد و باز کنید:
? $ nano supervisord.conf
?
اکنون این اولین بلوک کد را به supraord.conf اضافه کنید ، که گزینه های جهانی برای supervisord را تعریف می کند:
~/thunderbird/supervisord.conf
[supervisord]
nodaemon=true
pidfile=/tmp/supervisord.pid
logfile=/dev/fd/1
logfile_maxbytes=0
در این بخش ، شما خود supervisord را پیکربندی می کنید. باید nodaemon را روی true تنظیم کنید زیرا درون یک کانتینر Docker به عنوان ورودی وارد می شود. بنابراین ، می خواهید که در پیش زمینه اجرا شود. همچنین pidfile را روی مسیری که توسط یک کاربر غیر ریشه قابل دسترسی است و logfile را روی stdout تنظیم میکنید تا بتوانید ورودها را مشاهده کنید.
در مرحله بعد ، یک بلوک کد کوچک دیگر را به supervisord.conf اضافه کنید. این بلوک TigerVNC را که یک سرور مجازی ترکیبی VNC / X11 است شروع می کند:
~/thunderbird/supervisord.conf

[program:x11]
priority=0
command=/usr/bin/Xtigervnc -desktop “Thunderbird” -localhost -rfbport 5900 -SecurityTypes None -AlwaysShared -AcceptKeyEvents -AcceptPointerEvents -AcceptSetDesktopSize -SendCutText -AcceptCutText :0
autorestart=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true

در این بلوک ، سرور مجازی X11 را تنظیم می کنید. X11 یک پروتکل سرور مجازی نمایشگر است ، همان چیزی است که به برنامه های GUI اجازه اجرا می دهد. توجه داشته باشید که در آینده باWayland جایگزین خواهد شد ، اما دسترسی از راه دور هنوز در دست توسعه است.
برای این کانتینر ، شما از TigerVNC و سرور مجازی داخلی VNC استفاده می کنید. که دارای چندین مزیت نسبت به استفاده از یک سرور مجازی جداگانه X11 و VNC است:
• زمان پاسخ سریعتر ، زیرا کشیدن GUI مستقیماً روی سرور مجازی VNC انجام می شود به جای اینکه روی یک بافر چارچوب واسطه (حافظه ای که محتویات صفحه را ذخیره می کند) انجام شود.
• تغییر اندازه خودکار صفحه ، که به برنامه ریموت اجازه می دهد تا به طور خودکار تغییر اندازه دهد تا با کلاینت (در این حالت ، پنجره مرورگر وب شما) متناسب باشد.
در صورت تمایل ، می توانید آرگومان را برای گزینه -desktop از Thunderbird به چیز دیگری که انتخاب کرده اید تغییر دهید. سرور مجازی انتخاب شما را به عنوان تیتر صفحه وب مورد استفاده برای دسترسی به برنامه شما نمایش می دهد.
اکنون ، بیایید یک بلوک سوم از کد را به supervisord.conf اضافه کنیم تا easy-novnc را شروع کنیم:
~/thunderbird/supervisord.conf

[program:easy-novnc]
priority=0
command=/usr/local/bin/easy-novnc –addr :8080 –host localhost –port 5900 –no-url-password –novnc-params “resize=remote”
autorestart=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true

در این بلوک ، یک easy-novnc را راه اندازی می کنید ، یک سرور مجازی مستقل که یک پوشش حول noVNC فراهم می کند. این سرور مجازی دو نقش را انجام می دهد. ابتدا یک صفحه اتصال ساده فراهم می کند که به شما امکان می دهد گزینه های اتصال را پیکربندی کنید و به شما امکان می دهد موارد پیش فرض را تنظیم کنید. دوم ، VNC را روی WebSocket پروکسی میکند ، که به آن امکان دسترسی از طریق یک مرورگر وب معمولی را می دهد.
معمولاً تغییر اندازه در سمت کلاینت انجام می شود (یعنی مقیاس بندی تصویر) ، اما شما از گزینه resize=remote استفاده می کنید تا از تنظیمات وضوح تصویری از راه دور TigerVNC استفاده کامل کنید. این گزینه همچنین تأخیر کمتری را در دستگاه های کندتر مانند Chromebooks رده پایین ایجاد می کند:
توجه: در این آموزش از easy-novnc استفاده شده است. در صورت تمایل می توانید به جای آن از websockify و یک وب سرور مجازی جداگانه استفاده کنید. مزیت easy-novnc این است که میزان حافظه و زمان راه اندازی آن به میزان قابل توجهی پایین است و خود شمول به حساب می آید. easy-novnc همچنین یک صفحه اتصال تمیزتر نسبت به noVNC پیش فرض ارائه می دهد و تنظیم گزینه های پیش فرض مفید برای این ستاپ (مانند resize=remote) را ممکن می سازد.

برای شروع OpenBox ، یعنی مدیر پنجره ، بلوک زیر را به پیکربندی خود اضافه کنید:
~/thunderbird/supervisord.conf

[program:openbox]
priority=1
command=/usr/bin/openbox
environment=DISPLAY=:0
autorestart=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true

در این بلوک ، شما در حال راه اندازی OpenBox ، مدیر پنجره سبک X11 هستید. می توانید از این مرحله بگذرید ، اما بدون آن ، نمودارهای میله ای عنوان را ندارید یا نمی توانید اندازه ویندوز را تغییر دهید.
در آخر ، بیایید آخرین بلوک را به supervisord.conf اضافه کنیم ، که برنامه اصلی را شروع می کند:
~/thunderbird/supervisord.conf

[program:app]
priority=1
environment=DISPLAY=:0
command=/usr/bin/thunderbird
autorestart=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true

در این بلوک آخر ، برای اطمینان از اجرای Thunderbird بعد از TigerVNC ، اولویت را روی 1 تنظیم کنید در غیر این صورت با یک شرایط مسابقه روبرو می شوید و به طور تصادفی در شروع کار ناکام خواهید ماند. بنابراین autorestart = true قرار دهید تا اگر برنامه به اشتباه بسته شد ، برنامه را مجدداً باز کنید. متغیر محیط DISPLAY به برنامه می گوید تا روی سرور مجازی VNC که قبلاً تنظیم کرده اید نمایش داده شود.
در اینجا ظاهر نهایی supervisord.conf شما نمایش داده شده است:
~/thunderbird/supervisord.conf
[supervisord]
nodaemon=true
pidfile=/tmp/supervisord.pid
logfile=/dev/fd/1
logfile_maxbytes=0

[program:x11]
priority=0
command=/usr/bin/Xtigervnc -desktop “Thunderbird” -localhost -rfbport 5900 -SecurityTypes None -AlwaysShared -AcceptKeyEvents -AcceptPointerEvents -AcceptSetDesktopSize -SendCutText -AcceptCutText :0
autorestart=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true

[program:easy-novnc]
priority=0
command=/usr/local/bin/easy-novnc –addr :8080 –host localhost –port 5900 –no-url-password –novnc-params “resize=remote”
autorestart=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true

[program:openbox]
priority=1
command=/usr/bin/openbox
environment=DISPLAY=:0
autorestart=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true

[program:app]
priority=1
environment=DISPLAY=:0
command=/usr/bin/thunderbird
autorestart=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true

اگر می خواهید برنامه دیگری را کانتینرایز کنید ، /usr/bin/thunderbird را با مسیر قابل اجرای برنامه خود جایگزین کنید. در غیر این صورت ، اکنون آماده پیکربندی منوی اصلی GUI خود هستید.
مرحله 2 – تنظیم منوی OpenBox
اکنون که مدیر پروسه شما پیکربندی شده است ، بیایید منوی OpenBox را تنظیم کنیم. این منو به ما امکان می دهد تا برنامه ها را درون کانتینر راه اندازی کنیم. همچنین یک ترمینال و مانیتور پردازش برای اشکال زدایی در صورت لزوم را در اختیار خواهیم داشت.
در داخل دیرکتوری برنامه خود ، از nano یا ویرایشگر متن مورد علاقه خود استفاده کنید تا فایل جدیدی به نام menu.xml ایجاد و باز کنید:
? $ nano ~/thunderbird/menu.xml
?
اکنون کد زیر را به menu.xml اضافه کنید:
~/thunderbird/menu.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<openbox_menu xmlns=”http://openbox.org/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://openbox.org/ file:///usr/share/openbox/menu.xsd”>
<menu id=”root-menu” label=”Openbox 3″>
<item label=”Thunderbird”>
<action name=”Execute”>
<execute>/usr/bin/thunderbird</execute>
</action>
</item>
<item label=”Terminal”>
<action name=”Execute”>
<execute>/usr/bin/x-terminal-emulator</execute>
</action>
</item>
<item label=”Htop”>
<action name=”Execute”>
<execute>/usr/bin/x-terminal-emulator -e htop</execute>
</action>
</item>
</menu>
</openbox_menu>

این فایل XML شامل آیتم های منو است که با کلیک راست بر روی دسکتاپ ظاهر می شود. هر مورد از یک لیبل و یک عمل تشکیل شده است.
اگر می خواهید برنامه دیگری را کانتینرایز کنید ، / usr / bin / thunderbird را با مسیر اجرایی برنامه خود جایگزین کنید و لیبل مورد را تغییر دهید.
مرحله 3 – ایجاد Dockerfile
اکنون که OpenBox پیکربندی شده است ، Dockerfile را ایجاد خواهید کرد ، که همه چیز را به هم پیوند می دهد.
یک Dockerfile در دیرکتوری کانتینر خود ایجاد کنید:
? $nano ~/thunderbird/Dockerfile
?
برای شروع ، بیایید برای ساختن easy-novnc کد دیگری اضافه کنیم:
~/thunderbird/Dockerfile
FROM golang:1.14-buster AS easy-novnc-build
WORKDIR /src
RUN go mod init build && \
go get github.com/geek1011/easy-novnc@v1.1.0 && \
go build -o /bin/easy-novnc github.com/geek1011/easy-novnc

در مرحله اول ، شما در حال ساختن easy-novnc هستید. برای سادگی و صرفه جویی در فضا این کار در یک مرحله جداگانه انجام می شود – به زنجیره ابزار کلیGo در تصویر نهایی خود نیازی ندارید. به@ v1.1.0 در دستور build توجه داشته باشید. این تضمین می کند که نتیجه تعیین کننده است ، و از آن جهت مهم است که Docker نتیجه هر مرحله را ذخیره می کند. اگر نسخه صریح را مشخص نکرده اید ، Docker در زمان ساخت اولین تصویر، آخرین نسخه های easy-novnc را ارجاع می دهد. علاوه بر این ، بهتر است اطمینان حاصل کنید که یک نسخه خاص از easy-novnc را دانلود می کنید تا در صورت ایجاد تغییرات در رابط CLI آن را داشته باشید.
حالا بیایید مرحله دوم را ایجاد کنیم که به تصویر نهایی تبدیل می شود. در اینجا از Debian 10 (Buster) به عنوان تصویر پایه استفاده خواهید کرد. توجه داشته باشید که از آنجا که این کار در یک کانتینر در حال اجرا است ، صرف نظر از توزیع شما در سرور خود ، کار خواهد کرد.
سپس ، بلوک زیر را به Dockerfile خود اضافه کنید:
~/thunderbird/Dockerfile

FROM debian:buster
RUN apt-get update -y && \
apt-get install -y –no-install-recommends openbox tigervnc-standalone-server supervisor gosu && \
rm -rf /var/lib/apt/lists && \
mkdir -p /usr/share/desktop-directories

در این دستورالعمل ، شما Debian 10 را به عنوان تصویر پایه خود نصب می کنید و سپس حداقل مورد نیاز برای اجرای برنامه های GUI را در کانتینر خود نصب می کنید. توجه داشته باشید که apt-get update را به عنوان بخشی از همان دستورالعمل ها برای جلوگیری از مشکلات ذخیره سازی در Docker ، اجرا کنید. برای صرفه جویی در فضا ، همچنین لیست های بسته را که بعد از آن دانلود شده است حذف می کنید (بسته های ذخیره شده به صورت پیش فرض حذف می شوند). همچنین /usr/share/desktop-directories را ایجاد می کنید زیرا برخی برنامه ها به دایرکتوری موجود بستگی دارند.
بیایید یک بلوک کد کوچک دیگر اضافه کنیم:
~/thunderbird/Dockerfile

RUN apt-get update -y && \
apt-get install -y –no-install-recommends lxterminal nano wget openssh-client rsync ca-certificates xdg-utils htop tar xzip gzip bzip2 zip unzip && \
rm -rf /var/lib/apt/lists

در این دستورالعمل ، شما در حال نصب برخی از نرم افزارها و بسته های عمومی مفید هستید. موارد قابل توجه در اینجا xd-utils (که دستورات پایه مورد استفاده برنامه های دسکتاپ را در لینوکس فراهم می کند) و ca-certificates (که گواهی های ریشه را نصب می کند تا به ما امکان دسترسی به سایت های HTTPS را بدهد) هستند.
اکنون می توانیم دستورالعمل برنامه اصلی را اضافه کنیم:
~/thunderbird/Dockerfile

RUN apt-get update -y && \
apt-get install -y –no-install-recommends thunderbird && \
rm -rf /var/lib/apt/lists

مانند گذشته ، در اینجا ما در حال نصب برنامه هستیم. اگر برنامه کاربردی دیگری را کانتینرایز میکنید ، می توانید این دستورات را با دستورالعمل های لازم برای نصب برنامه خاص خود جایگزین کنید. برخی از برنامه ها برای اجرای داخل Docker به کار کمی بیشتر نیاز دارند. به عنوان مثال ، اگر برنامه ای را نصب می کنید که از Chrome ،Chromium یا QtWebEngine استفاده می کند ، باید از آرگومان خط فرمان –no-sandbox استفاده کنید ، زیرا در Docker پشتیبانی نمی شود.
در مرحله بعد ، بیایید دستورالعمل هایی را اضافه کنیم تا چند فایل آخر به کانتینر اضافه شود:
~/thunderbird/Dockerfile

COPY –from=easy-novnc-build /bin/easy-novnc /usr/local/bin/
COPY menu.xml /etc/xdg/openbox/
COPY supervisord.conf /etc/
EXPOSE 8080

در اینجا شما می توانید فایل های پیکربندی را که قبلاً ایجاد کرده اید به تصویر اضافه کرده و از مرحله اول کپی کردن باینری easy-novnc را انجام دهید.
این بلوک کد بعدی دایرکتوری داده را ایجاد می کند و کاربر اختصاصی را برای برنامه شما اضافه می کند. از آن جهت مهم است که برخی برنامه ها از اجرا به عنوان ریشه خودداری می کنند. همچنین بهتر است که حتی در یک کانتینر ، برنامه ها را به صورت ریشه اجرا نکنید.
~/thunderbird/Dockerfile

RUN groupadd –gid 1000 app && \
useradd –home-dir /data –shell /bin/bash –uid 1000 –gid 1000 app && \
mkdir -p /data
VOLUME /data

برای اطمینان از یک UID / GID سازگار برای فایل ها ، صریحاً هر دو را روی 1000 تنظیم می کنید. همچنین می توانید یک حجم را در دایرکتوری داده قرار دهید تا اطمینان حاصل شود که بین راه ریستارت ها همچنان ادامه دارد.
در آخر ، دستورالعمل هایی را برای راه اندازی همه موارد اضافه می کنیم:
~/thunderbird/Dockerfile

CMD [“sh”, “-c”, “chown app:app /data /dev/stdout && exec gosu app supervisord”]

با تنظیم دستور پیش فرض روی supervisord ، مدیر فرآیندهای مورد نیاز برای اجرای برنامه شما را راه اندازی می کند. در این حالت ، به جای ENTRYPOINT از CMD استفاده می کنید. در بیشتر موارد ، تفاوتی ایجاد نمی کند ، اما استفاده از CMD برای این منظور به چند دلیل مناسب تر است. اولا ، supervisord هیچ آرگومانی مربوط به ما را دریافت نمیکند ، و اگر آرگومان هایی را به کانتینر ارائه می دهید ، آنها CMD را جایگزین می کنند و به ENTRYPOINT اضافه می شوند. دوما ، استفاده از CMD به ما امکان می دهد هنگام ارسال آرگومان ها به داخل کانتینر ، یک دستور کاملاً متفاوت (که توسط / bin / sh -c اجرا خواهد شد) ارائه دهیم ، که اشکال زدایی را آسان تر می کند.
و در آخر ، لازم است قبل از شروع supervisord ، chown را به عنوان ریشه اجرا کنید تا از مشکلات مجوز در حجم داده جلوگیری کنید و به فرآیند کودک (child) اجازه دهید stdout را باز کند. این همچنین بدان معنی است که شما باید به جای دستورالعمل USER برای تعویض کاربر از gosu استفاده کنید.
در اینجا ظاهر Dockerfile تکمیل شده شما به شرح زیر است:
~/thunderbird/Dockerfile
FROM golang:1.14-buster AS easy-novnc-build
WORKDIR /src
RUN go mod init build && \
go get github.com/geek1011/easy-novnc@v1.1.0 && \
go build -o /bin/easy-novnc github.com/geek1011/easy-novnc

FROM debian:buster

RUN apt-get update -y && \
apt-get install -y –no-install-recommends openbox tigervnc-standalone-server supervisor gosu && \
rm -rf /var/lib/apt/lists && \
mkdir -p /usr/share/desktop-directories

RUN apt-get update -y && \
apt-get install -y –no-install-recommends lxterminal nano wget openssh-client rsync ca-certificates xdg-utils htop tar xzip gzip bzip2 zip unzip && \
rm -rf /var/lib/apt/lists

RUN apt-get update -y && \
apt-get install -y –no-install-recommends thunderbird && \
rm -rf /var/lib/apt/lists

COPY –from=easy-novnc-build /bin/easy-novnc /usr/local/bin/
COPY menu.xml /etc/xdg/openbox/
COPY supervisord.conf /etc/
EXPOSE 8080

RUN groupadd –gid 1000 app && \
useradd –home-dir /data –shell /bin/bash –uid 1000 –gid 1000 app && \
mkdir -p /data
VOLUME /data

CMD [“sh”, “-c”, “chown app:app /data /dev/stdout && exec gosu app supervisord”]

Dockerfile خود را ذخیره کرده و ببندید. اکنون آماده ساخت و اجرای کانتینر خود هستیم و سپس به Thunderbird – که یک برنامه GUI است، دسترسی پیدا خواهیم کرد.
مرحله 4 – ساخت و اجرای کانتینر
مرحله بعدی ساخت کانتینر شما و تنظیم آن در زمان راه اندازی است. همچنین می توانید یک حجم برای حفظ داده های برنامه بین ریستارت ها و به روز رسانی تنظیم کنید.
ابتدا کانتینر خود را بسازید. حتماً این دستورات را در دیرکتوری ~ / thunderbird اجرا کنید:
? $ docker build -t thunderbird .
?
اکنون یک شبکه جدید ایجاد کنید که بین کانتینرهای برنامه به اشتراک گذاشته شود:
? $ docker network create thunderbird-net
?
سپس یک حجم برای ذخیره داده های برنامه ایجاد کنید:
? $ docker volume create thunderbird-data
?
در آخر ، آن را اجرا کرده و آن را روی ریستارت خودکار تنظیم کنید:
? $ docker run –detach –restart=always –volume=thunderbird-data:/data –net=thunderbird-net –name=thunderbird-app thunderbird
?
توجه داشته باشید که در صورت تمایل ، می توانید برنامه thunderbird را بعد از گزینه –name با نام دیگری جایگزین کنید. هرچه انتخاب کردید ، اکنون برنامه شما کانتینرایز شده و در حال اجرا است. اکنون بیایید از سرور وب Caddy برای امنیت آن استفاده کنیم و از راه دور به آن متصل شویم.
مرحله 5 – راه اندازی Caddy
در این مرحله ، وب سرور Caddy را تنظیم می کنید تا تأیید هویت انجام شود و به صورت اختیاری ، دسترسی از راه دور فایل از طریق WebDAV را انجام دهد. برای سادگی و اینکه به شما امکان استفاده از پروکسی معکوس موجود خود را بدهد ، آن را در یک کانتینر دیگر اجرا کنید.
یک دیرکتوری جدید ایجاد کنید و سپس به داخل آن بروید:
? $ mkdir ~/caddy
?
? $ cd ~/caddy

اکنون با استفاده از nano یا ویرایشگر مورد نظر خود ، یک Dockerfile جدید ایجاد کنید:
? $ nano ~/caddy/Dockerfile
?
سپس بخش های زیر را اضافه کنید:
~/caddy/Dockerfile
FROM golang:1.14-buster AS caddy-build
WORKDIR /src
RUN echo ‘module caddy’ > go.mod && \
echo ‘require github.com/caddyserver/caddy/v2 v2.0.0’ >> go.mod && \
echo ‘require github.com/mholt/caddy-webdav v0.0.0-20200523051447-bc5d19941ac3’ >> go.mod
RUN echo ‘package main’ > caddy.go && \
echo ‘import caddycmd “github.com/caddyserver/caddy/v2/cmd”‘ >> caddy.go && \
echo ‘import _ “github.com/caddyserver/caddy/v2/modules/standard”‘ >> caddy.go && \
echo ‘import _ “github.com/mholt/caddy-webdav”‘ >> caddy.go && \
echo ‘func main() { caddycmd.Main() }’ >> caddy.go
RUN go build -o /bin/caddy .

FROM debian:buster

RUN apt-get update -y && \
apt-get install -y –no-install-recommends gosu && \
rm -rf /var/lib/apt/lists

COPY –from=caddy-build /bin/caddy /usr/local/bin/
COPY Caddyfile /etc/
EXPOSE 8080

RUN groupadd –gid 1000 app && \
useradd –home-dir /data –shell /bin/bash –uid 1000 –gid 1000 app && \
mkdir -p /data
VOLUME /data

WORKDIR /data
CMD [“sh”, “-c”, “chown app:app /data && exec gosu app /usr/local/bin/caddy run -adapter caddyfile -config /etc/Caddyfile”]

این Dockerfile با فعال کردن افزونه WebDAV ، Caddy را ایجاد می کند ، و سپس آن را در پورت 8080 با Caddyfile در / etc / Caddyfile راه اندازی می کند. فایل را ذخیره کنید و ببندید.
سپس سرور وب Caddy را پیکربندی می کنید. فایلی به نام Caddyfile را در دایرکتوری که تازه ایجاد کرده اید ایجاد کنید:
? $ nano ~/caddy/Caddyfile

 

 

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

دسترسی از راه دور به برنامه GUI با Docker در اوبونتو 18.04

راه اندازی سایت توسعه Jekyll در اوبونتو 20.04

نحوه راه اندازی سایت توسعه Jekyll در اوبونتو 18.04

نحوه نصب و استفاده از Docker Compose در اوبونتو 20.04

نحوه اجرای چند نسخه PHP بر روی یک سرور با استفاده از Apache و PHP-FPM در CentOS 8

نحوه نصب و استفاده از TimescaleDB در Ubuntu 20.04

نحوه نصب و راه اندازی Laravel با Docker Compose در اوبونتو 20.04

 

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 

 

برچسب‌ها:


راه اندازی سایت توسعه Jekyll در اوبونتو 20.04

اگر به دنبال ایجاد یک وب سایت یا وبلاگ استاتیک (پایا) هستید ، Jekyll می تواند یک راه حل عالی باشد. Jekyll یک مولد سایت استاتیک منبع باز است که به زبان Ruby نوشته شده و امکان اجرای سریع دستوراتی را می دهد که به شما در مدیریت سایت شما از ابتدا تا استقرار تولید ، همه از خط فرمان کمک می کند. Jekyll از وبلاگ آگاه است و به دسته بندی ها ، پست ها و صفحه بندی هایی با طیف وسیعی از واردکنندگان در دسترس برای وارد کردن مطالب قبلی وبلاگ ، اولویت می دهد. اگر نیاز دارید که اغلب به صورت آفلاین کار کنید ، و ترجیح می دهید از ویرایشگرهای سبک برای فرم های وب جهت نگهداری محتوا استفاده کنید ، یا مایل به استفاده از کنترل نسخه برای ردیابی تغییرات در وب سایت خود هستید ، Jekyll می تواند آنچه را که برای تحقق اهداف خود نیاز دارید ، در اختیار شما قرار دهد.

در این آموزش ، ما یک سایت توسعه Jekyll را در Ubuntu 20.04 با محتوای تولید شده به صورت خودکار نصب خواهیم کرد. با نصب Jekyll ، می توانید یک سایت یا وبلاگ شخصی ایجاد کنید که در درجه اول با استفاده از فایل های علامت گذاری به عنوان و چند دستور Jekyll انجام می شود.

پیش نیازها

برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید:

• سرور مجازی Ubuntu 20.04 با یک کاربر غیر ریشه و دارای امتیازات sudo: می توانید در مورد نحوه تنظیم کاربر با این امتیازات در راهنمای ستاپ اولیه سرور مجازی برای اوبونتو 20.04 اطلاعات بیشتری کسب کنید.

پس از تکمیل این پیش نیاز ، آماده نصب Jekyll و متعلقات آن هستید.

مرحله 1 – نصب Jekyll

کار را با به روز کردن لیست بسته های خود شروع خواهیم کرد تا مطمئن شویم که جدیدترین اطلاعات را در مورد جدیدترین نسخه های بسته ها و متعلقات آنها داریم:

? $ sudo apt update

?

 

در مرحله بعد ، بیایید make  و build-essential را نصب کنیم تا کتابخانه های Jekyll کامپایل شود ، و برای Ruby و کتابخانه های توسعه آن استفاده شود. ما در اینجا پرچم y را در نظر میگیریم که yes را تایید کنیم ، یعنی می خواهیم بسته ها را نصب کنیم و از تأیید اعلان خودداری کنیم.

? $ sudo apt -y install make build-essential ruby ruby-dev

?

 

پس از اتمام این کار ، اجازه دهید دو خط به فایل .bashrc خود اضافه کنیم تا به مدیر بسته Ruby’s gem بگوییم که gems را در پوشه هوم کاربر ما قرار دهد. این کار از بروز مشکلات ناشی از نصب در سراسر سیستم جلوگیری می کند و در عین حال دستور jekyll  محلی را نیز به PATH کاربر اضافه می کند.

.bashrc را با یک ویرایشگر مورد نظر خود مانند nano باز کنید:

? $ nano .bashrc

?

در انتهای فایل خطوط زیر را اضافه کنید:

.bashrc

# Ruby exports

 

export GEM_HOME=$HOME/gems

export PATH=$HOME/gems/bin:$PATH

 

فایل را ذخیره کنید و ببندید. برای فعال کردن خروجی ها ، دستور زیر را اجرا کنید:

? $ source ~/.bashrc

?

پس از اتمام این کار ، از gem  برای نصب Jekyll خود و همچنین Bundler استفاده می کنیم که متعلقات gem  را مدیریت می کند. توجه داشته باشید که این کار ممکن است مدتی طول بکشد.

? $ gem install jekyll bundler

?

در مرحله بعد ، مطمئن خواهیم شد که تنظیمات فایروال ما امکان ترافیک از طریق سرور مجازی وب توسعه Jekyll را فراهم می کند.

مرحله 2 – باز کردن فایروال

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

? $ sudo ufw status

?

اگر با وضعیت غیرفعال مواجه شدید ، دستورات زیر را اجرا کنید.

ufw allow OpenSSH

sudo ufw enable

 

این کار باعث می شود فایروال شما در هنگام راه اندازی سیستم اجرا شود. ممکن است پیام های زیر را دریافت کنید (برای ادامه با ‘y ‘ تأیید کنید):

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y

Firewall is active and enabled on system startup

 

در مثال ما ، فقط SSH مجاز است:

Output

Status: active

To Action From

— —— —-

OpenSSH ALLOW Anywhere

OpenSSH (v6) ALLOW Anywhere (v6)

 

بسته به نحوه تنظیم فایروال تان ممکن است قوانین دیگری نیز در این زمینه داشته باشید یا اصلاً هیچ قانون فایروالی وجود نداشته باشد. از آنجا که فقط ترافیک SSH در این مورد مجاز است ، باید پورت 4000، پورت پیش فرض سرور مجازی توسعه Jekyll را باز کنیم:

? $ sudo ufw allow 4000

?

اکنون قوانین فایروال ما باید موارد زیر را شامل شود:

Output

To Action From

— —— —-

OpenSSH ALLOW Anywhere

4000 ALLOW Anywhere

OpenSSH (v6) ALLOW Anywhere (v6)

4000 (v6) ALLOW Anywhere (v6)

 

اکنون با نصب نرم افزار و باز کردن پورت لازم ، آماده ایجاد سایت توسعه هستیم.

مرحله 3 – ایجاد یک سایت توسعه جدید

از دیرکتوری اصلی خود، از دستور Jekyll’s new برای ایجاد داربست برای سایتی در زیر مجموعه ای به نام www استفاده می کنیم:

? $ cd ~

?

? $ jekyll new www

دستور jekyll new برای نصب متعلقات لازم ، bundle install را شروع می کند ، سپس به صورت خودکار موضوعی با نام Minima را نصب می کند. پس از نصب موفق ، باید خروجی مانند زیر را دریافت کنید:

Output

New jekyll site installed in /home/sammy/www.

 

دستور جدید Jekyll دیرکتوری ها و فایل های زیر را ایجاد می کند:

??? 404.html

??? about.markdown

??? _config.yml

??? Gemfile

??? Gemfile.lock

??? index.markdown

??? _posts

? ??? 2020-05-29-welcome-to-jekyll.markdown

??? _site

 

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

نکته: tree یک دستور مفید برای بازرسی ساختار فایل ها و دیرکتوری ها از خط فرمان است. می توانید آن را با دستور زیر نصب کنید:

? $ sudo apt install tree

?

برای استفاده از آن ، cd را در دیرکتوری مورد نظر خود قرار دهید و tree را تایپ کنید و یا مسیر رسیدن به نقطه شروع را با tree /home/sammy/www ارائه کنید.

مرحله 4 – راه اندازی وب سرور مجازی Jekyll

سرور مجازی وب سبک Jekyll به منظور پشتیبانی از توسعه سایت با نظارت بر فایل ها در دیرکتوری و بازگرداندن خودکار سایت استاتیک هر زمان که تغییر ایجاد شود ، طراحی شده است.

از آنجا که ما در حال کار بر روی یک سرور مجازی از راه دور هستیم ، برای جستجوی سایت از دستگاه محلی خود ، آدرس هاست را مشخص خواهیم کرد. اگر در حال کار روی یک دستگاه محلی هستید ، می توانید jekyll service را بدون تنظیمات هاست اجرا کنید و با http: // localhost: 4000 وصل شوید.

? $ cd ~/www

?

? $ jekyll serve –host=203.0.113.0

?

Output of jekyll server

Configuration file: /home/sammy/www/_config.yml

Source: /home/sammy/www

Destination: /home/sammy/www/_site

Incremental build: disabled. Enable with –incremental

Generating…

done in 0.645 seconds.

Auto-regeneration: enabled for ‘/home/sammy/www’

Server address: http://203.0.113.0:4000/

Server running… press ctrl-c to stop.

 

هنگامی که jekyll serve را وادار به شروع کردیم ، Jekyll پیکربندی و فایل های محتوا را در یک دیرکتوری جدید ، _site تجزیه و شروع به ارائه محتوای موجود در آن پوشه _siteمیکند.

: …

??? 404.html

??? about.markdown

??? _config.yml

??? Gemfile

??? Gemfile.lock

??? index.markdown

??? _posts

? ??? 2020-05-29-welcome-to-jekyll.markdown

??? _site

??? 404.html

??? about

? ??? index.html

??? assets

? ??? main.css

? ? ??? main.css.map

? ??? minima-social-icons.svg

??? feed.xml

??? index.html

??? jekyll

??? update

??? 2020

??? 05

??? 29

??? welcome-to-jekyll.html

 

همچنین شروع به مشاهده تغییرات دیرکتوری فعلی ، www ، میکند. به محض ذخیره تغییر در یک پست یا صفحه ، سایت استاتیک به طور خودکار بازسازی می شود ، بنابراین مهم نیست که مستقیماً روی فایل های پوشه _site تغییری ایجاد نکنید.

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

توجه: اگر در حال کار با یک سایت بزرگ هستید ، فعال کردن –incremental می تواند هر بار که تغییری به واسطه بازتولید فایل های تغییر یافته انجام میدهید، بازسازی را سرعت ببخشد اما ما برای این سایت کوچک به آن احتیاج نداریم. می توانید اطلاعات بیشتری در مورد این ویژگی آزمایشی در وب سایت Jekyll بدست آورید.

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

 

نتیجه

در این آموزش Jekyll را نصب کردیم و یک سایت توسعه با برخی از مطالب تولید شده به صورت خودکار ایجاد کردیم. می توانید با خواندن آموزش های دیگر ما در مورد این موضوع ، درباره Jekyll بیشتر بدانید:

• بررسی محتوای پیش فرض Jekyll

• نحوه کنترل URL ها و پیوندها در Jekyll

 

 

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

 

دسترسی از راه دور به برنامه GUI با Docker در اوبونتو 18.04

 

راه اندازی سایت توسعه Jekyll در اوبونتو 20.04

 

نحوه راه اندازی سایت توسعه Jekyll در اوبونتو 18.04

 

نحوه نصب و استفاده از Docker Compose در اوبونتو 20.04

 

نحوه اجرای چند نسخه PHP بر روی یک سرور با استفاده از Apache و PHP-FPM در CentOS 8

 

نحوه نصب و استفاده از TimescaleDB در Ubuntu 20.04

 

نحوه نصب و راه اندازی Laravel با Docker Compose در اوبونتو 20.04

 

 

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 

 

برچسب‌ها:Docker, nodaemon, supervisord, TigerVNC


نحوه راه اندازی سایت توسعه Jekyll در اوبونتو 18.04

اگر به دنبال ایجاد یک وب سایت یا وبلاگ استاتیک (پایا) هستید ، Jekyll می تواند یک راه حل عالی باشد. Jekyll یک مولد سایت استاتیک منبع باز است که به زبان Ruby نوشته شده و امکان اجرای سریع دستوراتی را می دهد که به شما در مدیریت سایت شما از ابتدا تا استقرار تولید ، همه از خط فرمان کمک می کند. Jekyll از وبلاگ آگاه است و به دسته بندی ها ، پست ها و صفحه بندی هایی با طیف وسیعی از واردکنندگان در دسترس برای وارد کردن مطالب قبلی وبلاگ ، اولویت می دهد. اگر نیاز دارید که اغلب به صورت آفلاین کار کنید ، و ترجیح می دهید از ویرایشگرهای سبک برای فرم های وب جهت نگهداری محتوا استفاده کنید ، یا مایل به استفاده از کنترل نسخه برای ردیابی تغییرات در وب سایت خود هستید ، Jekyll می تواند آنچه را که برای تحقق اهداف خود نیاز دارید ، در اختیار شما قرار دهد.

در این آموزش ، ما یک سایت توسعه Jekyll را در Ubuntu 18.04 با محتوای تولید شده به صورت خودکار نصب خواهیم کرد. با نصب Jekyll ، می توانید یک سایت یا وبلاگ شخصی ایجاد کنید که در درجه اول با استفاده از فایل های علامت گذاری به عنوان و چند دستور Jekyll انجام می شود.

پیش نیازها

برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید:

• سرور مجازی Ubuntu 18.04 با یک کاربر غیر ریشه و دارای امتیازات sudo: می توانید در مورد نحوه تنظیم کاربر با این امتیازات در راهنمای ستاپ اولیه سرور مجازی برای اوبونتو 18.04 اطلاعات بیشتری کسب کنید.

پس از تکمیل این پیش نیاز ، آماده نصب Jekyll و متعلقات آن هستید.

مرحله 1 – نصب Jekyll

کار را با به روز کردن لیست بسته های خود شروع خواهیم کرد تا مطمئن شویم که جدیدترین اطلاعات را در مورد جدیدترین نسخه های بسته ها و متعلقات آنها داریم:

? $ sudo apt update

?

 

در مرحله بعد ، بیایید make  و build-essential را نصب کنیم تا کتابخانه های Jekyll کامپایل شود ، و برای Ruby و کتابخانه های توسعه آن استفاده شود. ما در اینجا پرچم y را در نظر میگیریم که yes را تایید کنیم ، یعنی می خواهیم بسته ها را نصب کنیم و از تأیید اعلان خودداری کنیم.

? $ sudo apt -y install make build-essential ruby ruby-dev

?

 

پس از اتمام این کار ، اجازه دهید دو خط به فایل .bashrc خود اضافه کنیم تا به مدیر بسته Ruby’s gem بگوییم که gems را در پوشه هوم کاربر ما قرار دهد. این کار از بروز مشکلات ناشی از نصب در سراسر سیستم جلوگیری می کند و در عین حال دستور jekyll  محلی را نیز به PATH کاربر اضافه می کند.

.bashrc را با یک ویرایشگر مورد نظر خود مانند nano باز کنید:

? $ nano .bashrc

?

در انتهای فایل خطوط زیر را اضافه کنید:

.bashrc

# Ruby exports

 

export GEM_HOME=$HOME/gems

export PATH=$HOME/gems/bin:$PATH

 

فایل را ذخیره کنید و ببندید. برای فعال کردن خروجی ها ، دستور زیر را اجرا کنید:

? $ source ~/.bashrc

?

پس از اتمام این کار ، از gem  برای نصب Jekyll خود و همچنین Bundler استفاده می کنیم که متعلقات gem  را مدیریت می کند. توجه داشته باشید که این کار ممکن است مدتی طول بکشد.

? $ gem install jekyll bundler

?

در مرحله بعد ، مطمئن خواهیم شد که تنظیمات فایروال ما امکان ترافیک از طریق سرور مجازی وب توسعه Jekyll را فراهم می کند.

مرحله 2 – باز کردن فایروال

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

? $ sudo ufw status

?

اگر با وضعیت غیرفعال مواجه شدید ، دستورات زیر را اجرا کنید.

ufw allow OpenSSH

sudo ufw enable

 

این کار باعث می شود فایروال شما در هنگام راه اندازی سیستم اجرا شود. ممکن است پیام های زیر را دریافت کنید (برای ادامه با ‘y ‘ تأیید کنید):

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y

Firewall is active and enabled on system startup

 

در مثال ما ، فقط SSH مجاز است:

Output

Status: active

To Action From

— —— —-

OpenSSH ALLOW Anywhere

OpenSSH (v6) ALLOW Anywhere (v6)

 

بسته به نحوه تنظیم فایروال تان ممکن است قوانین دیگری نیز در این زمینه داشته باشید یا اصلاً هیچ قانون فایروالی وجود نداشته باشد. از آنجا که فقط ترافیک SSH در این مورد مجاز است ، باید پورت 4000، پورت پیش فرض سرور مجازی توسعه Jekyll را باز کنیم:

? $ sudo ufw allow 4000

?

اکنون قوانین فایروال ما باید موارد زیر را شامل شود:

Output

To Action From

— —— —-

OpenSSH ALLOW Anywhere

4000 ALLOW Anywhere

OpenSSH (v6) ALLOW Anywhere (v6)

4000 (v6) ALLOW Anywhere (v6)

 

اکنون با نصب نرم افزار و باز کردن پورت لازم ، آماده ایجاد سایت توسعه هستیم.

مرحله 3 – ایجاد یک سایت توسعه جدید

از دیرکتوری اصلی خود، از دستور Jekyll’s new برای ایجاد داربست برای سایتی در زیر مجموعه ای به نام www استفاده می کنیم:

? $ cd ~

?

? $ jekyll new www

دستور jekyll new برای نصب متعلقات لازم ، bundle install را شروع می کند ، سپس به صورت خودکار یک تم با نام Minima را نصب می کند. پس از نصب موفق ، باید خروجی مانند زیر را دریافت کنید:

Output

New jekyll site installed in /home/sammy/www.

 

دستور new  در Jekyll دیرکتوری ها و فایل های زیر را ایجاد می کند:

??? 404.html

??? about.markdown

??? _config.yml

??? Gemfile

??? Gemfile.lock

??? index.markdown

??? _posts

? ??? 2020-05-29-welcome-to-jekyll.markdown

??? _site

 

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

نکته: tree یک دستور مفید برای بازرسی ساختار فایل ها و دیرکتوری ها از خط فرمان است. می توانید آن را با دستور زیر نصب کنید:

? $ sudo apt install tree

?

برای استفاده از آن ، cd را در دیرکتوری مورد نظر خود قرار دهید و tree را تایپ کنید و یا مسیر رسیدن به نقطه شروع را با tree /home/sammy/www ارائه کنید.

مرحله 4 – راه اندازی وب سرور مجازی Jekyll

سرور مجازی وب سبک Jekyll به منظور پشتیبانی از توسعه سایت با نظارت بر فایل ها در دیرکتوری و بازگرداندن خودکار سایت استاتیک هر زمان که تغییر ایجاد شود ، طراحی شده است.

از آنجا که ما در حال کار بر روی یک سرور مجازی از راه دور هستیم ، برای جستجوی سایت از دستگاه محلی خود ، آدرس هاست را مشخص خواهیم کرد. اگر در حال کار روی یک دستگاه محلی هستید ، می توانید jekyll service را بدون تنظیمات هاست اجرا کنید و با http: // localhost: 4000 وصل شوید.

? $ cd ~/www

?

? $ jekyll serve –host=203.0.113.0

?

Output of jekyll server

Configuration file: /home/sammy/www/_config.yml

Source: /home/sammy/www

Destination: /home/sammy/www/_site

Incremental build: disabled. Enable with –incremental

Generating…

done in 0.645 seconds.

Auto-regeneration: enabled for ‘/home/sammy/www’

Server address: http://203.0.113.0:4000/

Server running… press ctrl-c to stop.

?

هنگامی که jekyll serve را وادار به شروع کردیم ، Jekyll پیکربندی و فایل های محتوا را در یک دیرکتوری جدید ، _site تجزیه و شروع به ارائه محتوای موجود در آن پوشه _siteمیکند.

??? 404.html

??? about.markdown

??? _config.yml

??? Gemfile

??? Gemfile.lock

??? index.markdown

??? _posts

? ??? 2020-05-29-welcome-to-jekyll.markdown

??? _site

??? 404.html

??? about

? ??? index.html

??? assets

? ??? main.css

? ? ??? main.css.map

? ??? minima-social-icons.svg

??? feed.xml

??? index.html

??? jekyll

??? update

??? 2020

??? 05

??? 29

??? welcome-to-jekyll.html

 

همچنین شروع به مشاهده تغییرات دیرکتوری فعلی ، www ، میکند. به محض ذخیره تغییر در یک پست یا صفحه ، سایت استاتیک به طور خودکار بازسازی می شود ، بنابراین مهم نیست که مستقیماً روی فایل های پوشه _site تغییری ایجاد نکنید.

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

توجه: اگر در حال کار با یک سایت بزرگ هستید ، فعال کردن –incremental می تواند هر بار که تغییری به واسطه بازتولید فایل های تغییر یافته انجام میدهید، بازسازی را سرعت ببخشد اما ما برای این سایت کوچک به آن احتیاج نداریم. می توانید اطلاعات بیشتری در مورد این ویژگی آزمایشی در وب سایت Jekyll بدست آورید.

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

 

نتیجه

در این آموزش Jekyll را نصب کردیم و یک سایت توسعه با برخی از مطالب تولید شده به صورت خودکار ایجاد کردیم. می توانید با خواندن آموزش های دیگر ما در مورد این موضوع ، درباره Jekyll بیشتر بدانید:

• بررسی محتوای پیش فرض Jekyll

• نحوه کنترل URL ها و پیوندها در Jekyll

 

 

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

 

دسترسی از راه دور به برنامه GUI با Docker در اوبونتو 18.04

 

راه اندازی سایت توسعه Jekyll در اوبونتو 20.04

 

نحوه راه اندازی سایت توسعه Jekyll در اوبونتو 18.04

 

نحوه نصب و استفاده از Docker Compose در اوبونتو 20.04

 

نحوه اجرای چند نسخه PHP بر روی یک سرور با استفاده از Apache و PHP-FPM در CentOS 8

 

نحوه نصب و استفاده از TimescaleDB در Ubuntu 20.04

 

نحوه نصب و راه اندازی Laravel با Docker Compose در اوبونتو 20.04

 

 

 

 

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 

 

برچسب‌ها:Jekyll, Ruby, Ruby’s gem