Pakketcache
FAQ › EUZOS Server › Pakketcache · English
Wat is het?
De Pakketcache (pakket-id cache) is een lokale kopie van download.euzos.eu binnen het bedrijf. De EUZOS Server downloadt apps (zoals Chromium, 411 MiB) één keer en levert ze aan de EUZOS-pc's in het LAN; later ook EUZOS-updates. 50 pc's halen Chromium dan één keer over internet in plaats van 50 keer, en installeren gaat op LAN-snelheid.
Hij draait bovenop Werkplekbeheer: dezelfde HTTPS-server op TCP-poort 8445, dezelfde sleutels en aanmelding bij de profielserver. De cache levert alleen als beide pakketten aan staan. Ontwerp en dreigingsmodel: docs/PACKAGE-CACHE.md.
Hoe doe ik…?
Hoe zet ik de pakketcache aan?
Het installatieprogramma zet hem standaard aan (stap Pakketten). Op een server die vóór 27-10-2026 is geïnstalleerd, of na uitzetten:
serveradmin <server> package-on cache
serveradmin <server> firewall-open allow tcp 8445 lan
package-on cache schrijft \EOS\FW\CACHE.TXT als die ontbreekt en begint met vullen. De firewall blijft dicht tot je poort 8445 voor het LAN opent.
Hoe zie ik wat er in de cache zit?
serveradmin <server> cache (of workplace op de console van de server): de stand, het gebruik (gebruikt, quotum, vak), en per app de versie, de grootte, vooraf gehaald of op aanvraag, het laatste gebruik, het aantal verzoeken en de geleverde bytes; daarna de wachtrij en de laatste melding van het vullen.
Hoe maak ik de cache leeg?
serveradmin <server> cache-clear laat zien wat er gebeurt
serveradmin <server> cache-clear confirm en doet het
Alle apps worden verwijderd. De pc's halen bij download.euzos.eu tot de volgende ronde (elke 30 minuten, of serveradmin <server> fill) de vooraf gehaalde apps weer heeft gevuld.
Hoe kies ik welke apps vooraf worden gehaald?
serveradmin <server> apps chromium,srvadmin (bewaard als apps= in WORKPLC.TXT). Andere apps worden op aanvraag gevuld: de eerste pc die er met een geldig downloadtoken om vraagt, krijgt "niet in de cache" en valt terug op download.euzos.eu; de server haalt hem dan, en de volgende pc krijgt hem uit de cache.
Hoe vindt een pc de cache?
- De appcatalogus van de profielserver noemt de cache (
werkplek=https://<LAN-IP>:8445/,werkplek-tls=<pin>) als de pc vraagt vanaf hetzelfde publieke adres als de server. - Werkt dat niet (meerdere vestigingen achter één NAT, een VPN), zet dan
\EOS\FW\PKGCACHE.TXTop de pc:
url=https://<lan-address>:8445/
tls=<de tls-pin die 'workplace' op de server toont>
- Later: mDNS in het lokale netwerk.
Antwoordt de cache niet of klopt er iets niet, dan gaat de pc gewoon verder bij download.euzos.eu.
Kan een gehackte cache pc's een slechte Chromium geven?
Nee. Elk bestand is ondertekend door EUZOS; de pc controleert zelf de handtekening, de versie (niet ouder dan eerder), de grootte, de SHA-256 en de blokhash, precies zoals bij download.euzos.eu. Een slechte cache kan een download alleen laten mislukken; de pc valt dan terug.
Wie mag uit de cache downloaden?
Alleen een pc met een geldig downloadtoken van de profielserver (een ingelogde pc; één app en versie, 2 uur). De cache controleert het token zelf, met de publieke sleutel die hij bij elke aanmelding krijgt. Bekend gat: ingetrokken tokens kent de cache nog niet; ze verlopen binnen 2 uur.
Details
- Opslag (MVP): het
apps/-vak op partitie 2 (2 GiB, hooguit 4 apps).quota-mib=inCACHE.TXTbeperkt het verder. - LRU-opruimen: past een nieuwe app of versie niet, dan verwijdert de cache eerst apps die op aanvraag zijn gevuld, de langst niet gebruikte eerst, daarna vooraf gehaalde; nooit de app die gevuld wordt. Past hij helemaal niet:
too_largein het logboek. - Nieuwe versies: elke ronde vergelijkt de versie in de catalogus met die in de cache en haalt een nieuwe versie op de achtergrond; de oude blijft geleverd tot de nieuwe compleet is.
- Hervatten: een onderbroken download gaat met
Rangeverder bij dezelfde bron (206Content-Range). - Uit:
package-off cache confirmsluit poort 8445 in de firewall en de poort weigert verbindingen; de inhoud blijft. Werkplekbeheer uit stopt de cache ook.
Naslag
Server Admin
| Opdracht | Wat |
|---|---|
package-on cache | inrichten (CACHE.TXT) en aanzetten |
package-off cache [confirm] | uitzetten; sluit 8445 |
cache | gebruik en inhoud |
cache-clear [confirm] | de cache legen (actie op de lijn cache-clear, argument bevestig) |
fill | nu aanmelden en vullen |
apps <a,b> | de vooraf gehaalde apps |
Redencodes: needs_workplace (Werkplekbeheer is niet ingericht), package_not_installed (een niet-ingerichte cache uitzetten), confirmation_needed.
Configuratiebestanden
| Bestand | Sleutel | Waarden | Betekenis |
|---|---|---|---|
\EOS\FW\CACHE.TXT (server) | role | cache | zonder is het pakket niet ingericht |
quota-mib | 0 – 1048576 | het quotum in MiB; 0: het hele vak | |
on-demand | yes / no | een app vullen na een misser met een geldig token | |
package | off | uitgezet met Server Admin | |
\EOS\FW\PKGCACHE.TXT (pc) | url | https://<IPv4>:<poort>/ | de cache in dit netwerk |
tls | 64 hex | SHA-256 van de SPKI van de server (de TLS-pin) |
HTTP op poort 8445
GET|HEAD /<app>/<versie>/<bestand> met Authorization: Bearer ezdl1.… en hooguit één Range. Bestanden: <NAAM>.APP, <NAAM>.APP.sig, het pakket. 200 / 206 / 416; 401 geen_token, handtekening, verlopen; 403 ander_pad; 404 not_in_cache (en op aanvraag in de wachtrij), pad, beschadigd (de opgeslagen beschrijving klopt niet); 503 klok.
Code
| Onderdeel | Rol |
|---|---|
euzos_pkgcache::config | CACHE.TXT lezen/schrijven |
euzos_pkgcache::lru::{plan, report} | quotum, opruimplan, gebruiksoverzicht |
euzos_pkgcache::serve::decide | token + inhoud → leveren / weigeren / misser |
euzos_pkgcache::verify | de end-to-end-controles (handtekening van de beschrijving, SHA-256 van het pakket) |
euzos_pkgcache::hint | PKGCACHE.TXT, spiegel-URL's |
crate::pkgcache (kernel/src/server/cache.rs) | stand, aan/uit, vulronde, statistiek, cache-clear |
crate::workplace::respond | de HTTPS-server op 8445 |
app_store::install_catalog | pc-kant: eerst de cache, dan de URL's uit de catalogus |
Zie ook
- docs/PACKAGE-CACHE.md
- Pakketten, Server Admin, Netwerk en firewall
- docs/DOWNLOADSERVER.md, docs/UPDATES.md
EUZOS