diff --git a/.gitignore b/.gitignore index 37517f9..e00f2a1 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,7 @@ yarn-error.log* .vscode/ .idea/ deploy_key + +# Deployment keys and scripts +deploy_key* +deploy.sh diff --git a/deploy.sh b/deploy.sh deleted file mode 100755 index b328c56..0000000 --- a/deploy.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/bash -set -e - -# API Configuration -COOLIFY_TOKEN="1790|8Klldu1hXjtODfZhl0dFn5D6Jhd7X285CuPzcQBdffaed898" -GITEA_TOKEN="968f51fc9f957c567f592c691bafd453c839b7e9" -CLOUDFLARE_TOKEN="h5mN_lhWW5Rl4aVP0eyVU_Z7u3PndZVtW4q7ExLK" -COOLIFY_API="https://app.coolify.io/api/v1" -GITEA_API="https://git.startanaicompany.com/api/v1" -CLOUDFLARE_API="https://api.cloudflare.com/client/v4" - -# Project details -PROJECT_UUID="y8804s80goowsccwk8400kwo" -REPO_NAME="ai-recruit-site-template" -GITEA_USER="mikael.westoo" -ZONE_ID="e6ade38a28032c3542140a9cbf592838" - -echo "=== Step 1: Adding Private Key to Coolify ===" -PRIVATE_KEY_JSON=$(jq -Rs . < ./deploy_key) -PRIVATE_KEY_RESPONSE=$(curl -s -X POST "${COOLIFY_API}/private-keys" \ - -H "Authorization: Bearer ${COOLIFY_TOKEN}" \ - -H "Content-Type: application/json" \ - -d "{\"name\": \"recruitai-deploy-key\", \"description\": \"Deploy key for RecruitAI\", \"private_key\": ${PRIVATE_KEY_JSON}}") - -echo "$PRIVATE_KEY_RESPONSE" -PRIVATE_KEY_UUID=$(echo "$PRIVATE_KEY_RESPONSE" | jq -r '.uuid') -echo "Private Key UUID: ${PRIVATE_KEY_UUID}" - -echo "" -echo "=== Step 2: Adding Deploy Key to Gitea ===" -PUBLIC_KEY=$(cat ./deploy_key.pub) -curl -s -X POST "${GITEA_API}/repos/${GITEA_USER}/${REPO_NAME}/keys" \ - -H "Authorization: token ${GITEA_TOKEN}" \ - -H "Content-Type: application/json" \ - -d "{\"title\": \"Coolify Deploy Key\", \"key\": \"${PUBLIC_KEY}\", \"read_only\": true}" | jq '.' - -echo "" -echo "=== Step 3: Pushing to Gitea ===" -git remote remove origin 2>/dev/null || true -git remote add origin git@git.startanaicompany.com:${GITEA_USER}/${REPO_NAME}.git -git push -u origin master - -echo "" -echo "=== Step 4: Creating Coolify Application ===" -APP_RESPONSE=$(curl -s -X POST "${COOLIFY_API}/applications/public" \ - -H "Authorization: Bearer ${COOLIFY_TOKEN}" \ - -H "Content-Type: application/json" \ - -d "{ - \"project_uuid\": \"${PROJECT_UUID}\", - \"environment_name\": \"production\", - \"server_uuid\": 0, - \"type\": \"public\", - \"source\": { - \"type\": \"git\", - \"url\": \"git@git.startanaicompany.com:${GITEA_USER}/${REPO_NAME}\", - \"branch\": \"master\", - \"private_key_uuid\": \"${PRIVATE_KEY_UUID}\" - }, - \"build_pack\": \"dockerfile\", - \"ports_exposes\": \"3000\", - \"name\": \"recruitai\" - }") - -echo "$APP_RESPONSE" | jq '.' -APP_UUID=$(echo "$APP_RESPONSE" | jq -r '.uuid') -DEFAULT_FQDN=$(echo "$APP_RESPONSE" | jq -r '.fqdn' | sed 's|http://||' | sed 's|https://||') - -echo "" -echo "App UUID: ${APP_UUID}" -echo "Default FQDN: ${DEFAULT_FQDN}" - -echo "" -echo "=== Step 5: Adding Webhook to Gitea ===" -curl -s -X POST "${GITEA_API}/repos/${GITEA_USER}/${REPO_NAME}/hooks" \ - -H "Authorization: token ${GITEA_TOKEN}" \ - -H "Content-Type: application/json" \ - -d "{ - \"type\": \"gitea\", - \"config\": { - \"url\": \"https://app.coolify.io/api/v1/deploy?uuid=${APP_UUID}\", - \"content_type\": \"json\", - \"http_method\": \"GET\" - }, - \"events\": [\"push\"], - \"active\": true - }" | jq '.' - -echo "" -echo "=== Step 6: Creating DNS Record ===" -DNS_RESPONSE=$(curl -s -X POST "${CLOUDFLARE_API}/zones/${ZONE_ID}/dns_records" \ - -H "Authorization: Bearer ${CLOUDFLARE_TOKEN}" \ - -H "Content-Type: application/json" \ - -d "{ - \"type\": \"CNAME\", - \"name\": \"recruitai\", - \"content\": \"${DEFAULT_FQDN}\", - \"ttl\": 1, - \"proxied\": false - }") - -echo "$DNS_RESPONSE" | jq '.' - -echo "" -echo "=== Step 7: Updating Application Domain ===" -curl -s -X PATCH "${COOLIFY_API}/applications/${APP_UUID}" \ - -H "Authorization: Bearer ${COOLIFY_TOKEN}" \ - -H "Content-Type: application/json" \ - -d "{\"domains\": \"http://recruitai.startanaicompany.com\"}" | jq '.' - -echo "" -echo "=== Step 8: Deploying Application ===" -curl -s -X GET "${COOLIFY_API}/deploy?uuid=${APP_UUID}&force=true" \ - -H "Authorization: Bearer ${COOLIFY_TOKEN}" | jq '.' - -echo "" -echo "==========================================" -echo "=== Deployment Complete! ===" -echo "==========================================" -echo "" -echo "Site URL: http://recruitai.startanaicompany.com" -echo "Admin Panel: http://recruitai.startanaicompany.com/admin/login" -echo "" -echo "App UUID: ${APP_UUID}" -echo "Project UUID: ${PROJECT_UUID}" -echo "" -echo "Please wait 2-3 minutes for the deployment to complete." -echo "You can check the deployment status in the Coolify dashboard." diff --git a/deploy_key.pub b/deploy_key.pub deleted file mode 100644 index 628959f..0000000 --- a/deploy_key.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKeCe9jD8IRdeIuJlwnVc422p9ZhzWak/9s+h7q7VUF4 coolify-recruitai-deploy