diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..659a456
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2026 Oliver Braasch
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 85cbd42..11d098d 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,30 @@
-# gitea-uploader
+# ZIP → Gitea Upload
+Lädt eine ZIP-Datei direkt aus dem Browser in ein Gitea-Repository hoch -
+mit Ordnerstruktur, in einem oder mehreren Commits. Läuft vollständig
+client-seitig; es wird ausschließlich mit dem selbst angegebenen
+Gitea-Server kommuniziert.
+
+## Nutzung
+
+1. Gitea-Server-URL, Benutzername und Passwort oder Zugangstoken eingeben,
+ "Verbinden & Repos laden" klicken.
+2. Bestehendes Repo aus der Liste wählen **oder** einen neuen Namen
+ eingeben und "Repo erstellen" klicken.
+3. ZIP-Datei auswählen.
+4. Commit-Nachricht anpassen (optional) und "Jetzt hochladen" klicken.
+
+Vorhandene Dateien mit gleichem Pfad werden aktualisiert statt doppelt
+angelegt. Über die Checkbox "Dateien im Repo löschen, die nicht mehr in
+der ZIP enthalten sind" kann der Repo-Stand komplett an die ZIP angepasst
+werden (mit Bedacht nutzen).
+
+## Voraussetzung auf dem Gitea-Server
+
+Damit der Browser die Gitea-API von einer anderen Domain aus aufrufen
+darf, muss CORS für diese Domain aktiviert sein (Abschnitt `[cors]` in
+`app.ini`).
+
+## Lizenz
+
+MIT, siehe [LICENSE](./LICENSE).
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..b4c00bb
--- /dev/null
+++ b/index.html
@@ -0,0 +1,396 @@
+
+
+
+
+
+ZIP zu Gitea hochladen
+
+
+
+
+
+
ZIP → Gitea
+
Lädt eine ZIP-Datei direkt aus deinem Browser in ein Gitea-Repository hoch. Nichts verlässt deinen Rechner außer der Verbindung zu deinem eigenen Gitea-Server.
+
+
+
+
+
+
1Gitea-Zugang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Ein Zugangstoken (Einstellungen → Anwendungen → Neues Token in Gitea) ist sicherer als das echte Passwort, weil du es jederzeit einzeln widerrufen kannst. Beides funktioniert hier.
+
+
+
+
+
+
+
2Repository wählen
+
+
+
+
+
+
+
+
+
+
3ZIP-Datei wählen
+
+
+
+ – meistens gewünscht, wenn die ZIP einen einzelnen Projektordner enthält (z.B. "meinprojekt/...").
+
+
+
+ – nur aktivieren, wenn die ZIP wirklich den kompletten, aktuellen Stand enthält!
+