Download deploy_140.py from webhook/codex: direct link, hf CLI and curl.
- Browser
- Download file 2.6 kB
-
https://huggingface.co/spaces/webhook/codex/resolve/main/deploy_140.py
- Command line
-
hf download hf://spaces/webhook/codex/deploy_140.py
-
curl -L -o deploy_140.py https://huggingface.co/spaces/webhook/codex/resolve/main/deploy_140.py
2.6 kB
| import os | |
| import zipfile | |
| import paramiko | |
| HOST = '23.140.140.70' | |
| PASSWORD = '33nKDS80L6ipmedJ3y0j' | |
| PORT = 22 | |
| USER = 'root' | |
| REMOTE_DIR = '/opt/codex-console' | |
| BASE_DIR = os.path.dirname(os.path.abspath(__file__)) | |
| ZIP_FILE = os.path.join(BASE_DIR, 'deploy.zip') | |
| EXCLUDE_DIRS = {'.git', '.venv', 'data', 'logs', '__pycache__', '.pytest_cache', '.vscode', '.idea'} | |
| def create_zip(): | |
| print(f"Creating zip file {ZIP_FILE}...") | |
| with zipfile.ZipFile(ZIP_FILE, 'w', zipfile.ZIP_DEFLATED) as zipf: | |
| for root, dirs, files in os.walk(BASE_DIR): | |
| dirs[:] = [d for d in dirs if d not in EXCLUDE_DIRS] | |
| for file in files: | |
| if file.endswith('.zip') or file.endswith('.pyc') or file == 'logs*.txt': | |
| continue | |
| file_path = os.path.join(root, file) | |
| arcname = os.path.relpath(file_path, BASE_DIR) | |
| zipf.write(file_path, arcname) | |
| print("Zip created successfully.") | |
| def deploy(): | |
| print(f"\n--- Deploying to {HOST} ---") | |
| ssh = paramiko.SSHClient() | |
| ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | |
| ssh.connect(HOST, port=PORT, username=USER, password=PASSWORD, timeout=30, banner_timeout=30) | |
| print("Connected.") | |
| ssh.exec_command(f'mkdir -p {REMOTE_DIR}') | |
| ssh.exec_command(f'rm -rf {REMOTE_DIR}/logs/*.log') | |
| ssh.exec_command(f'rm -rf {REMOTE_DIR}/logs/*.txt') | |
| ssh.exec_command(f'mkdir -p {REMOTE_DIR}/data') | |
| ssh.exec_command(f'mkdir -p {REMOTE_DIR}/logs') | |
| print("Uploading zip file...") | |
| sftp = ssh.open_sftp() | |
| sftp.put(ZIP_FILE, f'{REMOTE_DIR}/deploy.zip') | |
| sftp.close() | |
| print("Upload complete.") | |
| print("Extracting and running docker-compose...") | |
| commands = [ | |
| f"cd {REMOTE_DIR}", | |
| "unzip -o deploy.zip > /dev/null", | |
| "rm deploy.zip", | |
| "(docker-compose down || docker compose down || true)", | |
| "(docker-compose up -d --build || docker compose up -d --build)" | |
| ] | |
| command = ' && '.join(commands) | |
| stdin, stdout, stderr = ssh.exec_command(command, timeout=120) | |
| for line in stdout: | |
| print(line.strip()) | |
| for line in stderr: | |
| print("ERR:", line.strip()) | |
| exit_status = stdout.channel.recv_exit_status() | |
| if exit_status == 0: | |
| print(f"Deployment to {HOST} successful!") | |
| else: | |
| print(f"Deployment to {HOST} failed with exit status {exit_status}") | |
| ssh.close() | |
| if __name__ == '__main__': | |
| create_zip() | |
| deploy() | |
| if os.path.exists(ZIP_FILE): | |
| os.remove(ZIP_FILE) | |
| print("Cleaned up local zip file.") | |