name: Build and Deploy on: push: branches: - main jobs: deploy: runs-on: docker steps: - name: Checkout uses: actions/checkout@v4 - name: Set up SSH run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H 194.163.164.113 >> ~/.ssh/known_hosts - name: Deploy to server env: APP_NAME: ${{ vars.APP_NAME }} DOMAIN: ${{ vars.DOMAIN }} run: | SERVER="root@194.163.164.113" DEPLOY_PATH="/opt/apps/${APP_NAME}" # Verzeichnis vorbereiten ssh $SERVER "mkdir -p ${DEPLOY_PATH}" # Alle Dateien kopieren tar --exclude='.git' --exclude='.forgejo' -czf - . | ssh $SERVER "cd ${DEPLOY_PATH} && tar -xzf -" # .env Datei für docker-compose erstellen ssh $SERVER "cat > ${DEPLOY_PATH}/.env << EOF APP_NAME=${APP_NAME} DOMAIN=${DOMAIN} EOF" # Anwendung deployen ssh $SERVER "cd ${DEPLOY_PATH} && docker compose up -d --build --force-recreate" echo "Deployed to https://${DOMAIN}"