Feinschliff und README erweitert. start.cmd hat nun einen Fallback falls die .venv nicht vorhanden ist

This commit is contained in:
Adam Skotarczak 2025-04-22 10:45:56 +02:00
parent 72efb6ac59
commit b7dfa5fc60
3 changed files with 55 additions and 12 deletions

View File

@ -11,6 +11,22 @@ Die neue Version mit Flask-Backend ist **BALD** verfügbar unter:
--- ---
- [pyUpload (TKInter Version)](#pyupload-tkinter-version)
- [⚠️ Projektstatus: Eingefroren Nur noch Bugfixes](#-projektstatus-eingefroren--nur-noch-bugfixes)
- [pyUpload Sicherer Datei-Upload-Server über HTTPS (lokal \& offline)](#pyupload--sicherer-datei-upload-server-über-https-lokal--offline)
- [🛠 Features](#-features)
- [🚀 Schnellstart](#-schnellstart)
- [▶️ Für Windows:](#-für-windows)
- [🐧 Für Linux / macOS:](#-für-linux--macos)
- [🧩 Kommandozeilenoptionen](#-kommandozeilenoptionen)
- [🌐 Zugriff im Browser](#-zugriff-im-browser)
- [📁 Logs \& Uploads](#-logs--uploads)
- [🔐 Hinweis zur SSL-Zertifikatswarnung](#-hinweis-zur-ssl-zertifikatswarnung)
- [🐛 Bekannte Bugs](#-bekannte-bugs)
- [👨‍💻 Autor](#-autor)
- [📝 Lizenz](#-lizenz)
---
## pyUpload Sicherer Datei-Upload-Server über HTTPS (lokal & offline) ## pyUpload Sicherer Datei-Upload-Server über HTTPS (lokal & offline)
Diese Version basiert auf **Tkinter (GUI + QR)** sowie einer optionalen **reinen CLI-Nutzung**. Diese Version basiert auf **Tkinter (GUI + QR)** sowie einer optionalen **reinen CLI-Nutzung**.
@ -41,6 +57,9 @@ Sie ist vollständig lokal lauffähig ganz ohne Installation von externen To
git clone https://github.com/realAscot/pyUpload git clone https://github.com/realAscot/pyUpload
``` ```
Alternativ einfach eine bereinigte `.zip` bei den [Releases auf GitHub](https://github.com/realAscot/pyUpload/releases/) herrunterladen.
Diese enthällt kein `.git Archiv` und enthält nur das aller nötigste zum Betrieb des Programms.
2. Starte die App mit: 2. Starte die App mit:
```cmd ```cmd
@ -60,6 +79,8 @@ Sie ist vollständig lokal lauffähig ganz ohne Installation von externen To
Es ist möglich das beim ersten mal gefragt wird womit das Programm gestartet werden soll. Es ist möglich das beim ersten mal gefragt wird womit das Programm gestartet werden soll.
Einfach die Python-Installation suchen und `python.exe` wählen. Einfach die Python-Installation suchen und `python.exe` wählen.
Ich empfehle einfach eine Verknüpfung der `start.pyw` zB auf den Desktop oder ins Startmenü zu legen.
### 🐧 Für Linux / macOS: ### 🐧 Für Linux / macOS:
1. Stelle sicher, dass Python 3.8+ installiert ist: 1. Stelle sicher, dass Python 3.8+ installiert ist:
@ -92,11 +113,26 @@ Beim ersten Start wird automatisch:
## 🧩 Kommandozeilenoptionen ## 🧩 Kommandozeilenoptionen
```sh Du musst Dich im Verzeichnis `./app` befinden:
python app\main.py --nogui # Start ohne GUI / QR
python app\main.py --port 9999 # Custom-Port verwenden ```cmd
python main.py -h oder --h # Hilfe
python main.py --nogui # Start ohne GUI / QR
python main.py --port 9999 # Custom-Port verwenden
``` ```
oder für Verknüpfungen die `start.pyw` verwenden:
```cmd
pythonw.exe start.pyw -h oder --h # Hilfe
pythonw.exe start.pyw --nogui # Start ohne GUI / QR
pythonw.exe start.pyw --port 9999 # Custom-Port verwenden
```
Wenn Du die Dateierweiterung `.pyw` mit `pythonw.exe` verknüpfst, klappt es auch ohne mit Doppelklick im Explorer :-)
--- ---
## 🌐 Zugriff im Browser ## 🌐 Zugriff im Browser
@ -104,12 +140,14 @@ python app\main.py --port 9999 # Custom-Port verwenden
Sobald gestartet: Sobald gestartet:
```https ```https
https://<lokale-IP>:4443 https://<lokale-IP>:4443 (oder Port, der mit der option `--port` gestartet wurde)
``` ```
Alternativ QR-Code scannen (GUI-Modus). Alternativ QR-Code scannen (GUI-Modus).
Dateien werden im `upload/<Client-IP>/` gespeichert. Dateien werden im `upload/<Client-IP>/` gespeichert.
Wichtig dabei ist es darauf zu achten, das tatsächlich auch https verwendet wird, falls man die Adresse händisch eingibt statt mit QR-Code! Man könnte noch zusätzlich einen http-server in der App laufen lassen, der dann automatisch umleitet, aber wir möchten das Programm so klein wie möglich halten.
--- ---
## 📁 Logs & Uploads ## 📁 Logs & Uploads
@ -130,6 +168,14 @@ Du kannst:
--- ---
## 🐛 Bekannte Bugs
- **Frontend:** wenn im Browser der Button Hochladen gewählt wird, OHNE das Dateien ausgewählt wurden,
kommt es zu einem *Error response - Error code: 400* im Browser. Lösungsansatz wäre den Button über JS zu sperren solange keine Datei ausgewählt ist. Lässt sich schnell im [template](./app/template.html) erledigen.
Wenn jemand Lust und Zeit hat sich diesem anzunehmen, nur zu. Ich Danke im Vorraus!
---
## 👨‍💻 Autor ## 👨‍💻 Autor
- **Adam Skotarczak** - **Adam Skotarczak**

View File

@ -38,8 +38,6 @@ if sys.prefix == sys.base_prefix:
os.execv(VENV_PYTHON, [VENV_PYTHON] + sys.argv) os.execv(VENV_PYTHON, [VENV_PYTHON] + sys.argv)
sys.exit(0) sys.exit(0)
#os.execv(VENV_PYTHON, [VENV_PYTHON] + sys.argv)
# Wir sind jetzt sicher in der richtigen Umgebung → Rest des Programms geht hier weiter: # Wir sind jetzt sicher in der richtigen Umgebung → Rest des Programms geht hier weiter:
import ssl import ssl

View File

@ -11,9 +11,8 @@ if errorlevel 1 (
exit /b 1 exit /b 1
) )
:: Verzeichnis von start.cmd ermitteln (robust, egal von wo gestartet) :: Verzeichnis von start.cmd ermitteln
set SCRIPT_DIR=%~dp0 set SCRIPT_DIR=%~dp0
:: Starte die Anwendung direkt aus app\ :: Starte den Python-Wrapper, der .venv erkennt
python "%SCRIPT_DIR%app\main.py" %* pythonw.exe "%SCRIPT_DIR%start.pyw" %*