fix: deploy.sh - ssl, port detection, deploy trigger
This commit is contained in:
@@ -7,6 +7,12 @@ set -e
|
|||||||
|
|
||||||
PROJECT_NAME="${1:?Usage: deploy.sh <project-name> [dockerfile|nixpacks|static]}"
|
PROJECT_NAME="${1:?Usage: deploy.sh <project-name> [dockerfile|nixpacks|static]}"
|
||||||
BUILD_TYPE="${2:-nixpacks}"
|
BUILD_TYPE="${2:-nixpacks}"
|
||||||
|
# Port: static/dockerfile use 80, nixpacks use 3000
|
||||||
|
if [ "${BUILD_TYPE}" = "static" ] || [ "${BUILD_TYPE}" = "dockerfile" ]; then
|
||||||
|
BUILD_TYPE_PORT="80"
|
||||||
|
else
|
||||||
|
BUILD_TYPE_PORT="3000"
|
||||||
|
fi
|
||||||
|
|
||||||
GITEA_URL="${GITEA_URL:?GITEA_URL not set}"
|
GITEA_URL="${GITEA_URL:?GITEA_URL not set}"
|
||||||
GITEA_TOKEN="${GITEA_TOKEN:?GITEA_TOKEN not set}"
|
GITEA_TOKEN="${GITEA_TOKEN:?GITEA_TOKEN not set}"
|
||||||
@@ -106,6 +112,15 @@ echo "[deploy] Environment: ${ENV_UUID}"
|
|||||||
echo "[deploy] Creating Coolify application..."
|
echo "[deploy] Creating Coolify application..."
|
||||||
REPO_FULL_URL="${GITEA_URL}/${GITEA_USER}/${PROJECT_NAME}.git"
|
REPO_FULL_URL="${GITEA_URL}/${GITEA_USER}/${PROJECT_NAME}.git"
|
||||||
|
|
||||||
|
DESTINATION_UUID=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
|
"${COOLIFY_API}/servers/${SERVER_UUID}" | python3 -c "
|
||||||
|
import sys,json
|
||||||
|
d=json.load(sys.stdin)
|
||||||
|
dests=d.get('destinations',[])
|
||||||
|
if dests: print(dests[0].get('uuid',''))
|
||||||
|
else: print('')
|
||||||
|
" 2>/dev/null)
|
||||||
|
|
||||||
APP_RESPONSE=$(curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
APP_RESPONSE=$(curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
"${COOLIFY_API}/applications" \
|
"${COOLIFY_API}/applications" \
|
||||||
@@ -113,13 +128,14 @@ APP_RESPONSE=$(curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN
|
|||||||
\"project_uuid\": \"${PROJECT_UUID}\",
|
\"project_uuid\": \"${PROJECT_UUID}\",
|
||||||
\"environment_name\": \"production\",
|
\"environment_name\": \"production\",
|
||||||
\"server_uuid\": \"${SERVER_UUID}\",
|
\"server_uuid\": \"${SERVER_UUID}\",
|
||||||
|
\"destination_uuid\": \"${DESTINATION_UUID}\",
|
||||||
\"type\": \"public\",
|
\"type\": \"public\",
|
||||||
\"name\": \"${PROJECT_NAME}\",
|
\"name\": \"${PROJECT_NAME}\",
|
||||||
\"git_repository\": \"${REPO_FULL_URL}\",
|
\"git_repository\": \"${REPO_FULL_URL}\",
|
||||||
\"git_branch\": \"main\",
|
\"git_branch\": \"main\",
|
||||||
\"build_pack\": \"${BUILD_TYPE}\",
|
\"build_pack\": \"${BUILD_TYPE}\",
|
||||||
\"ports_exposes\": \"3000\",
|
\"ports_exposes\": \"${BUILD_TYPE_PORT}\",
|
||||||
\"instant_deploy\": true
|
\"instant_deploy\": false
|
||||||
}")
|
}")
|
||||||
|
|
||||||
APP_UUID=$(echo "${APP_RESPONSE}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('uuid',''))" 2>/dev/null)
|
APP_UUID=$(echo "${APP_RESPONSE}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('uuid',''))" 2>/dev/null)
|
||||||
@@ -141,7 +157,7 @@ print('')
|
|||||||
if [ -n "${APP_UUID}" ]; then
|
if [ -n "${APP_UUID}" ]; then
|
||||||
echo "[deploy] Found existing app: ${APP_UUID}, redeploying..."
|
echo "[deploy] Found existing app: ${APP_UUID}, redeploying..."
|
||||||
curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
"${COOLIFY_API}/applications/${APP_UUID}/restart" > /dev/null
|
"${COOLIFY_API}/deploy?uuid=${APP_UUID}&force=false" > /dev/null
|
||||||
else
|
else
|
||||||
echo "[deploy] ERROR: Could not create or find app"
|
echo "[deploy] ERROR: Could not create or find app"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -150,6 +166,11 @@ fi
|
|||||||
|
|
||||||
echo "[deploy] App UUID: ${APP_UUID}"
|
echo "[deploy] App UUID: ${APP_UUID}"
|
||||||
|
|
||||||
|
# ── Step 7b: Trigger deploy ───────────────────────────────────────────
|
||||||
|
echo "[deploy] Triggering deployment..."
|
||||||
|
curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
|
"${COOLIFY_API}/deploy?uuid=${APP_UUID}&force=false" > /dev/null
|
||||||
|
|
||||||
# ── Step 8: Wait for deployment ──────────────────────────────────────
|
# ── Step 8: Wait for deployment ──────────────────────────────────────
|
||||||
echo "[deploy] Waiting for deployment..."
|
echo "[deploy] Waiting for deployment..."
|
||||||
for i in $(seq 1 30); do
|
for i in $(seq 1 30); do
|
||||||
@@ -160,7 +181,7 @@ for i in $(seq 1 30); do
|
|||||||
if [ "${STATUS}" = "running" ]; then
|
if [ "${STATUS}" = "running" ]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
if [ "${STATUS}" = "exited" ] || [ "${STATUS}" = "error" ]; then
|
if [[ "${STATUS}" == exited* ]] || [ "${STATUS}" = "error" ]; then
|
||||||
echo "[deploy] Deployment failed with status: ${STATUS}"
|
echo "[deploy] Deployment failed with status: ${STATUS}"
|
||||||
# Get logs
|
# Get logs
|
||||||
curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
|
|||||||
Reference in New Issue
Block a user