diff --git a/.gitea/workflows/ci-cd.yml b/.gitea/workflows/ci-cd.yml index 85894d6..4ff00b9 100644 --- a/.gitea/workflows/ci-cd.yml +++ b/.gitea/workflows/ci-cd.yml @@ -68,42 +68,58 @@ jobs: steps: - name: Trigger backend deploy env: - HOOK_URL: ${{ secrets.COOLIFY_DEPLOY_HOOK_URL_BOT }} - HOOK_TOKEN: ${{ secrets.COOLIFY_DEPLOY_TOKEN_BOT }} + COOLIFY_BASE_URL: ${{ secrets.COOLIFY_BASE_URL }} + COOLIFY_API_TOKEN: ${{ secrets.COOLIFY_API_TOKEN }} + COOLIFY_RESOURCE_UUID: ${{ secrets.COOLIFY_RESOURCE_UUID_BOT }} run: | - if [ -z "$HOOK_URL" ]; then - echo "Missing COOLIFY_DEPLOY_HOOK_URL_BOT" + if [ -z "$COOLIFY_BASE_URL" ]; then + echo "Missing COOLIFY_BASE_URL" exit 1 fi - if [ -n "$HOOK_TOKEN" ]; then - curl --fail --show-error --silent \ - -X POST \ - -H "Authorization: Bearer $HOOK_TOKEN" \ - "$HOOK_URL" - else - curl --fail --show-error --silent -X POST "$HOOK_URL" + if [ -z "$COOLIFY_API_TOKEN" ]; then + echo "Missing COOLIFY_API_TOKEN" + exit 1 fi + if [ -z "$COOLIFY_RESOURCE_UUID" ]; then + echo "Missing COOLIFY_RESOURCE_UUID_BOT" + exit 1 + fi + + BASE_URL="${COOLIFY_BASE_URL%/}" + curl --fail --show-error --silent -G \ + "$BASE_URL/api/v1/deploy" \ + -H "Authorization: Bearer $COOLIFY_API_TOKEN" \ + --data-urlencode "uuid=$COOLIFY_RESOURCE_UUID" + echo "Backend deploy triggered" - name: Trigger dashboard deploy env: - HOOK_URL: ${{ secrets.COOLIFY_DEPLOY_HOOK_URL_DASHBOARD }} - HOOK_TOKEN: ${{ secrets.COOLIFY_DEPLOY_TOKEN_DASHBOARD }} + COOLIFY_BASE_URL: ${{ secrets.COOLIFY_BASE_URL }} + COOLIFY_API_TOKEN: ${{ secrets.COOLIFY_API_TOKEN }} + COOLIFY_RESOURCE_UUID: ${{ secrets.COOLIFY_RESOURCE_UUID_DASHBOARD }} run: | - if [ -z "$HOOK_URL" ]; then - echo "Missing COOLIFY_DEPLOY_HOOK_URL_DASHBOARD" + if [ -z "$COOLIFY_BASE_URL" ]; then + echo "Missing COOLIFY_BASE_URL" exit 1 fi - if [ -n "$HOOK_TOKEN" ]; then - curl --fail --show-error --silent \ - -X POST \ - -H "Authorization: Bearer $HOOK_TOKEN" \ - "$HOOK_URL" - else - curl --fail --show-error --silent -X POST "$HOOK_URL" + if [ -z "$COOLIFY_API_TOKEN" ]; then + echo "Missing COOLIFY_API_TOKEN" + exit 1 fi + if [ -z "$COOLIFY_RESOURCE_UUID" ]; then + echo "Missing COOLIFY_RESOURCE_UUID_DASHBOARD" + exit 1 + fi + + BASE_URL="${COOLIFY_BASE_URL%/}" + curl --fail --show-error --silent -G \ + "$BASE_URL/api/v1/deploy" \ + -H "Authorization: Bearer $COOLIFY_API_TOKEN" \ + --data-urlencode "uuid=$COOLIFY_RESOURCE_UUID" + echo "Dashboard deploy triggered" diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index e0e5ee9..ad58aa8 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -127,30 +127,30 @@ Discord OAuth authorize URL shape: https://discord.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=https%3A%2F%2Fadmin.openmicodyssey.com%2Foauth%2Fdiscord%2Fcallback&scope=identify%20guilds&prompt=consent ``` -## 3. Get Coolify Deployment Hooks and Tokens +## 3. Get Coolify API Token and Resource UUIDs -For each resource (`omo-bot-backend` and `omo-bot-dashboard`): +1. In Coolify, open `Keys & Tokens` -> `API Tokens` and create a token. +2. Copy your Coolify base URL (example: `https://coolify.yourdomain.com`). +3. Find resource UUID for: -1. Open resource in Coolify. -2. Go to Deployments/Webhooks (name may vary by Coolify version). -3. Copy the Deploy Webhook URL. -4. If webhook auth token is enabled, copy the token. +- `omo-bot-backend` +- `omo-bot-dashboard` -Store both resources separately: +Deploy API endpoint used by CI: -- Backend deploy hook URL/token -- Dashboard deploy hook URL/token +- `GET /api/v1/deploy?uuid=` +- Authorization: `Bearer ` ## 4. Configure Gitea Action Secrets/Variables In Gitea repository settings, add Actions secrets: -- `COOLIFY_DEPLOY_HOOK_URL_BOT` -- `COOLIFY_DEPLOY_TOKEN_BOT` (optional) -- `COOLIFY_DEPLOY_HOOK_URL_DASHBOARD` -- `COOLIFY_DEPLOY_TOKEN_DASHBOARD` (optional) +- `COOLIFY_BASE_URL` +- `COOLIFY_API_TOKEN` +- `COOLIFY_RESOURCE_UUID_BOT` +- `COOLIFY_RESOURCE_UUID_DASHBOARD` -Current workflow in `.gitea/workflows/ci-cd.yml` triggers backend and dashboard deploys separately using these four secrets. +Current workflow in `.gitea/workflows/ci-cd.yml` triggers backend and dashboard deploys separately via the Coolify Deploy API. ## 5. Domain and DNS Checklist