درود. دوستان کسی ایده ای داره چطوری میتونم یه پروژه react + express رو دیپلوی کنم؟ ترجیحا میخوام روی ویندوز سرور و IIS دیپلوی کنم اگر تجربه ای در سیستم های ویندوزی دارین خوشحال میشم بگین.
اگر برای دیپلوی سایر فریمورک ها مثل django یا فریمورک های go روی ویندوز سرور هم تجربه ای دارین بگین
در ضمن بنظر شما دیتابیس sqlite برای یه پروژه پروتوتایپ و تستی در فاز دیپلوی و استفاده کافیه یا نه.
ممنون.
سلام
اگر میتونید از داکر استفاده کنید پیشنهاد من این داکر فایلی هست که تقریبا خودم آماده کردم!
مولتی استیج هست و حجم داکر ایمج نهایی خیلی پایین هست!
FROM node:20-alpine AS base
FROM base AS deps
WORKDIR /app
RUN apk add --no-cache libc6-compat
COPY package.json package-lock.json ./
RUN npm ci --force
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
COPY .env .env
RUN npm run build
FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
ENV PORT=3000
CMD HOSTNAME="0.0.0.0" node server.js
اگر هم نمیتونید از داکر استفاده کنید میتونید از این اسکریپ bash استفاده کنید که خودم اماده کردم!
npm run build
mkdir ./temp
cp -r ./public/. ./temp/public
cp -r ./.next/standalone/. ./temp
mkdir -p ./temp/.next/static/.
cp -r ./.next/static/. ./temp/.next/static
این اسکریپت همه فایل هایی که نیاز دارید رو توی پوشه temp کپی میکنه و بعد میتونید با دستور
node ./temp/server.js
پروژه رو اجرا کنید و نکتهاین ۲ شیوه هم اینه که باید توی فایل next.config.ts
output رو برابر standalone قرار بدید!
به این صورت
import { withNextVideo } from "next-video/process";
import type {NextConfig} from "next";
const nextConfig: NextConfig = {
output: 'standalone'
}
export default withNextVideo(nextConfig);
راستی!
اگر از داکر استفاده کردید که هیچ، پروژه بالاست و نیاز به Process Manager ندارید وگرنه باید یه Process Manager مثل pm2 نصب کنید که پروژه رو همیشه اجرا نگه داره و بعدا به iis میتونید بگید هرکس به این ادرس روی پورت ۸۰ درخواست داد ارسال کن به پورت ۳۰۰۰ برای مثال
😅 همون روز های اول که اینترنت رو قطع کردن ضبط و آپلودش کردم و فکر نمیکردم که دیده بشه
@hosseinyn91
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟