10 Commits
Author SHA1 Message Date
pablo eb70cc728d Merge pull request 'updated ci/cd pipeline' (#10) from dev into main
Deploy Next.js App / deploy (push) Failing after 0s
Reviewed-on: #10
2025-03-17 15:03:18 +00:00
pablo 0d853e695f updated ci/cd pipeline 2025-03-17 16:02:54 +01:00
pablo 93d94616b5 Merge pull request 'fixed docker compose traefik network' (#9) from dev into main
Deploy Next.js App / deploy (push) Successful in 0s
Reviewed-on: #9
2025-03-17 14:27:54 +00:00
pablo 6f68f2069d fixed docker compose traefik network 2025-03-17 15:27:25 +01:00
pablo bbd466e050 Merge pull request 'updated docker files' (#8) from dev into main
Deploy Next.js App / deploy (push) Successful in 0s
Reviewed-on: #8
2025-03-17 14:21:33 +00:00
pablo 2fa30e0ed1 updated docker files 2025-03-17 15:20:40 +01:00
pablo 247ada2b0e Merge pull request 'added traefik labels' (#7) from dev into main
Deploy Next.js App / deploy (push) Successful in 0s
Reviewed-on: #7
2025-03-16 15:07:48 +00:00
pablo 5132ab81b7 added traefik labels 2025-03-16 16:07:19 +01:00
pablo 85f6efc82c Merge pull request 'CI/CD pipepline' (#6) from dev into main
Deploy Next.js App / deploy (push) Failing after 0s
Reviewed-on: #6
2025-03-16 14:53:50 +00:00
pablo 13904c9992 CI/CD pipepline 2025-03-16 15:53:28 +01:00
4 changed files with 41 additions and 20 deletions
+7 -9
View File
@@ -9,13 +9,11 @@ jobs:
deploy: deploy:
runs-on: linux runs-on: linux
steps: steps:
- name: Navigate to project and pull latest code - name: Setup SSH Key
run: | run: |
cd /home/pablo/opt/apps/pablo.shortman.me mkdir -p ~/.ssh
git pull origin main echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
- name: Set up Docker Compose ssh-keyscan -H "${{ secrets.SSH_HOST }}" >> ~/.ssh/known_hosts
run: | - name: Deploy via SSH
docker compose down run: ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "bash ~/deploy.sh ${{ secrets.PROJECT_DEPLOYMENT_PATH }}"
docker compose build
docker compose up -d
+1 -7
View File
@@ -1,21 +1,15 @@
# Use official Node.js image
FROM node:18-alpine FROM node:18-alpine
# Install pnpm globally
RUN npm install -g pnpm RUN npm install -g pnpm
WORKDIR /app WORKDIR /app
# Copy package manager files first for caching
COPY package.json pnpm-lock.yaml ./ COPY package.json pnpm-lock.yaml ./
# Install dependencies using pnpm
RUN pnpm install --frozen-lockfile RUN pnpm install --frozen-lockfile
COPY . . COPY . .
RUN pnpm build RUN pnpm build
EXPOSE 3004 CMD ["pnpm", "start"]
CMD ["pnpm", "start", "--port", "3004"]
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
set -e
if [ -z "$1" ]; then
echo "Usage: $0 <project_path>"
exit 1
fi
PROJECT_PATH=$1
echo "Deploying project..."
cd "$PROJECT_PATH" || { echo "Directory not found: $PROJECT_PATH"; exit 1; }
git pull origin main
docker-compose up -d --build
echo "Deployment finished!"
+18 -4
View File
@@ -2,9 +2,23 @@ version: "3.8"
services: services:
nextjs: nextjs:
build: . build: .
deploy:
update_config:
parallelism: 1
delay: 5s
order: start-first
container_name: pablo.shortman.me container_name: pablo.shortman.me
environment:
- PORT=3004
ports:
- "3004:3004"
restart: always restart: always
labels:
- "traefik.enable=true"
- "traefik.http.routers.pablo-shortman-me.rule=Host(`pablo.shortman.me`)"
- "traefik.http.routers.pablo-shortman-me.entrypoints=websecure"
- "traefik.http.services.pablo-shortman-me.loadbalancer.server.port=3000"
- "traefik.http.routers.pablo-shortman-me.tls.certresolver=myresolver"
expose:
- "3000"
networks:
- webproxy
networks:
webproxy:
external: true