Reinstall your server
with one command.

One-click OS reinstallation & rescue toolkit for VPS and bare-metal servers. No control panel. No rescue ISO. No bootloader surgery.

01Why restage?

Two-stage install

Host patches a kernel+initrd and installs a one-shot boot entry. After reboot, the installer finds your disk by partition-table UUID — never by device name.

Safe by design

Nothing touches disk until the action plan is shown and confirmed. Always start with --dry-run.

No control panel

Runs from SSH, as root, on any Linux VPS or bare-metal box. Everything comes from official images.

Survives renaming

Disk is selected by PTUUID, so the tool keeps working even when kernel device names change between boots.

02Quick start

# Always plan first — this changes nothing:
$ restage linux debian 12 --ssh-key "ssh-ed25519 AAAA..." --dry-run
# Then reinstall, unattended:
$ restage linux debian 12 --ssh-key "ssh-ed25519 AAAA..." --yes
Get restage on GitHub Read the README

03Everything you can do

$ restage linux debian 12 --password 'ChangeMe123!' --yes
$ restage linux ubuntu 24.04 --password 'ChangeMe123!' --yes
$ restage dd --img https://example.com/image.qcow2 --yes
$ restage windows --image-name "Windows 11 Pro" --yes
$ restage alpine # rescue environment, no disk writes
$ restage netboot # netboot.xyz menu
$ restage reset # cancel a pending reinstall

04Supported targets

CommandInstalls / boots
linuxDebian, Ubuntu, Alpine, AlmaLinux, Rocky, openEuler from official cloud images
ddAny raw or compressed disk image (gzip / xz / zstd / qcow2)
windowsWindows from an official ISO
alpineAlpine Live rescue environment (non-destructive)
netbootnetboot.xyz menu (non-destructive)

05Built like a real project

Warning: linux, dd and windows erase the entire primary disk. Always run with --dry-run first and keep a rescue plan.