Kasm Workspaces دسکتاپها و مرورگرهای کانتینری را به مرورگر خودتان استریم میکند تا بتوانید از هر جا یک Chrome یکبارمصرف یا یک دسکتاپ کامل لینوکس باز کنید. روی یک VPS لینوکس Infrawire، نسخه تکسرور (single server) سادهترین راه اجرای آن است. این راهنما Ubuntu 24.04 را هدف میگیرد (Ubuntu 22.04 هم به همین شکل کار میکند).
📋 پیشنیازها
- یک VPS از نوع KVM تازه با اوبونتو، دسترسی SSH با کاربر root و بدون سرویس دیگری که روی پورت 443 گوش بدهد. در بخش مشتریان، IP و رمز root سرور را پیدا میکنید.
- Kasm برای نصب پایه دستکم ۲ هسته پردازنده، ۴ گیگابایت رم و ۵۰ گیگابایت فضای SSD را توصیه میکند و هر workspace در حال اجرا علاوه بر آن به حافظه بیشتری نیاز دارد. اگر چند کاربر همزمان وصل میشوند، رم بیشتری در نظر بگیرید.
- اگر گواهی HTTPS معتبر میخواهید، دامنهای مثل
kasm.example.comکه بهVPS_IPاشاره کند.
🔄 1. آمادهسازی سرور
Bashssh root@VPS_IP apt update && apt -y upgrade && apt -y install curl
Kasm خودش Docker را نصب میکند، پس پیش از آن محیط کانتینر دیگری راه نیندازید. اگر هسته جدیدی نصب شده، سرور را راهاندازی مجدد کنید.
⬇️ 2. دانلود آخرین نسخه
شماره نسخه مرتب تغییر میکند، پس آن را از یک آموزش قدیمی کپی نکنید. صفحه رسمی دانلود (https://kasmweb.com/downloads) یا راهنمای نصب single server (https://kasmweb.com/docs/latest/install/single_server_install.html) را باز کنید، پیوند آرشیو نسخه فعلی برای نصبکننده single server را کپی کنید و آن را بهجای RELEASE_URL در زیر بگذارید.
Bashcd /tmp curl -O RELEASE_URL tar -xf kasm_release_*.tar.gz
آرشیو در پوشهای به نام kasm_release که شامل install.sh است استخراج میشود.
⚙️ 3. نصب با swap کافی
workspaceها حافظه زیادی مصرف میکنند و swap از بسته شدن ناگهانی فرایندها بهدلیل کمبود حافظه جلوگیری میکند. نصبکننده میتواند با گزینه --swap-size (به مگابایت) یک فایل swap برایتان بسازد:
Bashsudo bash /tmp/kasm_release/install.sh --swap-size 4096
اگر پورت 443 اشغال است، -L 8443 را اضافه کنید تا رابط وب روی 8443 سرویسدهی کند. نصب چند ایمیج Docker را دانلود میکند و ۱۰ تا ۲۰ دقیقه طول میکشد. در پایان، اسکریپت رمزهای تولیدشده برای حسابهای پیشفرض admin@kasm.local و user@kasm.local را چاپ میکند. فوراً آنها را ذخیره کنید؛ فقط یک بار نمایش داده میشوند.
🌐 4. باز کردن کنسول وب
به https://VPS_IP بروید (یا اگر پورت را عوض کردهاید https://VPS_IP:8443). فعلاً هشدار گواهی خودامضا را بپذیرید. با admin@kasm.local وارد شوید تا به بخش مدیریت برسید و رمزهای تولیدشده را از منوی کاربر تغییر دهید.
اگر از فایروال استفاده میکنید، پورت وب را مجاز کنید:
Bashufw allow 22/tcp ufw allow 443/tcp ufw enable
پیش از فعالسازی UFW به SSH اجازه دهید تا خودتان بیرون نمانید.
🔒 5. افزودن گواهی Let's Encrypt
Kasm گواهی خودش را از طریق یک پراکسی Nginx داخلی ارائه میکند. با Certbot در حالت standalone گواهی بگیرید، که به آزاد بودن پورت 80 نیاز دارد (Kasm از آن استفاده نمیکند)، و سپس آن را در جایی که Kasm انتظار دارد کپی کنید:
Bashapt -y install certbot certbot certonly --standalone -d kasm.example.com cp /etc/letsencrypt/live/kasm.example.com/fullchain.pem /opt/kasm/current/certs/kasm_nginx.crt cp /etc/letsencrypt/live/kasm.example.com/privkey.pem /opt/kasm/current/certs/kasm_nginx.key /opt/kasm/bin/stop /opt/kasm/bin/start
گواهیها ۹۰ روز اعتبار دارند، پس پس از هر تمدید کپی و راهاندازی مجدد را تکرار کنید؛ مثلاً با یک deploy hook از Certbot در /etc/letsencrypt/renewal-hooks/deploy/.
🚀 6. اجرای مرورگر ایزوله
با یک کاربر عادی (user@kasm.local) وارد شوید؛ صفحه Workspaces ایمیجهای موجود را فهرست میکند. اگر فهرست خالی است، با حساب مدیر وارد شوید، Workspaces > Registry را باز کنید و ایمیجهای دلخواه مثل Chrome، Firefox یا دسکتاپ Ubuntu را نصب کنید. سپس روی یک workspace کلیک کنید تا اجرا شود: در یک زبانه جدید دسکتاپ کامل یا مرورگری که به شما استریم میشود باز میشود، و در پنل کناری کنترلهای کلیپبورد و انتقال فایل وجود دارد. با بستن نشست، کانتینر نابود میشود.
✅ 7. بررسی
Bashdocker ps --format '{{.Names}}: {{.Status}}' ss -tlnp | grep -E ':(443|8443)\b' free -h
باید کانتینرهای kasm_* در حال اجرا، پورت وب در حال گوش دادن و swap را در خروجی free -h ببینید.
🧰 عیبیابی
- نصبکننده با خطای حافظه یا دیسک متوقف میشود:
free -hوdf -hرا بررسی کنید. با--swap-sizeفضای swap اضافه کنید، فضای دیسک آزاد کنید و نصبکننده را دوباره اجرا کنید. - یک workspace روی صفحه بارگذاری میماند: احتمالاً سرور رم کم دارد یا ایمیج کامل دریافت نشده است.
docker ps -aو لاگهای/opt/kasm/current/log/را ببینید و نشستهای دیگر را ببندید. - مرورگر درباره گواهی هشدار میدهد: فایلهای
/opt/kasm/current/certs/جایگزین نشدهاند یا سرویسها راهاندازی مجدد نشدهاند. مرحله ۵ را تکرار کنید و در نوار آدرس از نام دامنه بهجای IP استفاده کنید. - رمز مدیر گم شده: آن را با حساب مدیر دیگری در بخش مدیریت بازنشانی کنید، یا اگر مدیری باقی نمانده، روی یک VPS تمیز دوباره نصب کنید.
🎉 Kasm Workspaces در حال اجراست: مرورگرها و دسکتاپها را در صورت نیاز اجرا کنید، بهصورت ایمن و جدا از رایانه خودتان.