my own indieAuth provider! indiko.dunkirk.sh/docs
indieauth oauth2-server

chore: use reusable deploy workflow from dots

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

dunkirk.sh a37e1db0 77b8d838

verified
+9 -65
+9 -65
.github/workflows/deploy.yaml
··· 2 2 3 3 on: 4 4 push: 5 - branches: 6 - - main 5 + branches: [main] 7 6 workflow_dispatch: 8 7 9 8 jobs: 10 9 deploy: 11 - runs-on: ubuntu-latest 12 - steps: 13 - - uses: actions/checkout@v3 14 - 15 - - name: Setup Tailscale 16 - uses: tailscale/github-action@v3 17 - with: 18 - oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }} 19 - oauth-secret: ${{ secrets.TS_OAUTH_SECRET }} 20 - tags: tag:ci 21 - use-cache: "true" 22 - 23 - - name: Configure SSH 24 - run: | 25 - mkdir -p ~/.ssh 26 - echo "StrictHostKeyChecking no" >> ~/.ssh/config 27 - 28 - - name: Deploy to server 29 - run: | 30 - ssh indiko@terebithia << 'EOF' 31 - cd /var/lib/indiko/app 32 - git fetch --all 33 - git reset --hard origin/main 34 - bun install 35 - sudo /run/current-system/sw/bin/systemctl restart indiko.service 36 - EOF 37 - 38 - - name: Health check 39 - run: | 40 - HEALTH_URL="https://indiko.dunkirk.sh/health" 41 - MAX_RETRIES=6 42 - RETRY_DELAY=5 43 - 44 - for i in $(seq 1 $MAX_RETRIES); do 45 - echo "Health check attempt $i/$MAX_RETRIES..." 46 - 47 - RESPONSE=$(curl -s -w "\n%{http_code}" "$HEALTH_URL" || echo "000") 48 - HTTP_CODE=$(echo "$RESPONSE" | tail -n1) 49 - BODY=$(echo "$RESPONSE" | head -n-1) 50 - 51 - if [ "$HTTP_CODE" = "200" ]; then 52 - # Validate response contains "status":"ok" 53 - if echo "$BODY" | grep -q '"status":"ok"'; then 54 - echo "✅ Service is healthy (HTTP $HTTP_CODE)" 55 - echo "Response: $BODY" 56 - exit 0 57 - else 58 - echo "❌ Health check returned 200 but invalid body" 59 - echo "Response: $BODY" 60 - fi 61 - else 62 - echo "❌ Health check failed with HTTP $HTTP_CODE" 63 - echo "Response: $BODY" 64 - fi 65 - 66 - if [ $i -lt $MAX_RETRIES ]; then 67 - echo "Retrying in ${RETRY_DELAY}s..." 68 - sleep $RETRY_DELAY 69 - fi 70 - done 71 - 72 - echo "❌ Health check failed after $MAX_RETRIES attempts" 73 - exit 1 10 + uses: taciturnaxolotl/dots/.github/workflows/deploy-service.yml@main 11 + with: 12 + service: indiko 13 + health_url: https://indiko.dunkirk.sh/health 14 + db_path: /var/lib/indiko/data/indiko.db 15 + secrets: 16 + TS_OAUTH_CLIENT_ID: ${{ secrets.TS_OAUTH_CLIENT_ID }} 17 + TS_OAUTH_SECRET: ${{ secrets.TS_OAUTH_SECRET }}