Files
exposedgays/deploy/fix-coolify-git.py
2026-06-26 17:44:19 -04:00

68 lines
2.2 KiB
Python

#!/usr/bin/env python3
import paramiko
HOST = "10.10.0.10"
USER = "localadministrator"
PASS = "Bbt9115xty9176!"
APP = "ira4bw4nhbvm87o7s3fgqu6v"
GITEA_TOKEN = "5c323b8ea677d78b201341f6833d57156a607008"
GIT_PUBLIC = "https://gitea.onsethost.com/localadministrator/exposedgays.git"
GIT_AUTH = f"https://{USER}:{GITEA_TOKEN}@gitea.onsethost.com/localadministrator/exposedgays.git"
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect(HOST, username=USER, password=PASS, timeout=20, allow_agent=False, look_for_keys=False)
def run(cmd, t=300):
print("$", cmd[:150])
_, o, e = c.exec_command(cmd, timeout=t)
code = o.channel.recv_exit_status()
out = (o.read() + e.read()).decode(errors="replace")
print(out[-12000:])
print("exit", code, "\n")
return code, out
# Make repo public so COOLIFY_02 can ls-remote without credentials
run(
f"curl -sS -X PATCH 'https://gitea.onsethost.com/api/v1/repos/localadministrator/exposedgays' "
f"-H 'Authorization: token {GITEA_TOKEN}' "
f"-H 'Content-Type: application/json' "
f"-d '{{\"private\":false}}'"
)
# Also set git_repository to auth URL as fallback
run(
f"docker exec coolify-db psql -U coolify -d coolify -c "
f"\"UPDATE applications SET "
f"git_repository='{GIT_AUTH}', "
f"git_full_url='{GIT_AUTH}', "
f"destination_id=0, server_id=0 "
f"WHERE uuid='{APP}';\""
)
run(
"TOKEN=$(cat /home/localadministrator/.coolify-token | tail -1); "
f"curl -sS -X POST 'http://127.0.0.1:8000/api/v1/deploy?uuid={APP}&force_rebuild=true' "
'-H "Authorization: Bearer $TOKEN"'
)
for i in range(120):
_, out = run("docker exec coolify php artisan queue:work --queue=high,default --once --timeout=900 2>&1", t=920)
if "ApplicationDeploymentJob" in out:
if "DONE" in out:
print("=== DEPLOY SUCCESS ===")
break
if "FAIL" in out:
print("=== DEPLOY FAIL ===")
run(
"docker exec coolify-db psql -U coolify -d coolify -c "
"\"SELECT id,status,left(logs,2000) FROM application_deployment_queues "
"WHERE application_id='31' ORDER BY id DESC LIMIT 1;\""
)
run("docker ps --format '{{.Names}} {{.Status}}' | grep ira4 || true")
c.close()