Diit.cz - Novinky a informace o hardware, software a internetu

Jak zprovoznit vlastní souborový server na starém Androidu? Kapitola 1

Zdroj: Vlastní

Co s vysloužilým Android smartphonem, na něhož se nám doma jen práší? Co takhle z něj udělat vlastní souborový server? V tomto článku vám ukážeme, jak na to!

Pár let zpět jsem poměrně vážně uvažoval o tom, že bych si pořídil domácí NAS – jednak jako prostor pro zálohy mých dat a pak také jako zařízení, které bych měl přístupné z internetu a fungovalo mi tak de facto na principu cloudu. Po zvážení všech pro a proti, kdy, vzhledem k mým účelům, byla nejzásadnějším proti tohoto řešení cena, jsem tento projekt odpískal a na dlouhou dobu poslal k ledu.

Nyní se přesuneme do dubna roku 2023. Po téměř čtyřech letech používání Nokie 3.2, která již v době svého uvedení neměla daleko od morální zastaralosti, jsem se rozhodl přesedlat na nový mobil. Chtěl jsem něco, co naplno a bez zbytečných zdlouhavých záseků splní mé poměrně nenáročné nároky na mobilní telefon a zároveň něco, co mě finančně nezruinuje. Volba tak padla na Motorolu Moto G51 5G, kterou svého času nabízel v akci 1+1 jeden nejmenovaný tuzemský operátor za poněkud mrzký peníz. A vy se nyní nejspíš ptáte, proč mluvím o mobilu, když jsem začal o NASech. Uznávám, že tato otázka se celkem nabízí.

Nejsem z těch, kteří by podporovali konzumní plýtvání. Proto jsem po koupi Motoroly začal okamžitě přemýšlet o tom, co se starou Nokií, aniž bych byl nucen ji odnést do sběru. Prodávat tento telefon dnes nemá smysl, v rodině o něj překvapivě nikdo nestál. Netrvalo mi to dlouho a osvěžil jsem opět nápad domácího NASu, avšak v jisté low-costové variantě.

Jediným reálným předpokladem pro zprovoznění tohoto řešení bylo připojit telefon k WiFi, zasunout do něj dostatečně objemnou microSD kartu a spustit na něm software, který zprostředkuje datový server a umožní na něj přístup. První dva předpoklady bylo poměrně prosté naplnit a o naplnění toho třetího si povíme v dnešním článku.

Jelikož jsem v prvopočátcích tohoto nápadu uvažoval o jakémsi svém domácím cloudu, logicky jsem sáhl po dvou etalonech v self-hosted cloudových řešení – NextCloudu a ownCloudu. Popis jejich instalace zde nebudu detailně rozebírat, nastíním však jisté body, které mě dovedly k jejich upuštění:

  • V obou případech je nutné mít spuštěný a správně nakonfigurovaný Apache, či jiný server s podporou PHP a MySQL/MariaDB – se samotným serverem a PHP problém nebyl, horší to bylo s konfigurací MySQL.

  • Obě tato řešení zabírala v telefonu kolem 3 GB, což není zrovna málo.

  • Webový instalátor se v obou případech spustil, avšak vždy vyhodil nespecifikovanou chybu, která neumožnila závadu jakkoliv diagnostikovat.

  • A neposledně – v mém případě se jedná o použití kanónu na vrabce.

Následně po průzkumu různých redditových zákoutí jsem narazil na poměrně jednoduše působící KaraDAV a ještě jednodušeji působící PicoDAV. V případě prvního zmíněného byl problém s inicializací databáze, která znemožňovala software nastartovat ve funkčním režimu. Co se druhého zmíněného týče, neuměl si poradit s oprávněními jednotlivých souborů, které se musely editovat ručně přímo v telefonu – což je poněkud nepraktické, když chci přistupovat k souborům přes síť.

Po dalším dlouhém hledání a zkoušení všeho možného, kdy jsem si říkal, že rezignuji a smířím se s tím, že bude Nokia ležet v šufleti ladem jsem narazil na software dave, který jako první naplnil očekávání – tj. jednoduchým způsobem spustil WebDAV server za podpory uživatelských účtů a nastavení přístupu k jednotlivým složkám. Jedinou obstrukcí ve zprovoznění tohoto řešení byla nutnost si program vlastnoručně zkompilovat, jelikož nabízená binárka pro ARM nešla spustit.

Dave se tak jevil jako ideální řešení, to však pouze do doby, než jsem nalezl jeden pro mě zásadní nedostatek – nemožnost správy oprávnění. V konfiguračním souboru sice šel nastavit účet norcom s přístupem do všech složek a účet guest s přístupem do složky guest, co však již nešlo nastavit byly úkony, které může uživatel se soubory a složkami provádět. Pokud tak chcete někomu udělit například read-only přístup do složky s fotkami, s Dejvem nepochodíte, jelikož uživateli nezabrání v tom, aby fotky smazal, či přepsal.

Proto jsem pátral dál, až jsem nalezl SFTPGo. Primárně jde o SFTP server, podporu však skýtá i pro FTP/S a zmíněný WebDAV, vše s možností šifrování skrze HTTPS certifikát. Nyní již přistoupíme k samotné instalaci na Androidu.

SFTPGo je serverový software, který se spouští jako služba operačního systému a spravuje se skrze rozhraní webového prohlížeče. Verze pro Android neexistuje, spokojit se tak budeme muset s verzí pro Linux, která má na Androidu jistá specifika ve spouštění.

V první řadě je nutné nainstalovat emulátor linuxového terminálu Termux. Ten je dostupný na Google Play, nutno však podotknout, že v zastaralé verzi, proto jej doporučuji stáhnout skrze alternativní obchod s open source aplikacemi F-Droid, či přímo ve formě binárního souboru. V obou případech je potřeba povolit instalaci z neznámých zdrojů. Tu však, alespoň v případě přímé instalace z binárního souboru doporučuji poté z bezpečnostních důvodů opět zakázat.

Aplikace Termux v open source obchodě F-Droid (klient Droid-ify) (Zdroj: Vlastní)

Před prvním spuštění je nutné vstoupit do nastavení telefonu, nalézt Termux v aplikacích a udělit mu přístup ke správě všech souborů v zařízení – bez tohoto kroku nelze postupovat dále.

Udělení potřebných oprávnění v prostředí nastavení Androidu (Zdroj: Vlastní)

Po spuštění Termuxu se nám otevře klasické konzolové okno vyčkávající na příkazy uživatele. V tento moment je nutné nainstalovat nutné závislosti vyžadované pro zprovoznění SFTPGo, konkrétně o vývojářské soubory jazyka Go, které nám umožní server zkompilovat a knihovnu OpenSSL, pomocí které vygenerujeme certifikát.

Závislosti nainstalujeme příkazem

pkg install golang openssl openssl-tool clang

V případě, že se vás Termux dotáže, zda-li chcete zachovat původní verze souborů napište N a potvrďte Enterem.

Výchozí prostředí aplikace Termux (Zdroj: Vlastní)

Následně pomocí webového prohlížeče stáhneme zdrojové kódy serveru s potřebnými doplňkovými knihovnami. Archiv je ve formátu .tar.xz, pro jeho otevření tak budeme potřebovat speciální software – například starý dobrý RAR. Po otevření archivu jej extrahujeme ideálně do adresáře sftpgo, jenž vytvoříme ve složce Download nacházející se na interním úložišti. Adresář otevřeme a zkopírujeme složky openapi, templates, a static do umístění internal/bundle.

Nyní stačí přejít do Termuxu a zadat příkaz

mv /storage/emulated/0/Download/sftpgo ~/

Jelikož složka obsahuje nepřeberné množství souborů, je možné, že proces přesunu chvíli potrvá. Místo strachování se, že proces zamrzl tak klidně můžete jít na kafe.

Po zkopírování souborů se příkazem

cd sftpgo

přesuneme do cílové složky, v níž budeme kompilovat server. Pro ujištění, že se nacházíte ve správné složce můžete zadat příkaz

dir

, který vám vypíše obsah složky. Pokud ve výpisu souborů vidíte soubor main.go, jste tam, kde máte být.

Nastává čas na kompilaci. Tu spustíme příkazem

go build -tags nogcs,nos3,noazblob,nobolt,nomysql,nopgsql,nometrics,bundle ./main.go

Jednotlivé uvedené tagy jsou blíže popsány na GitHubu projektu. Pokud se v problematice orientujete, můžete si je podle potřeby poupravit, pakliže ne, doporučuji použít výše zmíněný příkaz.

Po kompilaci, jejíž délka se bude odvíjet od výkonu vaše telefonu naleznete ve složce sftpgo spustitelný soubor main. Ten je ve výchozím stavu nespustitelný, je tedy nutné mu udělit patřičná oprávnění, a to příkazem

chmod +x main

Samotný server se následně spustí příkazem

./main serve

Rozhraní serveru je pak dostupné skrze port 8080. IP adresu zařízení zjistíte spuštěním příkazu

ifconfig

v prostředí Termuxu. Ve výstupu se vám zobrazí několik IP adres - ta, kterou hledáme je ve formě 192.168.x.x. Tuto IP adresu si doporučuji zaznamenat a v administraci routeru ji staticky skrze MAC adresu přiřadit k telefonu, zamezíte tak nechtěné změně adresy a nutnosti ji opětovně dohledávat.

Webová administrace serveru SFTPGo

Administrace SFTPGo spuštěná v prostředí webového prohlížeče (Zdroj: Vlastní)

Možná se nyní ptáte, proč to řešit takto složitě, když mohu do Google Play napsat SFTP server a nainstalovat první naservírovanou aplikaci. Důvodů je hned několik:

  • Řešení na Google Play jsou uzavřená a publikovaná neznámými autory, jako uživatel tedy nemáte jistotu, zda-li své soubory nevystavujete potenciální kompromitaci.

  • Řešení na Google Play nabízí násobně méně možností nastavení a zabezpečení serveru, než SFTPGo.

  • Osvojíte si základy práce s mobilním terminálem, který vám může posloužit v mnoha dalších případech.

V příští kapitole se podíváme, jaké možnosti SFPTGo skýtá a společně si jej nastavíme do finální provozuschopné podoby.

Máte námět na článek? Dejte mi vědět v komentářích.

Tagy: 

Robert "Norcom" Škvařil

Počítačový entuziasta se zájmem o operační systémy a jejich historii, webové prohlížeče a retrogaming.

více článků, blogů a informací o autorovi

Diskuse ke článku Jak zprovoznit vlastní souborový server na starém Androidu? Kapitola 1

Úterý, 20 Červen 2023 - 14:15 | Ladis | Eště že existují i jiné filesystémy. Např takové...
Úterý, 20 Červen 2023 - 12:46 | Anonym | Díky. Mám podobné zkušenosti. A dodám že jsem si...
Úterý, 20 Červen 2023 - 09:57 | Hugo Hugo | Na domácí využití určitě ne. I ten nejskromnější...
Pondělí, 19 Červen 2023 - 22:01 | DDR0 | jistě, jako kutilské základní cvičení proč ne....
Pondělí, 19 Červen 2023 - 11:29 | WIFT | Článek se mi velice líbí, po dlouhé době velmi...
Pondělí, 19 Červen 2023 - 11:16 | WIFT | Co se připojitelnosti různých věcí přes USB do...
Pondělí, 19 Červen 2023 - 00:23 | DDR0 | tak ne tolik Android jako roste náročnost...
Neděle, 18 Červen 2023 - 21:52 | Ji Si | "Jenže když se načte oholené jádro "...
Neděle, 18 Červen 2023 - 21:21 | RedMaX | "slusny OS zadny specialni vykon nepotrebuje...
Neděle, 18 Červen 2023 - 19:48 | lubo76 | BTW, nie je nap. zdroj to, čo dokáže udržať...

Zobrazit diskusi