Files
rocknix-config-backup/README.md
2026-07-14 11:51:45 -03:00

153 lines
4.9 KiB
Markdown

# ROCKNIX Backup & Restore
Backup and restore script for ROCKNIX emulator configurations. Allows syncing optimal settings between multiple consoles via SSH.
## Features
- **Specific backup**: Full backup including all device/user-specific settings
- **Generic backup**: Portable backup with device-specific settings filtered out
- **Selective restore**: Choose which components to restore via interactive dialog
- **Safety backup**: Automatically saves current settings before restoring
- **Device detection**: Automatically identifies the target ROCKNIX device
- **SSH support**: Password and key-based authentication
## Requirements
```bash
# Fedora/RHEL
sudo dnf install tar dialog rsync sshpass
# Debian/Ubuntu
sudo apt install tar dialog rsync sshpass
```
## Usage
### Backup
```bash
# Specific backup (includes all settings)
./backup-rocknix.sh
# Generic backup (portable between devices)
./backup-rocknix.sh --type generic
# Custom host and output directory
./backup-rocknix.sh --host myconsole.local --output /path/to/backups
```
### Restore
```bash
# Interactive restore (lists available backups)
./restore-rocknix.sh
# Restore specific backup file
./restore-rocknix.sh --backup backups/rocknix-config-specific-rg-cubexx-20260714-113010.tar.gz
# Restore all components without prompting
./restore-rocknix.sh --backup backup.tar.gz --all
```
## Options
### backup-rocknix.sh
| Option | Description | Default |
|-------------------|-------------------------|------------------|
| `--host HOST` | Console hostname/IP | `rgcubexx.local` |
| `--user USER` | SSH username | `root` |
| `--password PASS` | SSH password | (prompts) |
| `--output DIR` | Backup output directory | `backups/` |
| `--type TYPE` | `specific` or `generic` | `specific` |
| `--help` | Show help | |
### restore-rocknix.sh
| Option | Description | Default |
|-------------------|----------------------------|------------------|
| `--host HOST` | Target console hostname/IP | `rgcubexx.local` |
| `--user USER` | SSH username | `root` |
| `--password PASS` | SSH password | (prompts) |
| `--backup FILE` | Backup file to restore | (interactive) |
| `--all` | Restore all components | `false` |
| `--help` | Show help | |
## Components
The following components can be backed up and restored:
| Component | Description |
|--------------------------|--------------------------------------------|
| `retroarch-core-options` | RetroArch global core options |
| `retroarch-opt` | Per-core `.opt` files |
| `retroarch-rmp` | Button remaps `.rmp` files |
| `retroarch-config` | Per-core overrides (`config/`) |
| `shaders` | Shader packs and presets |
| `ppsspp` | PPSSPP (PSP) settings |
| `drastic` | DraStic (NDS) settings |
| `other-emu` | Flycast, DuckStation, Yabasanshiro configs |
## Backup Types
### Specific Backup
Includes all settings, including device-specific values like:
- Screen resolution and scaling
- Video/audio drivers
- Input mappings
- Account credentials (RetroAchievements, cloud sync)
Best for: Backing up the same device or identical hardware.
### Generic Backup
Filters out device-specific settings for portability:
- Screen dimensions (`video_fullscreen_x/y`)
- Scale factors (`menu_scale_factor`)
- Drivers (`video_driver`, `audio_driver`)
- Credentials and tokens
Best for: Sharing configs between different devices or users.
## Configuration
Edit `config.sh` to customize:
- `ROCKNIX_HOST`: Default console hostname
- `ROCKNIX_STORAGE`: Storage path on device (default: `/storage`)
- `BACKUP_DIR`: Local backup directory
- `SPECIFIC_FILES`: List of files to back up
- `GENERIC_EXCLUDES`: Files excluded from generic backups
- `GENERIC_SETTINGS_FILTER`: Settings patterns removed from generic backups
## Examples
```bash
# First-time setup: create a specific backup
./backup-rocknix.sh --host rgcubexx.local
# Clone settings to another device of the same model
./backup-rocknix.sh --type generic
./restore-rocknix.sh --host rgcubexx2.local --backup backups/rocknix-config-generic-*.tar.gz
# List available backups
./restore-rocknix.sh # Shows interactive menu
```
## File Structure
```
rocknix-backup/
├── backup-rocknix.sh # Backup script
├── restore-rocknix.sh # Restore script
├── lib-common.sh # Shared functions (SSH, rsync, logging)
├── config.sh # Default configuration
├── backups/ # Backup files (*.tar.gz)
└── PRE-ANALISIS-ROCKNIX.md # Technical analysis document
```
## License
MIT