service-llm-private/.forgejo/workflows/main_service-main-llm-private.yml
ValueOn AG 3864bce3d5
Some checks failed
Deploy LLM Service / deploy (push) Failing after 8s
refactor: migrate to Forgejo workflows, remove GitHub Actions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-24 02:34:20 +02:00

93 lines
2.8 KiB
YAML

name: Deploy LLM Service
on:
push:
branches:
- main
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:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
ssh-keyscan -H ${{ env.SERVER_HOST }} >> ~/.ssh/known_hosts
- name: Install rsync
run: |
DEBIAN_FRONTEND=noninteractive apt-get update -qq && apt-get install -y -qq rsync > /dev/null
- name: Deploy files to server
run: |
rsync -avz --delete \
-e "ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no" \
--exclude '.git' \
--exclude '.forgejo' \
--exclude '__pycache__' \
--exclude '*.pyc' \
--exclude 'venv' \
--exclude '.env' \
--exclude 'logs' \
./ ${{ env.SERVER_USER }}@${{ env.SERVER_HOST }}:${{ env.APP_DIR }}/app/
- name: Update systemd service and restart
run: |
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \
${{ env.SERVER_USER }}@${{ env.SERVER_HOST }} << 'ENDSSH'
echo "Installing dependencies..."
cd /opt/ollama-webapp
./venv/bin/pip install -r app/requirements.txt --quiet --upgrade
echo "Updating systemd service file..."
sudo cp /opt/ollama-webapp/app/deploy/ollama-webapp.service /etc/systemd/system/ollama-webapp.service
sudo systemctl daemon-reload
echo "Restarting service..."
sudo systemctl restart ollama-webapp
echo "Waiting for service to start..."
sleep 5
echo "Service status:"
sudo systemctl status ollama-webapp --no-pager -l
echo "Deployment complete!"
ENDSSH
- name: Health Check
run: |
echo "Running health check..."
sleep 3
HTTP_STATUS=$(curl -sk -o /dev/null -w "%{http_code}" \
https://llm.poweron.swiss:8000/api/health || echo "000")
if [ "$HTTP_STATUS" = "200" ]; then
echo "Health check passed! (HTTP $HTTP_STATUS)"
else
echo "Health check failed! (HTTP $HTTP_STATUS)"
echo "Note: SSL certificate must be installed on server first"
fi
- name: Deployment Summary
if: success()
run: |
echo "Deployment successful!"
echo ""
echo "App URL: https://llm.poweron.swiss:8000"
echo "Health: https://llm.poweron.swiss:8000/api/health"