DHS · Direct Handoff Suite

Mută-ți întregul mediu de lucru pe un sistem de operare nou.

De pe Windows pe Linux, de pe Linux pe Windows, de la o distribuție la alta, de la o versiune de Windows la următoarea. Fișierele, setările și lista aplicațiilor tale intră într-un singur pachet portabil, pe un mediu extern — și ies pe partea cealaltă.

Fără cloud. Fără cont. Fără rețea. Fără AI. Un binar de câțiva megaocteți.

Iconul DHS: o valiză străbătută de o săgeată
0.2.0 e publicată. Nucleul pentru fișiere e verificat bit cu bit pe cinci distribuții Linux și pe Windows 11, iar acum călătoresc și aplicațiile: ce e instalat, configurările lor și un plan de instalare pentru partea cealaltă, potrivite cu o bază de 759 de aplicații. E încă devreme: păstrează discul original neatins până restaurezi singur un pachet și te uiți la rezultat.

Trei pași, un singur mediu

DHS construiește un pachet de migrare pe un SSD sau un stick USB. Instalezi sistemul nou, bagi mediul la loc și iei totul cu tine.

1

Împachetezi, pe sistemul vechi

DHS îți scanează home-ul, îți spune cât va ocupa înainte să scrie un octet, apoi scrie pachetul: criptat, împărțit în volume de 3,5 GiB ca să încapă pe orice mediu, FAT32 inclusiv.

2

Îl duci cu tine

Pachetul e doar niște fișiere pe mediul tău. Nu atinge niciun server. Un SSD pierdut nu e o scurgere: tot ce e în el e criptat cu fraza ta, iar secretele nici măcar nu sunt înăuntru dacă nu ceri asta.

3

Restaurezi, pe cel nou

DHS verifică fiecare sumă de control, îți arată planul și doar apoi scrie — lângă fișierele existente, niciodată peste ele. Ce nu poate așeza ajunge în ~/DHS-restored/.

Estimarea vine prima

O singură comandă îți spune ce s-ar salva, cât spațiu ocupă la fiecare nivel de compresie și dacă încape pe mediul pe care l-ai băgat. Nu se scrie nimic până nu spui tu.

  DHS_LANG=ro dhs scan --dest /run/media/tu/SSD
Sistem        Arch Linux (amd64)
Rădăcini      /home/tu/Documente
              /home/tu/Poze
              

De inclus     44,0 GiB în 68 000 fișiere   (scanat în ~1 s)
Excluse       6,2 GiB   --all le aduce înapoi
                target                 5,9 GiB · artefacte de build
                node_modules           237 MiB · dependențe, refăcute de npm install
Secrete       1,2 MiB în 9 fișiere   excluse implicit; --secrets le include

Compoziție
                binar            20,0 GiB     46%
                incompresibil    11,8 GiB     27%   stocat, nu comprimat
                text             2,4 GiB      6%

Nivel         2 · Echilibrat
Estimare      27,4 GiB – 34,4 GiB   ~3 min pe 8 nuclee
Volume        10 × 3,5 GiB

Destinație    /run/media/tu/SSD   64,0 GiB liberi din 119 GiB   exFAT

              ✓ Încape, cu 29,6 GiB de rezervă.

De ce DHS

Are pe mână întreaga viață digitală a cuiva — documente, poze, chei. De aceea e construit pe câteva reguli care nu se negociază.

Bit cu bit, sau nimic

Fiecare fișier primește un SHA-256 la împachetare și e verificat din nou înainte să fie pus la loc. Un fișier care nu se verifică nu se scrie. Niciun truc cu pierderi, oricât ar economisi.

Criptat implicit

Întreg pachetul e criptat cu o frază de acces (age, scrypt). Secretele — chei SSH și GPG, parole din browser, tokenuri — rămân afară dacă nu ceri altfel, și atunci primesc o frază a lor.

Nu suprascrie niciodată

Restaurarea păstrează ce e deja acolo; copia restaurată se așază alături, cu sufixul (DHS). Orice alegere distructivă e explicită, iar --dry-run arată planul fără să atingă nimic.

Sincer când e întrerupt

Un cablu smuls sau o baterie moartă lasă un pachet care spune că e incomplet — un jurnal notează până unde a ajuns. Nu lasă niciodată un pachet pe jumătate scris care pare valid.

Nimic nu-ți părăsește discul

Fără cloud, fără cont, fără telemetrie, fără actualizator, fără niciun rând de cod de rețea. Baza de aplicații e compilată în binar, așa că DHS merge și pe o mașină care n-a fost niciodată online.

Mic, cu intenție

Un singur binar static de vreo 4 MiB, niciun runtime de instalat pe sistemul proaspăt, zero procese în fundal. Trei niveluri de compresie, de la ZIP simplu la LZMA2, toate la alegerea ta.

Bugete, nu sugestii

Umflarea e un mod de eșec pe care îl planificăm împotriva lui. Pragurile de mai jos stau în regulile proiectului, iar build-ul curent trebuie să rămână sub ele.

CeBugetAzi
Binarul CLI, stripped≤ 15 MiB4,2 MiB Linux · 4,5 MiB Windows
Procese în fundal, servicii, daemonizerozero
Telemetrie, „statistici anonime", actualizator automatzerozero
Apeluri de rețea la rularezerozero
Runtime de instalat pe destinațieniciunulniciunul
Pornire la rece< 100 ms~10 ms

Fără AI, prin proiectare

DHS e o unealtă de sistem deterministă: citește, împachetează, verifică, restaurează. Poți prezice exact ce face. Aplicațiile sunt potrivite între platforme printr-o bază de date întreținută de oameni, cu identificatori exacți — nu prin ghicit. Dacă o aplicație nu e în bază, DHS spune asta și o trece în raport. Nu inventează un echivalent.

Nimic nu rulează orbește

La restaurare, DHS arată exact ce ar instala, din ce sursă și cu ce comenzi. Aprobi planul o dată; apoi rulează. Nimeni n-ar trebui să execute comenzi de root generate dintr-un fișier de pe un stick fără să le citească — așa că DHS nici nu-ți cere asta.

Descarcă

0.2.0 e prima versiune obișnuită, nu pre-release. Fișiere, configurări de aplicații și planul de instalare, pe Windows și Linux, cu interfață grafică pe amândouă. Detectarea pe Windows a rulat deocamdată doar în testele unitare; dacă îi scapă ceva ce ai instalat, spune pe GitHub.

Windows

  PowerShell
> irm https://dhs-suite.vercel.app/install.ps1 | iex

Asta instalează unealta de linie de comandă. Pentru interfața grafică ia arhiva de Windows de mai jos: conține dhs.exe și dhs-gui.exe, două fișiere care rulează din orice folder, fără să instaleze nimic.

Instalatorul alege singur varianta pentru procesorul tău, o verifică față de sumele SHA-256 publicate cu versiunea, o dezarhivează în profilul tău și o pune în PATH. Fără drepturi de administrator, fără nimic lăsat în execuție. Ca să fixezi o versiune, creează un bloc de script: & ([scriptblock]::Create((irm https://dhs-suite.vercel.app/install.ps1))) -Version 0.2.0

Descărcări directe

Versiunea 0.2.0, direct din release-ul de pe GitHub. Pe Arch: dhs-cli și dhs-gui din rețeta AUR din packaging/aur/.

Verifică ce ai descărcat cu fișierul SHA256SUMS publicat lângă el, prin sha256sum -c SHA256SUMS --ignore-missing. Sau compilează din sursă, cu o singură comandă și fără niciun toolchain suplimentar, nici măcar pentru Windows.

  build
$ git clone https://github.com/Necta14/dhs && cd dhs
$ go build -ldflags="-s -w" -o dhs ./cmd/dhs               # Linux
$ GOOS=windows go build -ldflags="-s -w" ./cmd/dhs         # Windows, de pe Linux
$ ./dhs scan --dest /run/media/tu/SSD
$ ./dhs backup --dest /run/media/tu/SSD --name laptop
$ ./dhs verify /run/media/tu/SSD/laptop.dhs
$ ./dhs restore /run/media/tu/SSD/laptop.dhs --dry-run

Fiecare comandă acceptă --json pentru scripturi și interfețe; DHS_LANG=ro trece mesajele pe română. Un prototip de interfață grafică pentru Linux (GTK4 + libadwaita) stă în gui/linux/ și conduce același binar — logica e într-un singur loc, interfața e doar o coajă peste ea.