deploy: hr-panel-v3-designs
This commit is contained in:
@@ -17,6 +17,10 @@ GITEA_API="${GITEA_URL}/api/v1"
|
|||||||
COOLIFY_API="${COOLIFY_BASE_URL}/api/v1"
|
COOLIFY_API="${COOLIFY_BASE_URL}/api/v1"
|
||||||
GITEA_USER="pankaj"
|
GITEA_USER="pankaj"
|
||||||
|
|
||||||
|
# SSL workaround for self-signed certs
|
||||||
|
export GIT_SSL_NO_VERIFY=true
|
||||||
|
CURL="curl -sk"
|
||||||
|
|
||||||
echo "=== TenX Deploy: ${PROJECT_NAME} (build: ${BUILD_TYPE}) ==="
|
echo "=== TenX Deploy: ${PROJECT_NAME} (build: ${BUILD_TYPE}) ==="
|
||||||
|
|
||||||
# ── Step 1: Git init + commit ────────────────────────────────────────
|
# ── Step 1: Git init + commit ────────────────────────────────────────
|
||||||
@@ -30,7 +34,7 @@ git diff --cached --quiet 2>/dev/null || git commit -m "deploy: ${PROJECT_NAME}"
|
|||||||
|
|
||||||
# ── Step 2: Create Gitea repo (ignore if exists) ─────────────────────
|
# ── Step 2: Create Gitea repo (ignore if exists) ─────────────────────
|
||||||
echo "[deploy] Creating Gitea repo..."
|
echo "[deploy] Creating Gitea repo..."
|
||||||
REPO_RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "${GITEA_API}/user/repos" \
|
REPO_RESPONSE=$(curl -sk -w "\n%{http_code}" -X POST "${GITEA_API}/user/repos" \
|
||||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d "{\"name\":\"${PROJECT_NAME}\",\"private\":false,\"auto_init\":false}")
|
-d "{\"name\":\"${PROJECT_NAME}\",\"private\":false,\"auto_init\":false}")
|
||||||
@@ -55,7 +59,7 @@ echo "[deploy] Code pushed to Gitea"
|
|||||||
|
|
||||||
# ── Step 4: Get Coolify server UUID ──────────────────────────────────
|
# ── Step 4: Get Coolify server UUID ──────────────────────────────────
|
||||||
echo "[deploy] Getting Coolify server..."
|
echo "[deploy] Getting Coolify server..."
|
||||||
SERVER_UUID=$(curl -s -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
SERVER_UUID=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
"${COOLIFY_API}/servers" | python3 -c "import sys,json; servers=json.load(sys.stdin); print(servers[0]['uuid'])" 2>/dev/null)
|
"${COOLIFY_API}/servers" | python3 -c "import sys,json; servers=json.load(sys.stdin); print(servers[0]['uuid'])" 2>/dev/null)
|
||||||
|
|
||||||
if [ -z "${SERVER_UUID}" ]; then
|
if [ -z "${SERVER_UUID}" ]; then
|
||||||
@@ -66,7 +70,7 @@ echo "[deploy] Server: ${SERVER_UUID}"
|
|||||||
|
|
||||||
# ── Step 5: Get or create Coolify project ────────────────────────────
|
# ── Step 5: Get or create Coolify project ────────────────────────────
|
||||||
echo "[deploy] Getting Coolify project..."
|
echo "[deploy] Getting Coolify project..."
|
||||||
PROJECT_UUID=$(curl -s -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
PROJECT_UUID=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
"${COOLIFY_API}/projects" | python3 -c "
|
"${COOLIFY_API}/projects" | python3 -c "
|
||||||
import sys,json
|
import sys,json
|
||||||
projects=json.load(sys.stdin)
|
projects=json.load(sys.stdin)
|
||||||
@@ -79,7 +83,7 @@ print('')
|
|||||||
|
|
||||||
if [ -z "${PROJECT_UUID}" ]; then
|
if [ -z "${PROJECT_UUID}" ]; then
|
||||||
echo "[deploy] Creating TenX project on Coolify..."
|
echo "[deploy] Creating TenX project on Coolify..."
|
||||||
PROJECT_UUID=$(curl -s -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
PROJECT_UUID=$(curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
"${COOLIFY_API}/projects" \
|
"${COOLIFY_API}/projects" \
|
||||||
-d '{"name":"TenX","description":"TenX auto-deployed apps"}' | python3 -c "import sys,json; print(json.load(sys.stdin).get('uuid',''))" 2>/dev/null)
|
-d '{"name":"TenX","description":"TenX auto-deployed apps"}' | python3 -c "import sys,json; print(json.load(sys.stdin).get('uuid',''))" 2>/dev/null)
|
||||||
@@ -87,7 +91,7 @@ fi
|
|||||||
echo "[deploy] Project: ${PROJECT_UUID}"
|
echo "[deploy] Project: ${PROJECT_UUID}"
|
||||||
|
|
||||||
# ── Step 6: Get first environment UUID ───────────────────────────────
|
# ── Step 6: Get first environment UUID ───────────────────────────────
|
||||||
ENV_UUID=$(curl -s -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
ENV_UUID=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
"${COOLIFY_API}/projects/${PROJECT_UUID}" | python3 -c "
|
"${COOLIFY_API}/projects/${PROJECT_UUID}" | python3 -c "
|
||||||
import sys,json
|
import sys,json
|
||||||
data=json.load(sys.stdin)
|
data=json.load(sys.stdin)
|
||||||
@@ -106,7 +110,7 @@ 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"
|
||||||
|
|
||||||
APP_RESPONSE=$(curl -s -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" \
|
||||||
-d "{
|
-d "{
|
||||||
@@ -127,7 +131,7 @@ APP_UUID=$(echo "${APP_RESPONSE}" | python3 -c "import sys,json; print(json.load
|
|||||||
if [ -z "${APP_UUID}" ]; then
|
if [ -z "${APP_UUID}" ]; then
|
||||||
echo "[deploy] App creation response: ${APP_RESPONSE}"
|
echo "[deploy] App creation response: ${APP_RESPONSE}"
|
||||||
# Try to find existing app
|
# Try to find existing app
|
||||||
APP_UUID=$(curl -s -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
APP_UUID=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
"${COOLIFY_API}/applications" | python3 -c "
|
"${COOLIFY_API}/applications" | python3 -c "
|
||||||
import sys,json
|
import sys,json
|
||||||
apps=json.load(sys.stdin)
|
apps=json.load(sys.stdin)
|
||||||
@@ -140,7 +144,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 -s -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}/applications/${APP_UUID}/restart" > /dev/null
|
||||||
else
|
else
|
||||||
echo "[deploy] ERROR: Could not create or find app"
|
echo "[deploy] ERROR: Could not create or find app"
|
||||||
@@ -154,7 +158,7 @@ echo "[deploy] App UUID: ${APP_UUID}"
|
|||||||
echo "[deploy] Waiting for deployment..."
|
echo "[deploy] Waiting for deployment..."
|
||||||
for i in $(seq 1 30); do
|
for i in $(seq 1 30); do
|
||||||
sleep 10
|
sleep 10
|
||||||
STATUS=$(curl -s -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
STATUS=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
"${COOLIFY_API}/applications/${APP_UUID}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('status','unknown'))" 2>/dev/null)
|
"${COOLIFY_API}/applications/${APP_UUID}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('status','unknown'))" 2>/dev/null)
|
||||||
echo "[deploy] Status: ${STATUS} (attempt ${i}/30)"
|
echo "[deploy] Status: ${STATUS} (attempt ${i}/30)"
|
||||||
if [ "${STATUS}" = "running" ]; then
|
if [ "${STATUS}" = "running" ]; then
|
||||||
@@ -163,14 +167,14 @@ for i in $(seq 1 30); do
|
|||||||
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 -s -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
"${COOLIFY_API}/applications/${APP_UUID}/logs" 2>/dev/null | tail -20
|
"${COOLIFY_API}/applications/${APP_UUID}/logs" 2>/dev/null | tail -20
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# ── Step 9: Get the URL ──────────────────────────────────────────────
|
# ── Step 9: Get the URL ──────────────────────────────────────────────
|
||||||
FQDN=$(curl -s -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
FQDN=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||||
"${COOLIFY_API}/applications/${APP_UUID}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('fqdn',''))" 2>/dev/null)
|
"${COOLIFY_API}/applications/${APP_UUID}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('fqdn',''))" 2>/dev/null)
|
||||||
|
|
||||||
if [ -z "${FQDN}" ]; then
|
if [ -z "${FQDN}" ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user