deploy.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import paramiko
  2. import os
  3. import textwrap
  4. def deploy():
  5. host = "192.168.130.171"
  6. user = "roni"
  7. pw = "BTSai123"
  8. try:
  9. client = paramiko.SSHClient()
  10. client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  11. client.connect(host, username=user, password=pw)
  12. print("Uploading files via SFTP...")
  13. sftp = client.open_sftp()
  14. sftp.put("main.py", "/home/roni/LocalFoodAI/main.py")
  15. sftp.put("database.py", "/home/roni/LocalFoodAI/database.py")
  16. sftp.put("start_daemon.py", "/home/roni/LocalFoodAI/start_daemon.py")
  17. sftp.put("static/script.js", "/home/roni/LocalFoodAI/static/script.js")
  18. sftp.put("static/index.html", "/home/roni/LocalFoodAI/static/index.html")
  19. sftp.close()
  20. print("Upload complete.")
  21. cmd = """cd ~/LocalFoodAI
  22. pkill -f "main.py" || true
  23. sleep 2
  24. /home/roni/LocalFoodAI/venv/bin/python3 start_daemon.py
  25. """
  26. cmd = cmd.replace('\r\n', '\n')
  27. print(f"Running:\n{cmd}")
  28. stdin, stdout, stderr = client.exec_command(cmd)
  29. out = stdout.read().decode()
  30. err = stderr.read().decode()
  31. if out: print(f"OUT:\n{out}")
  32. if err: print(f"ERR:\n{err}")
  33. client.close()
  34. except Exception as e:
  35. print(f"Error: {e}")
  36. if __name__ == "__main__":
  37. deploy()