راهنمای فریمورکها
گردو این فریمورکها را خودکار تشخیص میدهد و بیشترشان بدون هیچ تنظیمی اجرا میشوند. این صفحه چیزهایی را میگوید که برای هر کدام فرق دارد. قانون کلی برای همه یکی است: برنامهٔ سرور باید روی 0.0.0.0 و پورت PORT گوش بدهد. قانون PORT
Next.js
معرفی کامل: میزبانی Next.js در گردو
- با
npm run buildساخته و باnpm start(یعنیnext start) اجرا میشود.next startخودشPORTرا میخواند. - اگر در
next.configگزینهٔoutput: 'export'دارید، سایت استاتیک ساخته و پوشهٔoutسرو میشود؛ در این حالت API Route و SSR ندارید. - متغیرهای
NEXT_PUBLIC_*باید بیلد تایم باشند. بقیه (کلید API سمت سرور،DATABASE_URL) رانتایم. - اگر Prisma دارید،
prisma generateخودکار اجرا میشود. migration را جدا اجرا کنید (پایینتر، Django را ببینید؛ روش همان است). - خطای
Could not find a production buildیعنی اسکریپتbuildشماnext buildرا اجرا نمیکند.
React، Vue و Vite (اپ تکصفحهای)
معرفی کامل: میزبانی React در گردو
- با
npm run buildساخته و پوشهٔdistسرو میشود. مسیرهایی که فایل ندارند بهindex.htmlمیروند، پس React Router و Vue Router کار میکنند. - اگر پوشهٔ خروجی شما
distنیست (مثلاً Create React App کهbuildمیسازد)، آن را باvercel.json("outputDirectory": "build") یا دستور اجرای سفارشی مشخص کنید. - متغیرهای
VITE_*(یاREACT_APP_*) بیلد تایماند و در مرورگر دیده میشوند. رمز در آنها نگذارید.
Nuxt
معرفی کامل: میزبانی Vue و Nuxt در گردو
خروجی .output با سرور Nitro اجرا میشود و خودش PORT و HOST را میخواند. اگر nuxt generate (استاتیک) میخواهید، «دستور ساخت» را npm run generate بگذارید.
SvelteKit
معرفی کامل: میزبانی SvelteKit در گردو
با @sveltejs/adapter-node، برنامه به شکل سرور Node اجرا میشود. با adapter-static، خروجی به شکل فایل سرو میشود. adapter را در svelte.config.js انتخاب کنید.
Astro
معرفی کامل: میزبانی Astro در گردو
حالت استاتیک (پیشفرض) پوشهٔ dist را سرو میکند. برای SSR از @astrojs/node با mode: 'standalone' استفاده کنید و «دستور اجرا» را node ./dist/server/entry.mjs بگذارید.
Express، Fastify و سرورهای Node
معرفی کامل: میزبانی Node.js در گردو
- اسکریپت
startدرpackage.jsonاجرا میشود؛ اگر نباشد،index.js،server.jsیاdist/index.js. - اگر TypeScript دارید، اسکریپت
buildآن را کامپایل کند (tsc) وstartخروجی را اجرا کند (node dist/index.js). - پشت HTTPS گردو هستید؛ اگر کوکی
secureیا redirect به HTTPS دارید،app.set('trust proxy', 1)را بگذارید.
Django
معرفی کامل: میزبانی Python در گردو
collectstaticخودکار اجرا میشود و برنامه باgunicornو فایلwsgi.pyپروژه بالا میآید.gunicornرا درrequirements.txtبگذارید.- برای سرو فایلهای استاتیک، WhiteNoise را اضافه کنید.
ALLOWED_HOSTSباید آدرس سرویس و دامنهٔ شما را داشته باشد، وCSRF_TRUSTED_ORIGINSهمانها را باhttps://.- برای تشخیص HTTPS پشت گردو:
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https"). - migration: در «اجرای دستور» سرویس
python manage.py migrateرا اجرا کنید، یا آن را اول دستور اجرا بگذارید:python manage.py migrate && gunicorn …. - دیتابیس را از
DATABASE_URLبخوانید (dj-database-url).
FastAPI و Flask
معرفی کامل: میزبانی Python در گردو
- اگر
uvicornدر وابستگیهاست، برنامه باuvicornاجرا میشود؛ اگرgunicorn، باgunicorn؛ وگرنهapp.pyیاmain.pyمستقیم اجرا میشود. - اگر فایل برنامه یا نام متغیرش استاندارد نیست، «دستور اجرا» را بنویسید:
uvicorn app.main:app --host 0.0.0.0 --port $PORT. - با
flask runیاapp.run()بدونhost="0.0.0.0"برنامه از بیرون در دسترس نیست.
Laravel
معرفی کامل: میزبانی Laravel در گردو
- با
php artisan serveاجرا میشود وconfig:cacheقبلش اجرا میشود. اگرpackage.jsonدارید، assetها (Vite) هم ساخته میشوند. APP_KEYرا بسازید (php artisan key:generate --showروی کامپیوترتان) و به شکل متغیر محرمانه بگذارید.APP_ENV=productionوAPP_URLرا هم تنظیم کنید.- migration:
php artisan migrate --forceدر «اجرای دستور». - فایلهای آپلودی
storage/appرا روی یک دیسک ماندگار بگذارید. - صف (
queue:work) و زمانبند (schedule:run) را سرویسهای جدا کنید: یک سرویس خصوصی با دستور اجرایphp artisan queue:work، و یک کار زمانبندیشده باphp artisan schedule:runهر دقیقه.
PHP ساده
پوشهٔ public (اگر باشد) یا ریشهٔ پروژه با سرور داخلی PHP سرو میشود. فایلهای ionCube هم پشتیبانی میشوند.
Ruby on Rails
معرفی کامل: میزبانی Ruby در گردو
assets:precompileخودکار اجرا میشود و برنامه باrails serverبالا میآید.SECRET_KEY_BASE(یاRAILS_MASTER_KEY) را محرمانه تعریف کنید وRAILS_ENV=production.- migration:
bin/rails db:migrateدر «اجرای دستور».
Go
معرفی کامل: میزبانی Go در گردو
بستهٔ main پروژه ساخته و اجرا میشود. اگر چند main دارید (مثلاً cmd/api و cmd/worker)، «دستور ساخت» را مشخص کنید: go build -o /tmp/server ./cmd/api.
Rust
معرفی کامل: میزبانی Rust در گردو
با cargo build --release ساخته میشود. اگر پروژه چند باینری دارد، «دستور اجرا» را روی باینری درست بگذارید. فقط نسخههای پایدار Rust در دسترساند.
سایت استاتیک (HTML)
معرفی کامل: میزبانی سایت استاتیک در گردو
اگر فقط HTML، CSS و JavaScript دارید (بدون package.json)، ریشهٔ پروژه سرو میشود. اگر package.json با اسکریپت build دارید، اول ساخته میشود.
فریمورک شما اینجا نیست؟ یک Dockerfile در ریشهٔ پروژه بگذارید؛ گردو همان را میسازد. ساخت با Dockerfile