FeaturesDocs
Blog
The Switch from Gas Station to Install Doctor ->
From Gas Station to Install Doctor ->

Multi-OS provisioning made easy.

Install Doctor is a free provisioning tool compatible with most operating systems that lets you define the state of your operating system. With it, you can re-format often and provision your devices rapidly. Without any customization, it provisions an expertly configured eco-system of popular, free, open-source GitHub projects. It also provides a framework for defining your ideal configurations with as little work as possible.

Customize your build ->Archlinux, CentOS, Debian, Fedora, macOS, Qubes, Ubuntu, and Windows icons
Install Doctor connected to Archlinux, CentOS, Debian, Fedora, macOS, Ubuntu, Qubes, and Windows as a mind map

Get started easily.

01

Get started with a one-liner and guided prompts.

It is incredibly easy to get started with Install Doctor. Run the one-liner and you will be guided through interactive prompts where you can input any missing information.

bash <(curl -sSL https://install.doctor/start)
iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/windows'))
qvm-run --pass-io sys-firewall "curl -sSL https://install.doctor/qubes" > ~/setup.sh && bash ~/setup.sh
02

Customize the script with your own fork.

Fork the Install Doctor project on GitHub and use the same convienient script to provision your devices by defining an environment variable with your username/project-name.

export START_REPO=my-gh-user/my-fork-name
bash <(curl -sSL https://install.doctor/start)
$env:START_REPO = 'my-gh-user/my-fork-name'
iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/windows'))
export START_REPO=my-gh-user/my-fork-name
qvm-run --pass-io sys-firewall "curl -sSL https://install.doctor/qubes" > ~/setup.sh && bash ~/setup.sh
03

Test it out in a VM with Vagrant.

Test out Install Doctor before provisioning your main workstations with a one-liner. The script will install Vagrant, ensure a suitable virtualization platform is installed, and then provision a VM.

bash <(curl -sSL https://install.doctor/vagrant)
iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/windows-vagrant'))
04

Automate everything.

Pass in your sensitive data as environment variables or include them as encrypted secrets stored in your fork for a completely automated one-line installation.

echo "Headlessly provisioning a Linux / macOS / Unix machine"
export HEADLESS_INSTALL=true
export SOFTWARE_GROUP=Standard-Desktop
export FULL_NAME="Joe Shmoe"
export PRIMARY_EMAIL="help@megabyte.space"
export PUBLIC_SERVICES_DOMAIN="megabyte.space"
export CLOUDFLARE_API_TOKEN="cf-pat-xXP999kUu888777"
export TAILSCALE_AUTH_KEY="tailscale-auth-key-xXP999kUu888777"
export START_REPO=my-gh-user/my-fork-name
bash <(curl -sSL https://install.doctor/start)
Write-Host "Headlessly provisioning a Windows machine"
$env:HEADLESS_INSTALL = true
$env:SOFTWARE_GROUP = Standard-Desktop
$env:FULL_NAME = 'Joe Shmoe'
$env:PRIMARY_EMAIL = 'help@megabyte.space'
$env:PUBLIC_SERVICES_DOMAIN = 'megabyte.space'
$env:CLOUDFLARE_API_TOKEN = 'cf-pat-xXP999kUu888777'
$env:TAILSCALE_AUTH_KEY = 'tailscale-auth-key-xXP999kUu888777'
$env:START_REPO = 'my-gh-user/my-fork-name'
iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/windows'))
echo "Headlessly provisioning Qubes from dom0"
export HEADLESS_INSTALL=true
export SOFTWARE_GROUP=Standard-Desktop
export FULL_NAME="Joe Shmoe"
export PRIMARY_EMAIL="help@megabyte.space"
export PUBLIC_SERVICES_DOMAIN="megabyte.space"
export CLOUDFLARE_API_TOKEN="cf-pat-xXP999kUu888777"
export TAILSCALE_AUTH_KEY="tailscale-auth-key-xXP999kUu888777"
export START_REPO=my-gh-user/my-fork-name
qvm-run --pass-io sys-firewall "curl -sSL https://install.doctor/qubes" > ~/setup.sh
bash ~/setup.sh
05

Manage software across operating systems.

Leverage our custom installer and define package requirements in a cross-OS way by defining the OS-specific package names software a YAML file.

---
softwarePackages:
  imagemagick:
    _bin: convert
    apk: imagemagick
    apt:
      - imagemagick
      - libx11-dev
    brew: imagemagick
    choco: imagemagick
    dnf:fedora: imagemagick
    scoop: imagemagick
06

Pin all your plugins, packages, and extensions.

Configure Install Doctor to install your favorite packages while provisioning your device by defining them in YAML.

---
chromeExtensions:
  - automa/infppggnoaenmfagbfknfkancpbljcca
  - bitwarden-free-password-m/nngceckbapebfimnlniiiahkandclblb
firefoxAddOns:
  - automa
  - bitwarden-password-manager
  - chatgpt-for-google
  - firefox-translations
  - floccus
  - ublock-origin
See-through tiles
Book cover with title reading "Provisioning Operating Systems with Install Doctor"

Provision your computing environments faster. Our free guide details the benefits of leveraging Install Doctor to define the state of your PCs.

Automatically provision your devices.

Triple phone icon

OS-independent

Bring your devices to roughly equivalent states, regardless of the operating system you choose.

Cube with sphere inside icon

Security-focused

Provision your devices with clever security measures that will mitigate security risks and give hackers a PITA.

Tripe stack layered icon

Virtualization-friendly

Use Install Doctor to provision VMs, leverage pre-configured Docker sandboxing, and even provision a fully configured Qubes environment.

Consistent features, any operating system.

Explore Features->
Camera icon

Stunning UI

Both KDE and GNOME Linux systems are configured to use our stunning Sweet-based theme and boot screens are sleek, without useless log messages.

File system icon

File System

Read-only network file sharing folder, back-ups to S3 buckets, and integrations with OS-specific technologies like BTRFS.

Antenna icon

Pin Everything

Our system allows you to pin everything into your configuration. Keep track of your favorite addons / tools / extensions by pinning software packages, Chrome extensions, VSCode extensions, and more.

Spherical rings icon

Developer-First

The default configuration is designed to accomodate the needs of developers by including development software and power-user tools like fully-enhanced terminal settings.

Bell icon

Notifications

Monitor your devices via a personal web dashboard and receive notifications when something goes awry.

Person with circle around icon

Network

Connect to your devices / services anywhere with a VPN-based LAN and SSO-protected web services.

Three encompassing circles icon

Multi-Layer Security

Utilize multiple layers of pre-configured security features like app-specific firewalls, sandboxing, and honeypots.

Slider adjustment icon

Configurable

Easily customize your own version of Install Doctor and host it, optionally bundled with your encrypted secrets, on GitHub.

Bring your own operating system.

Use Install Doctor to provision a wide range of operating systems and virtualization platforms. The latest x86-64 releases of Archlinux, CentOS, Debian, Fedora, macOS, Qubes, Ubuntu, and Windows are officially supported. Support for other operating systems is also possible.

Archlinux logo tile
CentOS logo tile
Debian logo tile
Fedora logo tile
macOS logo tile
Qubes logo tile
Ubuntu logo tile
Windows logo tile

What people are saying about Install Doctor.

Brian Zalewski Twitter profile picture

Brian Zalewski

@HillBillyHack3r

The default configuration of @InstallDoc is an educational tool that helps me learn about emerging open-source technologies.. Hopefully people find it as useful as I do

The Install Doctor Community is growing. Connect with us, your opinion matters.

Supercharge your workflow with enterprise-grade solutions.

Raised platforms with app icons

Ready for enterprise. With Install Doctor Enterprise, access advanced security features, integrate SSO, and utilize a proprietary hardware-based, read-only file system.

Ready to get started?

Dive in and start provisioning your devices with Install Doctor