name: Deploy to BeePC on: push: branches: [ main ] workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup SSH run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H beepc >> ~/.ssh/known_hosts 2>/dev/null || true - name: Deploy to server run: | ssh spencer@beepc "mkdir -p /home/spencer/homebase" rsync -avz --delete \ --exclude 'node_modules' \ --exclude '.git' \ --exclude '.github' \ --exclude '*.log' \ ./ spencer@beepc:/home/spencer/homebase/ - name: Run Docker Compose run: | ssh spencer@beepc << 'ENDSSH' cd /home/spencer/homebase docker compose down 2>/dev/null || true docker compose up -d --build sleep 5 docker compose ps docker compose logs --tail=20 ENDSSH - name: Verify deployment run: | sleep 10 curl -f http://homebase.sketchferret.com/health || exit 1