diff --git a/docs/docs/integrations/api.md b/docs/docs/integrations/api.md index 09a7be284..304cec60e 100644 --- a/docs/docs/integrations/api.md +++ b/docs/docs/integrations/api.md @@ -365,3 +365,7 @@ Recording retention config still applies to manual events, if frigate is configu ### `PUT /api/events//end` End a specific manual event without a predetermined length. + +### `POST /api/restart` + +Restarts Frigate process. diff --git a/frigate/http.py b/frigate/http.py index 9566a067c..297b2f2e5 100644 --- a/frigate/http.py +++ b/frigate/http.py @@ -2103,3 +2103,30 @@ def logs(service: str): jsonify({"success": False, "message": "Could not find log file"}), 500, ) + + +@bp.route("/restart", methods=["POST"]) +def restart(): + try: + restart_frigate() + except Exception as e: + logging.error(f"Error restarting Frigate: {e}") + return make_response( + jsonify( + { + "success": False, + "message": "Unable to restart Frigate.", + } + ), + 500, + ) + + return make_response( + jsonify( + { + "success": True, + "message": "Restarting (this can take up to one minute)...", + } + ), + 200, + )