Lokaler Proxy für Play Store/Apple App Store?

Ich habe eine Anfrage von einem Kunstprojekt, das per App ergänzende Informationen bereitstellen möchte. Der App-Download würde ca. 1 GB umfassen (es geht um AR-Kram…), weswegen ich gefragt wurde, ob sich so was lokal cachen lässt. Ich sehe zwei Ansätze:

  • Aufsetzen eines Proxy (squid…) - wird wohl nicht klappen, weil die per HTTPS abgesicherte Verbindung scheitern wird. Das Netgate-Forum schreibt dazu:

These mostly work with HTTP, but in special cases can also work with HTTPS.

  • Bereitstellen der .apk/.ipa-Datei auf einem lokalen Webserver, also Sideloading. Die Nutzenden werden diverse Warnungen wegklicken und/oder Sicherheitseinstellungen am Endgerät deaktivieren müssen. Scheint mir auch nicht praktikabel.

Hat eine*r dazu noch andere Ideen?

Nur eine Überlegung, ohne es zuende durchdacht zu haben - bei F-Droid kann man zusätzliche Repos angeben. Kann man sich vielleicht zunutze machen.

Dazu müssen die Nutzer:innen allerdings bei der Installation von F-Droid die Warnungen weg klicken.

Oder du baust eine Dummy-App mit Downloader, der man dann die Berechtigung erteilen muss, Apps installieren zu dürfen

Mein erster Gedanke war auch fdroid, da gibt es AFAIK auch ein Peer-to-Peer Sharing der APKs. Aber je nach Nutzende/Szenario ist das auch ungeschickt.

Squid war auch mein nächster Gedanke, der kann (angeblich bei mir in der OPNsense) ja auch Windows und Linux Repositories cachen. Wenn das Aufsetzen nicht zu komplex ist, vielleicht einfach mal ausprobieren…?

Und dritter Gedanke war (ähnlich zu @markus.kollotzek Vorschlag) die App so bauen, dass sie die Assets nach der Installation herunter lädt. Hierbei dann einen lokalen Server angeben. Sofern du Einfluss auf das Bauen der App hast…
Oder „WebApp“ AKA eine Webseite (die lokal auf nem Server liegt) mit QR-Code für die Besuchenden…

Herzlichen Dank für eure Antworten!
Ich habe mich vergangene Woche etwas mit Squid beschäftigt und gelernt, dass es für diesen Einsatzzweck nicht taugt. Man kann Squid zwar als transparenten HTTP(s)-Proxy konfigurieren, muss aber ein Zertifikat generieren und im Browser importieren. Das taugt für gemanagte Umgebungen, nicht jedoch fürs Versorgen ständig neuer, fremder Geräte.
Als letzte Option bleibt also nur das Bereitstellen der Inhalte auf einem lokalen Webserver, auf den ich via manueller DNS-Einträge im Router umleite. Auch diesen lokalen Webserver muss ich dann mit korrekten Zertifikaten ausstatten, damit er ohne Murren akzeptiert wird. Und für die DNS-Umleitung muss ich einen lokalen DNS-Server aufsetzen - in einer Fritz!Box kann ich meines Wissens keine manuellen DNS-Einträge hinterlegen.
Alles nicht so ohne. Ich bleibe dran…

Nur zur Präzisierung, dies gilt nur für den Cache (worum es dir ja ging), transparenter Proxy zum Filtern/Blocken geht auch ohne SSL aufbrechen, nur mit SNI.

Klassisch könnte der Server hinter einem Reverseproxy (der auf dem Router läuft) laufen, sodass nur der Reverseproxy Zertifikate benötigt. Mit LetsEnrypt „eigentlich einfach“.

Nutzt ihr nicht pfsense? Die kann das bestimmt, OPNsense kann es auf jeden Fall.

Es hat gar nix mit dem ZEGG zu tun. Es geht um einen WLAN-Hotspot auf der grünen Wiese. Strom per Solar, Internet per Richtfunk oder LTE.
Das heißt: eher knappes Energiebudget fürs lokale Cachen - bei der LTE-Variante.
Wenn die Internetanbindung per Richtfunk läuft, könnte der Cache natürlich dort an der Quelle stehen. Aber wenn dort wiederum nur eine Fritz!Box steht, muss ich den gesamten DNS-Verkehr des dortigen Netzes über „meinen“ DNS-Server schicken, nur um eine einzige Adresse umzubiegen. Auch nicht schön.

Klingt ja fast wie ein Einsatzfall für Freifunk oä, weshalb mir einfällt, dass vermutlich OpenWrt manuelle DNS-Einträge unterstüzzt, wenn die original FW das nicht macht.
Wenn die HW einen USB-Anschluss hat, reicht vielleicht ein USB-Stick als energiegünstiger Cache-Speicherplatz…

Wenn du es nicht extra per VLAN oä kapselt oder auf Client bzw. Fritzbox auf der Wiese manuell einen extra DNS-Server einträgst, wird es vermutlich eh so laufen, oder? Client fragt nach DNS und hat den DNS-Eintrag vom DHCP-Server, also Fritzbox auf grüner Wiese. Die Fritzbox fragt bei ihrem DHCP-bietenden Host, also deiner Fritzbox nach DNS, diese nutzt dann den DNS von eurem Provider. So gerade zumindest in meinem Kopf. :slight_smile: