مقدمه
با حرکت ابزارهای گسترش دهنده به سمت cloud ، پذیرش پلتفرم cloud IDE (محیط پیشرفت در هم تنیده) در حال رشد است. Cloud IDE از هر نوع دستگاه مدرن از طریق مرورگرهای وب قابل دسترسی است و برای سناریوهای همکاری در زمان واقعی مزایای بسیاری را ارائه می دهند. کار در یک Cloud IDE ، یک محیط توسعه و آزمایش یکپارچه را برای شما و تیم شما ایجاد می کند ، در عین حال ناسازگاری های پلتفرم را به حداقل می رساند. چون از طریق مرورگرهای وب قابل دسترسی است ، Cloud IDE ها از هر نوع دستگاه مدرن در دسترس هستند.
Eclipse Theia یک Cloud IDE قابل توسعه است که بر روی یک سرور مجازی از راه دور و از یک مرورگر وب قابل دسترسی است. از لحاظ بصری ، طراحی شده است که به طور مشابه با Microsoft Visual Studio Code دیده شود و با آن کار شود ، به این معنی که از بسیاری از زبان های برنامه نویسی پشتیبانی می کند ، دارای یک طرح انعطاف پذیر و یک ترمینال یکپارچه است. آنچه Eclipse Theia را از دیگر نرم افزارهای cloud IDE جدا می کند قابلیت توسعه آن است. می توان آن را با استفاده از افزونه های سفارشی اصلاح کرد ، که به شما امکان می دهد یک Cloud IDE متناسب با نیازهای خود تهیه کنید.
در این آموزش ،Eclipse Theia را با استفاده از Docker Compose ، یک ابزار ارکستر، به سرور مجازی Ubuntu 18.04 خود منتقل خواهید کرد. شما آن را در دامنه خود با استفاده از nginx-proxy ، یک سیستم خودکار برای Docker قرار می دهید که فرایند پیکربندی Nginx را ساده تر می کند تا به عنوان یک پروکسی معکوس برای یک container سرویس دهد. شما با استفاده از یک گواهی نامه Let Encrypt TLS رایگان ، که با استفاده از افزونه تخصصی آن تهیه می کنید ، آن را ایمن خواهید کرد. در پایان ، شما باید Eclipse Theia را روی سرور مجازی Ubuntu 18.04 خود از طریق HTTPS در دسترس داشته باشید و از کاربر بخواهید وارد شود.
پیش نیازها
⦁ یک سرور مجازی Ubuntu 18.04 با امتیازات اصلی و یک حساب ثانویه و غیر ریشه. می توانید با دنبال کردن راهنمای تنظیم اولیه سرور مجازی ما برای Ubuntu 18.04 ، این تنظیمات را انجام دهید. برای این آموزش کاربر غیر ریشه sammy است.
⦁ Docker نصب شده روی سرور مجازی شما. مرحله 1 و مرحله 2 نحوه نصب Docker را در اوبونتو 18.04 دنبال کنید. برای آشنایی با Docker ، به اکوسیستم Docker: مقدمه ای بر مؤلفه های مشترک مراجعه کنید.
⦁ Docker compose روی سرور مجازی شما نصب است. مرحله 1 نحوه نصب Docker Compose را در اوبونتو 18.04 دنبال کنید.
⦁ نام دامنه کاملاً ثبت شده. در این آموزش کلا از theia.your_domain استفاده می شود. می توانید نام دامنه را در Namecheap خریداری کنید ، یکی از آنها را به صورت رایگان در Freenom دریافت کنید ، یا از ثبت دامنه مورد نظر خود استفاده کنید.
⦁ یک ثبت A DNS با theia.your_domain که به آدرس IP عمومی سرور مجازی شما اشاره میکند. برای جزئیات بیشتر در مورد چگونگی اضافه کردن آنها می توانید این معرفی را در vpsgol DNS دنبال کنید.
مرحله 1 – استفاده از پروکسی nginx با Let’s Encrypt
در این بخش nginx-proxy و افزونه Let’s Encrypt را با استفاده از Docker Compose به کار میگیرید. این امر امکان تهیه و نوسازی مجوز خودکار TLS را فراهم می کند ، به طوری که هنگام استقرار Eclipse Theia از طریق HTTPS در دامنه شما قابل دسترسی خواهد بود.
برای اهداف این آموزش ، تمام فایل ها را تحت ~ / eclipse-theia ذخیره می کنید. با اجرای دستور زیر دایرکتوری ایجاد کنید:
⦁ $ mkdir ~/eclipse-theia
به آن مراجعه کنید:
⦁ $ cd ~/eclipse-theia
پیکربندی Docker Compose را برای nginx-proxy در فایلی به نام nginx-proxy-compose.yaml ذخیره خواهید کرد. آن را با استفاده از ویرایشگر متن خود ایجاد کنید:
⦁ $nano nginx-proxy-compose.yaml
خطوط زیر را اضافه کنید:
~/eclipse-theia/nginx-proxy-compose.yaml
version: ‘2’
services:
nginx-proxy:
restart: always
image: jwilder/nginx-proxy
ports:
– “80:80”
– “443:443”
volumes:
– “/etc/nginx/htpasswd:/etc/nginx/htpasswd”
– “/etc/nginx/vhost.d”
– “/usr/share/nginx/html”
– “/var/run/docker.sock:/tmp/docker.sock:ro”
– “/etc/nginx/certs”
letsencrypt-nginx-proxy-companion:
restart: always
image: jrcs/letsencrypt-nginx-proxy-companion
volumes:
– “/var/run/docker.sock:/var/run/docker.sock:ro”
volumes_from:
– “nginx-proxy”
در اینجا شما دو سرویس را تعریف می کنید که Docker Compose اجرا خواهد کرد ، nginx-proxy و همراه آن Let’s Encrypt. برای پروکسی ، شما jwilder / nginx-proxy را به عنوان تصویر مشخص میکنید، پورت های HTTP و HTTPS را نقشه برداری می کنید ، و حجم هایی را تعریف می کنید که در زمان اجرا در دسترس شما خواهد بود.
حجم ها دایرکتوری هایی در سرور مجازی شما هستند که سرویس تعریف شده به آنها دسترسی کامل خواهد داشت ، که بعداً برای تنظیم تأیید اعتبار کاربر از آنها استفاده خواهید کرد. برای دستیابی به این هدف ، از جلد اول لیست استفاده می کنید ، که دایرکتوری محلی / etc / nginx / htpasswd را به همان قسمت موجود در داخل آن نگاشت می کشد. در آن پوشه ، nginx-proxy انتظار دارد فایلی را به نام دامنه هدف پیدا کند ، که حاوی اطلاعات ورود به سیستم برای احراز هویت کاربر در قالب htpasswd (نام کاربری: hashed_password) است.
برای افزودن ، شما تصویر Docker را نامگذاری می کنید و با تعیین یک حجم امکان دسترسی به سوکت Docker را می دهید. سپس ، شما مشخص می کنید که این افزونه باید دسترسی به حجمهای تعریف شده برای nginx-proxy را ادامه دهد. هر دو سرویس
تنظیمات راه اندازی مجدد دارند ، که روی ALWAYS تنظیم میشود و به Docker دستور می دهد کانتینر را در صورت خرابی یا ریبوت سیستم مجدداً راه اندازی کند.
فایل را ذخیره کنید و ببندید.
پیکربندی را با اجرای دستور انجام دهید:
⦁ $ docker-compose -f nginx-proxy-compose.yaml up -d
در اینجا نام فایل nginx-proxy-compose.yaml را در پارامتر -f دستور docker-compose می گذارید ، که فایل را برای اجرا مشخص می کند. سپس ، شما فعل UP را می گذرانید که به آن دستور می دهد کانتینرها را اجرا کند. پرچم -d حالت جداشده را فعال می سازد ، به این معنی که Docker Compose کانتینرها را در پس زمینه اجرا می کند.
خروجی نهایی به شرح زیر خواهد بود:
Output
Creating network “eclipse-theia_default” with the default driver
Pulling nginx-proxy (jwilder/nginx-proxy:)…
latest: Pulling from jwilder/nginx-proxy
8d691f585fa8: Pull complete
5b07f4e08ad0: Pull complete
…
Digest: sha256:dfc0666b9747a6fc851f5fb9b03e65e957b34c95d9635b4b5d1d6b01104bde28
Status: Downloaded newer image for jwilder/nginx-proxy:latest
Pulling letsencrypt-nginx-proxy-companion (jrcs/letsencrypt-nginx-proxy-companion:)…
latest: Pulling from jrcs/letsencrypt-nginx-proxy-companion
89d9c30c1d48: Pull complete
668840c175f8: Pull complete
…
Digest: sha256:a8d369d84079a923fdec8ce2f85827917a15022b0dae9be73e6a0db03be95b5a
Status: Downloaded newer image for jrcs/letsencrypt-nginx-proxy-companion:latest
Creating eclipse-theia_nginx-proxy_1 … done
Creating eclipse-theia_letsencrypt-nginx-proxy-companion_1 … done
شما nginx-proxy و همراهش Let’s Encrypt را با استفاده از Docker Compose به کار گرفته اید. اکنون می توانید Eclipse Theia را در دامنه خود تنظیم کرده و آن را ایمن کنید.
مرحله 2 – به کارگیری Eclipse Theia دوکر شده
در این بخش ، فایلی را ایجاد خواهید کرد که شامل هر ترکیب ورود به سیستم مجاز است که کاربر باید آن را وارد کند. سپس Eclipse Theia را با استفاده از Docker Compose به سرور مجازی خود منتقل می کنید و با استفاده از nginx-proxy آن را در دامنه امن خود قرار می دهید.
همانطور که در مرحله قبل توضیح داده شد ، nginx-proxy انتظار دارد که ترکیب های ورود به سیستم در فایلی به نام دامنه در معرض ، با فرمت htpasswd قرار بگیرند و در دایرکتوری / etc / nginx / htpasswd در کانتینر ذخیره شوند. همانطور که در پیکربندی nginx-proxy مشخص کرده ایم ، دایرکتوری محلی که به دایرکتوری مجازی نگاشت می کند ، نیازی به یکسان بودن ندارد.
برای ایجاد ترکیبات ورود ، ابتدا با اجرای دستور زیر باید htpasswd را نصب کنید:
⦁ $ sudo apt install apache2-utils
پکیج apache2-utils حاوی برنامه htpasswd است.
دایرکتوری / etc / nginx / htpasswd را ایجاد کنید:
⦁ $ sudo mkdir -p /etc/nginx/htpasswd
فایلی ایجاد کنید که ورود به سیستم را برای دامنه شما ذخیره کند:
⦁ $ sudo touch /etc/nginx/htpasswd/theia.your_domain
به یاد داشته باشید theia.your_domain را با دامنه Eclipse Theia خود جایگزین کنید.
برای افزودن نام کاربری و رمز ورود ، دستور زیر را اجرا کنید:
⦁ $ sudo htpasswd /etc/nginx/htpasswd/theia.your_domain username
USERNAME را با نام کاربری که می خواهید اضافه کنید جایگزین کنید. از شما دوبار رمز عبور خواسته می شود. پس از ارائه آن ، htpasswd نام کاربری و جفت رمز عبور را در انتهای فایل اضافه می کند. می توانید این دستور را به هر تعداد ورود به سیستم که میخواهید تکرار کنید.
اکنون ، پیکربندی را برای استقرار Eclipse Theia ایجاد خواهید کرد. شما آن را در فایلی به نام eclipse-theia-compose.yaml ذخیره خواهید کرد. آن را با استفاده از ویرایشگر متن خود ایجاد کنید:
⦁ $ nano eclipse-theia-compose.yaml
خطوط زیر را اضافه کنید:
~/eclipse-theia/eclipse-theia-compose.yaml
version: ‘2.2’
services:
eclipse-theia:
restart: always
image: theiaide/theia:next
init: true
environment:
– VIRTUAL_HOST=theia.your_domain
– LETSENCRYPT_HOST=theia.your_domain
در این پیکربندی ، شما یک سرویس واحد به نام eclipse-theia با ریستارت برای ALWAYS و theiaide/theia:next به عنوان تصویر کانتینر تعریف می کنید: شما همچنین می توانید init را روی true تنظیم کنید تا به Docker دستور دهید هنگام اجرای Eclipse Theia در داخل کانتینر ، از init به عنوان مدیر اصلی فرآیند استفاده کند.
سپس دو متغیر محیط را در بخش environment مشخص می کنید: VIRTUAL_HOST و LETSENCRYPT_HOST. اولین مورد به پروکسی nginx منتقل می شود و به آن می گوید کانتینر چه دامنه ای را باید در معرض دید قرار دهید ، در حالی که دومی توسط افزونه Let’s Encrypt آن استفاده می شود و مشخص می کند که برای کدام دامنه درخواست گواهینامه TLS شود. مگر اینکه یک wildcard را به عنوان مقدار VIRTUAL_HOST تعیین کنید ، این دو مقدار باید یکسان باشند.
به یاد داشته باشید theia.your_domain را با دامنه مورد نظر خود جایگزین کنید ، سپس فایل را ذخیره کنید و ببندید. اکنون با اجرای دستور زیر Eclipse Theia را اجرا کنید:
⦁ $ docker-compose -f eclipse-theia-compose.yaml up -d
خروجی نهایی مشابه زیر به نظر می رسد:
Output
…
Pulling eclipse-theia (theiaide/theia:next)…
next: Pulling from theiaide/theia
63bc94deeb28: Pull complete
100db3e2539d: Pull complete
…
Digest: sha256:c36dff04e250f1ac52d13f6d6e15ab3e9b8cad9ad68aba0208312e0788ecb109
Status: Downloaded newer image for theiaide/theia:next
Creating eclipse-theia_eclipse-theia_1 … done
سپس در مرورگر خود به دامنه مورد استفاده برای Eclipse Theia بروید. مرورگر شما فوریتی را به شما نشان می دهد که از شما خواسته می شود وارد شوید. پس از ارائه اطلاعات صحیح ، شما وارد Eclipse Theia می شوید و بلافاصله رابط کاربری گرافیکی آن را مشاهده می کنید. در نوار آدرس
یک پدلاک را مشاهده خواهید کرد که نشان می دهد اتصال امن است. اگر این را بلافاصله مشاهده نکردید ، چند دقیقه صبر کنید تا گواهینامه های TLS ارائه شود ، سپس صفحه را مجدد بارگیری کنید.
اکنون که می توانید به راحتی به cloud IDE خود دسترسی داشته باشید ، در مرحله بعد شروع به استفاده از ویرایشگر خواهید کرد.
مرحله 3 – استفاده از رابط Eclipse Theia
در این بخش به بررسی برخی از ویژگی های رابط Eclipse Theia می پردازید.
در سمت چپ IDE ، یک ردیف عمودی از چهار دکمه وجود دارد که متداول ترین ویژگی های مورد استفاده را در یک صفحه جانبی باز می کند.
این نوار قابل تنظیم است بنابراین می توانید این نماها این نوار قابل سفارشی
پاسخ ها