name: Build and Deploy SearXNG on: push: branches: - main paths: - "compose.yaml" - "config/**" # Reagiert jetzt sauber auf deinen Ordnernamen - ".gitea/workflows/build-and-deployment.yaml" workflow_dispatch: jobs: deploy: runs-on: proxmox env: TARGET_DIR: "/home/gitea-runner/docker/searxng" steps: - name: Checkout code uses: actions/checkout@v4 - name: Ensure directory structure exists run: | mkdir -p ${{ env.TARGET_DIR }}/config - name: Inject Git Secrets into .env file run: | echo "SEARXNG_SECRET=${{ secrets.SEARXNG_SECRET }}" > ${{ env.TARGET_DIR }}/.env echo "SEARXNG_BASE_URL=${{ secrets.SEARXNG_BASE_URL }}" >> ${{ env.TARGET_DIR }}/.env # Baut genau die .env, die dein Compose-File via `env_file: ./.env` erwartet - name: Copy deployment files (Compose & Config) run: | cp compose.yaml ${{ env.TARGET_DIR }}/ cp -r config/* ${{ env.TARGET_DIR }}/config/ - name: Clean stop old containers run: docker compose down || true working-directory: ${{ env.TARGET_DIR }} - name: Pull latest images run: docker compose pull working-directory: ${{ env.TARGET_DIR }} - name: Start SearXNG Stack run: docker compose up -d --force-recreate working-directory: ${{ env.TARGET_DIR }} - name: Verify Stack Health run: | sleep 5 docker ps echo "=== Valkey Logs ===" docker logs searxng-valkey --tail 10 echo "=== SearXNG Logs ===" docker logs searxng-core --tail 10