tst yaml2

This commit is contained in:
ValueOn AG 2026-02-06 02:35:14 +01:00
parent 6d98467a23
commit 06bbaa1d82

View file

@ -4,41 +4,29 @@ on:
push: push:
branches: branches:
- main - main
workflow_dispatch: # Manueller Trigger möglich workflow_dispatch:
env: env:
APP_DIR: /opt/ollama-webapp APP_DIR: /opt/ollama-webapp
SERVICE_NAME: ollama-webapp SERVICE_NAME: ollama-webapp
SERVER_HOST: 83.228.200.109
SERVER_USER: ubuntu
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
# 1. Code auschecken
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
# 2. SSH Setup
- name: Setup SSH - name: Setup SSH
run: | run: |
mkdir -p ~/.ssh mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key
ssh-keyscan -H ${{ secrets.SERVER_HOST }} >> ~/.ssh/known_hosts ssh-keyscan -H ${{ env.SERVER_HOST }} >> ~/.ssh/known_hosts
# 2.5 Debug SSH
- name: Debug SSH Connection
run: |
echo "=== Key file info ==="
ls -la ~/.ssh/deploy_key
head -1 ~/.ssh/deploy_key
tail -1 ~/.ssh/deploy_key
echo "=== Testing SSH ==="
ssh -vvv -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} "echo SUCCESS" 2>&1 | head -100
# 3. Dateien zum Server kopieren
- name: Deploy files to server - name: Deploy files to server
run: | run: |
rsync -avz --delete \ rsync -avz --delete \
@ -50,52 +38,48 @@ jobs:
--exclude 'venv' \ --exclude 'venv' \
--exclude '.env' \ --exclude '.env' \
--exclude 'logs' \ --exclude 'logs' \
./ ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:${{ env.APP_DIR }}/app/ ./ ${{ env.SERVER_USER }}@${{ env.SERVER_HOST }}:${{ env.APP_DIR }}/app/
# 4. Dependencies installieren und Service neu starten
- name: Install dependencies and restart service - name: Install dependencies and restart service
run: | run: |
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \ ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \
${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} << 'ENDSSH' ${{ env.SERVER_USER }}@${{ env.SERVER_HOST }} << 'ENDSSH'
echo "📦 Installing dependencies..." echo "Installing dependencies..."
cd /opt/ollama-webapp cd /opt/ollama-webapp
./venv/bin/pip install -r app/requirements.txt --quiet --upgrade ./venv/bin/pip install -r app/requirements.txt --quiet --upgrade
echo "🔄 Restarting service..." echo "Restarting service..."
sudo systemctl restart ollama-webapp sudo systemctl restart ollama-webapp
echo "Waiting for service to start..." echo "Waiting for service to start..."
sleep 5 sleep 5
echo "📊 Service status:" echo "Service status:"
sudo systemctl status ollama-webapp --no-pager -l sudo systemctl status ollama-webapp --no-pager -l
echo "Deployment complete!" echo "Deployment complete!"
ENDSSH ENDSSH
# 5. Health Check
- name: Health Check - name: Health Check
run: | run: |
echo "🏥 Running health check..." echo "Running health check..."
sleep 3 sleep 3
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" \ HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
http://${{ secrets.SERVER_HOST }}:5000/api/health || echo "000") http://${{ env.SERVER_HOST }}:5000/api/health || echo "000")
if [ "$HTTP_STATUS" = "200" ]; then if [ "$HTTP_STATUS" = "200" ]; then
echo "Health check passed! (HTTP $HTTP_STATUS)" echo "Health check passed! (HTTP $HTTP_STATUS)"
else else
echo "Health check failed! (HTTP $HTTP_STATUS)" echo "Health check failed! (HTTP $HTTP_STATUS)"
exit 1 exit 1
fi fi
# 6. Deployment Summary
- name: Deployment Summary - name: Deployment Summary
if: success() if: success()
run: | run: |
echo "🎉 Deployment successful!" echo "Deployment successful!"
echo "" echo ""
echo "📍 App URL: http://${{ secrets.SERVER_HOST }}:5000" echo "App URL: http://${{ env.SERVER_HOST }}:5000"
echo "📍 Health: http://${{ secrets.SERVER_HOST }}:5000/api/health" echo "Health: http://${{ env.SERVER_HOST }}:5000/api/health"
echo "📍 Ollama: http://${{ secrets.SERVER_HOST }}:5000/api/ollama/status"