Skip to content

selmancuzdan42/rollbacktx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RollbackX

Pardus Linux için sistem durumu yöneticisi / System state manager for Pardus Linux

License: GPL v3 Rust Pardus Release

🇹🇷 Türkçe  |  🇬🇧 English


Türkçe

RollbackX, Pardus ve diğer Debian tabanlı dağıtımlar için geliştirilmiş açık kaynaklı bir sistem durum yöneticisidir. Btrfs, LVM Thin ve Rsync depolama altyapılarını destekler; sistem yapılandırmasını otomatik algılayarak en uygun altyapıyı seçer.

Kurulum

# 1. Paketi indir
wget https://github.com/selmancuzdan42/rollbacktx/releases/latest/download/rollbackx_1.0.0_amd64.deb

# 2. Kur
sudo dpkg -i rollbackx_1.0.0_amd64.deb

Tüm sürümler için → Releases

Özellikler

  • Çok altyapı desteği — Btrfs, LVM Thin Provisioning ve Rsync (ext4 dahil tüm dosya sistemleri)
  • Otomatik altyapı seçimi — Btrfs → LVM Thin → Rsync öncelik sırasıyla algılama
  • APT entegrasyonu — Her apt install/upgrade/remove işlemi öncesi otomatik durum kaydı
  • GRUB menüsü entegrasyonu — Kayıtlı durumlardan doğrudan önyükleme
  • GTK4 / libadwaita arayüzü — Modern, GNOME HIG uyumlu masaüstü uygulaması
  • CLI — Türkçe/İngilizce çıktı (ROLLBACKX_LANG=en)
  • Rol tabanlı yetki modeli — Admin / Öğretmen / Öğrenci modu (eğitim ortamları için)
  • Durum doğrulama — Kritik sistem dosyalarının bütünlük kontrolü
  • Dışa/içe aktarım.rxsnap formatı ile arşivleme
  • systemd entegrasyonu — Açılışta otomatik yükleme, zamanlanmış kayıt
  • Kilit mekanizması — Kritik kayıtların yanlışlıkla silinmesini önler

Ekran Görüntüleri

Ana Ekran

Ana Ekran

Yeni Kayıt Oluşturma

Kayıt Oluşturma Diyaloğu    Kayıt Oluşturuluyor

Kayıt Listesi

Kayıt Listesi

Kayıt Detayı ve Geri Yükleme

Kayıt Detay Paneli    Geri Yükleme Onayı    pkexec Kimlik Doğrulama

Dosya Gezgini Entegrasyonu

Dosya Gezgini

Kullanım

CLI

# Yeni kayıt oluştur
sudo rollbackx snapshot create "güncelleme-öncesi"

# Kayıt listesi
rollbackx snapshot list

# Kayda dön (reboot gerektirir)
sudo rollbackx snapshot restore 3

# Sistem durumu
rollbackx durum

# Sistem kontrolü
rollbackx kontrol

# Kaydı doğrula
sudo rollbackx snapshot verify 3

# Kaydı dışa aktar
sudo rollbackx arsiv export 3 yedek.rxsnap

# İngilizce çıktı
ROLLBACKX_LANG=en rollbackx snapshot list

GTK Arayüzü

rollbackx-gtk

Yönetici işlemleri otomatik olarak pkexec aracılığıyla yetkilendirilir; GTK uygulamasını root olarak çalıştırmaya gerek yoktur.

Mimari

Proje 4 Cargo crate'inden oluşan bir Rust workspace olarak yapılandırılmıştır:

rollbackx/
├── crates/
│   ├── rollbackx-core      # İş mantığı: altyapılar, DB, hata türleri
│   ├── rollbackx-cli       # CLI binary (clap v4)
│   └── rollbackx-gtk       # GTK4/libadwaita masaüstü uygulaması
└── tests/                  # Entegrasyon testleri (loop device)

Altyapı Öncelik Sırası

Öncelik Altyapı Konum Gereksinim
1 Btrfs /.snapshots/@{id}_{name}_{ts} Btrfs FS, btrfs-tools
2 LVM Thin LV: rx_{id}_{name} LVM Thin pool, lvm2
3 Rsync /var/lib/rollbackx/snapshots/ rsync (evrensel)

Sistem Entegrasyonu

Bileşen Açıklama
apt-hook/80rollbackx Her APT işlemi öncesi otomatik kayıt
rollbackx-restore.service Açılışta otomatik yükleme
rollbackx-cmdline.service GRUB kernel parametresi ile yükleme
rollbackx-schedule.timer Periyodik otomatik kayıt
grub.d/80_rollbackx Kayıtları GRUB menüsüne ekler
polkit/org.rollbackx.policy pkexec yetkilendirme politikası

Katkıda Bulunma

  1. Bu repoyu fork edin
  2. Feature branch oluşturun (git checkout -b ozellik/yeni-ozellik)
  3. Değişikliklerinizi commit edin (git commit -m 'feat: yeni özellik ekle')
  4. Branch'i push edin (git push origin ozellik/yeni-ozellik)
  5. Pull Request açın

Lisans

Bu proje GNU General Public License v3.0 ile lisanslanmıştır.

İletişim

Geliştirici: Selman F. CÜZDAN GitHub: @selmancuzdan42


English

RollbackX is an open-source system state manager for Pardus and other Debian-based distributions. It supports Btrfs, LVM Thin, and Rsync storage backends, automatically detecting the system configuration and selecting the most appropriate backend.

Installation

# 1. Download the package
wget https://github.com/selmancuzdan42/rollbacktx/releases/latest/download/rollbackx_1.0.0_amd64.deb

# 2. Install
sudo dpkg -i rollbackx_1.0.0_amd64.deb

For all releases → Releases

Features

  • Multi-backend support — Btrfs, LVM Thin Provisioning, and Rsync (all filesystems including ext4)
  • Automatic backend detection — Priority order: Btrfs → LVM Thin → Rsync
  • APT integration — Automatic snapshot before every apt install/upgrade/remove
  • GRUB menu integration — Boot directly from any saved snapshot
  • GTK4 / libadwaita interface — Modern, GNOME HIG-compliant desktop application
  • CLI — Turkish/English output (ROLLBACKX_LANG=en)
  • Role-based access control — Admin / Teacher / Student mode (for educational environments)
  • Snapshot verification — Integrity check of critical system files
  • Export/import — Archiving with .rxsnap format
  • systemd integration — Automatic restore on boot, scheduled snapshots
  • Lock mechanism — Prevents accidental deletion of critical snapshots

Screenshots

Main Screen

Main Screen

Creating a New Snapshot

Snapshot Creation Dialog    Snapshot in Progress

Snapshot List

Snapshot List

Snapshot Detail and Restore

Snapshot Detail Panel    Restore Confirmation    pkexec Authentication

File Manager Integration

File Manager

Usage

CLI

# Create a new snapshot
sudo rollbackx snapshot create "before-update"

# List snapshots
rollbackx snapshot list

# Restore a snapshot (requires reboot)
sudo rollbackx snapshot restore 3

# System status
rollbackx durum

# System check
rollbackx kontrol

# Verify a snapshot
sudo rollbackx snapshot verify 3

# Export a snapshot
sudo rollbackx arsiv export 3 backup.rxsnap

# English output
ROLLBACKX_LANG=en rollbackx snapshot list

GTK Interface

rollbackx-gtk

Administrative operations are automatically authorized via pkexec; there is no need to run the GTK application as root.

Architecture

The project is structured as a Rust workspace consisting of 4 Cargo crates:

rollbackx/
├── crates/
│   ├── rollbackx-core      # Business logic: backends, DB, error types
│   ├── rollbackx-cli       # CLI binary (clap v4)
│   └── rollbackx-gtk       # GTK4/libadwaita desktop application
└── tests/                  # Integration tests (loop device)

Backend Priority

Priority Backend Location Requirement
1 Btrfs /.snapshots/@{id}_{name}_{ts} Btrfs FS, btrfs-tools
2 LVM Thin LV: rx_{id}_{name} LVM Thin pool, lvm2
3 Rsync /var/lib/rollbackx/snapshots/ rsync (universal)

System Integration

Component Description
apt-hook/80rollbackx Automatic snapshot before every APT operation
rollbackx-restore.service Automatic restore on boot
rollbackx-cmdline.service Restore via GRUB kernel parameter
rollbackx-schedule.timer Periodic automatic snapshots
grub.d/80_rollbackx Adds snapshots to GRUB menu
polkit/org.rollbackx.policy pkexec authorization policy

Contributing

  1. Fork this repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'feat: add new feature')
  4. Push the branch (git push origin feature/new-feature)
  5. Open a Pull Request

License

This project is licensed under the GNU General Public License v3.0.

Contact

Developer: Selman F. CÜZDAN GitHub: @selmancuzdan42

About

Pardus Linux için sistem snapshot yöneticisi — Btrfs, LVM Thin ve Rsync destekli. CLI + GTK4 arayüz.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors