Install software
Use this page to apply the managed workstation configuration to a new or freshly prepared machine after completing Install OS/Ansible. Installing software through Ansible makes the setup repeatable, reviewable, and easier to share across the team.
This workflow is tested/supported on Fedora Workstation 44 x86_64. The playbook gathers platform facts first and stops with the detected platform if the distribution, major version, or architecture is unsupported.
make installThe command applies the desired workstation configuration. It delegates to the lab-stack target, which runs playbooks/lab-stack.yml. Update software updates Fedora and Flatpak software, then reapplies and audits that same state during routine maintenance. Both workflows rely on Ansible and documented package policy rather than manual, undocumented changes. For a workstation with user- or machine-specific automation, apply this shared baseline first and then apply a separate personal overlay.
Ansible playbooks are designed to be idempotent: they describe the desired final state of the workstation. When you rerun the command, Ansible checks what is already installed or configured and only applies missing or changed steps. This makes repeated runs safe after an interrupted installation or after changing documented configuration.
🔧 Manual setup and configuration
After the automated installation, complete only the manual steps for software you use:
- Set up GitHub SSH/GPG identity and workstation basics in Baseline.
- Log out and back in before testing Docker group access; see Docker.
- Configure browsers and extensions in Chrome if needed.
- Create or open a database and pair KeePassXC-Browser in KeePassXC.
- Configure Thunderbird accounts and extensions in Thunderbird if needed.
- Sign in to editors, extensions, and settings sync in VS Code if needed.
- Start or verify local research services in GROBID and LanguageTool if you use them.
- Configure OCR workflows in OCR and Quarto publishing in Quarto if relevant.
- Choose between the default TinyTeX installation and the full Fedora TeX Live installation in LaTeX if needed.
Run only one playbook tag when you need to test or reapply a specific area:
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags baseline
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags desktop_apps
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags git
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags borg_vorta
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags dropbox
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags nemo
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags veracrypt
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags ocr
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags virtualbox
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags docker
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags ocr_containers
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags development_containers
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags grobid
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags languagetool
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags latex
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags quarto
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags rstudio
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags keepassxc
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags okular
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags chrome
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags vscode
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags teams
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags thunderbird
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags thunderbird_mcp
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags desktopYou can also combine tags, for example:
ansible-playbook -i inventory -K playbooks/lab-stack.yml --tags keepassxc,chrome