Archived
Compare commits
8
Commits
85f6efc82c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb70cc728d | ||
|
|
0d853e695f | ||
|
|
93d94616b5 | ||
|
|
6f68f2069d | ||
|
|
bbd466e050 | ||
|
|
2fa30e0ed1 | ||
|
|
247ada2b0e | ||
|
|
5132ab81b7 |
@@ -9,6 +9,11 @@ jobs:
|
|||||||
deploy:
|
deploy:
|
||||||
runs-on: linux
|
runs-on: linux
|
||||||
steps:
|
steps:
|
||||||
- name: Deploy to Server
|
- name: Setup SSH Key
|
||||||
run: |
|
run: |
|
||||||
ssh pablo@palumo.mrmoku.de "cd ~/opt/apps/pablo.shortman.me && git pull && docker compose down && docker compose up -d"
|
mkdir -p ~/.ssh
|
||||||
|
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
|
||||||
|
chmod 600 ~/.ssh/id_ed25519
|
||||||
|
ssh-keyscan -H "${{ secrets.SSH_HOST }}" >> ~/.ssh/known_hosts
|
||||||
|
- name: Deploy via SSH
|
||||||
|
run: ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "bash ~/deploy.sh ${{ secrets.PROJECT_DEPLOYMENT_PATH }}"
|
||||||
|
|||||||
+1
-7
@@ -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"]
|
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user