Jeg bygde dette lille offline-internettet, og nå kan jeg få svar under et strømbrudd


Jeg bor på landsbygda, så internett er ikke noe jeg pålitelig kan regne som «alltid på». Det krever bare en voldsom tordenvær eller et strømbrudd som varer lenger enn reservebatteriene i den lokale mobilmasten for å ta meg tilbake til steinalderen. Det er frustrerende, mildt sagt, og det var behov for en løsning for å fylle gapet mens jeg ventet på at internettet skulle komme tilbake.

Så jeg bestemte meg for å bygge et offline mini-internett på laptopen min. Prosjektet startet som en måte å ha tilgang til nyttige Linux-kommandoer og lesemateriell når jeg ble tvunget offline av hva enn naturen hadde i vente for meg. Men selvfølgelig, det vokste snart til et seriøst prosjekt som fortjente sitt eget operativsystem og virtuelle maskin.

Så min "OfflineNet" ble opprettet, og jeg bygde det inne i en Debian Trixie VM, med en Apache webserver, Kiwix for gratis offline wikifiler, et stort lokalt bibliotek, og Recoll for indeksert og rask lokal søk. Etter at det var ferdig, hadde jeg forvandlet noen tusen uorganiserte filer til et fullstendig offline mini-internett som fungerte både fra VM-en og min vertsmaskin.

Jeg holdt bygget lett og kjedelig med vilje

Debian og XFCE er ikke glamorøse, men de er raske og praktiske






Jeg brukte VMWare Workstation i stedet for VirtualBox for denne byggingen fordi jeg allerede har gjester som kjører på ESXi og ønsket et apparat jeg kunne migrere. For operativsystemet valgte jeg Debian Linux med et XFCE-skrivebord fordi jeg trengte noe kjedelig og raskt i stedet for pent og ressurskrevende.

Kombinasjonen Debian XFCE kommer definitivt aldri til å vinne en skjønnhetskonkurranse, men for en overlevelses-VM er dens kjedsomhet absolutt en fordel. Den er lett nok for 4 GB minne, kjent, og enkel nok til å gjøre litt mindre stygg med et mørkt tema og noen fine skrifttyper.

Den eneste reelle oppdateringen til distribusjonen selv etter å ha startet opp VM-en og installert Debian, var at den trengte VMware-integrasjon, så jeg installerte OpenVMware-verktøy for å aktivere endring av skrivebordsstørrelse og utklippstøtte:

sudo apt install open-vm-tools open-vm-tools-desktop

Det siste steget før installasjon av den nødvendige programvaren var å opprette en mappe i /home-katalogen hvor de første filene skulle ligge før de ble overført til /var/www/html:

mkdir ~/OfflineNet

For å føles som et mini-internett, trengte det først en lokal hjemmeside

En enkel Apache-nettserver og en rask HTML-side knyttet alt sammen

For å forhindre at prosjektet bare ble en massiv katalog full av filer og mapper, trengte det en forside. Jeg installerte en Apache-nettserver, laget en enkel lokal hjemmeside, og brukte den som dashbord og landingsside for resten av prosjektet:

  • Kiwix for nedlasting og distribusjon av utdanningsinnhold som Wikipedia, StackExchange og Gutenberg.
  • Referansebiblioteket av PDF-filer.
  • Gjenopprettingsnotater.
  • Recoll-søk.
  • Oppstartsskript.

For å få det til å føles litt mer ekte, la jeg til et vertsnavn i Windows hosts-fil med PowerShell:

Add-Content -Path "$env:windir\System32\drivers\etc\hosts" -Value "`n192.168.226.134 myofflinenet.local"

Og også til min Linux hosts-fil:

echo "127.0.0.1 myofflinenet.local" | sudo tee -a /etc/hosts

På denne måten kunne jeg åpne myofflinenet.local både fra innsiden av VM-en og fra nettleseren min i Windows. Denne ene innstillingen fikk det til å føles pent og polert, i tillegg fungerer det nå som en liten lokal nettverkstjeneste.

Kiwix var nøkkelen til å lage en offline wiki uten å måtte laste ned hele internett

Jeg fant ut at trikset var å være selektiv, fordi noen ZIM-filer er enorme

Kiwix var plattformen som var avgjørende for å få prosjektet til å føles som et faktisk mini-internett, men jeg måtte være fornuftig med det. Kiwix tillot meg å laste ned komprimerte ZIM-filer som lagrer enorme mengder nettinnhold designet for å bli sett offline.

Som du kan forestille deg, kan disse filene bli enorme, og siden VM-en skulle være selvstendig, måtte jeg være selektiv med hva jeg lastet ned. Jeg satte en grense på 20 GB for meg selv og plukket ut nyttige ZIM-filer som medisin, offline-kart, DIY og noen Linux-snarveiledninger fra Kiwix-bibliotekets nettsted.

Å installere Kiwix var forfriskende enkelt:

sudo apt install kiwix-tools 

Etter installasjonen kopierte jeg ZIM-filene inn i min ~/OfflineNet/zim-mappe. Siden Kiwix serverer filene lokalt, kunne jeg bare åpne dem når jeg startet Kiwix på port 8080:

kiwix-serve --port=8080 ~/OfflineNet/zim/*.zim

Det opprettet en lokal wiki på http://myofflinenet.local:8080, og jeg la til den lenken på min lokale hjemmeside og publiserte den på nytt på Apache.

Jeg holdt bibliotekmappene enkle av en god grunn

Når det ikke er internett, trenger du godt organiserte mappestrukturer slik at du ikke mister hodet

Kiwix-wikien var super flashy, men de enkle mappene var like viktige fordi de også holdt viktig informasjon. Jeg opprettet /library, /notes og /downloads i /var/www/html og laget statiske HTML-sider i hver katalog som listet innholdet.

Nøkkelen var å holde alt enkelt, ingen flashy HTML-effekter, og en mappestruktur som ga mening for meg og var lett å navigere uten bruk av optimaliseringsverktøy. Mappestrukturen var enkel med vilje:

mkdir -p ~/OfflineNet/{zim,library,web,notes,scripts}

Apache serverte deretter katalogene gjennom de enkle lokale stiene:

  • http://myofflinenet.local/library/
  • http://myofflinenet.local/notes/
  • http://myofflinenet.local/downloads/

Siden Apaches standardkataloglister fortsatt ser ut som en FTP-server fra 1998, erstattet jeg disse med statiske indeksider med litt CSS for bibliotek-, notater- og nedlastingsmappene. De hadde fortsatt den samme enkelheten, bare litt hyggeligere å se på.

Recoll gjorde tusenvis av uregjerlige filer om til en søkbar offline plattform

Selv med de beste intensjoner, er det vanskelig å holde oversikt over tusenvis av PDF-er uten en form for indeksering

Å lagre filer er enkelt. Å organisere dem slik at du fortsatt kan finne dem seks måneder senere, uten internett, mens du allerede er irritert, er en annen historie. Jeg bestemte meg for at prosjektet trengte indeksering og en måte å søke gjennom filer med nøkkelord. Recoll passer perfekt til dette prosjektet fordi det kan finne og organisere filer selv om du sletter hele mappestrukturen.

Jeg installerte Recoll med:

sudo apt install recoll

Så kjørte jeg det fra Applications-menyen og pekte det rett mot ~/OfflineNet og lot det finne alle notater, PDF-er, lagrede sider og lokale dokumenter. Recoll lager også søkeordlister og kan fullføre søkespørringen din, selv når du er frakoblet. Etter det kunne jeg bare søke etter hva jeg trengte, og Recoll viste frem alle filer som inneholdt søkeordet/søkeordene.

Recoll ga i utgangspunktet mitt offline internetprosjekt sin egen søkemotor, og alt dette uten en eneste databaseserver, nettapp eller noe som trengte tilsyn. På dette tidspunktet var VM-en klar til å bli eksportert til OVF for fremtidig bruk og lagt på en ekstern harddisk for neste uunngåelige langvarige internettavbrudd.

Den første muligheten til å teste det offline kom tidligere enn forventet

Internett forsvant, men mitt lokale kunnskapssenter reddet dagen

Ikke før hadde jeg fullført den siste byggingen for prosjektet, ble jeg rammet av et internettutfall. Ikke på grunn av noen alvorlig værhendelse, men bare kjedelig, gammel planlagt vedlikehold. Det var den perfekte muligheten til å teste ut det lille internettprosjektet, og hva er vel en bedre måte enn å bruke det til å finne noe jeg kan lage til middag?

Jeg startet opp VM-en, ventet på at de automatiserte skriptene skulle starte Kiwix, og begynte å lete etter en oppskrift å prøve. Hjemmesiden lastet inn umiddelbart, og Kiwix var klar til bruk innen sekunder etter innlogging. Dette var en flott test fordi det viste at prosjektet var solid, og enda bedre, det var lynraskt. Recoll kunne fortsatt søke gjennom de lokale dokumentene jeg hadde indeksert tidligere. Og i motsetning til Windows Start-meny-søket, som fortsatt er avhengig av internettilkobling, la systemet ikke engang merke til at internett manglet.

Jeg fant snart en oppskrift på luftstekt zucchini i en av mine oppskrifter i det offentlige domene på Kiwix, og nøt en herlig kveld bare med å lese en bok. Det var ikke hele World Wide Web, men det var akkurat det jeg trengte uansett.

Jeg ville definitivt bygget det annerledes neste gang, men jeg beholder fortsatt denne versjonen

Liten, kjedelig og søkbar er den vinnende kombinasjonen for et lite offline-prosjekt, men jeg vil ha noe større

Denne versjonen av prosjektet fungerte godt som et bevis på konseptet, hovedsakelig fordi det var lite og smidig. Selv om det fungerer bra, føler jeg absolutt behov for å forbedre det og ta det videre. Neste gang ville jeg gitt VM-en noe tilkoblet lagring og lagt til en offline chatbot via en dedikert privat LLM.

Foreløpig vil jeg fortsette å legge til mindre filer og bygge et bedre offline-bibliotek mens jeg tålmodig venter på neste internettavbrudd på grunn av tordenvær, vedlikehold, eller at noen glemmer å bruke call-before-you-dig-nummeret.

Relaterte artikler