vpsgoll



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

⦁ $ cd ~/thunderbird

اکنون با استفاده از nano یا ویرایشگر مورد نظر خود ، فایلی به نام supervisord.conf ایجاد و باز کنید:
⦁ $ nano ~/thunderbird/supervisord.conf

اکنون این اولین بلوک کد را به supervisord.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 ldquo;Thunderbirdrdquo; -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 است:
bull; زمان پاسخ سریعتر ، زیرا کشیدن GUI مستقیماً رویسرور مجازیVNC انجام می شود به جای اینکه روی یک بافر چارچوب واسطه (حافظه ای که محتویات صفحه را ذخیره می کند) انجام شود.
bull; تغییر اندازه خودکار صفحه ، که به برنامه ریموت اجازه می دهد تا به طور خودکار تغییر اندازه دهد تا با کلاینت (در این حالت ، پنجره مرورگر وب شما) متناسب باشد.
در صورت تمایل ، می توانید آرگومان را برای گزینه -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 ldquo;resize=remoterdquo;
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 ldquo;Thunderbirdrdquo; -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 ldquo;resize=remoterdquo;
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





/usr/bin/thunderbird




/usr/bin/x-terminal-emulator




/usr/bin/x-terminal-emulator -e htop


این فایل 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 amp;amp; \
go get github.com/geek911/easy-novnc@v1.1.0 amp;amp; \
go build -o /bin/easy-novnc github.com/geek911/easy-novnc

در مرحله اول ، شما در حال ساختن easy-novnc هستید. برای سادگی و صرفه جویی در فضا این کار در یک مرحله جداگانه انجام می شود - به زنجیره ابزار کلیGo در تصویر نهایی خود نیازی ندارید. به@ v1.1.0 در دستور build توجه داشته باشید. این تضمین می کند که نتیجه تعیین کننده است ، و از آن جهت مهم است که Docker نتیجه هر مرحله را ذخیره می کند. اگر نسخه صریح را مشخص نکرده اید ، Docker در زمان ساخت اولین تصویر، آخرین نسخه های easy-novnc را ارجاع می دهد. علاوه بر این ، بهتر است اطمینان حاصل کنید که یک نسخه خاص از easy-novnc را دانلود می کنید تا در صورت ایجاد تغییرات در رابط CLI آن را داشته باشید.
حالا بیایید مرحله دوم را ایجاد کنیم که به تصویر نهایی تبدیل می شود. در اینجا از Debian 9 (Buster) به عنوان تصویر پایه استفاده خواهید کرد. توجه داشته باشید که از آنجا که این کار در یک کانتینر در حال اجرا است ، صرف نظر از توزیع شما درسرور مجازیخود ، کار خواهد کرد.
سپس ، بلوک زیر را به Dockerfile خود اضافه کنید:
~/thunderbird/Dockerfile
.
FROM debian:buster
RUN apt-get update -y amp;amp; \
apt-get install -y -no-install-recommends openbox tigervnc-standalone-server supervisor gosu amp;amp; \
rm -rf /var/lib/apt/lists amp;amp; \
mkdir -p /usr/share/desktop-directories

در این دستورالعمل ، شما Debian 9 را به عنوان تصویر پایه خود نصب می کنید و سپس حداقل مورد نیاز برای اجرای برنامه های GUI را در کانتینر خود نصب می کنید. توجه داشته باشید که apt-get update را به عنوان بخشی از همان دستورالعمل ها برای جلوگیری از مشکلات ذخیره سازی در Docker ، اجرا کنید. برای صرفه جویی در فضا ، همچنین لیست های بسته را که بعد از آن دانلود شده است حذف می کنید (بسته های ذخیره شده به صورت پیش فرض حذف می شوند). همچنین /usr/share/desktop-directories را ایجاد می کنید زیرا برخی برنامه ها به دایرکتوری موجود بستگی دارند.
بیایید یک بلوک کد کوچک دیگر اضافه کنیم:
~/thunderbird/Dockerfile
.
RUN apt-get update -y amp;amp; \
apt-get install -y -no-install-recommends lxterminal nano wget openssh-client rsync ca-certificates xdg-utils htop tar xzip gzip bzip2 zip unzip amp;amp; \
rm -rf /var/lib/apt/lists

در این دستورالعمل ، شما در حال نصب برخی از نرم افزارها و بسته های عمومی مفید هستید. موارد قابل توجه در اینجا xd-utils (که دستورات پایه مورد استفاده برنامه های دسکتاپ را در لینوکس فراهم می کند) و ca-certificates (که گواهی های ریشه را نصب می کند تا به ما امکان دسترسی به سایت های HTTPS را بدهد) هستند.
اکنون می توانیم دستورالعمل برنامه اصلی را اضافه کنیم:
~/thunderbird/Dockerfile
.
RUN apt-get update -y amp;amp; \
apt-get install -y -no-install-recommends thunderbird amp;amp; \
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 900 app amp;amp; \
useradd -home-dir /data -shell /bin/bash -uid 900 -gid 900 app amp;amp; \
mkdir -p /data
VOLUME /data

برای اطمینان از یک UID / GID سازگار برای فایل ها ، صریحاً هر دو را روی 900 تنظیم می کنید. همچنین می توانید یک حجم را در دایرکتوری داده قرار دهید تا اطمینان حاصل شود که بین راه ریستارت ها همچنان ادامه دارد.
در آخر ، دستورالعمل هایی را برای راه اندازی همه موارد اضافه می کنیم:
~/thunderbird/Dockerfile
.
CMD [ldquo;shrdquo;, ldquo;-crdquo;, ldquo;chown app:app /data /dev/stdout amp;amp; exec gosu app supervisordrdquo;]

با تنظیم دستور پیش فرض روی 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 amp;amp; \
go get github.com/geek1011/easy-novnc@v1.1.0 amp;amp; \
go build -o /bin/easy-novnc github.com/geek1011/easy-novnc

FROM debian:buster

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

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

RUN apt-get update -y amp;amp; \
apt-get install -y -no-install-recommends thunderbird amp;amp; \
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 amp;amp; \
useradd -home-dir /data -shell /bin/bash -uid 1000 -gid 1000 app amp;amp; \
mkdir -p /data
VOLUME /data

CMD [ldquo;shrdquo;, ldquo;-crdquo;, ldquo;chown app:app /data /dev/stdout amp;amp; exec gosu app supervisordrdquo;]

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-app را بعد از گزینه -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 lsquo;module caddyrsquo; > go.mod amp;amp; \
echo lsquo;require github.com/caddyserver/caddy/v2 v2.0.0rsquo; >> go.mod amp;amp; \
echo lsquo;require github.com/mholt/caddy-webdav v0.0.0-20200523051447-bc5d19941ac3rsquo; >> go.mod
RUN echo lsquo;package mainrsquo; > caddy.go amp;amp; \
echo lsquo;import caddycmd ldquo;github.com/caddyserver/caddy/v2/cmdrdquo;lsquo; >> caddy.go amp;amp; \
echo lsquo;import _ ldquo;github.com/caddyserver/caddy/v2/modules/standardrdquo;lsquo; >> caddy.go amp;amp; \
echo lsquo;import _ ldquo;github.com/mholt/caddy-webdavrdquo;lsquo; >> caddy.go amp;amp; \
echo lsquo;func main() { caddycmd.Main() }rsquo; >> caddy.go
RUN go build -o /bin/caddy .

FROM debian:buster

RUN apt-get update -y amp;amp; \
apt-get install -y -no-install-recommends gosu amp;amp; \
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 amp;amp; \
useradd -home-dir /data -shell /bin/bash -uid 1000 -gid 1000 app amp;amp; \
mkdir -p /data
VOLUME /data

WORKDIR /data
CMD [ldquo;shrdquo;, ldquo;-crdquo;, ldquo;chown app:app /data amp;amp; exec gosu app /usr/local/bin/caddy run -adapter

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

اکنون بلوک کد زیر را به Caddyfile خود اضافه کنید:
~/caddy/Caddyfile
{
order webdav last
}
:8080 {
log
root * /data
reverse_proxy thunderbird-app:8080

handle /files/* {
uri strip_prefix /files
file_server browse
}
redir /files /files/

handle /webdav/* {
uri strip_prefix /webdav
webdav
}
redir /webdav /webdav/

basicauth /* {
{env.APP_USERNAME} {env.APP_PASSWORD_HASH}
}
}

این Caddyfile دیرکتوری اصلی را به کانتینر thunderbird-app که در مرحله 4 ایجاد کرده اید پروکسی میکند ( Docker آن را در IP صحیح تجزیه می کند). همچنین یک مرورگر فایل مبتنی بر وب فقط قابل خواندن در /files ارائه می کند و یکسرور مجازیWebDAV را روی / webdav اجرا می کند که می توانید برای دسترسی به فایل های خود به صورت محلی قرار دهید. نام کاربری و رمز عبور از متغیرهای محیط APP_USERNAME و APP_PASSWORD_HASH خوانده می شود.
اکنون کانتینر را بسازید:
⦁ $ docker build -t thunderbird-caddy .

Caddy v2 نیاز به hash رمز عبور مورد نظر شما دارد. دستور زیر را اجرا کنید و به یاد داشته باشید که mypass را با یک رمز عبور قوی به انتخاب خود جایگزین کنید:
⦁ $ docker run -rm -it thunderbird-caddy caddy hash-password -plaintext lsquo;mypassrsquo;

این دستور یک رشته کاراکتر را تولید می کند. این کار را برای تهیه دستور بعدی در کلیپ بورد خود کپی کنید.
اکنون آماده اجرای کانتینر هستید. اطمینان حاصل کنید که myuser را با نام کاربری مورد نظر خود جایگزین کنید و mypass-hash را با همان دستوری که در مرحله قبل اجرا کردید جایگزین نمایید. همچنین می توانید پورت (8080 در اینجا) را برای دسترسی بهسرور مجازیخود در پورت دیگری تغییر دهید:
⦁ $ docker run -detach -restart=always -volume=thunderbird-data:/data -net=thunderbird-net -name=thunderbird-web -env=APP_USERNAME=rdquo;myuserrdquo; -env=APP_PASSWORD_HASH=rdquo;mypass-hashrdquo; -publish=8080:8080 thunderbird-caddy

اکنون آماده دسترسی و آزمایش برنامه خود هستیم.
مرحله 6 - تست و مدیریت برنامه
بیایید به برنامه دسترسی پیدا کنیم و از عملکرد آن اطمینان حاصل نماییم.
ابتدا http: // your_server_ip: 8080 را در یک مرورگر وب باز کنید ، با اعتباراتی که قبلاً انتخاب کرده اید وارد شوید و روی connect کلیک کنید.

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

اگر بر روی دسکتاپ سیاه رنگ کلیک راست کنید، باید منویی را مشاهده کنید که به شما امکان دسترسی به یک ترمینال را می دهد. اگر کلیک وسط کنید ​​، باید لیستی از پنجره ها را ببینید.

اکنون http://your_server_ip:8080/files/ را در یک مرورگر وب باز کنید. باید بتوانید به فایل های خود دسترسی پیدا کنید.

به صورت اختیاری ، می توانید http: // your_server_ip: 8080 / webdav / خود را در یک کلاینت WebDAV نصب کنید. باید بتوانید مستقیماً به فایل های خود دسترسی پیدا کرده و آن ها را تغییر دهید. اگر از گزینه Map network drive در ویندوز اکسپلورر استفاده می کنید ، باید برای اضافه کردنHTTPS از یک پروکسی مع استفاده کنید یا HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel را روی DWORD:2 تنظیم کنید.
در هر صورت ، برنامه GUI بومی شما اکنون برای استفاده از راه دور آماده است.
نتیجه
اکنون با موفقیت یک کانتینر Docker را برای Thunderbird تنظیم کرده اید و سپس با استفاده از Caddy ، دسترسی به آن را از طریق یک مرورگر وب پیکربندی کرده اید. در صورت نیاز به بروزرسانی برنامه خود ، کانتینرها را متوقف کنید ، docker rm thunderbird-app thunderbird-web را اجرای کنید، تصاویر را مجدد بسازید و سپس دستورات docker را از مراحل قبلی بالا مجدداً اجرا کنید. از آنجا که در یک حجم ذخیره می شود ، داده های شما همچنان حفظ می شوند.
اگر می خواهید در مورد دستورات اساسی Docker اطلاعات بیشتری کسب کنید ، می توانید این لینک آموزش یا این صفحه را بخوانید. برای استفاده طولانی مدت تر ، میتوانید HTTPS را برای امنیت بیشتر فعال کنید (برای این کار به دامنه ای نیاز دارید).
علاوه بر این ، اگر بیش از یک برنامه نصب کرده اید ، می توانید به جای شروع هر کانتینر به صورت دستی ، از Docker Compose یا Kubernetes استفاده کنید. و به یاد داشته باشید ، این آموزش می تواند به عنوان پایه ای برای اجرای سایر برنامه های لینوکس رویسرور مجازیشما استفاده شود ، از جمله:
⦁ Wine ، یک لایه سازگاری برای اجرای برنامه های ویندوز در لینوکس.
⦁ GIMP ، ویرایشگر تصویر منبع باز.
⦁ Cutter ، پلتفرم مهندسی مع منبع باز.
این گزینه آخر پتانسیل بسیار مهمی را برای کانتینرایز و دسترسی از راه دور به برنامه های GUI ارائه می دهد. با استفاده از این ستاپ ، اکنون می توانید ازسرور مجازیبا توان محاسباتی بسیار بیشتر از آنچه به صورت محلی در دسترس دارید برای اجرای ابزارهای منبع فشرده مانند Cutter استفاده کنید.

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

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

نحوه راه اندازی Nginx با پشتیبانی HTTP / 2 در اوبونتو .04

چگونه می توان پلتفرم Cloud IDE کد سرور را روی Debian 10 تنظیم كرد

نحوه دسترسی از راه دور به برنامه های GUI با استفاده از Docker و Caddy در Debian 10

چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7 تنظیم كرد

نحوه دسترسی از راه دور به برنامه های GUI با استفاده از Docker و Caddy در اوبونتو 20.04

نحوه دسترسی از راه دور به برنامه های GUI با استفاده از Docker و Caddy در Debian 9

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

برچسب ها:


مقدمه
یکی از قابلیت هایی که تقریباً همهسرورهاباید از آن برخوردار باشند ، قدرت ارسال و دریافت اطلاعات به دستگاههای دیگر شبکه است. اگرچه مردم به طور کلیسرورهارا به عنوان تأمین کننده محتوا در نظر می گیرند (به هر حال از اسم آن نیز مشخص است) ،اما آنها نیز به دلایل زیادی باید توانایی دستیابی به محتوا را داشته باشند.
در حالی که اکثر بسته های لینوکس از طریق منشا توزیع آنها موجود است و با ابزارهای استاندارد مدیریت بسته قابل دانلود میباشد ، سایر اطلاعات و فایل ها باید از مکانیزم های دیگر استفاده کنند. در این راهنما ، ما در مورد برخی از متداول ترین روش های دریافت فایل ها و داده ها رویسرورلینوکس شما بحث خواهیم کرد.
ما عمدتاً از نمونه ای از اوبونتو 14.04VPSبرای اجرای این لیست استفاده خواهیم کرد ، اما شما تقریباً می توانید هر یک از این نرم افزارها را در سایر دایرکتوری ها و نسخه های موجود نصب و استفاده کنید.
دریافت داده ها و نرم افزار از منشا
شاید متداول ترین روش دریافت بسته ها و نرم افزارها رویسرور مجازیشما استفاده از مبدا باشد. مبداها در این زمینه در واقع می توانند به موارد نسبتاً متفاوتی اشاره کنند.
این ممکن است به مجموعه های بزرگی از نرم افزارهای موجود اشاره داشته باشد. که شامل نرم افزار کامپایل شده و آماده نصب است که بطور کلی آزمایش و پیکربندی شده است تا برای توزیع استفاده شود. مبداهای اصلی نیز وجود دارد که شامل کلیه فایل های لازم برای ساخت یک پروژه نرم افزاری خاص است.
ما در این بخش هر دو نوع را مرور خواهیم کرد.
نصب نرم افزار از یک منشا توزیع منظم
روش استاندارد نصب نرم افزار برایسرور لینوکساستفاده از package manager است. package manager برای پیوستن به مجموعه ای ازسرورهایپیکربندی شده که حاوی منشایی از بسته هایی است که در سیستم های سازگار package و مورد آزمایش قرار گرفته اند پیکربندی شده است.

توزیع های لینوکس برای انجام این هدف از قالب های مختلف بسته بندی و package manager استفاده می کنند.
محبوب ترین قالب های package فرمت بسته بندی .deb است که توسط توزیع های Debian و Ubuntu و مشتقات آنها و فرمت بسته بندی .rpm که بطور سنتی توسط RedHat ، CentOS و Fedora و توزیع های مرتبط استفاده می شود ، مورد استفاده قرار می گیرد. برخی سیستم ها از قالب های مختلفpackage استفاده می کنند. به عنوان مثال Arch Linux ، از بسته های ساده .tar.xz استفاده می کند.

به طور کلی ، توزیع هایی با استفاده از بسته های .deb تمایل دارند از مجموعه ابزارهای package manager استفاده کنند. با کلیک کردن روی این لینک می توانید در مورد نحوه استفاده از apt برای package manager.deb اطلاعات کسب کنید.
به همین ترتیب ، آن توزیع ها با استفاده از قالب بسته .rpm معمولاً با package manager yum اجرا میشوند. می توانید نحوه استفاده از yum را از منابع متنوعی بیاموزید که چند نمونه از آنها در این لینک ها موجود است.
از آنجایی که Arch Linux این الگوها را دنبال نمی کند و از قالب package خود استفاده می کند ، برای مدیریت این قابلیت نیز package manager خود را با نام Pacman توسعه داده است. Arch wiki دارای پیجی عالی در مورد نحوه استفاده از pacman است که می توانید در اینجا بیابید.
نحوه استفاده از بایگانی بسته های شخصی
یکی از روشهای دستیابی به نرم افزاری که برای دستگاه های اوبونتو در دسترس است استفاده از آرشیو بسته های شخصی یا PPA است. اگرچه این روش دریافت نرم افزار به اکثر توزیع ها مربوط نیست ، اما قابلیت انعطاف پذیری را برای سرورهای اوبونتو فراهم می کند.
PPA در واقع مبدایی است که معمولاً روی یک یا چند بسته خاص متمرکز است که توسط شخص یا تیمی خارج از کانالهای رسمی اوبونتو نگهداری می شود. این به شما امکان می دهد تا از PPA به عنوان منبع جداگانه ای برای package manager خود استفاده کنید ، و نرم افزار ساخته شده و ذخیره شده در آنجا برای نصب یکپارچه به همراه سایر بسته های شما در دسترس خواهد بود.
همچنین مزایای بارزی دارد. می توانید نسخه های جدیدتری از نرم افزار را بین نسخه های رسمی اوبونتو دریافت کنید، که به طور معمول نسخه های قدیمی بیشتر بسته ها را به مدت 6 ماه به طور همزمان در اختیار شما قرار میدهد. همچنین به شما این امکان را می دهند که به راحتی به نرم افزاری دسترسی پیدا کنید که به طور رسمی توسط تیم اوبونتو package نشده باشد ، به شرطی که یک گروه مستقل برای تهیه بسته ها از آن استفاده کرده باشد.
بزرگترین مزیت نسبت به کامپایل از منبع این است که این بسته ها از طریق ابزارهای package معمولی مدیریت می شوند. این بدان معناست که آنها می توانند به طور مرتب به روزرسانی دریافت کرده و به ایستم عمومی بسته وصل شوند ، که به آنها امکان می دهد از ویژگی هایی مانند میزان وابستگی استفاده کنند.
با این حال ، معایبی نیز برای این رویکرد وجود دارد. اولا شما باید اعتماد زیادی به نگهدارندگان PPA که از آن استفاده می کنید ، داشته باشید. اگرچه ممکن است دلیل خوبی برای اعتماد به آن ها در اوبونتو داشته باشید ، اما باید از خود بپرسید که آیا PPA مورد علاقه شما توسط یک منبع قابل اطمینان تهیه شده است یا خیر. این احتمال وجود دارد که حتی اگر نگهدارنده مخرب نباشد ، ممکن است ایمن ترین نباشند و ناخودآگاه بسته های خطرناک ارائه دهند.
نکته دیگری که باید در نظر داشته باشید طول عمر این PPA ها است. آیا اگر ناگهان ساپورت این منبع از بین برود ، برنامه عملی خواهید داشت؟ آیا در صورت اتمام پشتیبانی از package از طریق کانال های پیش فرض توزیع، وقتی برای نظارت بر آن دارید؟
قبل از شروع کار، ممکن است مجبور شوید پکیجی را به سیستم خود اضافه کنید تا بتوانید به راحتی PPA ها را مدیریت کنید. این کار با انتشار متفاوت است ، اما باید بتوانید یکی از دو گزینه زیر را استفاده کنید:
sudo apt-get update
sudo apt-get install python-software-properties # For Ubuntu 12.04 and lower
sudo apt-get install software-properties-common # For Ubuntu versions > 12.04
پس از آن ، می توانید با تایپ کردن چیزی شبیه به این ، یک PPA اضافه کنید:
sudo add-apt-repository ppa:PPA_name

سپس می خواهید شاخص بسته خود را به روز کنید تا اطلاعات را از PPA جدید خود بیرون بیاورید. سپس می توانید هر نرم افزار جدیدی را که PPA ارائه می دهد نصب کنید:
sudo apt-get update
sudo apt-get install new_package

مخازن Git
نوع دیگری از مخازن که احتمالاً هنگام کار با نرم افزار لینوکس با آنها روبرو می شوید برای مدیریت فایلهای سورس نرم افزار استفاده می شود. به طور کلی ، به آن ها مخازن git میگویند.
اگر فایل های مورد علاقه شما در یک مخزن git یا در Git هاست شده مانند GitHub ، Bitbucket ، private GitLab و غیره میزبانی می شوند ، می توانید به راحتی فایل ها را با استفاده از دستورات git معمولی پیاده کنید.
اطمینان حاصل کنید که سرور شما برای شروع کار نصب کرده است:
sudo apt-get update
sudo apt-get install git

پس از آن ، می توانید با استفاده از اطلاعات ارائه شده در سایت ، به سادگی به دایرکتوری که می خواهید پروژه را نگه دارید بروید و مخزن را کلون کنید. به عنوان مثال ، در GitHub ، می توانید URL مخزن پروژه را در سمت راست دریافت کنید
می توانید URL را کپی کرده و بعد از دستور کلون ، آن را در بخش ترمینال خود قرار دهید:
git clone https://github.com/user/project.git

این پروژه را به طور کامل در فهرست اصلی فعلی شما کلون می کند.
منابع عمومی وب
در حالی که مدیریت نرم افزار با مخازن (repository) آسان است و روشی عالی برای ردیابی نرم افزار و تغییرات ایجاد می کند ، اما همیشه اعتماد به این روش ها به دلایل مختلف امکان پذیر نیست. همه نرم افزارها در repository نگهداری نمی شوند و بسته های نرم افزاری تنها نوع داده ای نیست که احتمالاً درسرور مجازیخود می خواهید.
برای محتوای غیر repository ابزارهای دیگری داریم که می توانند به ما کمک کنند. ما در ادامه چند روش ماهرانه و غیر حرفه ای را مورد بحث قرار خواهیم داد.
دانلود و انتقال از راه دور
شاید نحوه دریافت داده رویسرورشما که طبیعی ترین حالت باشد ، دانلود داده ها در رایانه تان و سپس بارگذاری آن در سایت باشد. از آنجا که احتمالاً در حال بارگذاری محتوای سفارشی در سایت خود هستید ، این روش اگر دقیقا عالی نباشد ، اما آسان است.
هر گونه محتوا ، فایل یا بسته ای را که می خواهید در سایت خود داشته باشید می توانید با استفاده از یک مرورگر وب عادی روی رایانه دانلود کنید. اطمینان حاصل کنید که اگر در حال دریافت نرم افزاری هستید ، نسخه صحیح را برای مطابقت با توزیع ، انتشار و معماری سرور خود دانلود می کنید (اگر گزینه های دانلود متمایز است).
پس از آن ، می توانید به راحتی این فایل ها را بهسرورخود منتقل کنید. روش پیشنهادی از طریق اتصال sftp است که به شما امکان می دهد داده ها را به راحتی انتقال دهید. شما می توانید sftp را از خط دستوری استفاده کنید ، همانطور که در این راهنما نشان می دهیم ، یا می توانید از کلاینت FTP با قابلیت های sftp استفاده کنید ، همانطور که در این راهنما در مورد استفاده از FileZilla با sftp نشان می دهیم.
این احتمالاً انعطاف پذیرترین روش برای به دست آوردن محتوا رویسرور مجازیشماست ، زیرا به شما امکان می دهد علاوه بر فایل هایی که در وب به آنها دسترسی دارید ، فایل هایی را که ایجاد کرده اید نیز انتقال دهید.
مرورگرهای وب مبتنی بر کنسول
روش جالب دیگر برای دریافت محتوا به سیستم شما استفاده از یک مرورگر وب از درونسروراست.
در حالی که می توانیدسرورهاینمایشگر گرافیکی و مرورگرهای معمولی را بر رویسرورخود نصب کنید ، این تقریباً همیشه کار اضافی و غیرضروری است. راه دیگر استفاده از مرورگرهای وب مبتنی بر کنسول است که به شما امکان می دهد از وب سایتی بازدید کنید که فقط با یک خروجی متنی نمایش داده می شود.
امکانات نسبتا کمی برای مرورگرهای وب مبتنی بر کنسول وجود دارد.
lynx
مرورگر lynx قدیمی ترین مرورگر وب است که هنوز هم به طور فعال در حال توسعه و استفاده است. استفاده از آن نیز آسان است. در اصل ، استفاده از کلیدهای جهت دار UP و DOWN به شما امکان می دهد تا به راحتی بین پیوندها در طول صفحه پرش کنید. برای دنبال کردن یک لینک ، هنگام ورود آن هایلایت شد ، ENTER یا فلش RIGHT را فشار دهید.
این گزینه ممکن است به طور پیش فرض در سیستم شما در دسترس نباشد ، اما می توانید با تایپ کردن چیزی مانند دستور زیر ، آن را به راحتی نصب کنید:
sudo apt-get update
sudo apt-get install lynx

lynx می تواند مدیریت کوکی ها و بوک مارک ها را کنترل کند. اگر ترمینال شما از آن پشتیبانی کند می تواند خروجی رنگی ارائه دهد. به طور کلی می تواند برای هر وب سایتی که به چیزهایی مانند جاوا اسکریپت وابسته نیست ، مورد استفاده قرار گیرد تا عملکرد واقعی را ارائه دهد.
به عنوان مثال ، در اینجا می توانید یک صفحه نمونه حساب DigitalOcean را مشاهده کنید که در مرورگر lynx ارائه شده است:
Droplets

Create Droplet
* Logged in!
Image Name IP Address Status Memory Disk Region
irssi .24154 Active 512MB 20GB nyc1
try 192170.xx Active 4GB 60GB nyc2
snmp .170.xx.123 Active 4GB 60GB nyc2
tugboat 192162. Active 4GB 60GB nyc2

همانطور که مشاهده می کنید ، این کار تقریباً قابل استفاده است.
پیوندها
این مرورگر همچنین در مرور وب از خط دستوری بسیار عالی عمل میکند. یکی از ویژگی های مرورگرlinks نسبت به چیزی شبیه به lynx این است که شامل یک سیستم منویی شبیه به یک مرورگر قدیمی است که با ضربه زدن به کلید ESC می توان به آن دسترسی داشت.
اگر این مرورگر روی سیستم تان موجود نباشد، می توانید با تایپ کردن دستور زیر آن را دریافت کنید:
sudo apt-get update
sudo apt-get install links

در حالی که مرورگر links در پیکربندی پیش فرض خود متن رنگی را ارائه نمی دهند ، و تشخیص لینک هایپر را کمی دشوارتر می کند ، اما از بسیاری از ویژگی های ncurses استفاده می کند تا رندر نسبتاً زیبا به نظر برسد. قرار دادن یک سایت گرافیکی در متن همیشه باعث ایجاد مشکلاتی در قالب بندی می شود ، اما links کار بسیار زیبایی را انجام می دهند:
Droplets

Create Droplet

Image Name IP Address Status Memory Disk Region
irssi .24154 Active 512MB 20GB nyc1
try 192170.xx Active 4GB 60GB nyc2
snmp .170.xx.123 Active 4GB 60GB nyc2
tugboat 192162. Active 4GB 60GB nyc2

ویژگی دیگری که ممکن است در تصمیم شما تأثیر بگذارد این است که links بصورت پیش فرض از پشتیبانی ماوس استفاده می کنند ، بدین معنی که می توانید بر روی پیوندها در پنجره ترمینال خود کلیک کنید دقیقاً مانند آنچه در مرورگر معمولی خود دارید.
elinks
یک انشعاب محبوب مرورگر elinks است. این انشعاب در سال 2001 شروع به کار کرد و مجموعه ای از ویژگی های گسترده را شامل می شود در حالی که از مکانیسم های ارائه دهنده links و موتور اصلی استفاده می کند.
برای به دست آوردن elinks در دستگاه اوبونتو ، می توانید تایپ کنید:
sudo apt-get update
sudo apt-get install elinks

برخی از ویژگی هایی که از elinks نسبت به links به دست می آورید عبارتند از رمز عبور و مدیریت فرم ، مرور تب بندی شده ، پشتیبانی جزئی از جاوا اسکریپت و پشتیبانی پروتکل bittorrent و IPv6. اینها ممکن است به بهای کاهش سرعت حاصل شوند ، اما به احتمال زیاد این مورد چندان قابل توجه نخواهد بود.
w3m
یکی دیگر از مرورگرهای متنی فول امکانات میباشد که ممکن است با همان روشی که از یک مرورگر گرافیکی استفاده می کنید ، استفاده از آن ساده تر باشد. اکثر مرورگرهای دیگر در این لیست به شما امکان می دهند که بین پیوندها پرش کنید ، اما مرور خود صفحه دشوار است. با این حال مرورگر w3m از TAB ها برای حرکت بین پیوندها و کلیدهای جهت دار استفاده می کند تا مکان نما را بطور مستقل برای پیمایش صفحه حرکت دهد.
در حالی که بسیاری از سیستم ها به طور پیش فرض w3m را شامل می شوند ، اگرسرورشما این مرورگر را ندارد ، می توانید با تایپ کردن این دستور آن را اضافه کنید:
sudo apt-get update
sudo apt-get install w3m

یکی دیگر از مزیت های این مرورگر که مورد توجه برخی افراد قرار می گیرد این است که می تواند از دستورات کلیدی شبیه به vi استفاده کند. به عنوان مثال ، می توانید مکان نما را با تایپ کردن ، ldquo;jrdquo; ، ldquo;krdquo; ، ldquo;lrdquo; و ldquo;hrdquo; حرکت دهید.
دانلود برنامه های کاربردی
اگرچه گاهی اوقات می توانید از خود سرور مجازی سرچ کنید، اما بیشتر اوقات متوجه می شوید که مرور از یک مرورگر وب گرافیکی در دستگاه تان کارآمد تر است و به شما امکان می دهد صفحات را به شیوه ای مطمئن تر رندر بگیرید.
به همین دلیل بسیاری از افراد، وب را در دستگاه خود مرور می کنند و سپس لینک های دانلود را در پنجره ترمینال خود پیست می کنند تا از ابزارهای دانلود استفاده کنند.
wget
ابزار wget گزینه ای عالی برای دریافت سریع صفحات یا دانلود از وب سایت است.
اگر wget را در حال حاضر در سرور Ubuntu خود ندارید ، می توانید با تایپ کردن این دستور آن را به دست آورید:
sudo apt-get update
sudo apt-get install wget

پس از آن ، دانلود یک فایل از یک منبع از راه دور به آسانی پیست کردن URL پس از نام دستوری مانند این است:
wget www.example.com

اگر در یک وب سایت عمومی به این موضوع اشاره کنید ، فهرست یا صفحه اصلی را در یک فایل در دیرکتوری محلی دانلود می کند. اگر آن را به سمت یک فایل هدایت کنید ، در عوض فایل را دانلود می کند.
معمولاً فرآیند، استفاده از مرورگر موجود در رایانه خانگی شما برای یافتن فایلی در اینترنت است که به آن علاقه دارید ، بر روی لینک دانلود راست کلیک کنید و گزینه ای مشابه rdquo; کپی کردن محل لینک rdquo; را انتخاب کنید. سپس با دستور فوق از این URL استفاده می کنید.
اگر دانلود شما قطع شود، در واقع می توانید از فلگ -c استفاده کنید که در صورت یافتن یک فایل ناقص در فهرست موجود، دانلود جزئی از سر گرفته می شود
wget -c www.example.com

دستور wget که می تواند کوکی ها را اداره کند ، نمونه خوبی برای اسکریپت است و می تواند به صورت بازگشتی کل وب سایت ها را در قالب اصلی خود دانلود کند.
curl
ابزار curl نیز برای این نوع عملیات گزینه مناسبی است. در حالی که wget معمولاً با تولید فایل ها کار می کند ، curl به طور پیش فرض از خروجی استاندارد استفاده می کند، و آن را برای اسکریپت ها و پایپ ها بسیار مفید می کند. همچنین از تعداد زیادی پروتکل پشتیبانی می کند و می تواند روشهای احراز هویت HTTP بیشتری را نسبت به wget انجام دهد.
در حالی که بسیاری از سیستم ها به صورت پیش فرض curl را نصب می کنند، اگر دستگاه Ubuntu شما نصب نکرده باشد ، می توانید تایپ کنید:
sudo apt-get update
sudo apt-get install curl

در حالی که curl به طور عادی از پایپ ها استفاده می کند ، می توانید به راحتی آن را تنظیم کنید که خروجی خود را در یک فایل نیز ذخیره کند. اگر در حال دانلود فایل ها برایسرورخود هستید ، احتمالاً این چیزی است که می خواهید. برای دانلود یک فایل و خروجی آن در یک فایل با همین نام ، تایپ کنید:
curl -O www.example.com/index.html

ما باید یک فایل را مشخص کنیم زیرا بدین ترتیب curl می داند که چه چیزی را به نام فایل محلی بنامد.
اگر بخواهیم نام محلی را انتخاب کنیم ، و اگر به دنبال فهرست دیرکتوری یک سایت هستیم ، دیگر نیازی نیست که آن را به یک فایل خاص اشاره کنیم. در عوض ، می توانیم به طور اختیاری به یک مکان مورد نظر اشاره کنیم و هر آنچه که این فهرست پیکربندی شده باید برگرداند، در فایل انتخاب شده ما قرار می گیرد
curl -o file.html www.example.com

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

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

چگونه می توان با کتابخانه (library) درخواست ها در پایتون شروع به کار کرد

نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو .04

نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose در اوبونتو .04

نحوه بهینه سازی درخواست های MySQL با ذخیره سازی ProxySQL در اوبونتو 16.04

نحوه استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو .04

چگونه می توان پلتفرم كد سرور Cloud IDE را در اوبونتو .04 تنظیم كرد (شروع سریع)

چگونه می توان از رول های ansible برای انتزاع محیط زیرساختی خود استفاده کرد

نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو .04

نحوه تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه می توان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو .4 تنظیم کرد

نحوه استقرار و مدیریت DNS با استفاده از DNSControl در Debian 10

چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7 تنظیم كرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو .04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

کلمات کلیدی خرید سرور

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

برچسب ها:


مقدمه
هنگامی که شروع به کار با چندینسروراز راه دور می کنید، تعداد جلسات ترمینال که باز کرده اید می تواند بیش از حد شود. بارها و بارها اتفاق می افتد، مثلاً هنگام کامپایل کد ، که پایانه شما توسط یک فرآیند طولانی مدت گرفته می شود. برای پی بردن به این مسئله و جلوگیری از اتصال به بخش جدید SSH برای ادامه کار ،multiplexer های ترمینال اختراع شدند.
multiplexerهای ترمینال به شما امکان می دهد چندین ویندوز ترمینال را در یک بخش ldquo;مسترrdquo; مدیریت کنید. آنها به شما این امکان را می دهند که به راحتی با ویندوز به گونه ای ارتباط برقرار کنید که تا حدودی شبیه به روشی است که یک مدیر پنجره گرافیکی انجام می دهد. دو ابزار مشهور برای این GNUscreen و tmux multiplexer است.
در این راهنما ، رویکرد متفاوتی خواهیم گفت. در حالی که دو گزینه دیگر برای بسیاری از افراد خوب است ، آنها وظیفه سنگین تری از آنچه اکثر کاربران به آن نیاز دارند ، به عهده دارند و ارائه خوبی نیز به همراه ندارد. برای پرداختن به این مسائل ، ما به شما نشان خواهیم داد که چگونه می توانید از ترکیبی از dvtm ،یک مدیر پایانه مجازی پویا، که مدیریت Window را بر عهده دارد ، و از dtach ابزاری که به شما امکان می دهد session ها را برای ماندگاری از هم جدا کنید، استفاده نمایید. این یک راه حل بسیار راحت تر است و برای بعضی از افراد مناسب تر خواهد بود.
ما نصب و استفاده از این موارد را به طور مثال در Ubuntu 12.04 VPS پوشش خواهیم داد ، اما اکثر نسخه ها باید با کمی اصلاح بتوانند از این مراحل استفاده کنند.
کامپوننت ها را نصب کنید
اولین قدم برای انجام بیشتر کارها روی یکسرور مجازی لینوکساطمینان از ابزارهای مورد نیاز خود میباشد.
در مثال ما ، باید dtach و dvtm را دانلود و نصب کنیم. خوشبختانه مخازن Ubuntu 12.04 هر دوی این نرم افزارها را در دسترس دارد. باید شاخص پکیج محلی خود را ریفرش کنیم و سپس بتوانیم آنچه را که لازم داریم نصب کنیم:
sudo apt-get update
sudo apt-get install dvtm dtach

این تمام چیزی است که ما نیاز داریم اکنون می توانیم به بررسی چگونگی عملکرد هر یک از این ابزارها بپردازیم.
نحوه استفاده از dvtm Terminal Manager
dvtm Terminal Manager یک مدیر پنجره است که سعی در تقلید برخی از قابلیت ها و خصوصیاتی دارد که مورد علاقه کاربران مدیران پنجره های گرافیکی مانند awesomewm ، dwm ، i3 ، xmonad و غیره است که به شما امکان می دهد تا ویندوز را به راحتی ساماندهی کنید و فضای نمایشگر خود را متناسب با نیازهای تان تنظیم نمایید.

برای شروع یک بخش dvtm ، شما فقط باید آن را از خط فرمان فراخوانی کنید:
dvtm
─[demouser@dvtm: ~ #1]────────────────────────────────────────────────
demouser@dvtm:~#

همانطور که می بینید ، اکنون شما یک session(بخش) ترمینال جدید دارید ، اما یک header بالای آن وجود دارد. این هدر در واقع نوار عنوان Window است. و به شما Window ای که مدیریت میکند و شماره Window را اطلاع میدهد.
اولین چیزی که باید بدانید این است که تمام دستورات dvtm با دنباله کلید ldquo;modrdquo; شروع می شوند. هنگامی که شما این دنباله را می زنید ، به dvtm سیگنال می دهد که باید شروع به گوش دادن کرده و فشار دادن کلید بعدی را رهگیری کند.
به طور پیش فرض ، دنباله mod ldquo;CTRL-grdquo; است. بنابراین هر یک از دستورات برای dvtm فرمت زیر را دارند:
CTRL-g [keypress]
مدیریت اولیه Window
بریم سر اصل مطلب و کار را با ویندوز چندگانه شروع کنیم. اولین توالی که یاد خواهید گرفت به شما امکان می دهد یک پنجره دوم ایجاد کنید:
CTRL-g c

شما باید کلید ldquo;کنترلrdquo; را نگه دارید ، کلید ldquo;grdquo; را بزنید ، و سپس هر دو کلید را آزاد کرده و ldquo;crdquo; را فشار دهید. خواهید دید که محیط شما به صورت عمودی مثل این تقسیم شده است:
──[demouser@dvtm: ~ | #1]──────────┬──[demouser@dvtm: ~ | #2]──────────
demouser@dvtm:~# │demouser@dvtm:~#

همانطور که می بینید ، اکنون دو Window دارید! اگر چند کاراکتر تایپ کنید ، خواهید دید که آنها در یکی از ویندوها ظاهر می شوند. برای اینکه بدانید کدام Window فو دارد، تایپ کنید:
CTRL-g j # Cycle forward through windows
CTRL-g k # Cycle backward through windows

اگر می خواهید به یک Window خاص پرش کنید ، می توانید با ارجاع به شماره Window ، این کار را انجام دهید:
CTRL-g [window #]

به عنوان مثال ، برای انتقال فو به 3 Window ، می توانیم CTRL-g 3 را تایپ کنیم.
برای از بین بردن پنجره ای که فو دارد ، تایپ کنید:
CTRL-g x
برای از بین بردن تمام ویندوها و پایان بخش dvtm ، تایپ کنید:
CTRL-g q

تنظیم چیدمان کاشی کاری
با ایجاد ویندوزهای بیشتر، متوجه خواهید شد که به طور پیش فرض ، یک ناحیه بزرگتر میماند ، در حالی که ویندوهای اضافی در یک طرف انباشته می شوند. این به دلیل چیدمان به اصطلاح کاشی کاری است.
به طور پیش فرض ، پنجره ها در طرح کاشی که ldquo;پشته عمودیrdquo; نام دارد، قرار میگیرند. این طرح یک پنجره ldquo;مسترrdquo; ایجاد می کند ، و تمام Window های دیگر فضای باقی مانده را تقسیم می کنند.
گزینه های طرح بندی دیگری در دسترس است. چهار یا پنج ویندوز ایجاد کنید و برخی از برنامه ها را در برخی از ویندوز ها شروع کنید تا بتوانید آنها را از هم جدا کنید.
برای چرخش بین چیدمان ها، از این توالی استفاده کنید:
CTRL-g [SPACE]
به طور پیش فرض ، طرح هایی که می توانید در آن ها بچرخید ، به ترتیب عبارتند از:
پشته عمودی: طرح پیش فرض. پنجره اصلی در سمت چپ است ، تمام ویندوهای دیگر فضای سمت راست را به اشتراک می گذارند.
شبکه: همه Window ها تلاش می کنند فضای مساوی را در ناحیه کسب کنند. هیچ پنجره ی مستر مربوطه ای وجود ندارد (از نظر فنی فضای فوقانی سمت چپ است).
پشته پایین: Window اصلی در نیمه بالای صفحه قرار دارد. Window های باقی مانده نیمه پایینی را اشغال می کنند.
تمام صفحه: Window متمرکز فعلی را حداکثر می کند. می توانید به طور معمول از بین هر Window در یک حالت حداکثر چرخش کنید.
می توانید با کلید ldquo;spacerdquo; چرخه را از میان این طرح بندی ها ادامه دهید ، اما همچنین می توانید با استفاده از توالی های کلیدی خاص ، آنها را به صورت جداگانه ارجاع دهید:
CTRL-g t # Switch to vertical stack
CTRL-g g # Switch to grid
CTRL-g b # Switch to bottom stack
CTRL-g m # Switch to fullscreen
برای تبدیل Window متمرکز شده فعلی به Window اصلی جدید ، تایپ کنید:
CTRL-g [ENTER]
اگر از این کار در Window مستر فعلی استفاده کمینید ، آن را به سادگی با Window بعدی (در جهت عقربه های ساعت) تغییر می دهید.
دستکاری ویندوز و حوزه Windowing
اگر چه این ویژگی ها مفید هستند ، گاهی اوقات به برخی قابلیت های بیشتری نیاز دارید.

به عنوان مثال ، شما ممکن است مجبور باشید اندازه ای که Window اصلی می گیرد را تنظیم کنید. برای این کار می توانید از این کلیدها استفاده کنید:
CTRL-g l # Increase master window space
CTRL-g h # Decrease master window space

این بدان معنی است که شما می توانید اندازه واقعی صفحه نمایش خود را بر اساس کار مورد نظر تنظیم کنید.
بعضی اوقات ، نیازی نیست برای مدتی با یک Window کار کنید ، اما هنوز هم میخواهید آن را در دسترس داشته باشید. در سیستم های قدیمی ، Window را به حداقل می رسانید ، که به شما امکان می دهد آن را به طور موقت از سر راه خارج کنید.
همین کار با dvtm امکان پذیر است. روی Window مورد نظر خود که میخواهید به حداقل برسد متمرکز شوید و تایپ کنید:
CTRL-g.
با این کار Window متمرکز شده فعلی به حداقل می رسد.
این در واقع یک عملکرد تغییر وضعیت دهنده است. شما همچنان می توانید به راحتی در ویندوز خود بچرخید و ویندوزهای حداقلی را با استفاده از CTRL-g j و CTRL-g k یا با ارجاع آن به شماره (CTRL-g #) انتخاب کنید. برای بازگرداندن Window ، کافیست دوباره آن را انتخاب کرده و CTRL-g را بزنید.
امکان چرخه در میان ویندوزهای کمینه یک ویژگی عالی است زیرا به امکان دستکاری و ارجاع آن ها را میدهد. با این وجود ، گاهی اوقات شما فقط می خواهید از طریق ویندوزهایی که در حال حاضر در محدوده Windowing هستند چرخ بزنید.
برای دستیابی به این هدف ، dvtm شامل مجموعه دیگری از دستورات است که فقط روی ویندوهایی که حداقل نمی شوند تأثیر می گذارد. بنابراین اگر ویندوزهای 1-5 دارید ، و 2 و 4 به حداقل می رسند ، در بین ویندوزهای 1،3 و 5 می چرخند:
CTRL-g u # Cycle forward through un-minimized windows
CTRL-g i # Cycle backward through un-minimized windows

یک فرمان اضافی که گهگاه ممکن است مفید واقع شود ، امکان ارسال خروجی صفحه کلید به طور همزمان به همه ویندوزهای ترمینال شما میباشد. شما می توانید این کار را با امکان تغییر وضعیتی که dvtm دارد انجام دهید:
CTRL-g a
با این کار تمام خروجی از صفحه کلید به هر Window جداگانه ارسال می شود. این کار ادامه خواهد یافت تا زمانی که فرمان را صادر کنید تا این ویژگی را غیر فعال کنید.
چگونه می توان از dtach استفاده کرد تا session های خود را ماندگار کنید
همه این قابلیت ها در dvtm بسیار عالی هستند. و باعث میشود تا این برنامه نسبت به screen یا tmux متمرکزتر باشد و روی نقاط قوت آن متمرکز شود. با این حال ، به همین دلیل ، محدود به مدیریت Window میباشد.
یکی از ویژگی هایی که بسیاری از کاربران در یک مالتی پلکسر ترمینال می خواهند، امکان داشتن بخش های پایدار است. یعنی امکان جدا شدن از یک session و ترک Window ها و هر چیز دیگری در آنها است. بعداً می توانید برای ادامه کار دوباره به session وصل شوید.
در حالی که dvtm از لحاظ طراحی این ویژگی را ندارد ، با سایر ابزارهایی که صرفاً در ارائه قابلیت جدا سازی متمرکز هستند ، بسیار عالی عمل می کند. یکی از این ابزارها ، که به طور مناسب ldquo;dtachrdquo; خوانده می شود ، برای اهداف ما مناسب است.

در مرحله اول، از بخش dvtm فعلی خود خارج شوید اگر قبلاً این کار را نکرده اید. اگر نیازی به ذخیره چیزی ندارید، می توانید CTRL-g را تایپ کنید.
اکنون ، می توانیم بخش dtach را شروع کنیم. ما باید یک فرمان مانند این را ارسال کنیم:
dtach -A /tmp/dvtm -r winch dvtm

بگذارید توضیح بدهم که اینجا چه خبر است. در ابتدا ، ما خود دستور dtach را فرا میخوانیم. این کار باید توضیح سر خود باشد.
-A: فلگ حرف بزرگ ldquo;Ardquo; در صورت وجود، به session مشخص شده قبلی متصل می شود ، در غیر این صورت session جدیدی ایجاد می کند و به آن میپیوندد.
/ tmp / dvtm: سوکتی است که dtach برای ذخیره و انتقال اطلاعات از آن استفاده می کند. مجوزهای این سوکت مشخص خواهند کرد که چه کسی می تواند وصل شود ، بنابراین اگر می خواهید session توسط سایر کاربران قابل استفاده درسرور مجازیشما نباشد ، آن را در جایی قرار دهید که نتوانند به آن دسترسی پیدا کنند.
-r winch: روش بازخوانی را مشخص می کند. برای اینکه session ما بعد از اتصال دوباره به درستی نمایش داده شود ، باید از dtach بخواهیم سیگنال WINCH را به برنامه بفرستد.
Dvtm: شروع dtach را مشخص می کند. باید dvtm را در داخل راه اندازی کنیم.
اگر این دستور را تایپ کنید ، یک بخش dvtm در یک بخش dtach آغاز می شود. دقیقاً شبیه به بخش های dvtm معمولی شما خواهد بود.
تنها تفاوت این است که اکنون می توانید از session جدا شوید و تمام ویندوزهای خود را در حال اجرا رها کنید. برای انجام این کار، تایپ کنید:
CTRL- \
برای بازگشت به session بعد از جدا شدن ، می توانیم دوباره همان فرمان را فراخوانی کنیم.
از آنجا که دستور شروع و وصل مجدد به یک session یکسان است ، و از آنجا که دستور کمی دشوار است ، می توانیم یک نام مستعار ایجاد کنیم که به ما اجازه می دهد این کار را بدون زحمت مدیریت کنیم.
فایل پیکربندی لایه خود را با ویرایشگر متن باز کنید:
nano ~ / .bashrc
در انتها ، یک نام مستعار اضافه کنید تا بتوانید با یک کلمه به راحتی session های خود را شروع یا به آن ها دسترسی داشته باشید. به عنوان مثال ، من دنباله ldquo;wmrdquo; (برای مدیر پنجره) را در پیکربندی خود انتخاب می کنم:
alias wm=rdquo;dtach -A /tmp/dvtm -r winch dvtmrdquo;

فایل را ذخیره کنید و ببندید. برای دریافت تغییرات می توانیم اکنون فایل را سورس کنیم:
source ~/.bashrc

اکنون ، هنگامی که wm را تایپ می کنیم ، در صورت عدم وجود، یک بخش dtach ایجاد می کنیم و dvtm را در داخل شروع می کنیم. اگر یک جلسه وجود داشته باشد ، این دستور به سادگی به session وصل می شود.

نتیجه
همانطور که مشاهده می کنید ، با استفاده از dvtm برای مدیریت ویندوز و dtach برای افزودن پایداری ، می توانید یک محیط بسیار مفید را تنظیم کنید که به شما امکان می دهد به طور کارآمد با چندین ویندوز کار کنید. برای بسیاری از کاربران ، این ویژگی تمام عملکردهای مورد نیاز آن ها را فراهم می کند ، با طرح های بهتر مدیریت Window نسبت به screen یا tmux. سعی کنید آن را در یکی ازسرور مجازیخود امتحان کنید تا ببینید که این یک راه multiplexing کننده متناسب با نیازهای شما است یا خیر.

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

چگونه می توان با کتابخانه (library) درخواست ها در پایتون شروع به کار کرد

نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو .04

نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose در اوبونتو .04

نحوه بهینه سازی درخواست های MySQL با ذخیره سازی ProxySQL در اوبونتو 16.04

نحوه استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو .04

چگونه می توان پلتفرم كد سرور Cloud IDE را در اوبونتو .04 تنظیم كرد (شروع سریع)

چگونه می توان از رول های ansible برای انتزاع محیط زیرساختی خود استفاده کرد

نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو .04

نحوه تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه می توان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو .4 تنظیم کرد

نحوه استقرار و مدیریت DNS با استفاده از DNSControl در Debian 10

چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7 تنظیم كرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو .04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

کلمات کلیدی خرید سرور

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

برچسب ها:


Node.js یک محیط زمان اجرای جاواسکریپت منبع باز برای ساخت برنامه های شبکه و سمتسرور مجازیاست. این پلتفرم روی لینوکس ، macOS ، FreeBSD و ویندوز اجرا می شود. اگر چه میتوانید برنامه های Node.js را در خط فرمان اجرا کرد اما این آموزش روی چگونگی اجرای آنها به عنوان یک سرویس تمرکز دارد. این بدان معناست که به صورت خودکار در هنگام ریبوت یا خرابی ریستارت می شوند ، و می توانید از آنها در یک محیط تولید استفاده کنید.
در این آموزش ، محیط Node.js آماده تولید را روی یکسرور مجازیUbuntu 20.04 واحد تنظیم خواهیم کرد. اینسرور مجازیبرنامه های Node.js را مدیریت می کند که توسط PM2 اداره می شود ، و برای کاربران دسترسی ایمن به برنامه از طریق پروکسی مع Nginx را فراهم میکند.سرور مجازیNginx ، HTTPS را با استفاده از مجوز رایگان Letrsquo;s Encrypt ارائه میدهد.
پیش نیازها
این راهنما فرض می کند که موارد زیر را دارید:
bull; ستاپسرور مجازیUbuntu 20.04 ، همانطور که در راهنمای اولیه تنظیمسرور مجازیبرای اوبونتو 20.04 شرح داده شده است. شما باید دارای یک کاربر غیر ریشه با امتیازات sudo و یک فایروال فعال باشید.
bull; نام دامنه که به IP عمومیسرور مجازیشما اشاره کند. در سراسر این آموزش از نام دامنه example.com استفاده می شود.
Nginx نصب شده باشد ، همانطور که در نحوه نصب Nginx در اوبونتو 20.04 آمده است.
bull; Nginx با SSL با استفاده از گواهی نامه های Letrsquo;s Encryptپیکربندی شده باشد. مقاله نحوه ایمن سازی Nginx با Letrsquo;s Encrypt در Ubuntu 20.04 روند کار را نشان می دهد.
هنگامی که پیش نیازها را تکمیل کردید ،سرور مجازیخواهید داشت که در صفحه https://example.com/ مکان نمای پیش فرض دامنه شما را ارائه می دهد
مرحله 1 - نصب Node.js
بیایید با نصب آخرین نسخه LTS از Node.js ، با استفاده از بایگانی های بسته NodeSource شروع کنیم.
ابتدا ، برای دسترسی به مطالب آن ، NodeSource PPA را نصب کنید. اطمینان حاصل کنید که در دیرکتوری هوم خود قرار دارید و از curl برای بازیابی اسکریپت نصب جدیدترین نسخه LTS Node.js از بایگانی های آن استفاده کنید.
$ cd ~

$ curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh

می توانید محتویات این اسکریپت را با nano یا ویرایشگر متن مورد نظر خود بررسی کنید:
$ nano nodesource_setup.sh

پس از بررسی اسکریپت، آن را با sudo اجرا کنید:
$ sudo bash nodesource_setup.sh

PPA به پیکربندی شما اضافه می شود و حافظه نهان بسته محلی به صورت خودکار به روز می شود. بعد از اجرای اسکریپت راه اندازی از Nodesource ، می توانید بسته Node.js را نصب کنید:
$ sudo apt install nodejs

برای بررسی اینکه کدام نسخه از Node.js را بعد از این مراحل اولیه نصب کرده اید ، تایپ کنید:
$ nodejs -v

Output
v14.4.0
توجه: هنگام نصب از NodeSource PPA ، اجرای Node.js به جای node ، nodejs نامیده می شود.
بسته nodejs شامل باینری های nodejs و npm ، مدیر بسته برای ماژول های Node است ، بنابراین نیازی نیست npm را بطور جداگانه نصب کنید.
npm از یک فایل پیکربندی در دیرکتوری هوم شما برای پیگیری به روزرسانی ها استفاده می کند. اگر اولین بار است که npm را اجرا می کنید. برای تأیید نصب npm و ایجاد فایل پیکربندی ، این دستور را اجرا کنید:
$ npm -v

Output
6.14.5
برای کار کردن برخی از بسته های npm (به عنوان مثال آنهایی که نیاز به کامپایل کد از منبع دارند) ، باید بسته build-essential را نصب کنید:
$ sudo apt install build-essential

اکنون ابزارهای لازم را برای کار با بسته های npm که نیاز به کامپایل کردن کد از منبع دارند ، در اختیار دارید.
با نصب زمان اجرای Node.js ، اجازه دهید به سراغ نوشتن یک برنامه Node.js برویم.
مرحله 2 - ایجاد یک برنامه Node.js
بیایید یک برنامه Hello World بنویسیم که ldquo;Hello Worldrdquo; را به هر درخواست HTTP بازگرداند. این برنامه نمونه به شما در تنظیم Node.js کمک می کند. می توانید آن را با برنامه شخصی خود جایگزین کنید - فقط مطمئن شوید که برنامه خود را اصلاح می کنید تا به آدرس های IP و پورت های مناسب گوش دهید.
ابتدا ، یک برنامه نمونه بنام hello.js ایجاد کنیم:
$ cd ~

$ nano hello.js
کد زیر را در فایل وارد کنید:
~/hello.js
const http = require(lsquo;httprsquo;);

const hostname = lsquo;localhostrsquo;;
const port = 3000;

const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader(lsquo;Content-Typersquo;, lsquo;text/plainrsquo;);
res.end(lsquo;Hello World!\nrsquo;);
});

server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});

فایل را ذخیره کرده و از ویرایشگر خارج شوید.
این برنامه Node.js به آدرس مشخص شده (localhost) و پورت (3000) گوش می دهد و rdquo; Hello World!rdquo; را با کد موفقیت 200 HTTPبازمیگرداند. از آنجا که ما در حال گوش دادن به localhost هستیم ، کلاینت های از راه دور قادر به اتصال به برنامه ما نخواهند بود.
برای تست برنامه خود ، تایپ کنید:
$ node hello.js
خروجی زیر را دریافت خواهید کرد:
Output
Server running at http://localhost:3000/

توجه: اجرای یک برنامه Node.js به این روش ، دستورات اضافی را مسدود می کند تا اینکه با فشار دادن CTRL + C ، برنامه از بین برود.
برای تست برنامه ، جلسه پایانی دیگری را رویسرور مجازیخود باز کرده و با curl به localhost وصل کنید:
$ curl http://localhost:3000

اگر خروجی زیر را بدست آورید ، برنامه به درستی کار می کند و آدرس و پورت صحیح را گوش می دهد:
Output
Hello World!

اگر خروجی مورد انتظار را دریافت نکردید ، اطمینان حاصل کنید که برنامه Node.js شما در حال اجرا و تنظیم شده است تا به آدرس و پورت مناسب گوش دهید.
پس از اطمینان از کار کردن ، با فشار دادن CTRL + C ، برنامه را متوقف کنید (اگر قبلاً این کار را نکرده اید).
مرحله 3 - نصب PM2
بیایید PM2 ، مدیر فرآیند برنامه های Node.js را نصب کنیم. PM2 امکان daemonize کردن برنامه ها را فراهم می کند تا آنها به عنوان یک سرویس در پس زمینه اجرا شوند.
برای نصب جدیدترین نسخه PM2 رویسرور مجازیخود از npm استفاده کنید:
$ sudo npm install pm2@latest -g

گزینه -g به npm می گوید که ماژول را به صورت جهانی نصب کند ، تا در سطح سیستم موجود باشد.
بیایید ابتدا از دستور start pm2 برای اجرای برنامه خود ،یعنی hello.js ، در پس زمینه استفاده کنیم:
$ pm2 start hello.js

این دستور همچنین برنامه شما را به لیست فرآیند PM2 اضافه می کند ، که هر بار که صادر می شود، خروجی ارائه میدهد:
Output
.
[PM2] Spawning PM2 daemon with pm2_home=/home/sammy/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /home/sammy/hello.js in fork_mode (1 instance)
[PM2] Done.
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ hello │ fork │ 0 │ online │ 0% │ 25.2mb │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴───────

همانطور که گفته شد ، PM2 بطور خودکار نام برنامه (بر اساس نام فایل ، بدون پسوند .js) و شناسه PM2 را اختصاص می دهد. PM2 همچنین اطلاعات دیگری مانند PID روند ، وضعیت فعلی آن و استفاده از حافظه را نگه میدارد.
در صورت خرابی یا توقف برنامه ها ، برنامه هایی که تحت PM2 در حال اجرا هستند به صورت خودکار مجدداً راه اندازی می شوند ، اما می توانیم با استفاده از دستور فرعی startup ، یک برنامه اضافی برای راه اندازی برنامه در هنگام شروع سیستم دریافت کنیم. این دستور فرعی برای ایجاد PM2 و فرآیندهای مدیریت شده آن روی بوت هایسرور مجازی، یک اسکریپت راه اندازی را ایجاد و پیکربندی می کند:
$ pm2 startup systemd

آخرین خط خروجی حاصل شامل دستورالعمل اجرا با امتیازات فوق العاده به منظور تنظیم PM2 برای شروع در زمان بوت است:
Output
[PM2] Init System found: systemd
sammy
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u sammy -hp /home/sammy

دستور را از خروجی اجرا کنید و نام کاربری خود را به جای Sammy قرار دهید:
$ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u sammy -hp /home/sammy

به عنوان یک مرحله دیگر ، می توانیم لیست فرآیند PM2 و محیط های مربوطه را ذخیره کنیم:
$ pm2 save

اکنون یک واحد سیستمی ایجاد کرده اید که PM2 را برای کاربر خود در بوت اجرا می کند. این نمونه pm2 ، به نوبه خود ، hello.js را اجرا می کند.
سرویس را با systemctl شروع کنید:
$ sudo systemctl start pm2-sammy

اگر در این مرحله با خطایی مواجه شدید ، ممکن است نیاز به راه اندازی مجدد داشته باشید که می توانید با sudo reboot این کار را انجام دهید.
وضعیت واحد سیستمی را بررسی کنید:
$ systemctl status pm2-sammy

برای مرور کلی در مورد systemd ، لطفا مقاله مومات سیستمی: کار با سرویس ها ، واحدها و ژورنال را مرور کنید.
علاوه بر مواردی که ما پوشش داده ایم ، PM2 زیرمجموعه های زیادی را فراهم می کند که به شما امکان می دهد اطلاعات مربوط به برنامه های خود را مدیریت و جستجو کنید.
یک برنامه را با این دستور متوقف کنید (نام برنامه یا شناسه PM2 برنامه را مشخص کنید):
$ pm2 stop app_name_or_id

برنامه را ریستارت کنید:
$ pm2 restart app_name_or_id

برنامه هایی را که اکنون توسط PM2 مدیریت می شود لیست کنید:
$ pm2 list

اطلاعات مربوط به یک برنامه خاص را با استفاده از نام برنامه خود دریافت کنید:
$ pm2 info app_name

مانیتور فرآیند PM2 را می توان با دستور فرعی monit به دست آورد. وضعیت برنامه ، CPU و استفاده از حافظه را نشان می دهد:
$ pm2 monit

توجه داشته باشید که اجرای pm2 بدون هیچگونه آرگومان ، صفحه راهنما را نیز با استفاده از مثال نشان می دهد.
اکنون که برنامه Node.js شما توسط PM2 اجرا و مدیریت می شود ، بیایید پروکسی مع را تنظیم کنیم.
مرحله 4 - تنظیم Nginx به عنوان یکسرور مجازیپروکسی مع
برنامه شما روی localhost اجرا میشود و گوش می کند ، اما باید راهی برای دسترسی کاربران خود تنظیم کنید. ماسرور مجازیوب Nginx را به عنوان یک پروکسی مع برای این منظور تنظیم خواهیم کرد.
در آموزش پیش نیاز ، تنظیمات Nginx خود را در فایل /etc/nginx/sites-available/example.com تنظیم می کنید. این فایل را برای ویرایش باز کنید:
$ sudo nano /etc/nginx/sites-available/example.com

در بلوکسرور مجازی، باید یک بلوک location / موجود را داشته باشید. محتوای آن بلوک را با پیکربندی زیر جایگزین کنید. اگر برنامه شما برای گوش دادن به پورت های مختلف تنظیم شده است ، قسمت هایلایت شده را به شماره درست پروت تغییر دهید:
/etc/nginx/sites-available/example.com
server {
.
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection lsquo;upgradersquo;;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
.
}

این کارسرور مجازیرا تنظیم می کند تا به درخواست های ریشه خود پاسخ دهد. با فرض اینکهسرور مجازیما در example.com در دسترس باشد ، دسترسی به https://example.com/ از طریق یک مرورگر وب ، درخواست را به hello.js ارسال می کند و با گوش دادن به پورت 3000 در localhost ، به پورت 3000 می رسد.
برای دسترسی به سایر برنامه ها در همانسرور مجازیمی توانید بلوک های موقعیت مکانی دیگری را به همانسرور مجازیاضافه کنید. به عنوان مثال ، اگر در پورت 3001 برنامه Node.js دیگری را نیز اجرا می کردید ، می توانید از طریق https://example.com/app2 به این بخش مکان اضافه کنید تا به آن دسترسی داشته باشید:
/etc/nginx/sites-available/example.com mdash; Optional
server {
.
location /app2 {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection lsquo;upgradersquo;;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
.
}

پس از پایان یافتن بلوک های مکان برای برنامه های خود ، فایل را ذخیره کنید و از ویرایشگر خود خارج شوید.
با تایپ دستور زیر مطمئن شوید که هیچ خطای نحوی را وارد نکرده اید:
$ sudo nginx -t

Nginxرا ریستارت کنید:
$ sudo systemctl restart nginx

با فرض اینکه برنامه Node.js شما در حال اجرا است و برنامه شما و تنظیمات Nginx صحیح است ، اکنون باید از طریق پروکسی مع Nginx به برنامه خود دسترسی پیدا کنید. با دسترسی به URLسرور مجازیخود (آدرس IP عمومی یا نام دامنه آن) آن را امتحان کنید.
نتیجه
تبریک می گوییم! اکنون برنامه Node.js خود را تحت پروکسی مع Nginx رویسرور مجازیUbuntu 20.04 اجرا میکنید. این تنظیم پروکسی مع به اندازه کافی انعطاف پذیر است تا دسترسی کاربران دیگر برنامه ها یا محتوای وب استاتیک را که می خواهید به اشتراک بگذارید ، در اختیار کاربران تان قرار دهد.

برچسب ها:


Eclipse Theia یک Cloud IDE قابل توسعه است که بر روی یکسرور مجازیاز راه دور اجرا میشود و از یک مرورگر وب قابل دسترسی است. از لحاظ بصری ، به گونه ای طراحی شده است که به طور مشابه با Microsoft Visual Studio Code دیده شود و با آن کار شود. آنچه Eclipse Theia را از دیگر نرم افزارهای cloud IDE جدا می کند قابلیت توسعه آن است. می توان آن را با استفاده از افزونه های سفارشی اصلاح کرد ، که به شما امکان می دهد یک Cloud IDE متناسب با نیازهای خود تهیه کنید.
در این آموزش ،Eclipse Theia را با استفاده از Docker Compose ، بهسرور مجازیUbuntu .04 خود منتقل خواهید کرد. با استفاده از nginx-proxy ، یک سیستم خودکار برای Docker ، آن را در دامنه خود قرار می دهید و با استفاده از یک گواهی نامه Let Encrypt TLS ، که با استفاده از افزونه تخصصی آن تهیه می کنید ، آن را ایمن خواهید کرد. برای مشاهده نسخه جزیی تر این آموزش به راهنمای نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE روی اوبونتو .04 مراجعه کنید.
پیش نیازها
⦁ یکسرور مجازیUbuntu .04 با امتیازات اصلی و یک حساب ثانویه و غیر ریشه طبق راهنمای تنظیم اولیهسرور مجازیما برای Ubuntu .04
⦁ Docker نصب شده رویسرور مجازیتان. مرحله 1 و مرحله 2 نحوه نصب Docker را در اوبونتو .04 دنبال کنید.
⦁ Docker Compose که رویسرور مجازیشما نصب باشد. مرحله 1 نحوه نصب Docker Compose را در اوبونتو .04 دنبال کنید.
⦁ نام دامنه کاملاً ثبت شده. در این آموزش کلا از theia.your_domain استفاده می شود.
⦁ یک ثبت A DNS با theia.your_domain که به آدرس IP عمومیسرور مجازیشما اشاره میکند. برای جزئیات بیشتر در مورد چگونگی اضافه کردن آنها می توانید این معرفی را در DigitalOcean DNS دنبال کنید.
مرحله 1 - استفاده از پروکسی nginx با Letrsquo;s Encrypt
دیرکتوری برای ذخیره داده ها برای Eclipse Theia ایجاد کنید
$ mkdir ~/eclipse-theia
به آن مراجعه کنید:
⦁ $ cd ~/eclipse-theia
nginx-proxy-compose.yaml را برای ذخیره پیکربندی Docker Compose برای nginx-proxy ایجاد کنید:
⦁ $ nano nginx-proxy-compose.yaml

خطوط زیر را اضافه کنید:
~/eclipse-theia/nginx-proxy-compose.yaml
version: lsquo;2rsquo;

services:
nginx-proxy:
restart: always
image: jwilder/nginx-proxy
ports:
- ldquo;80:80rdquo;
- ldquo;443:443rdquo;
volumes:
- ldquo;/etc/nginx/htpasswd:/etc/nginx/htpasswdrdquo;
- ldquo;/etc/nginx/vhost.drdquo;
- ldquo;/usr/share/nginx/htmlrdquo;
- ldquo;/var/run/docker.sock:/tmp/docker.sock:rordquo;
- ldquo;/etc/nginx/certsrdquo;

letsencrypt-nginx-proxy-companion:
restart: always
image: jrcs/letsencrypt-nginx-proxy-companion
volumes:
- ldquo;/var/run/docker.sock:/var/run/docker.sock:rordquo;
volumes_from:
- ldquo;nginx-proxyrdquo;

در اینجا شما دو سرویس را تعریف می کنید که Docker Compose اجرا خواهد کرد ، nginx-proxy و همراه آن Letrsquo;s Encrypt. برای پروکسی ، jwilder / nginx-proxy را به عنوان تصویر مشخص میکنید، پورت های HTTP و HTTPS را نقشه برداری می کنید ، و حجم هایی را تعریف می کنید که در زمان اجرا در دسترس باشند.
فایل را ذخیره کنید و ببندید.
پیکربندی را به کار بگیرید:
⦁ docker-compose -f nginx-proxy-compose.yaml up -d

خروجی نهایی اینگونه خواهد بود:
Output
Creating network ldquo;eclipse-theia_defaultrdquo; 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

مرحله 2 - به کارگیری Eclipse Theia دوکرایز شده
nginx-proxy انتظار دارد که ترکیب های ورود به سیستم در فایلی پس از دامنه نمایش داده شده ، با فرمت htpasswd قرار بگیرند و در زیر فهرست / etc / nginx / htpasswd در کانتینر ذخیره شوند.
نصب 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
دستور زیر را با نام کاربری و رمز عبور اجرا کنید:
⦁ $ sudo htpasswd /etc/nginx/htpasswd/theia.your-domain username
htpasswd در انتهای فایل ، نام کاربری و جفت رمز عبور را اضافه می کند.
پیکربندی را برای استقرار Eclipse Theia ایجاد کنید:
⦁ $ nano eclipse-theia-compose.yaml
خطوط زیر را اضافه کنید:
~/eclipse-theia/eclipse-theia-compose.yaml
version: lsquo;2.2rsquo;

services:
eclipse-theia:
restart: always
image: theiaide/theia:next
init: true
environment:
- VIRTUAL_HOST=theia.your-domain
- LETSENCRYPT_HOST=theia.your-domain

شما یک سرویس واحد به نام eclipse-theia را با restart تنظیم شده روی always و theiaide/theia:next به عنوان تصویر کانتینر تعریف می کنید. همچنین init را روی true تنظیم میکنید. سپس دو متغیر محیط را در بخش environment مشخص می کنید: VIRTUAL_HOST و LETSENCRYPT_HOST.
فایل را ذخیره کنید و ببندید.
اکنون با اجرای دستور زیر 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 را وارد کرده و GUI ویرایشگر آن را مشاهده خواهید کرد. همچنین یک پدلاک را مشاهده خواهید کرد که نشان می دهد اتصال امن است.

نتیجه
اکنون Eclipse Theia ، یک cloud IDE همه کاره را با استفاده از Docker Compose و nginx-proxy بر رویسرور مجازیUbuntu .04 خود نصب کرده اید. شما آن را با مجوز رایگان Letrsquo;s Encrypt TLS ایمن کرده اید و نمونه ای را تنظیم کرده اید تا نیاز به اعتبار ورود به سیستم از طرف کاربر داشته باشید. می توانید به صورت جداگانه روی کد منبع خود و مطالب آن کار کنید و یا با تیم خود همکاری کنید. در صورت نیاز به قابلیت های بیشتر ، می توانید نسخه دیگری از Eclipse Theia خود را نیز ایجاد کنید. برای کسب اطلاعات بیشتر در مورد چگونگی انجام این کار ، به مطالب Theia مراجعه نمایید.

Eclipse Theia یک Cloud IDE قابل توسعه است که بر روی یکسرور مجازیاز راه دور اجرا میشود و از یک مرورگر وب قابل دسترسی است. از لحاظ بصری ، به گونه ای طراحی شده است که به طور مشابه با Microsoft Visual Studio Code دیده شود و با آن کار شود. آنچه Eclipse Theia را از دیگر نرم افزارهای cloud IDE جدا می کند قابلیت توسعه آن است. می توان آن را با استفاده از افزونه های سفارشی اصلاح کرد ، که به شما امکان می دهد یک Cloud IDE متناسب با نیازهای خود تهیه کنید.
در این آموزش ،Eclipse Theia را با استفاده از Docker Compose ، بهسرور مجازیUbuntu .04 خود منتقل خواهید کرد. با استفاده از nginx-proxy ، یک سیستم خودکار برای Docker ، آن را در دامنه خود قرار می دهید و با استفاده از یک گواهی نامه Let Encrypt TLS ، که با استفاده از افزونه تخصصی آن تهیه می کنید ، آن را ایمن خواهید کرد. برای مشاهده نسخه جزیی تر این آموزش به راهنمای نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE روی اوبونتو .04 مراجعه کنید.
پیش نیازها
⦁ یکسرور مجازیUbuntu .04 با امتیازات اصلی و یک حساب ثانویه و غیر ریشه طبق راهنمای تنظیم اولیهسرور مجازیما برای Ubuntu .04
⦁ Docker نصب شده رویسرور مجازیتان. مرحله 1 و مرحله 2 نحوه نصب Docker را در اوبونتو .04 دنبال کنید.
⦁ Docker Compose که رویسرور مجازیشما نصب باشد. مرحله 1 نحوه نصب Docker Compose را در اوبونتو .04 دنبال کنید.
⦁ نام دامنه کاملاً ثبت شده. در این آموزش کلا از theia.your_domain استفاده می شود.
⦁ یک ثبت A DNS با theia.your_domain که به آدرس IP عمومیسرور مجازیشما اشاره میکند. برای جزئیات بیشتر در مورد چگونگی اضافه کردن آنها می توانید این معرفی را در DigitalOcean DNS دنبال کنید.
مرحله 1 - استفاده از پروکسی nginx با Letrsquo;s Encrypt
دیرکتوری برای ذخیره داده ها برای Eclipse Theia ایجاد کنید
$ mkdir ~/eclipse-theia
به آن مراجعه کنید:
⦁ $ cd ~/eclipse-theia
nginx-proxy-compose.yaml را برای ذخیره پیکربندی Docker Compose برای nginx-proxy ایجاد کنید:
⦁ $ nano nginx-proxy-compose.yaml

خطوط زیر را اضافه کنید:
~/eclipse-theia/nginx-proxy-compose.yaml
version: lsquo;2rsquo;

services:
nginx-proxy:
restart: always
image: jwilder/nginx-proxy
ports:
- ldquo;80:80rdquo;
- ldquo;443:443rdquo;
volumes:
- ldquo;/etc/nginx/htpasswd:/etc/nginx/htpasswdrdquo;
- ldquo;/etc/nginx/vhost.drdquo;
- ldquo;/usr/share/nginx/htmlrdquo;
- ldquo;/var/run/docker.sock:/tmp/docker.sock:rordquo;
- ldquo;/etc/nginx/certsrdquo;

letsencrypt-nginx-proxy-companion:
restart: always
image: jrcs/letsencrypt-nginx-proxy-companion
volumes:
- ldquo;/var/run/docker.sock:/var/run/docker.sock:rordquo;
volumes_from:
- ldquo;nginx-proxyrdquo;

در اینجا شما دو سرویس را تعریف می کنید که Docker Compose اجرا خواهد کرد ، nginx-proxy و همراه آن Letrsquo;s Encrypt. برای پروکسی ، jwilder / nginx-proxy را به عنوان تصویر مشخص میکنید، پورت های HTTP و HTTPS را نقشه برداری می کنید ، و حجم هایی را تعریف می کنید که در زمان اجرا در دسترس باشند.
فایل را ذخیره کنید و ببندید.
پیکربندی را به کار بگیرید:
⦁ docker-compose -f nginx-proxy-compose.yaml up -d

خروجی نهایی اینگونه خواهد بود:
Output
Creating network ldquo;eclipse-theia_defaultrdquo; 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

مرحله 2 - به کارگیری Eclipse Theia دوکرایز شده
nginx-proxy انتظار دارد که ترکیب های ورود به سیستم در فایلی پس از دامنه نمایش داده شده ، با فرمت htpasswd قرار بگیرند و در زیر فهرست / etc / nginx / htpasswd در کانتینر ذخیره شوند.
نصب 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
دستور زیر را با نام کاربری و رمز عبور اجرا کنید:
⦁ $ sudo htpasswd /etc/nginx/htpasswd/theia.your-domain username
htpasswd در انتهای فایل ، نام کاربری و جفت رمز عبور را اضافه می کند.
پیکربندی را برای استقرار Eclipse Theia ایجاد کنید:
⦁ $ nano eclipse-theia-compose.yaml
خطوط زیر را اضافه کنید:
~/eclipse-theia/eclipse-theia-compose.yaml
version: lsquo;2.2rsquo;

services:
eclipse-theia:
restart: always
image: theiaide/theia:next
init: true
environment:
- VIRTUAL_HOST=theia.your-domain
- LETSENCRYPT_HOST=theia.your-domain

شما یک سرویس واحد به نام eclipse-theia را با restart تنظیم شده روی always و theiaide/theia:next به عنوان تصویر کانتینر تعریف می کنید. همچنین init را روی true تنظیم میکنید. سپس دو متغیر محیط را در بخش environment مشخص می کنید: VIRTUAL_HOST و LETSENCRYPT_HOST.
فایل را ذخیره کنید و ببندید.
اکنون با اجرای دستور زیر 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 را وارد کرده و GUI ویرایشگر آن را مشاهده خواهید کرد. همچنین یک پدلاک را مشاهده خواهید کرد که نشان می دهد اتصال امن است.

نتیجه
اکنون Eclipse Theia ، یک cloud IDE همه کاره را با استفاده از Docker Compose و nginx-proxy بر رویسرور مجازیUbuntu .04 خود نصب کرده اید. شما آن را با مجوز رایگان Letrsquo;s Encrypt TLS ایمن کرده اید و نمونه ای را تنظیم کرده اید تا نیاز به اعتبار ورود به سیستم از طرف کاربر داشته باشید. می توانید به صورت جداگانه روی کد منبع خود و مطالب آن کار کنید و یا با تیم خود همکاری کنید. در صورت نیاز به قابلیت های بیشتر ، می توانید نسخه دیگری از Eclipse Theia خود را نیز ایجاد کنید. برای کسب اطلاعات بیشتر در مورد چگونگی انجام این کار ، به مطالب Theia مراجعه نمایید.

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


آخرین ارسال ها

آخرین جستجو ها


بدست آوردن بیت کوین nashrbook بلاگی برای فایل ها gashtenavid eslamj Tracy's memory کلبه IT دانلود رایگان کتب، نمونه سوالات و جزوات ریاضی مقاطع عالی 5qW6k677 خرید کتاب پی دی اف