ارسلان سفیدگر
ارسلان سفیدگر
خواندن ۲ دقیقه·۲ سال پیش

دیپلوی سریع صفحه به زودی با استفاده از داکر و فرمورک svelte

صفحه گیتهاب:

https://github.com/G2Tech-co/G2maintenance

ریجستری داکرهاب:

https://hub.docker.com/r/arsalanses/g2maintenance-page

فرمورک svelte به تازگی کیت فرانت معرفی کرده به اسم sveltekit که الان که زمان نوشتن این مقاله ورژن یک هست

برای اینکه قابلیت های این تکنولوژی جدید رو تست کنیم و یکی از مشکلات دوستان devops رو حل کنیم یه پروژه ای تعریف کردیم برای سناریو هایی که بهمون میگن سریع سایت رو از دسترس خارج کنید و متن مبنی بر به زودی (coming soon) نمایش بدیم

به داکر کامپوز زیر دقت کنید:

version: '3' services: app: image: arsalanses/g2maintenance-page environment: - PUBLIC_TITLE=We will be back soon! - PUBLIC_MESSAGE=Sorry for the inconvenience. We are performing some maintenance at the moment. - The G2Tech Team - PUBLIC_SENDPORTAL=&quothttps://sendportal.test&quot - PUBLIC_SENDPORTAL_TAG=1

تمام متن هایی که تو صفحه میبینید به راحتی از env داکر قابل تغییر هست

و svelte اونا رو از env سیستم عامل میخونه و نمایش میده

پس به راحتی با یه docker compose up میتونید یه صفحه به زودی و کاستومایز شده داشته باشید!

ولی همه چیز اینجا تموم نمیشه حتما پیشنهاد میدم سورس کد این پروژه رو بخونید و با قابلیت های جالب svelte آشنا بشید (راستی ci این پروژه svelte هم با github-ci نوشتم که دیدن اون هم خالی از لطف نیست اگه داکرایز کردن براتون جالبه)

مباحثی مثل اضافه کردن SendPortal برای عضو گیری خبرنامه ایمیلی اینجا جالب میشه که ما نباید token سیستم SendPortal رو روی مرورگر کاربر expose کنیم و باید سمت سرور رندر بشه و ریکوست ها ارسال بشه این حالت رو svelte پشتیبانی میکنه و میتونید بدون نگرانی از expose شدن توکن و یا نوشتن بک اند جدا برای این صفحه این کار رو انجام بدین

داخل منو این صفحه یه قسمتی هم داریم به اسم شعر که از api های گنجور عزیز استفاده کردم تا قابلیت های کال api هم داخل svelte ببینیم

خیلی این سناریو ممکنه پیش بیاد که داخل صفحه api کال میکنید که با عوض شدن تب ها دوباره نیاز نیست آپدیت بشه و یبار دیگه کال بشه با امکاناتی که (https://svelte.dev/tutorial/writable-stores) بهمون میده میتونیم راحت مقدار fetch شده رو نگه داریم و با عوض شدن تب ها دوباره اون api رو کال نکنیم (اینجا بکاند کارا دعای خیرم میکنن فکر کنم!)

البته ممکنه بگید تمام این امکانات داخل ری اکت و... هم هست ولی سینتکس و هندل کردن اونها توسط svelte به نظرم فوقالعاده است

سعی میکنم این مطلب رو کامل تر کنم و شاید بیشتر درموردش بنویسم اگه مورد توجه بود

لطفا نظری داشتید زیر همین پست برام بنویسید اگه چیزی از قلمم افتاد

و حتما بازم پیشنهاد میکنم به گیتهاب این پروژه یه سر بزنید و ستاره یادتون نره ;)

تشکر

تامام./

sveltedockergithubci cdفرانت
https://arsalanse.ir
شاید از این پست‌ها خوشتان بیاید