From 6c388b6e074c02b3ab45d1604b039a2c65521ce0 Mon Sep 17 00:00:00 2001 From: mahyargdz Date: Thu, 10 Oct 2024 16:21:14 +0330 Subject: [PATCH] update:add ci cd files ==> do not edit those file --- .github/workflows/Deploy.yaml | 48 +++++++++++++++++++++++++++++++++++ Dockerfile | 48 +++++++++++++++++++++++++++++++++++ nuxt.config.ts | 2 +- 3 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/Deploy.yaml create mode 100644 Dockerfile diff --git a/.github/workflows/Deploy.yaml b/.github/workflows/Deploy.yaml new file mode 100644 index 0000000..a8295f3 --- /dev/null +++ b/.github/workflows/Deploy.yaml @@ -0,0 +1,48 @@ +name: deploy to danak + +on: + push: + branches: + - main + +jobs: + build_and_deploy: + runs-on: ubuntu-latest + + env: + DANAK_SERVER: "https://captain.run.danakcorp.com" + APP_TOKEN: 870624b37d59098db23a5b733c38a4215b4dc18be4da171d2f89df321fd1fe00 + CAPROVER_APP_NAME: dlearn-front + GITHUB_TOKEN: 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 + + steps: + - name: Check out repositorys + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: zmihamid + password: ${{ env.GITHUB_TOKEN }} + + - name: Preset Image Name + run: echo "IMAGE_URL=$(echo ghcr.io/zmihamid/${{ github.event.repository.name }}:$(echo ${{ github.sha }} | cut -c1-7) | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + + - name: Build and push Docker Image + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: true + tags: ${{ env.IMAGE_URL }} + + - name: Install CapRover CLI + run: npm install -g caprover + + - name: deploy to server + run: | + caprover deploy -a $CAPROVER_APP_NAME -u $DANAK_SERVER --appToken $APP_TOKEN -i "$IMAGE_URL" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..80f2c99 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,48 @@ +FROM node:18-alpine AS base + +# Install tzdata to support timezone settings +RUN apk add --no-cache tzdata + +# Set the timezone to Asia/Tehran +RUN cp /usr/share/zoneinfo/Asia/Tehran /etc/localtime && echo "Asia/Tehran" > /etc/timezone + + +# Stage 2: Dependencies +FROM base AS deps +WORKDIR /temp-deps +COPY package*.json ./ +RUN npm install + +# Stage 3: Build stage +FROM base AS builder +WORKDIR /build +COPY . ./ +COPY --from=deps /temp-deps/node_modules ./node_modules +RUN npm run build + +# Stage 4: Production image +FROM base AS runner +RUN addgroup -S appgroup && adduser -S appuser -G appgroup +WORKDIR /app + +# COPY --from=builder /build ./ +COPY --from=builder /build/.output ./.output +COPY package*.json ./ + +RUN chown -R appuser:appgroup /app + +USER appuser + +ENV NODE_ENV=production + +EXPOSE 3000 + +# Start the Nuxt app +# CMD ["npm", "start"] +CMD ["node", ".output/server/index.mjs"] + + + + + + diff --git a/nuxt.config.ts b/nuxt.config.ts index 27b62b5..cb55a6d 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -3,7 +3,7 @@ export default defineNuxtConfig({ devtools: { enabled: true }, runtimeConfig: { public: { - apiBase: "https://dlearn.liara.run", + apiBase: "https://dlearn-api.run.danakcorp.com", }, }, modules: [