
ჩემი სერვერი ახლა ტელეფონია — CMF Phone 1 VPS-ის ჩამნაცვლებლად
ავტორმა პატარა Hetzner VPS უმოქმედოდ მდგარი CMF Phone 1-ით ჩაანაცვლა: ტელეფონზე Termux, chroot-ში Debian და Cloudflare Tunnel მუშაობს — და დეტალურად აღწერს, რა დაუჯდა ეს.
თვითჰოსტინგის მოყვარულმა პატარა Hetzner VPS უმოქმედოდ მდგარი ტელეფონით ჩაანაცვლა. დეტალურ ჩანაწერში ავტორი აღწერს, როგორ გახსნა root წვდომა CMF Phone 1-ზე და აქცია ის მანქანად, რომელზეც ახლა პირადი ინფრასტრუქტურა მუშაობს: დისტანციური ბრაუზერი, ფინანსების აღრიცხვის აპი, ეკრანის გაზიარების სერვისი და რამდენიმე მცირე ვებ-აპლიკაცია.
რატომ ტელეფონი
მიგრაცია ხარჯების პრობლემით დაიწყო. VPS იაფი იყო, მაგრამ რესურსი არ ჰყოფნიდა, როცა Surf-ის სახელით ცნობილი დისტანციური ბრაუზერის Chrome-ს რეალური სამუშაო უჩნდებოდა; გამოყოფილი CPU-ს მქონე მანქანები ამას აგვარებდა, მაგრამ პირადი ბრაუზერისთვის ძვირი იყო. ახალი კომპიუტერის აწყობა კი დროული არ იყო — DRAM-ის ფასები მაღალია. ხელთ არსებულ ტელეფონს კი რვა ARM ბირთვი, 8 გბ ოპერატიული მეხსიერება, 128 გბ ფლეშ მეხსიერება, Wi-Fi 6, 5G მოდემი და ჩაშენებული ბატარეა აქვს, რომელიც პატარა UPS-ივით იქცევა.
postmarketOS-იდან Termux-ამდე
პირველი მცდელობა — postmarketOS-ის ჩაწერა — splash ეკრანსა და შავ დისპლეიზე დასრულდა, Wi-Fi, Bluetooth და აპარატურული აჩქარება კი გატეხილად იყო მონიშნული. სტანდარტული Nothing OS-ის აღდგენა Windows-ის ფლეშერით მოხდა, რომელიც ავტორმა ჯერ QEMU-ში, შემდეგ რეალურ Windows-ზე გაუშვა. დასკვნა: Android-ს აპარატურისთვის მზა დრაივერები უკვე აქვს. მეორე მცდელობისას სტანდარტული Android შენარჩუნდა და ჰოსტის გარემოდ Termux გამოყენდა: OpenSSH, runit, Caddy, Cloudflared, Tailscale და Termux:Boot, რომელიც გადატვირთვის შემდეგ სერვისებს რთავს. Ansible-ით მართული Android პროფილი აყენებს wake lock-ს, თიშავს light და deep idle რეჟიმებს, საჭირო აპებს ფონური შეზღუდვებისგან ათავისუფლებს და Wi-Fi-სა და always-on Tailscale VPN-ს ჩართულს ინახავს.
proot, შემდეგ კი ნამდვილი chroot
Linux ARM64 OCI იმიჯებად გაშვებული აპლიკაციები თავიდან proot-distro-ში მუშაობდა — მას არც root სჭირდება და არც სპეციალური ბირთვი. ლატენტურობისადმი მგრძნობიარე ბრაუზერის დატვირთვა ამ გზით CPU-ს ეფექტურად ვერ აღწევდა, ამიტომ ავტორმა ტელეფონზე root წვდომა გახსნა, იგივე Debian-ის ფაილური სისტემა სწორად დაამონტაჟა და ნამდვილი chroot-ით შევიდა მასში. იმიჯები digest-ით არის მიბმული, Ansible ამოწმებს და აყენებს; root დამხმარე პროცესი პირად mount namespace-ს ქმნის და უფლებებს ამცირებს. ტელეფონზე არც Docker და არც კომპილატორი არ არის.
ინგრესი, როუმინგი და შედეგი
HTTP სერვისები Cloudflare Tunnel-ით არის გამოტანილი — კავშირი მხოლოდ გარეთ მიდის, ამიტომ როუტერზე შემომავალი წესები არ საჭიროებს, ტელეფონის სხვა ქსელზე გადატანისას კი გვირაბი უბრალოდ ხელახლა უკავშირდება. Surf დისტანციური ბრაუზერი, რომელიც საკუთარ TLS-ს წყვეტს და ძველ iPad-ს მისი იდენტობა აქვს მიბმული, გვირაბის გასავლელად TLS ნაკადს ჩვეულებრივ WebSocket-ში ახვევს; ავტორის გაზომვით, ეს დაახლოებით ერთ დამატებით რაუნდს ნიშნავს, iPad-ის კავშირი კი დაახლოებით 60 მილიწამს იყო. ნატიური დაშბორდი dash.cmf-ზე CPU-ს, მეხსიერებას, დისკსა და ბატარეას აჩვენებს. ავტორის დასკვნა: რამდენიმე პირადი სერვისისთვის ეს სავსებით გონივრულია, თუ ხელთ root-ის გახსნადი ARM64 ტელეფონი გაქვთ — მაგრამ შეუცვლელი მონაცემებისთვის ავტომატური გარე ბექაპების გარეშე არა.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.