Skip to content

stanleygomes/genesis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

159 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌎 Genesis

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.

Quick Start (One-Liner)

To set up a fresh machine, just run:

curl -sSL https://raw.githubusercontent.com/stanleygomes/genesis/refs/heads/master/bootstrap.sh | bash

This command will install git, ansible, clone this repository, and run the setup.


Manual Getting Started

What does this project do?

  • 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).

Requisites

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.

Usage

1. Interactive Installer (Recommended)

The easiest way to set up is using the interactive installer:

./bootstrap.sh

This 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.

2. Manual Execution (via Makefile)

To run a specific configuration or multiple configurations:

make run CONFIG="bash desktop"

3. Run in dry-run mode:

make check CONFIG="desktop"

πŸ“‚ Project Structure

βš™οΈ 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)

About

🌎 My computer configuration automated by Ansible

Topics

Resources

Stars

Watchers

Forks

Contributors