From 8ad005c568e5615a750ef41e4850a60659d4d100 Mon Sep 17 00:00:00 2001 From: mg Date: Wed, 26 Apr 2023 19:53:12 +0200 Subject: [PATCH] add web-ui (#3) Co-authored-by: Michael Grote Reviewed-on: https://git.mgrote.net/mg/python-api-server/pulls/3 --- README.md | 6 ++++++ assets/screenshot_webui.png | Bin 0 -> 38845 bytes 2 files changed, 6 insertions(+) create mode 100644 assets/screenshot_webui.png diff --git a/README.md b/README.md index 3bd9894..aa8eb2d 100644 --- a/README.md +++ b/README.md @@ -26,12 +26,18 @@ services: MAX_CONTENT_LENGTH: 10 UPLOAD_DIRECTORY: /uploads AUTH_TOKEN: myuploadtoken + ENABLE_WEBSERVER: true # if enabled a list of files can be viewed in a webbrowser (see screenshot) volumes: uploads: ``` +### ENABLE_WEBSERVER Screenshot + + +![](./assets/screenshot_webui.png) + ## API-Endpoints - see [Flasgger](https://github.com/flasgger/flasgger): ``http://:5040/apidocs/`` diff --git a/assets/screenshot_webui.png b/assets/screenshot_webui.png new file mode 100644 index 0000000000000000000000000000000000000000..39709deba9b38e0ed367718a8a73fbd2ca0302ec GIT binary patch literal 38845 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