Files
Orchestrator/privat/CV/andreknie.de/.gitea/workflows/deploy.yml
T

74 lines
2.2 KiB
YAML

name: Deploy CV Site (andreknie.de)
on:
push:
branches:
- master
- main
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install & Build Frontend
run: |
npm ci
npm run build
- name: Copy project files to VM
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.DEPLOY_SSH_HOST }}
username: ${{ secrets.DEPLOY_SSH_USER }}
key: ${{ secrets.DEPLOY_SSH_KEY }}
source: "*,dist/**,dist/.*"
target: "/opt/orchestrator/privat/CV/andreknie.de"
- name: Execute Deployment on VM
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.DEPLOY_SSH_HOST }}
username: ${{ secrets.DEPLOY_SSH_USER }}
key: ${{ secrets.DEPLOY_SSH_KEY }}
script: |
cd /opt/orchestrator/privat/CV/andreknie.de
# 1. Sichere .env aus den Gitea Secrets generieren
cat <<EOF > .env
PORT=3003
NODE_ENV=production
BASE_URL=https://andreknie.de
SMTP_HOST=smtp.ionos.de
SMTP_PORT=587
SMTP_USER=${{ secrets.SMTP_USER }}
SMTP_PASS=${{ secrets.SMTP_PASS }}
STAKEHOLDER_EMAIL=kontakt@d-hive.de
DATABASE_URL=postgresql://umami:${{ secrets.UMAMI_DB_PASS }}@umami-db:5432/umami
POSTGRES_DB=umami
POSTGRES_USER=umami
POSTGRES_PASSWORD=${{ secrets.UMAMI_DB_PASS }}
HASH_SALT=${{ secrets.UMAMI_HASH_SALT }}
EOF
# 2. Frontend-Build in den Caddy-Ordner verschieben
mkdir -p site
# Wenn dist existiert, kopiere den Inhalt
if [ -d "dist" ]; then
cp -r dist/* site/ || true
cp -r dist/.* site/ 2>/dev/null || true
else
echo "FEHLER: dist Ordner existiert nicht!"
fi
# Debugging: Zeige an, ob die Dateien wirklich da sind
echo "INHALT VON SITE:"
ls -la site/
# 3. Docker Container neustarten
docker compose up -d --build