tst yaml2
This commit is contained in:
parent
6d98467a23
commit
06bbaa1d82
1 changed files with 18 additions and 34 deletions
52
.github/workflows/deploy.yml
vendored
52
.github/workflows/deploy.yml
vendored
|
|
@ -4,41 +4,29 @@ on:
|
|||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch: # Manueller Trigger möglich
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
APP_DIR: /opt/ollama-webapp
|
||||
SERVICE_NAME: ollama-webapp
|
||||
SERVER_HOST: 83.228.200.109
|
||||
SERVER_USER: ubuntu
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# 1. Code auschecken
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# 2. SSH Setup
|
||||
- name: Setup SSH
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.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
|
||||
run: |
|
||||
rsync -avz --delete \
|
||||
|
|
@ -50,52 +38,48 @@ jobs:
|
|||
--exclude 'venv' \
|
||||
--exclude '.env' \
|
||||
--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
|
||||
run: |
|
||||
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
|
||||
./venv/bin/pip install -r app/requirements.txt --quiet --upgrade
|
||||
|
||||
echo "🔄 Restarting service..."
|
||||
echo "Restarting service..."
|
||||
sudo systemctl restart ollama-webapp
|
||||
|
||||
echo "⏳ Waiting for service to start..."
|
||||
echo "Waiting for service to start..."
|
||||
sleep 5
|
||||
|
||||
echo "📊 Service status:"
|
||||
echo "Service status:"
|
||||
sudo systemctl status ollama-webapp --no-pager -l
|
||||
|
||||
echo "✅ Deployment complete!"
|
||||
echo "Deployment complete!"
|
||||
ENDSSH
|
||||
|
||||
# 5. Health Check
|
||||
- name: Health Check
|
||||
run: |
|
||||
echo "🏥 Running health check..."
|
||||
echo "Running health check..."
|
||||
sleep 3
|
||||
|
||||
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
|
||||
echo "✅ Health check passed! (HTTP $HTTP_STATUS)"
|
||||
echo "Health check passed! (HTTP $HTTP_STATUS)"
|
||||
else
|
||||
echo "❌ Health check failed! (HTTP $HTTP_STATUS)"
|
||||
echo "Health check failed! (HTTP $HTTP_STATUS)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 6. Deployment Summary
|
||||
- name: Deployment Summary
|
||||
if: success()
|
||||
run: |
|
||||
echo "🎉 Deployment successful!"
|
||||
echo "Deployment successful!"
|
||||
echo ""
|
||||
echo "📍 App URL: http://${{ secrets.SERVER_HOST }}:5000"
|
||||
echo "📍 Health: http://${{ secrets.SERVER_HOST }}:5000/api/health"
|
||||
echo "📍 Ollama: http://${{ secrets.SERVER_HOST }}:5000/api/ollama/status"
|
||||
echo "App URL: http://${{ env.SERVER_HOST }}:5000"
|
||||
echo "Health: http://${{ env.SERVER_HOST }}:5000/api/health"
|
||||
Loading…
Reference in a new issue