Skip to content

Architecture Overview

This page describes the internal code structure for each platform implementation. For a comparison of what Bootible does on each platform, see Configure Your Device.


Steam Deck (Ansible)

targets/deck.sh          # Bootstrap script
config/steamdeck/
├── playbook.yml         # Main Ansible playbook
├── config.yml           # Default configuration
└── roles/
    ├── base/            # Flathub, hostname, SD card
    ├── flatpak_apps/    # Application installation
    ├── ssh/             # SSH server setup
    ├── tailscale/       # VPN configuration
    ├── decky/           # Decky Loader + plugins
    ├── proton/          # Proton-GE, Protontricks
    ├── emulation/       # EmuDeck setup
    └── ...

ROG Ally (PowerShell)

targets/ally.ps1         # Bootstrap script
config/rog-ally/
├── Run.ps1              # Main orchestrator
├── config.yml           # Default configuration
├── lib/
│   └── helpers.ps1      # Utility functions
└── modules/
    ├── validate.ps1     # Package validation
    ├── base.ps1         # Hostname, network, winget
    ├── apps.ps1         # Application installation
    ├── gaming.ps1       # Game platforms
    ├── streaming.ps1    # Streaming clients
    ├── ssh.ps1          # OpenSSH server
    ├── optimization.ps1 # Gaming tweaks
    ├── debloat.ps1      # Privacy settings
    └── ...

Android (Bash + ADB) ALPHA

targets/android.sh       # Bootstrap script (runs on host)
config/android/
├── Run.sh               # Provisioning engine
├── config.yml           # Default configuration (100+ apps)
└── lib/
    ├── adb-helpers.sh   # ADB wrapper functions
    ├── apk-install.sh   # APK installation
    ├── settings.sh      # Settings configuration
    └── files.sh         # File push logic

Host-based provisioning

Unlike Steam Deck and ROG Ally, Android provisioning runs from your computer and connects to the Android device via Wireless ADB.