This repository contains the Ansible configuration to automate the setup and maintenance of my personal computer, vps and more. The goal is to turn my machine configuration into "Infrastructure as Code" (IaC), allowing me to rebuild or sync my environment quickly and consistently.
To set up a fresh machine, just run:
curl -sSL https://raw.githubusercontent.com/stanleygomes/genesis/refs/heads/master/bootstrap.sh | bashThis command will install git, ansible, clone this repository, and run the setup.
- Manages system packages (Apt, Flatpak, Snap etc).
- Configures development environments (Node.js with pnpm, Java, Python, Go, PHP).
- Installs and configures AI tools (Antigravity CLI, GitHub Copilot CLI, Antigravity IDE etc).
- Setups CLI/TUI tools with desktop shortcuts (LazyDocker, etc).
- Customizes the shell and terminal (Zsh with Oh My Zsh, Bash, aliases, GNOME Terminal settings).
Before running the playbooks, you need to have Ansible installed on your machine. If you use bootstrap.sh, you don't need to install Ansible manually.
Note
How to install: https://docs.ansible.com/projects/ansible/latest/installation_guide/intro_installation.html
The easiest way to set up is using the interactive installer:
./bootstrap.shThis will open a menu where you can:
- Select multiple playbooks (using Space).
- Choose optional components for specific categories (sub-menus).
- See a summary before the installation begins.
To run a specific configuration or multiple configurations:
make run CONFIG="bash desktop"make check CONFIG="desktop"βοΈ configs/ # Specific tool configurations (VS Code, etc.)
π group_vars/ # Global configuration variables (all.yml)
π playbooks/ # Setup playbooks (common.yml, desktop.yml, etc.)
π§© roles/ # Modular Ansible roles (terminal, docker, etc.)
π οΈ Makefile # Helper tasks to run, check, list playbooks
π bootstrap.sh # One-liner script to bootstrap environment
π» setup.py # Interactive Python menu installer
inventory # Ansible host definition (localhost)