GettingStarted

Configuration

Customize Griffin with variables, flags, and tags

Feature Flags

Griffin is modular. You can control exactly what gets installed using Ansible's "Extra Variables" (-e). By default, running the playbook without arguments installs only the core CLI tools and shell environment.

gui

Installs general GUI applications (browsers, communication apps).

Default: false Type: boolean

dev_tools_gui

Installs GUI development tools (VS Code, JetBrains Toolbox, DBeaver).

Default: false Type: boolean

all

Installs everything (CLI + GUI + Dev Tools). The full experience.

Default: false Type: boolean

docker_install

Explicitly enables/disables Docker installation.

Default: true Type: boolean

gestures

Installs libinput-gestures for touchpad gestures (Linux only).

Default: false Type: boolean

rust

Installs Rust language toolchain and crates.

Default: false Type: boolean

Examples

Install everything:

ansible-playbook ./playbook.yaml -K -e all=true

Install CLI + GUI Dev Tools (no general apps):

ansible-playbook ./playbook.yaml -K -e dev_tools_gui=true

Git Configuration

You can set up your global .gitconfig during the installation process.

ansible-playbook ./playbook.yaml -K \
  -e "git_user_email='your@email.com'" \
  -e "git_user_name='Your Name'"

GitHub API Rate Limiting

Griffin downloads many tool binaries directly from GitHub Releases. Unauthenticated requests are limited to 60 per hour, which allows for occasional failures if you run the playbook frequently or on a shared IP.

Generate Token

Create a Personal Access Token (Classic) on GitHub with only the public_repo scope.

Use Token

Pass it to the playbook to increase your limit to 5,000 requests/hour.

ansible-playbook ./playbook.yaml -K -e github_token=YOUR_TOKEN

Using Tags

If you don't want to run the entire playbook, you can use Tags to run specific sections. This is much faster for updates or partial installs.

Common Tags:

shell

Configures Zsh, Oh-My-Zsh, Powerlevel10k, and Antidote.

git

Installs and configures Git tools (git, gh, gitkraken).

docker

Installs Docker Engine and Compose.

vscode

Installs VS Code and extensions.

packages

Installs system packages via Apt or Homebrew.

system

Runs system preparation and cleanup tasks.

languages

Installs programming languages (Go, Node, Rust, etc.).
Detailed tags are also available for specific languages: rust, golang, java, python, node.

Example: Refresh only your shell configuration

ansible-playbook ./playbook.yaml -K --tags "shell"