name: Deploy to Pages (via spiped & base64) on: push: branches: [main] workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v3 - name: Tools installieren run: | sudo apt-get update sudo apt-get install -y rsync openssh-client spiped - name: SSH & spiped Keys einrichten run: | mkdir -p ~/.ssh chmod 700 ~/.ssh # SSH Privat-Key (Text-basiert) echo "${{ secrets.DEPLOY_SSH_KEY }}" | tr -d '\r' > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 # spiped Key (Base64 dekodieren zu Binär) echo "${{ secrets.SPIPED_KEY }}" | base64 -d > ~/.ssh/spipe.key chmod 600 ~/.ssh/spipe.key - name: Deploy via rsync run: | # --exclude sorgt dafür, dass nur die Webseite übertragen wird rsync -avz --delete \ --exclude ".git/" \ --exclude ".gitea/" \ --exclude ".gitignore" \ -e "ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o 'ProxyCommand=spipe -t %h:8022 -k ~/.ssh/spipe.key'" \ ./ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/data/pages/pages/rclone-app/