deploy_listener.py 1.1 KB

1234567891011121314151617181920212223242526272829
  1. #!/usr/bin/env python3
  2. from http.server import BaseHTTPRequestHandler, HTTPServer
  3. import subprocess
  4. import os
  5. import sys
  6. # Секретный ключ (соответствует тому, что в вебхуке)
  7. SECRET = "NY9B9VLifDC9ehZ"
  8. class WebhookHandler(BaseHTTPRequestHandler):
  9. def do_POST(self):
  10. # Проверяем секрет в URL
  11. if f"secret={SECRET}" in self.path:
  12. self.send_response(200)
  13. self.end_headers()
  14. self.wfile.write(b"Deployment triggered successfully\n")
  15. # Запускаем скрипт обновления в фоне
  16. print(">>> Received webhook, starting deployment...")
  17. subprocess.Popen(["/bin/bash", "/var/www/radionica3d/server_update.sh"])
  18. else:
  19. self.send_response(403)
  20. self.end_headers()
  21. self.wfile.write(b"Forbidden: Invalid secret\n")
  22. if __name__ == "__main__":
  23. print("Deploy listener starting on port 9000...")
  24. httpd = HTTPServer(('127.0.0.1', 9000), WebhookHandler)
  25. httpd.serve_forever()