Skip to content

Multi-Device Setup

Configure all your gaming devices—Steam Decks, ROG Allys, and more—from a single private repository.


How It Works

Each physical device gets its own folder in your private repo:

private/
└── device/
    ├── rog-ally/
    │   ├── Vengeance/          # ROG Ally X #1
    │   │   └── config.yml
    │   └── Vixen/              # ROG Ally X #2
    │       └── config.yml
    └── steamdeck/
        ├── GameDeck/           # Steam Deck OLED
        │   └── config.yml
        └── TravelDeck/         # Steam Deck LCD
            └── config.yml

When you run Bootible, it detects the platform (from the URL) and prompts you to select which device instance:

Multiple configurations found:

  1) Vengeance
  2) Vixen

Select configuration [1-2]:

Adding a New Device

Method 1: Using init-private-repo.sh

If this is your first device, run the init script:

cd ~/bootible
./init-private-repo.sh

Method 2: Manual Creation

For additional devices, create the folder structure manually:

# Create device folder
mkdir -p private/device/steamdeck/TravelDeck/{Logs,Images}

# Copy config from existing device
cp private/device/steamdeck/GameDeck/config.yml \
   private/device/steamdeck/TravelDeck/config.yml

# Or download fresh template
curl -fsSL https://raw.githubusercontent.com/bootible/bootible/main/config/steamdeck/config.yml \
  -o private/device/steamdeck/TravelDeck/config.yml

Then customize the config for your new device.


Device-Specific vs Shared Configuration

Device-Specific Settings

Things that typically differ per device:

# Hostname
hostname: "travel-deck"

# Hardware-specific
emulation_storage: "sdcard"  # Has SD card
move_shader_cache: true      # Small internal storage

# Location-specific
static_ip:
  enabled: true
  address: "192.168.1.102/24"  # Different IP than other devices

Shared Settings

Things that are usually the same across devices:

# Apps you want everywhere
install_discord: true
install_spotify: true
password_managers:
  - "1password"

# Gaming setup
install_moonlight: true
install_chiaki: true

# Common Decky plugins
decky_plugins:
  powertools:
    enabled: true
  protondb_badges:
    enabled: true

Copy and modify

Start by copying an existing device's config, then adjust the device-specific settings.


Shared Resources

Some files are shared across all devices:

SSH Keys (ssh-keys/)

Public keys for all your devices and computers:

ssh-keys/
├── desktop.pub         # Your gaming PC
├── laptop.pub          # Your laptop
├── vengeance.pub       # ROG Ally #1
├── vixen.pub           # ROG Ally #2
├── gamedeck.pub        # Steam Deck #1
└── traveldeck.pub      # Steam Deck #2

Each device can authorize whichever keys it needs:

# On GameDeck - allow SSH from desktop and laptop
ssh_import_authorized_keys: true
ssh_authorized_keys:
  - "desktop.pub"
  - "laptop.pub"

Scripts (scripts/)

Shared scripts like EmuDeck Early Access:

scripts/
├── EmuDeck EA SteamOS.desktop.download
└── EmuDeck EA Windows.bat

All devices automatically use these if they're present.


Example: Two Steam Decks

You have a primary Steam Deck OLED (GameDeck) and a travel Steam Deck LCD (TravelDeck).

GameDeck (Primary)

# private/device/steamdeck/GameDeck/config.yml

hostname: "gamedeck"

# Full app suite
install_discord: true
install_spotify: true
install_obs: true
install_vscode: true

# Internal storage (512GB OLED)
emulation_storage: "internal"

# Performance plugins
decky_plugins:
  powertools:
    enabled: true
  battery_tracker:
    enabled: true

# Remote access for home network
install_ssh: true
install_tailscale: true
ssh_import_authorized_keys: true
ssh_authorized_keys:
  - "desktop.pub"

TravelDeck (Travel)

# private/device/steamdeck/TravelDeck/config.yml

hostname: "traveldeck"

# Minimal apps for travel
install_discord: true
install_spotify: true
# No OBS/VSCode - saves space

# Use SD card (64GB internal)
emulation_storage: "sdcard"
move_shader_cache: true

# Fewer plugins
decky_plugins:
  powertools:
    enabled: true
  # No battery tracker - travels light

# Remote access via Tailscale only
install_tailscale: true
# No SSH - not on trusted networks

Example: ROG Ally + Steam Deck

You have an ROG Ally for Windows gaming and a Steam Deck for couch gaming.

Vengeance (ROG Ally)

# private/device/rog-ally/Vengeance/config.yml

hostname: "vengeance"

# Windows-specific
install_gaming: true
install_steam: true
install_xbox_app: true

# Windows streaming (send TO TV)
install_parsec: true
install_sunshine: true

# Windows optimization
disable_telemetry: true
disable_copilot: true
classic_right_click_menu: true

GameDeck (Steam Deck)

# private/device/steamdeck/GameDeck/config.yml

hostname: "gamedeck"

# Linux gaming
install_decky: true
install_proton_ge: true

# Linux streaming (receive FROM PC)
install_moonlight: true
install_chiaki: true

# Couch gaming focus
decky_plugins:
  steamgriddb:
    enabled: true
  css_loader:
    enabled: true

Tips for Multi-Device Management

Use Descriptive Names

Choose names that help you remember which device is which:

Good Names Bad Names
LivingRoom, Bedroom, Office Deck1, Deck2, Deck3
Primary, Travel, Kids New, Old, Backup
Vengeance, Vixen (hostnames) A, B, C

Keep Configs in Sync

When you add a new app to one device, consider if others need it too:

# See differences between configs
diff private/device/steamdeck/GameDeck/config.yml \
     private/device/steamdeck/TravelDeck/config.yml

Review Logs Together

All device logs are in one repo, making it easy to compare:

device/
├── rog-ally/Vengeance/Logs/
├── rog-ally/Vixen/Logs/
├── steamdeck/GameDeck/Logs/
└── steamdeck/TravelDeck/Logs/