Drop ist dein eigener Dienst für grosse Dateien: kostenlos herunterladen, auf deinen Server kopieren, fertig. Hier steht, wie du es installierst, wie es sich bedient – und in der Demo kannst du es gleich ausprobieren, ohne dass etwas hochgeladen wird.
Installieren
Drop herunterladen Quelltext auf GitLab
Die einfache Version: in vier Schritten
Du brauchst nur einen gewöhnlichen Webspace mit PHP – wie ihn fast jeder Hoster anbietet – und ein FTP-Programm wie FileZilla oder Cyberduck.
- Herunterladen. Auf «Drop herunterladen» klicken. Du bekommst eine ZIP-Datei.
- Entpacken. Die ZIP-Datei doppelklicken. Es entsteht ein Ordner mit allen Dateien.
- Per FTP hochladen. Den Inhalt dieses Ordners in das Web-Verzeichnis deiner Domain kopieren – zum Beispiel in den Ordner, auf den drop.deine-domain.ch zeigt.
- Assistent durchgehen. Die Adresse im Browser öffnen. Der Installations-Assistent führt in fünf kurzen Schritten durch: Sprache, dein Admin-Konto (Name, E-Mail, Passwort), Adresse und Datenordner, Absender für E-Mails – fertig. Danach meldest du dich mit E-Mail und Passwort an; «Passwort vergessen» funktioniert wie bei jedem Konto.
Meldet der Assistent fehlende Schreibrechte, setze im FTP-Programm bei den Ordnern lib und uploads die Rechte auf 755 (oder 775). Damit abgelaufene Transfers gelöscht werden, trägst du danach in der Verwaltung deines Hosters einen Cronjob ein – die Zeilen stehen unten bei Schritt 5.
So sieht der Assistent aus





Voraussetzungen
- PHP 8.1 oder neuer (64 Bit) mit sodium, fileinfo und mbstring – in jedem Standard-PHP enthalten. Dazu curl für Single Sign-on, S3, WebDAV und Updates, openssl für Passkeys.
- Apache mit mod_rewrite (die mitgelieferte .htaccess genügt) oder nginx mit PHP-FPM – eine Vorlage liegt in docs/nginx.conf.example.
- HTTPS – ohne verschlüsselt der Browser nichts Ende-zu-Ende.
- Keine Datenbank, kein Composer, kein Node.
Die ausführliche Version: in sechs Schritten
- Herunterladen und entpacken, dann den Ordner auf den Webserver kopieren – oder git clone https://gitlab.com/jensche/s42transfer.git.
- Schreibrechte für den Webserver auf lib/ und uploads/ geben.
- Adresse im Browser öffnen: Der Installer fragt nach Sprache, Admin-Konto (Name, E-Mail, Passwort), Adresse, Datenordner und Absender-E-Mail.
- Datenordner ausserhalb des Web-Verzeichnisses anlegen, wenn möglich. Bleibt er drin, sperrt ihn die .htaccess; unter nginx die deny all-Zeilen aus der Vorlage übernehmen.
- Aufräumen per Cron – sonst läuft nichts ab und keine Erinnerung geht raus:
12 3 * * * www-data php /pfad/zu/drop/admin.php clean_expired 16 3 * * * www-data php /pfad/zu/drop/admin.php clean_async
- Sicherung einrichten, bevor es etwas zu verlieren gibt:
30 3 * * * www-data /pfad/zu/drop/tools/backup.sh /srv/backups --quiet
Alles Weitere – Konten, Single Sign-on, S3, Farben, Logo, SMTP, Grenzen, Aufbewahrung – stellst du danach im Admin unter /admin.php ein.
Mit Docker
docker pull registry.gitlab.com/jensche/s42transfer:latest docker compose up -d
Dann http://localhost:8080/ öffnen und im Installer /var/www/data/ als Datenordner angeben. Das Image läuft auf amd64 und arm64, räumt selbst auf (kein Cron nötig) und behält die Einstellungen auf dem Daten-Volume.
Updates
Im Admin unter Einstellungen → Update: Drop prüft die neuen Versionen und installiert sie mit einem Klick. Daten, Einstellungen und uploads/ bleiben unberührt. Ohne Schreibrechte auf den Code: git pull, das neue Archiv hochladen oder php admin.php update. Docker: neues Image holen.
Demo: einmal senden
Die Demo läuft ganz in deinem Browser. Die Dateien, die du wählst, verlassen deinen Rechner nicht – Drop zeigt nur, was passieren würde.
- 1 · Auswählen
- 2 · Hochladen
- 3 · Teilen
Dateien auswählen
Ziehe Dateien hierher oder klicke. Keine zur Hand? Nimm die Beispieldateien.
Wird hochgeladen …
In Teilen, vier gleichzeitig. Bricht die Verbindung ab, geht es später dort weiter.
0 %
Dein Transfer ist bereit
Echt ausprobieren: herunterladen und installieren – kostenlos.
Senden


Dateien hinzufügen
Ziehe Dateien oder einen ganzen Ordner auf die Upload-Karte, oder wähle sie über den Knopf. Ordner behalten ihre Struktur. Grosse Dateien werden in Teilen hochgeladen, vier gleichzeitig; bricht die Verbindung ab, lädst du dieselben Dateien erneut und es geht dort weiter, wo es stand.
Link oder E-Mail
Link: nach dem Hochladen kopierst du einen kurzen Link, auf Wunsch mit QR-Code fürs Handy. E-Mail: du gibst Empfänger ein und schreibst eine Nachricht; Drop verschickt die Mail. Deine Absenderadresse bestätigst du einmal mit einem sechsstelligen Code – so kann niemand in deinem Namen Mails verschicken.
Aus einem Freigabelink
Liegt die Datei schon in Dropbox, Google Drive, OneDrive oder Nextcloud, fügst du den Freigabelink ein. Der Server holt die Datei direkt, sie reist nicht zweimal durch deinen Laptop. Diese Funktion schaltet der Betreiber ein.
Direkt senden
Über «Direkt senden» auf der Upload-Karte geht eine Datei von deinem Browser direkt in den Browser des Empfängers. Nichts wird hochgeladen oder auf dem Server gespeichert. Du wählst Dateien, bekommst einen Link und einen QR-Code und schickst ihn weiter. Lass die Seite offen: schliesst du sie, bricht die Übertragung ab. Der Empfänger sieht zuerst Namen und Grössen und sagt Ja. Mehrere Dateien und Empfänger gehen, ein Passwort ist möglich; der Server prüft es, bevor überhaupt eine Verbindung angeboten wird. Die Daten laufen immer verschlüsselt.
Für Betreiber: Zwei Browser brauchen einen STUN-Server, um sich im Internet zu finden. Er erfährt ihre Adressen, nichts von den Dateien. Standard ist der öffentliche von Google. Unter Admin → Oberfläche → Direkt senden trägst du eigene STUN- und TURN-Server ein; ein TURN-Server vermittelt, wo strenge Netze keinen direkten Weg erlauben. Eine leere Liste hält Übertragungen im selben Netz, und die ganze Funktion lässt sich abschalten – «Direkt senden» und «Text statt Datei» je für sich.
Text statt Datei
Auf der Upload-Karte schreibst du einen Text, statt eine Datei zu wählen. Er geht als Textdatei raus und wird beim Empfänger im Browser angezeigt. Mit «Nach dem ersten Download löschen» ist er weg, sobald er gelesen ist. Für Betreiber: Der Administrator kann diese Funktion abschalten.
Datei ersetzen
In «Meine Transfers» tauschst du eine Datei aus, ohne dass sich der Link ändert. Protokoll und Downloads bleiben. Der alte Inhalt wird aufbewahrt, bis zu fünf Versionen; ein Klick geht zurück.
Für Betreiber: Ein Ordner auf dem Server wird zum Transfer – gedacht für Exporte, Scanner und Sicherungen. Du richtest ihn im Admin ein, oder du rufst ihn per Cron auf: php admin.php inbox --remove gibt den Link aus.
Optionen
- Ablauf
- Wie lange der Link gilt. Danach werden die Dateien gelöscht, nicht bloss versteckt.
- Freigabe ab
- Datum und Uhrzeit, ab denen der Link funktioniert – heute verschicken, Montagmorgen öffnen.
- Passwort
- Wer lädt, muss es eingeben. Teile es auf einem anderen Weg als den Link.
- Download-Limit
- Nach so vielen Downloads ist Schluss. «Nach dem ersten Download löschen» ist die strengste Form.
- Ende-zu-Ende-Verschlüsselung
- Die Dateien werden in deinem Browser verschlüsselt. Der Schlüssel steht nur im Teil des Links nach dem #, den Browser nie an den Server schicken. Wer den Link hat, kann laden – der Server kann es nicht.
- Sehen, wer herunterlädt
- Empfänger bestätigen ihre E-Mail-Adresse mit einem Code. Du siehst jede Adresse mit Zeitpunkt – auch wenn der Link weitergeleitet wurde.
- Nur für bestimmte Empfänger
- Adressen oder ganze @domains eintragen; alle anderen werden nach der Bestätigung abgewiesen.
- Kommentare
- Empfänger schreiben unter die Dateien. Im Video oder Ton trägt ein Kommentar den Zeitpunkt, um den es geht.
- Nur ansehen
- Empfänger sehen Bilder, PDFs, Videos, Ton und Texte im Browser, bekommen aber keinen Download-Knopf. Wer es darauf anlegt, kann trotzdem abspeichern, was der Bildschirm zeigt.
- Eigener Linkname
- Statt eines Zufallslinks wählst du einen Namen, etwa /q3-deck. Nur für angemeldete Absender; der Admin schaltet es ein. Der Name lässt sich erraten – setz ein Passwort.
- Benachrichtigung
- Eine Mail, sobald geladen wurde, und eine Erinnerung an Empfänger einen Tag vor dem Ablauf.
Beim Empfänger
Der Empfänger braucht weder App noch Konto. Er sieht deine Nachricht, die Dateien mit Grösse und kann Bilder, Videos, Ton, PDFs und Texte ansehen, bevor er etwas lädt. Herunterladen geht einzeln oder alles als ein ZIP. In «Meine Transfers» siehst du danach jeden Besuch und jeden Download mit Zeit und Gerät.
Musst du jemanden nachträglich ausschliessen, sperrst du seinen persönlichen Link – der Transfer bleibt für alle anderen verfügbar.
Dateien anfordern
Eine Dateianfrage ist ein Link nur zum Hochladen. Du schickst ihn an Kunden oder Lieferanten; sie laden ihre Dateien hoch und sehen nur ein «Danke». Du bekommst für jeden Upload eine Mail. Pro Anfrage legst du fest, welche Grösse und welche Dateitypen erlaubt sind, und kannst sie jederzeit anhalten, ohne das Erhaltene zu löschen. Alle Anfragen stehen unter «Meine Dateianfragen».
Eine Anfrage kann auch Fragen stellen: Name*, Auftragsnummer … (* = Pflicht). Die Antworten kommen mit den Dateien – auf der Downloadseite, per E-Mail und als Mitteilung.
Meine Dateien
Mit Konto hast du einen dauerhaften Ablageort mit Ordnern. Daraus stellst du einen Transfer zusammen, ohne neu hochzuladen, und lässt Kolleginnen und Kollegen in einen Ordner hinein.
Übergabe-Beleg
Jeder Transfer lässt sich als Beleg drucken: was übergeben wurde, jede Datei mit SHA-256-Prüfsumme, die Nachricht und wer wann was geladen hat. Gibst du Transfers dieselbe Auftragsnummer, stehen sie auf einem Blatt und kommen als ein Archiv.
Konto & Sicherheit
- Anmelden mit Passwort, Passkey oder – falls eingerichtet – dem Firmenkonto (Single Sign-on).
- Zwei-Faktor mit einer Authenticator-App; unter «Konto» einschalten.
- Team: Transfers, Adressbuch und Dateien mit bis zu fünf Personen teilen.
- Eigene Marke: Name, Farbe und Logo auf den Downloadseiten deiner Transfers.
- API-Schlüssel für Skripte und Automatisierungen, unter «Konto». curl -T antwortet mit dem Link in Zeile 1 und dem Löschlink in Zeile 2.
- Push-Mitteilungen: unter «Konto» pro Gerät einschalten.
Push-Mitteilungen
Unter «Konto» schaltest du Push-Mitteilungen für das Gerät ein, das du gerade benutzt, und wählst pro Ereignis: jemand hat einen Transfer geladen, in eine Dateianfrage hochgeladen, kommentiert und weitere. Die Mitteilung erscheint wie jede andere auf Handy oder Computer und ist bis zum Gerät Ende-zu-Ende verschlüsselt (Web Push). Auf dem iPhone muss die Seite zuerst zum Home-Bildschirm hinzugefügt werden («Teilen» → «Zum Home-Bildschirm»), sonst bietet Safari keine Mitteilungen an. Jedes Gerät schaltest du einzeln ein und aus.
Anmeldung (für Betreiber)
- Nur Single Sign-on: Passwort, Passkeys und Registrierung verschwinden, angemeldet wird allein über OIDC. Skripte nehmen API-Schlüssel. Das Admin-Passwort bleibt der Weg zurück, falls das Single Sign-on einmal ausfällt.
- Freigabe neuer Konten: Wer sich registriert, wartet, bis ein Administrator ihn hineinlässt.
- LDAP / Active Directory: Anmelden mit dem Verzeichniskonto, über die PHP-Erweiterung ldap – ohne Bibliothek. Die erste Anmeldung legt das Konto an; eine Admin-Gruppe ist optional.
Gesperrte Dateitypen (für Betreiber)
Im Admin sperrst du Dateitypen für den ganzen Server, etwa exe, msi, bat oder sh. Der Server setzt die Sperre auf jedem Weg durch: Upload-Karte, Skripte und API, curl -T, Link-Import und Ordner auf dem Server. Bei einem direkten Transfer prüft Drop die Dateinamen. Optional prüft der Server auch, was eine Datei wirklich ist; so fällt ein Programm auf, das in .pdf umbenannt wurde (Windows-Programme, Linux- und Mac-Programme, Shell- und Batch-Skripte, Datenträger-Abbilder, Android-Apps, PHP). Grenze: Ende-zu-Ende verschlüsselte Dateien prüft nur der Browser, weil der Server sie nie zu sehen bekommt.
Admin-Passwort vergessen (für Betreiber)
Mit Shell-Zugang gibst du auf dem Server php admin.php password ein und vergibst ein neues Passwort. Ohne Shell legst du per FTP eine Datei reset-admin.txt in den Datenordner, mit einem Code deiner Wahl darin (mindestens 8 Zeichen). Lädst du innerhalb einer Stunde die Admin-Anmeldung neu, fragt sie nach diesem Code und einem neuen Passwort. Danach wird die Datei gelöscht; ein falscher Code bewirkt nichts.
Verwaltung und Schriftgrösse (für Betreiber)
- Schriftgrösse: Unter Design stellst du die Schrift in Prozent ein, je für die Besucherseiten und für die Werkbank (Konto, Listen, Verwaltung): alles, nur den Fliesstext oder nur die Überschriften. Ein Abstand über dem Logo lässt sich in Pixeln setzen.
- Zuklappen: Jeder Bereich der Verwaltung öffnet und schliesst sich.
- Tempo: Mit vielen Transfers ist die Verwaltung rund doppelt so schnell und dreimal leichter.
- Schalter: «Text statt Datei» und «Direkt senden» schaltest du je einzeln ab.
Häufige Fragen
Kostet Drop etwas?
Nein. Keine Bezahlstufe, kein Abo, keine Werbung. Alle Funktionen stehen allen offen.
Der Upload ist abgebrochen – muss ich neu anfangen?
Nein. Wähle dieselben Dateien noch einmal; Drop erkennt, was schon angekommen ist, und lädt nur den Rest.
Der Empfänger sagt, der Link funktioniere nicht.
Prüfe in «Meine Transfers», ob der Transfer abgelaufen, das Download-Limit erreicht oder die Freigabe noch nicht erreicht ist. Bei Ende-zu-Ende-Verschlüsselung muss der Link vollständig ankommen – mit allem nach dem #.
Ich habe das Admin-Passwort vergessen.
Siehe «Admin-Passwort vergessen» unter Konto & Sicherheit: php admin.php password oder eine Datei reset-admin.txt im Datenordner.
Kann ich einen Transfer vorzeitig löschen?
Ja, in «Meine Transfers». Er liegt danach eine Weile im Papierkorb, falls es ein Versehen war.
Wie gross darf eine Datei werden?
Hochgeladen wird in Teilen; die PHP-Grenzen bestimmen nur die Grösse eines Teils, nicht die der Datei. Eine Obergrenze pro Datei setzt du im Admin, wenn du eine willst.

