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.
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.
Î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.
Î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.
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.
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.
| Ce | Buget | Azi |
|---|---|---|
| Binarul CLI, stripped | ≤ 15 MiB | 4,2 MiB Linux · 4,5 MiB Windows |
| Procese în fundal, servicii, daemoni | zero | zero |
| Telemetrie, „statistici anonime", actualizator automat | zero | zero |
| Apeluri de rețea la rulare | zero | zero |
| Runtime de instalat pe destinație | niciunul | niciunul |
| 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
> 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/.
- Windows, 64 de biți —
dhs.exeșidhs-gui.exedhs_0.2.0_windows_amd64.zip3.3 MiB - Windows pe ARMdhs_0.2.0_windows_arm64.zip3.0 MiB
- Debian, Ubuntu, Mint —
.debdhs_0.2.0_amd64.deb1.7 MiB - Debian, Ubuntu pe ARM —
.debdhs_0.2.0_arm64.deb1.5 MiB - Fedora, RHEL, openSUSE —
.rpmdhs-0.2.0-1.x86_64.rpm1.9 MiB - Fedora, openSUSE pe ARM —
.rpmdhs-0.2.0-1.aarch64.rpm1.7 MiB - Orice Linux, fără instalare — AppImageDHS-0.2.0-x86_64.AppImage2.9 MiB
- Linux, arhivă simplădhs_0.2.0_linux_amd64.tar.gz2.2 MiB
- Linux pe ARM, arhivă simplădhs_0.2.0_linux_arm64.tar.gz2.0 MiB
- Sursadhs-0.2.0-source.tar.gz555 KiB
- Sumele de control pentru tot ce e mai susSHA256SUMS931 B
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.
$ 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.
Documentație
Totul e în repo, în engleză, cu traduceri în română în docs/ro/.
README.ro.mdCe face, cum se compilează, starea curentădocs/ro/ARHITECTURA.mdFormatul pachetului, structura modulelor, suprafața CLIdocs/ro/COMPRESIE.mdCele trei niveluri, estimarea, cercetarea despre compresia extremădocs/ro/TESTARE.mdCum merge sesiunea de teste, pe cinci distribuțiidocs/ro/LICENTA.mdDe ce Apache-2.0 și de ce fără clauză eticădocs/ro/VALUES.mdÎn ce crede proiectul, spus public