deploy: hr-portal-designs

This commit is contained in:
TenX PM
2026-05-04 15:57:12 +00:00
parent 96d64f4b6f
commit 012c87f43d
+11 -11
View File
@@ -30,7 +30,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 +55,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 +66,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 +79,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 +87,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 +106,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 +127,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 +140,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 +154,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 +163,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